FD.io VPP
v20.05.1-6-gf53edbc3b
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | mpls_label_dpo_t |
A representation of an MPLS label for imposition in the data-path. More... | |
Macros | |
#define | MPLS_LABEL_DPO_ATTR_MAX (MPLS_LABEL_DPO_ATTR_UNIFORM_MODE+1) |
#define | MPLS_LABEL_DPO_ATTR_NAMES |
#define | FOR_EACH_MPLS_LABEL_DPO_ATTR(_item) |
#define | MPLS_LABEL_DPO_MAX_N_LABELS 12 |
Maximum number of labels in one DPO. More... | |
Typedefs | |
typedef enum mpls_label_dpo_attr_t_ | mpls_label_dpo_attr_t |
Flags present on an MPLS label sourced path-extension. More... | |
typedef enum mpls_label_dpo_flags_t_ | mpls_label_dpo_flags_t |
typedef struct mpls_label_dpo_t | mpls_label_dpo_t |
A representation of an MPLS label for imposition in the data-path. More... | |
Enumerations | |
enum | mpls_label_dpo_attr_t_ { MPLS_LABEL_DPO_ATTR_NO_IP_TTL_DECR, MPLS_LABEL_DPO_ATTR_UNIFORM_MODE } |
Flags present on an MPLS label sourced path-extension. More... | |
enum | mpls_label_dpo_flags_t_ { MPLS_LABEL_DPO_FLAG_NONE = 0, MPLS_LABEL_DPO_FLAG_NO_IP_TTL_DECR = (1 << MPLS_LABEL_DPO_ATTR_NO_IP_TTL_DECR), MPLS_LABEL_DPO_FLAG_UNIFORM_MODE = (1 << MPLS_LABEL_DPO_ATTR_UNIFORM_MODE) } |
Functions | |
u8 * | format_mpls_label_dpo_flags (u8 *s, va_list *args) |
Format the flags variable. More... | |
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. More... | |
void | mpls_label_dpo_create (fib_mpls_label_t *label_stack, mpls_eos_bit_t eos, dpo_proto_t payload_proto, mpls_label_dpo_flags_t flags, const dpo_id_t *paremt, dpo_id_t *dpo) |
Create an MPLS label object. More... | |
u8 * | format_mpls_label_dpo (u8 *s, va_list *args) |
static mpls_label_dpo_t * | mpls_label_dpo_get (index_t index) |
void | mpls_label_dpo_module_init (void) |
dpo_type_t | mpls_label_dpo_get_type (mpls_label_dpo_flags_t flags) |
Variables | |
mpls_label_dpo_t * | mpls_label_dpo_pool |
#define FOR_EACH_MPLS_LABEL_DPO_ATTR | ( | _item | ) |
Definition at line 49 of file mpls_label_dpo.h.
#define MPLS_LABEL_DPO_ATTR_MAX (MPLS_LABEL_DPO_ATTR_UNIFORM_MODE+1) |
Definition at line 35 of file mpls_label_dpo.h.
#define MPLS_LABEL_DPO_ATTR_NAMES |
Definition at line 44 of file mpls_label_dpo.h.
#define MPLS_LABEL_DPO_MAX_N_LABELS 12 |
Maximum number of labels in one DPO.
Definition at line 62 of file mpls_label_dpo.h.
typedef enum mpls_label_dpo_attr_t_ mpls_label_dpo_attr_t |
Flags present on an MPLS label sourced path-extension.
typedef enum mpls_label_dpo_flags_t_ mpls_label_dpo_flags_t |
typedef struct mpls_label_dpo_t mpls_label_dpo_t |
A representation of an MPLS label for imposition in the data-path.
Flags present on an MPLS label sourced path-extension.
Enumerator | |
---|---|
MPLS_LABEL_DPO_ATTR_NO_IP_TTL_DECR | Do not decrement the TTL of IP packet during imposition. |
MPLS_LABEL_DPO_ATTR_UNIFORM_MODE |
Definition at line 26 of file mpls_label_dpo.h.
Enumerator | |
---|---|
MPLS_LABEL_DPO_FLAG_NONE | |
MPLS_LABEL_DPO_FLAG_NO_IP_TTL_DECR | |
MPLS_LABEL_DPO_FLAG_UNIFORM_MODE |
Definition at line 37 of file mpls_label_dpo.h.
Format the flags variable.
Definition at line 175 of file mpls_label_dpo.c.
void mpls_label_dpo_create | ( | fib_mpls_label_t * | label_stack, |
mpls_eos_bit_t | eos, | ||
dpo_proto_t | payload_proto, | ||
mpls_label_dpo_flags_t | flags, | ||
const dpo_id_t * | paremt, | ||
dpo_id_t * | dpo | ||
) |
Create an MPLS label object.
label_stack | The stack if labels to impose, outer most label first |
eos | The inner most label's EOS bit |
payload_proto | The ptocool of the payload packets that will be imposed with this label header. |
parent | The parent of the created MPLS label object |
dpo | The MPLS label DPO created |
Definition at line 58 of file mpls_label_dpo.c.
|
inlinestatic |
Definition at line 146 of file mpls_label_dpo.h.
dpo_type_t mpls_label_dpo_get_type | ( | mpls_label_dpo_flags_t | flags | ) |
void mpls_label_dpo_module_init | ( | void | ) |
Definition at line 1312 of file mpls_label_dpo.c.
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.
Should this get any bigger then we will need to reconsider how many labels can be pushed in one object.
mpls_label_dpo_t* mpls_label_dpo_pool |
Definition at line 25 of file mpls_label_dpo.c.