63 memset(key, 0,
sizeof(*key));
146 ASSERT (!
"remove non-existant fmask");
Global Table of fmask objects The key into this table includes the table's key and the fmask's key...
mhash_t bfdb_hash
hash table for underlying storage
ip46_address_t frp_addr
The next-hop address.
void bier_fmask_lock(index_t bfmi)
u32 bier_fmask_db_find_or_create_and_lock(index_t bti, const fib_route_path_t *rpath)
u32 bfmi_id
ID of the next-hop object, e.g.
A representation of a path as described by a route producer.
bier_fmask_id_t * bfm_id
The key to this fmask - used for store/lookup in the DB.
uword mhash_unset(mhash_t *h, void *key, uword *old_value)
static bier_fmask_t * bier_fmask_get(u32 index)
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
static bier_fmask_db_t bier_fmask_db
Single fmask DB.
u32 frp_sw_if_index
The interface.
mpls_label_t * frp_label_stack
The outgoing MPLS label Stack.
clib_error_t * bier_fmask_db_module_init(vlib_main_t *vm)
#define VLIB_INIT_FUNCTION(x)
A path via a UDP encap object.
index_t bier_fmask_create_and_lock(const bier_fmask_id_t *fmid, const fib_route_path_t *rpaths)
u32 bier_fmask_get_index(const bier_fmask_t *bfm)
static void bier_fmask_db_mk_key(index_t bti, const fib_route_path_t *rpath, bier_fmask_id_t *key)
static uword mhash_set(mhash_t *h, void *key, uword new_value, uword *old_value)
void bier_fmask_db_remove(const bier_fmask_id_t *fmid)
BIER Header in MPLS networks.
void mhash_init(mhash_t *h, uword n_value_bytes, uword n_key_bytes)
struct bier_fmask_t_ * bfdb_pool
Pool for memory.
BIER header in non-MPLS networks.
A key/ID for a BIER forwarding Mas (FMask).
static uword * mhash_get(mhash_t *h, const void *key)
fib_route_path_flags_t frp_flags
flags on the path
bier_hdr_type_t bfmi_hdr_type
Type of BIER header this fmask supports.
struct bier_fmask_db_t_ bier_fmask_db_t
Global Table of fmask objects The key into this table includes the table's key and the fmask's key...
#define INDEX_INVALID
Invalid index - used when no index is known blazoned capitals INVALID speak volumes where ~0 does not...
u32 bfmi_sw_if_index
Software interface index.
u32 bier_fmask_db_find(index_t bti, const fib_route_path_t *rpath)
u32 frp_udp_encap_id
UDP encap ID.
ip46_address_t bfmi_nh
next-hop of the peer