197 return (
format(s,
"sub-domain:%d set:%d ecmp:%d bsl:%U",
212 return (
format(s,
"nibble:%d version:%d hdr-len:%U entropy:%d proto:%U src:%d",
231 return (
format(s,
"0x%x -> set:%d sd:%d hdr-len:%U",
u32 bier_table_set_id_t
The BIER Set ID assigned to a BIER table.
static bier_hdr_len_id_t bier_hdr_get_len_id(const bier_hdr_t *bier_hdr)
u8 * format_bier_table_id(u8 *s, va_list *ap)
Format a BIER table ID.
dpo_proto_t bier_hdr_proto_to_dpo(bier_hdr_proto_id_t bproto)
Convert from BIER next-hop proto to DPO proto.
static const u16 bier_hdr_len_num_buckets[]
u8 * format_bier_bift_id(u8 *s, va_list *ap)
u32 bier_hdr_len_id_to_max_bit(bier_hdr_len_id_t id)
u32 bier_hdr_len_id_to_num_bytes(bier_hdr_len_id_t id)
u32 bier_hdr_len_id_to_max_bucket(bier_hdr_len_id_t id)
u32 bier_hdr_len_id_to_prefix_len(bier_hdr_len_id_t id)
bier_table_ecmp_id_t bti_ecmp
The SUB/ECMP-ID Constructed by FIB to achieve ECMP between BFR-NBRs.
static const char *const bier_hdr_len_id_names[]
bier_table_set_id_t bti_set
The SET-ID The control plane divdies the bit-position space into sets in the case the max bit-positio...
bier_bift_id_t bier_bift_id_encode(bier_table_set_id_t set, bier_table_sub_domain_id_t sd, bier_hdr_len_id_t bsl)
Encode a BIFT-ID as per draft-wijnandsxu-bier-non-mpls-bift-encoding-00.txt.
enum dpo_proto_t_ dpo_proto_t
Data path protocol.
u32 bier_hdr_len_id_to_num_bits(bier_hdr_len_id_t id)
Bit-string lengths greater than 1024 are not supported due to the limited about pf space available in...
bier_hdr_len_id_t bti_hdr_len
The size of the bit string processed by this table.
static bier_hdr_src_id_t bier_hdr_get_src_id(const bier_hdr_t *bier_hdr)
static bier_hdr_entropy_t bier_hdr_get_entropy(const bier_hdr_t *bier_hdr)
int bier_table_id_cmp(const bier_table_id_t *btid1, const bier_table_id_t *btid2)
Compare to BIER table IDs for equality.
#define BIER_HDR_PROTO_ID_NAMES
u32 bier_hdr_len_id_to_num_buckets(bier_hdr_len_id_t id)
Conversion functions for the enumerated bit-string length values, to bit and bytes.
enum bier_hdr_len_id_t_ bier_hdr_len_id_t
bier_hdr_len_id_t enumerator
enum bier_hdr_proto_id_t_ bier_hdr_proto_id_t
BIER header protocol payload types.
u32 bier_bift_id_t
The BIER universal 'label'.
void bier_bift_id_decode(bier_bift_id_t id, bier_table_set_id_t *set, bier_table_sub_domain_id_t *sd, bier_hdr_len_id_t *bsl)
static bier_hdr_proto_id_t bier_hdr_get_proto_id(const bier_hdr_t *bier_hdr)
u32 bier_table_sub_domain_id_t
The BIER Sub-domain ID assigned to a BIER table.
u8 * format_bier_hdr_len_id(u8 *s, va_list *ap)
Format the header length field.
A BIER header of variable length The encoding follows: https://tools.ietf.org/html/draft-ietf-bier-mp...
bier_table_type_t bti_type
The type of the table; SPF or TE, MPLS or IPv6.
bier_table_sub_domain_id_t bti_sub_domain
The Sub-Domain-ID The control plane has the configuration option to specify multiple domains or topol...
u8 * format_bier_hdr(u8 *s, va_list *ap)
Format a BIER header.
static const u16 bier_hdr_len_num_bits[]
static bier_hdr_version_t bier_hdr_get_version(const bier_hdr_t *bier_hdr)
static const u16 bier_hdr_len_prefix_len[]
static u8 bier_hdr_get_1st_nibble(bier_hdr_t *hdr)
static const char *const bier_hdr_proto_names[]
static void bier_hdr_ntoh(bier_hdr_t *bier_hdr)
u8 * format_bier_hdr_proto(u8 *s, va_list *ap)
Format the header length field.