24 #ifndef __BIER_IMPOSITION_H__ 25 #define __BIER_IMPOSITION_H__ CLIB_CACHE_LINE_ALIGN_MARK(cacheline0)
Required for pool_get_aligned.
u32 bi_locks
number of locks
#define FIB_PROTOCOL_IP_MAX
Definition outside of enum so it does not need to be included in non-defaulted switch statements...
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
bier_imp_t * bier_imp_pool
bier_imposition : The BIER imposition object
A Variable length BitString.
void bier_imp_contribute_forwarding(index_t bii, dpo_proto_t proto, dpo_id_t *dpo)
bier_imposition : The BIER imposition object
static bier_imp_t * bier_imp_get(index_t bii)
bier_hdr_t bi_hdr
The Header to impose.
enum dpo_proto_t_ dpo_proto_t
Data path protocol.
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.
struct bier_imp_t_ bier_imp_t
bier_imposition : The BIER imposition object
u8 * format_bier_imp(u8 *s, va_list *ap)
void bier_imp_lock(index_t bii)
void bier_imp_unlock(index_t bii)
u8 bi_bits[BIER_HDR_BUCKETS_1024]
The bit string.
A BIER header of variable length The encoding follows: https://tools.ietf.org/html/draft-ietf-bier-mp...
bier_table_id_t bi_tbl
The BIER table into which to forward the post imposed packet.
dpo_id_t bi_dpo[FIB_PROTOCOL_IP_MAX]
The DPO contirubted from the resolving BIER table.
index_t bier_imp_add_or_lock(const bier_table_id_t *bt, bier_bp_t sender, const bier_bit_string_t *bs)