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; \ void bier_fmask_lock(index_t bfmi)
u32 bfmb_count
The total number of references to bits set on this mask in effect a count of the number of children...
#define CLIB_CACHE_LINE_ALIGN_MARK(mark)
void bier_fmask_encode(index_t bfmi, bier_table_id_t *btid, fib_route_path_encode_t *rpath)
A representation of a fib path for fib_path_encode to convey the information to the caller...
A representation of a path as described by a route producer.
u8 * format_bier_fmask(u8 *s, va_list *ap)
struct bier_fmask_t_ bier_fmask_t
An outgoing BIER mask.
bier_fmask_id_t * bfm_id
The key to this fmask - used for store/lookup in the DB.
static bier_fmask_t * bier_fmask_get(u32 index)
bier_fmask_t * bier_fmask_pool
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...
bier_fmask : The BIER fmask
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...
index_t bier_fmask_create_and_lock(const bier_fmask_id_t *fmid, const fib_route_path_t *rpath)
fib_node_index_t bfm_pl
The path-list.
A Variable length BitString.
void bier_fmask_unlink(index_t bfmi, bier_bp_t bp)
u32 bier_bp_t
A bit positon as assigned to egress PEs.
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.
void bier_fmask_child_remove(fib_node_index_t fib_entry_index, u32 sibling_index)
struct bier_fmask_bits_t_ bier_fmask_bits_t
bier_fmask : The BIER fmask
An node in the FIB graph.
void bier_fmask_contribute_forwarding(index_t bfmi, dpo_id_t *dpo)
mpls_label_t bfm_label
The MPLS label to paint on the header during forwarding.
void bier_fmask_get_stats(index_t bfmi, u64 *packets, u64 *bytes)
u32 bier_fmask_child_add(fib_node_index_t fib_entry_index, fib_node_type_t child_type, fib_node_index_t child_index)
u32 fib_node_index_t
A typedef of a node index.
bier_fmask_flags_t bfm_flags
operational/state flags on the fmask
void bier_fmask_link(index_t bfmi, bier_bp_t bp)
fib_node_t bfm_node
The BIER fmask is a child of a FIB entry in the FIB graph.
A key/ID for a BIER forwarding Mas (FMask).
enum bier_fmask_flags_t_ bier_fmask_flags_t
bier_fmask_attributes_t_
Flags on fmask.
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...
enum fib_node_type_t_ fib_node_type_t
The types of nodes in a FIB graph.
dpo_id_t bfm_dpo
The index into the adj table for the adj that this fmask resolves via.
enum bier_fmask_attributes_t_ bier_fmask_attributes_t
Flags on fmask.
void bier_fmask_unlock(index_t bfmi)
u32 bfm_sibling
the index of this fmask in the parent's child list.