16 #ifndef __MPLS_LABEL_DPO_H__ 17 #define __MPLS_LABEL_DPO_H__ 27 #define MPLS_LABEL_DPO_MAX_N_LABELS 12 71 "MPLS label DPO is larger than one cache line.");
void mpls_label_dpo_module_init(void)
mpls_label_dpo_t * mpls_label_dpo_pool
STATIC_ASSERT((sizeof(mpls_label_dpo_t)<=CLIB_CACHE_LINE_BYTES),"MPLS label DPO is larger than one cache line.")
Assert that the MPLS label object is less than a cache line in size.
u32 mpls_label_t
A label value only, i.e.
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
#define MPLS_LABEL_DPO_MAX_N_LABELS
Maximum number of labels in one DPO.
enum dpo_proto_t_ dpo_proto_t
Data path protocol.
dpo_proto_t mld_payload_proto
The protocol of the payload/packets that are being encapped.
The identity of a DPO is a combination of its type and its instance number/index of objects of that t...
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
u8 * format_mpls_label_dpo(u8 *s, va_list *args)
index_t mpls_label_dpo_create(mpls_label_t *label_stack, mpls_eos_bit_t eos, u8 ttl, u8 exp, dpo_proto_t payload_proto, const dpo_id_t *dpo)
Create an MPLS label object.
u16 mld_n_hdr_bytes
Cached amount of header bytes to paint.
u16 mld_n_labels
Size of the label stack.
static mpls_label_dpo_t * mpls_label_dpo_get(index_t index)
struct mpls_label_dpo_t mpls_label_dpo_t
A representation of an MPLS label for imposition in the data-path.
dpo_id_t mld_dpo
Next DPO in the graph.
mpls_unicast_header_t mld_hdr[MPLS_LABEL_DPO_MAX_N_LABELS]
The MPLS label header to impose.
u16 mld_locks
Number of locks/users of the label.
#define CLIB_CACHE_LINE_BYTES
A representation of an MPLS label for imposition in the data-path.
enum mpls_eos_bit_t_ mpls_eos_bit_t