FD.io VPP
v18.10-34-gcce845e
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | bier_fmask_bits_t_ |
bier_fmask : The BIER fmask More... | |
struct | bier_fmask_t_ |
An outgoing BIER mask. More... | |
Macros | |
#define | BIER_FMASK_ATTR_NAMES |
#define | FOR_EACH_BIER_FMASK_ATTR(_item) |
Typedefs | |
typedef struct bier_fmask_bits_t_ | bier_fmask_bits_t |
bier_fmask : The BIER fmask More... | |
typedef enum bier_fmask_attributes_t_ | bier_fmask_attributes_t |
Flags on fmask. More... | |
typedef enum bier_fmask_flags_t_ | bier_fmask_flags_t |
typedef struct bier_fmask_t_ | bier_fmask_t |
An outgoing BIER mask. More... | |
Enumerations | |
enum | bier_fmask_attributes_t_ { BIER_FMASK_ATTR_FIRST, BIER_FMASK_ATTR_FORWARDING = BIER_FMASK_ATTR_FIRST, BIER_FMASK_ATTR_DISP, BIER_FMASK_ATTR_MPLS, BIER_FMASK_ATTR_LAST = BIER_FMASK_ATTR_DISP } |
Flags on fmask. More... | |
enum | bier_fmask_flags_t_ { BIER_FMASK_FLAG_FORWARDING = (1 << BIER_FMASK_ATTR_FORWARDING), BIER_FMASK_FLAG_DISP = (1 << BIER_FMASK_ATTR_DISP), BIER_FMASK_FLAG_MPLS = (1 << BIER_FMASK_ATTR_MPLS) } |
Functions | |
void | bier_fmask_link (index_t bfmi, bier_bp_t bp) |
void | bier_fmask_unlink (index_t bfmi, bier_bp_t bp) |
void | bier_fmask_unlock (index_t bfmi) |
void | bier_fmask_lock (index_t bfmi) |
index_t | bier_fmask_create_and_lock (const bier_fmask_id_t *fmid, const fib_route_path_t *rpath) |
u8 * | format_bier_fmask (u8 *s, va_list *ap) |
void | bier_fmask_contribute_forwarding (index_t bfmi, dpo_id_t *dpo) |
u32 | bier_fmask_child_add (fib_node_index_t fib_entry_index, fib_node_type_t child_type, fib_node_index_t child_index) |
void | bier_fmask_child_remove (fib_node_index_t fib_entry_index, u32 sibling_index) |
void | bier_fmask_get_stats (index_t bfmi, u64 *packets, u64 *bytes) |
void | bier_fmask_encode (index_t bfmi, bier_table_id_t *btid, fib_route_path_encode_t *rpath) |
static bier_fmask_t * | bier_fmask_get (u32 index) |
Variables | |
bier_fmask_t * | bier_fmask_pool |
#define BIER_FMASK_ATTR_NAMES |
Definition at line 72 of file bier_fmask.h.
#define FOR_EACH_BIER_FMASK_ATTR | ( | _item | ) |
Definition at line 78 of file bier_fmask.h.
typedef enum bier_fmask_attributes_t_ bier_fmask_attributes_t |
Flags on fmask.
typedef struct bier_fmask_bits_t_ bier_fmask_bits_t |
bier_fmask : The BIER fmask
The BIER fmask contains the bitString that is applied to packets that egress towards the next-hop. As such the fmask is part of the rewrite (adj) for that next-hop. It it thus an extension of the next-hop and in no way associated with the bit-position(s) that are reachable through it. Fmasks are thus shared by bit-positions that egress throught the same nh (BFR-NBR). Deag fmasks are also shread in the event that a router has local bit-positions. This is necessary to prevent the router recieving two copies of each packet. Consequently it also means that they share the same disposition data for the global data. A struct that represents the reference counting of the bits
typedef enum bier_fmask_flags_t_ bier_fmask_flags_t |
typedef struct bier_fmask_t_ bier_fmask_t |
An outgoing BIER mask.
aka forwarding bit mask (in the RFCs)
This mask's function is two-fold 1 - it is logical-AND with the input packet header to produce the output packet header 2 - it is logical NAND with the input packet header to modify the bit-mask for the next lookup
Flags on fmask.
Enumerator | |
---|---|
BIER_FMASK_ATTR_FIRST | |
BIER_FMASK_ATTR_FORWARDING | |
BIER_FMASK_ATTR_DISP | |
BIER_FMASK_ATTR_MPLS | |
BIER_FMASK_ATTR_LAST |
Definition at line 63 of file bier_fmask.h.
enum bier_fmask_flags_t_ |
Enumerator | |
---|---|
BIER_FMASK_FLAG_FORWARDING | |
BIER_FMASK_FLAG_DISP | |
BIER_FMASK_FLAG_MPLS |
Definition at line 83 of file bier_fmask.h.
u32 bier_fmask_child_add | ( | fib_node_index_t | fib_entry_index, |
fib_node_type_t | child_type, | ||
fib_node_index_t | child_index | ||
) |
Definition at line 141 of file bier_fmask.c.
void bier_fmask_child_remove | ( | fib_node_index_t | fib_entry_index, |
u32 | sibling_index | ||
) |
Definition at line 152 of file bier_fmask.c.
Definition at line 120 of file bier_fmask.c.
index_t bier_fmask_create_and_lock | ( | const bier_fmask_id_t * | fmid, |
const fib_route_path_t * | rpath | ||
) |
Definition at line 284 of file bier_fmask.c.
void bier_fmask_encode | ( | index_t | bfmi, |
bier_table_id_t * | btid, | ||
fib_route_path_encode_t * | rpath | ||
) |
Definition at line 405 of file bier_fmask.c.
|
inlinestatic |
Definition at line 394 of file bier_fmask.c.
Definition at line 304 of file bier_fmask.c.
void bier_fmask_lock | ( | index_t | bfmi | ) |
Definition at line 269 of file bier_fmask.c.
Definition at line 324 of file bier_fmask.c.
void bier_fmask_unlock | ( | index_t | bfmi | ) |
Definition at line 254 of file bier_fmask.c.
Definition at line 344 of file bier_fmask.c.
bier_fmask_t* bier_fmask_pool |
Definition at line 174 of file bier_fmask.h.