|
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
Go to the documentation of this file.
30 #ifndef __BIER_FMASK_H__
31 #define __BIER_FMASK_H__
72 #define BIER_FMASK_ATTR_NAMES { \
73 [BIER_FMASK_ATTR_FORWARDING] = "forwarding", \
74 [BIER_FMASK_ATTR_DISP] = "disposition", \
75 [BIER_FMASK_ATTR_MPLS] = "mpls", \
78 #define FOR_EACH_BIER_FMASK_ATTR(_item) \
79 for (_item = BIER_FMASK_ATTR_FIRST; \
80 _item <= BIER_FMASK_ATTR_LAST; \
bier_bit_string_t bfmb_input_reset_string
each bit in the mask needs to be reference counted and set/cleared on the 0->1 and 1->0 transitions.
void bier_fmask_unlock(index_t bfmi)
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
CLIB_CACHE_LINE_ALIGN_MARK(cacheline0)
Required for pool_get_aligned.
void bier_fmask_encode(index_t bfmi, bier_table_id_t *btid, fib_route_path_t *rpath)
void bier_fmask_link(index_t bfmi, bier_bp_t bp)
u32 bier_bp_t
A bit positon as assigned to egress PEs.
enum fib_node_type_t_ fib_node_type_t
The types of nodes in a FIB graph.
enum bier_fmask_attributes_t_ bier_fmask_attributes_t
Flags on fmask.
void bier_fmask_unlink(index_t bfmi, bier_bp_t bp)
u32 bier_fmask_child_add(fib_node_index_t fib_entry_index, fib_node_type_t child_type, fib_node_index_t child_index)
bier_fmask : The BIER fmask
u8 * format_bier_fmask(u8 *s, va_list *ap)
mpls_label_t bfm_label
The MPLS label to paint on the header during forwarding.
bier_fmask_flags_t bfm_flags
operational/state flags on the fmask
@ BIER_FMASK_ATTR_FORWARDING
bier_fmask_t * bier_fmask_pool
void bier_fmask_get_stats(index_t bfmi, u64 *packets, u64 *bytes)
void bier_fmask_lock(index_t bfmi)
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
u32 fib_node_index_t
A typedef of a node index.
u32 bfmb_count
The total number of references to bits set on this mask in effect a count of the number of children.
struct bier_fmask_bits_t_ bier_fmask_bits_t
bier_fmask : The BIER fmask
bier_fmask_attributes_t_
Flags on fmask.
bier_fmask_id_t * bfm_id
The key to this fmask - used for store/lookup in the DB.
index_t bier_fmask_create_and_lock(const bier_fmask_id_t *fmid, const fib_route_path_t *rpath)
void bier_fmask_contribute_forwarding(index_t bfmi, dpo_id_t *dpo)
@ BIER_FMASK_FLAG_FORWARDING
struct bier_fmask_t_ bier_fmask_t
An outgoing BIER mask.
dpo_id_t bfm_dpo
The index into the adj table for the adj that this fmask resolves via.
A representation of a path as described by a route producer.
u32 bfm_sibling
the index of this fmask in the parent's child list.
void bier_fmask_child_remove(fib_node_index_t fib_entry_index, u32 sibling_index)
An node in the FIB graph.
bier_fmask_bits_t bfm_bits
The bits, and their ref counts, that are set on this mask This mask changes as BIER entries link to a...
fib_node_index_t bfm_pl
The path-list.
The identity of a DPO is a combination of its type and its instance number/index of objects of that t...
u32 mpls_label_t
A label value only, i.e.
enum bier_fmask_flags_t_ bier_fmask_flags_t
A key/ID for a BIER forwarding Mas (FMask).
A Variable length BitString.
fib_node_t bfm_node
The BIER fmask is a child of a FIB entry in the FIB graph.
static bier_fmask_t * bier_fmask_get(u32 index)