16 #ifndef __BIER_DISP_TABLE_H__ 17 #define __BIER_DISP_TABLE_H__ 112 return (bdt->
bdt_db[src]);
u8 * format_bier_disp_table(u8 *s, va_list *ap)
Format the description/name of the table.
struct bier_disp_table_t_ bier_disp_table_t
A protocol Independent IP multicast FIB table.
A representation of a path as described by a route producer.
index_t bdt_db[BIER_BP_MAX]
The lookup DB based on sender BP.
bier_disp_table_t * bier_disp_table_pool
Get a pointer to a FIB table.
void bier_disp_table_unlock(index_t bdti)
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
index_t bier_disp_table_add_or_lock(u32 table_id)
bier_disposition : The BIER disposition object
void bier_disp_table_entry_path_remove(u32 table_id, bier_bp_t src, bier_hdr_proto_id_t payload_proto, const fib_route_path_t *paths)
void bier_disp_table_contribute_forwarding(index_t bdti, dpo_id_t *dpo)
u16 bdt_locks
number of locks on the table
u32 bier_bp_t
A bit positon as assigned to egress PEs.
void bier_disp_table_unlock_w_table_id(u32 table_id)
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.
u16 bier_hdr_src_id_t
An identifier of the sender of BIER packets this is the source of the 'tree' - the BFIR...
index_t bier_disp_table_find(u32 table_id)
enum bier_hdr_proto_id_t_ bier_hdr_proto_id_t
BIER header protocol payload types.
void bier_disp_table_entry_path_add(u32 table_id, bier_bp_t src, bier_hdr_proto_id_t payload_proto, const fib_route_path_t *rpath)
static index_t bier_disp_table_lookup(index_t bdti, bier_hdr_src_id_t src)
void(* bier_disp_table_walk_fn_t)(const bier_disp_table_t *bdt, const bier_disp_entry_t *bde, u16 bp, void *ctx)
Types and functions to walk all the entries in one BIER Table.
vl_api_mfib_path_t paths[n_paths]
CLIB_CACHE_LINE_ALIGN_MARK(cacheline0)
Required for pool_get_aligned.
#define BIER_BP_MAX
The maximum BP that can be assigned.
A protocol Independent IP multicast FIB table.
void bier_disp_table_walk(u32 table_id, bier_disp_table_walk_fn_t fn, void *ctx)
static bier_disp_table_t * bier_disp_table_get(index_t bdti)
void bier_disp_table_lock(index_t bdti)
u32 bdt_table_id
Table ID (hash key) for this FIB.