FD.io VPP
v18.04-17-g3a0d853
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | bier_bit_string_t_ |
A Variable length BitString. More... | |
struct | bier_hdr_t_ |
A BIER header of variable length The encoding follows: https://tools.ietf.org/html/draft-ietf-bier-mpls-encapsulation-10. More... | |
struct | bier_table_id_t_ |
The ID of a table. More... | |
Macros | |
#define | BIER_TABLE_TYPES |
#define | BIER_HDR_LEN_IDS |
#define | FOR_EACH_BIER_HDR_LEN(_len) |
#define | BIER_HDR_N_PROTO (BIER_HDR_PROTO_OAM + 1) |
#define | BIER_HDR_PROTO_ID_NAMES |
#define | FOR_EACH_BIER_HDR_PROTO(_proto) |
#define | BIER_BIT_MASK_NUM_BUCKETS 32 |
256 bits = 32 bytes More... | |
#define | BIER_BIT_MASK_MAX_BUCKET (BIER_BIT_MASK_NUM_BUCKETS - 1) |
#define | BIER_BIT_MASK_BITS_PER_BUCKET 8 |
number of bits in a bucket More... | |
#define | BIER_BIT_MASK_MIN_POS (1) |
Supported bit-posiotn range. More... | |
#define | BIER_BP_TO_INDEX(bp) (bp - 1) |
#define | BIER_BP_MAX 0x10000 |
The maximum BP that can be assigned. More... | |
#define | BIER_BP_INVALID 0 |
#define | BIER_TABLE_SET_INVALID_ID 0xffffffff |
#define | BIER_TABLE_SUB_DOMAIN_INVALID_ID 0xffffffff |
#define | BIER_ECMP_TABLE_ID_MAIN 0xFFFF |
Definition of the ID of the BIER main table. More... | |
#define | BIER_OK 0 |
#define | BIER_ERR_NO_TABLE 1 |
#define | BIER_ERR_DUPLICATE_TABLE 2 |
#define | BIER_ERR_PANIC 3 |
#define | BIER_BIFT_ID_INVALID (~0) |
An invalid value for the BIFT ID all ones implies a BSL that's invalid. More... | |
Typedefs | |
typedef enum bier_show_flags_t_ | bier_show_flags_t |
Flags to control show output. More... | |
typedef enum bier_table_type_t_ | bier_table_type_t |
Types of BIER tables. More... | |
typedef enum bier_hdr_len_id_t_ | bier_hdr_len_id_t |
bier_hdr_len_id_t enumerator More... | |
typedef enum bier_hdr_len_num_buckets_t_ | bier_hdr_len_num_buckets_t |
bier_hdr_len_num_buckets_t enumerator More... | |
typedef enum bier_hdr_proto_id_t_ | bier_hdr_proto_id_t |
BIER header protocol payload types. More... | |
typedef enum bier_hdr_version_t_ | bier_hdr_version_t |
BIER header versions. More... | |
typedef enum bier_hdr_code_t_ | bier_hdr_code_t |
bier_hdr_code_t enumerator More... | |
typedef enum bier_hdr_oam_sub_code_t_ | bier_hdr_oam_sub_code_t |
bier_hdr_oam_sub_code_t enumerator More... | |
typedef enum bier_hdr_ctrl_sub_code_t_ | bier_hdr_ctrl_sub_code_t |
bier_hdr_ctrl_sub_code_t enumerator More... | |
typedef u8 | bier_bit_mask_bucket_t |
A bucket is a byte. More... | |
typedef struct bier_bit_string_t_ | bier_bit_string_t |
A Variable length BitString. More... | |
typedef u32 | bier_bp_t |
A bit positon as assigned to egress PEs. More... | |
typedef u16 | bier_hdr_src_id_t |
An identifier of the sender of BIER packets this is the source of the 'tree' - the BFIR. More... | |
typedef u32 | bier_hdr_entropy_t |
An entropy value in a BIER header. More... | |
typedef struct bier_hdr_t_ | bier_hdr_t |
A BIER header of variable length The encoding follows: https://tools.ietf.org/html/draft-ietf-bier-mpls-encapsulation-10. More... | |
typedef u32 | bier_table_set_id_t |
The BIER Set ID assigned to a BIER table. More... | |
typedef u32 | bier_table_sub_domain_id_t |
The BIER Sub-domain ID assigned to a BIER table. More... | |
typedef u32 | bier_table_ecmp_id_t |
An ID or instance number of a BIER sub-table. More... | |
typedef struct bier_table_id_t_ | bier_table_id_t |
The ID of a table. More... | |
typedef int | bier_rc |
typedef u32 | bier_bift_id_t |
The BIER universal 'label'. More... | |
#define BIER_BIFT_ID_INVALID (~0) |
An invalid value for the BIFT ID all ones implies a BSL that's invalid.
Definition at line 464 of file bier_types.h.
#define BIER_BIT_MASK_BITS_PER_BUCKET 8 |
number of bits in a bucket
Definition at line 268 of file bier_types.h.
#define BIER_BIT_MASK_MAX_BUCKET (BIER_BIT_MASK_NUM_BUCKETS - 1) |
Definition at line 263 of file bier_types.h.
#define BIER_BIT_MASK_MIN_POS (1) |
Supported bit-posiotn range.
Definition at line 273 of file bier_types.h.
#define BIER_BIT_MASK_NUM_BUCKETS 32 |
256 bits = 32 bytes
Definition at line 262 of file bier_types.h.
#define BIER_BP_INVALID 0 |
Definition at line 314 of file bier_types.h.
#define BIER_BP_MAX 0x10000 |
The maximum BP that can be assigned.
Definition at line 301 of file bier_types.h.
#define BIER_BP_TO_INDEX | ( | bp | ) | (bp - 1) |
Definition at line 296 of file bier_types.h.
#define BIER_ECMP_TABLE_ID_MAIN 0xFFFF |
Definition of the ID of the BIER main table.
Definition at line 389 of file bier_types.h.
#define BIER_ERR_DUPLICATE_TABLE 2 |
Definition at line 451 of file bier_types.h.
#define BIER_ERR_NO_TABLE 1 |
Definition at line 450 of file bier_types.h.
#define BIER_ERR_PANIC 3 |
Definition at line 452 of file bier_types.h.
#define BIER_HDR_LEN_IDS |
Definition at line 69 of file bier_types.h.
#define BIER_HDR_N_PROTO (BIER_HDR_PROTO_OAM + 1) |
Definition at line 192 of file bier_types.h.
#define BIER_HDR_PROTO_ID_NAMES |
Definition at line 194 of file bier_types.h.
#define BIER_OK 0 |
Definition at line 449 of file bier_types.h.
#define BIER_TABLE_SET_INVALID_ID 0xffffffff |
Definition at line 372 of file bier_types.h.
#define BIER_TABLE_SUB_DOMAIN_INVALID_ID 0xffffffff |
Definition at line 379 of file bier_types.h.
#define BIER_TABLE_TYPES |
Definition at line 45 of file bier_types.h.
#define FOR_EACH_BIER_HDR_LEN | ( | _len | ) |
Definition at line 80 of file bier_types.h.
#define FOR_EACH_BIER_HDR_PROTO | ( | _proto | ) |
Definition at line 206 of file bier_types.h.
typedef u32 bier_bift_id_t |
The BIER universal 'label'.
Definition at line 458 of file bier_types.h.
typedef u8 bier_bit_mask_bucket_t |
A bucket is a byte.
The byte string is thus always in network byte order.
Definition at line 257 of file bier_types.h.
typedef struct bier_bit_string_t_ bier_bit_string_t |
A Variable length BitString.
A bit positon as assigned to egress PEs.
Definition at line 294 of file bier_types.h.
typedef enum bier_hdr_code_t_ bier_hdr_code_t |
bier_hdr_code_t enumerator
typedef enum bier_hdr_ctrl_sub_code_t_ bier_hdr_ctrl_sub_code_t |
bier_hdr_ctrl_sub_code_t enumerator
typedef u32 bier_hdr_entropy_t |
An entropy value in a BIER header.
Definition at line 312 of file bier_types.h.
typedef enum bier_hdr_len_id_t_ bier_hdr_len_id_t |
bier_hdr_len_id_t enumerator
typedef enum bier_hdr_len_num_buckets_t_ bier_hdr_len_num_buckets_t |
bier_hdr_len_num_buckets_t enumerator
typedef enum bier_hdr_oam_sub_code_t_ bier_hdr_oam_sub_code_t |
bier_hdr_oam_sub_code_t enumerator
typedef enum bier_hdr_proto_id_t_ bier_hdr_proto_id_t |
BIER header protocol payload types.
typedef u16 bier_hdr_src_id_t |
An identifier of the sender of BIER packets this is the source of the 'tree' - the BFIR.
Definition at line 307 of file bier_types.h.
typedef struct bier_hdr_t_ bier_hdr_t |
A BIER header of variable length The encoding follows: https://tools.ietf.org/html/draft-ietf-bier-mpls-encapsulation-10.
typedef enum bier_hdr_version_t_ bier_hdr_version_t |
BIER header versions.
typedef int bier_rc |
Definition at line 453 of file bier_types.h.
typedef enum bier_show_flags_t_ bier_show_flags_t |
Flags to control show output.
typedef u32 bier_table_ecmp_id_t |
An ID or instance number of a BIER sub-table.
Definition at line 384 of file bier_types.h.
typedef struct bier_table_id_t_ bier_table_id_t |
The ID of a table.
typedef u32 bier_table_set_id_t |
The BIER Set ID assigned to a BIER table.
Definition at line 370 of file bier_types.h.
typedef u32 bier_table_sub_domain_id_t |
The BIER Sub-domain ID assigned to a BIER table.
Definition at line 377 of file bier_types.h.
typedef enum bier_table_type_t_ bier_table_type_t |
Types of BIER tables.
enum bier_hdr_code_t_ |
bier_hdr_code_t enumerator
Enumerator | |
---|---|
BIER_HDR_CODE_OAM_IPV4 | |
BIER_HDR_CODE_OAM_IPV6 | |
BIER_HDR_CODE_CTRL_IPV4 | |
BIER_HDR_CODE_CTRL_IPV6 |
Definition at line 231 of file bier_types.h.
bier_hdr_ctrl_sub_code_t enumerator
Enumerator | |
---|---|
BIER_HDR_SUB_CODE_CTRL_MEMBER_REQ | |
BIER_HDR_SUB_CODE_CTRL_ATTACHED_NET |
Definition at line 249 of file bier_types.h.
enum bier_hdr_len_id_t_ |
bier_hdr_len_id_t enumerator
Enumerator | |
---|---|
BIER_HDR_LEN_64 | |
BIER_HDR_LEN_128 | |
BIER_HDR_LEN_256 | |
BIER_HDR_LEN_512 | |
BIER_HDR_LEN_1024 | |
BIER_HDR_LEN_2048 |
Bit-string lengths greater than 1024 are not supported due to the limited about pf space available in a vlib_buffer_t to prepend a BIER header at imposition. |
BIER_HDR_LEN_4096 | |
BIER_HDR_LEN_INVALID |
Definition at line 53 of file bier_types.h.
bier_hdr_len_num_buckets_t enumerator
Enumerator | |
---|---|
BIER_HDR_BUCKETS_64 | |
BIER_HDR_BUCKETS_128 | |
BIER_HDR_BUCKETS_256 | |
BIER_HDR_BUCKETS_512 | |
BIER_HDR_BUCKETS_1024 | |
BIER_HDR_BUCKETS_2048 | |
BIER_HDR_BUCKETS_4096 |
Definition at line 167 of file bier_types.h.
bier_hdr_oam_sub_code_t enumerator
Enumerator | |
---|---|
BIER_HDR_SUB_CODE_OAM_PING_REQ | |
BIER_HDR_SUB_CODE_OAM_PING_RESP |
Definition at line 241 of file bier_types.h.
enum bier_hdr_proto_id_t_ |
BIER header protocol payload types.
Definition at line 180 of file bier_types.h.
enum bier_hdr_version_t_ |
enum bier_show_flags_t_ |
Flags to control show output.
Enumerator | |
---|---|
BIER_SHOW_BRIEF | |
BIER_SHOW_DETAIL |
Definition at line 25 of file bier_types.h.
enum bier_table_type_t_ |
Types of BIER tables.
Enumerator | |
---|---|
BIER_TABLE_MPLS_SPF |
BIER over MPLS with SPF. |
BIER_TABLE_MPLS_TE |
BIER over MPLS for TE. |
Definition at line 33 of file bier_types.h.
u16 bier_bfit_id_get_set | ( | bier_bift_id_t | bift_id | ) |
u16 bier_bfit_id_get_sub_domain | ( | bier_bift_id_t | bift_id | ) |
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 | ||
) |
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.
Definition at line 164 of file bier_types.c.
bier_hdr_proto_id_t bier_bift_id_get_bit_string_length | ( | bier_bift_id_t | bift_id | ) |
|
inlinestatic |
|
inlinestatic |
Definition at line 119 of file bier_types.h.
u32 bier_hdr_len_id_to_max_bit | ( | 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_num_bits | ( | bier_hdr_len_id_t | id | ) |
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.
Definition at line 60 of file bier_types.c.
u32 bier_hdr_len_id_to_num_bytes | ( | bier_hdr_len_id_t | id | ) |
Definition at line 66 of file bier_types.c.
u32 bier_hdr_len_id_to_prefix_len | ( | bier_hdr_len_id_t | id | ) |
Definition at line 90 of file bier_types.c.
dpo_proto_t bier_hdr_proto_to_dpo | ( | bier_hdr_proto_id_t | bproto | ) |
Convert from BIER next-hop proto to DPO proto.
Definition at line 139 of file bier_types.c.
|
inlinestatic |
Definition at line 94 of file bier_types.h.
int bier_table_id_cmp | ( | const bier_table_id_t * | btid1, |
const bier_table_id_t * | btid2 | ||
) |
Compare to BIER table IDs for equality.
Definition at line 112 of file bier_types.c.
Definition at line 222 of file bier_types.c.
Format a BIER header.
Definition at line 205 of file bier_types.c.
Format the header length field.
Definition at line 96 of file bier_types.c.
Format the header length field.
Definition at line 104 of file bier_types.c.
Format a BIER table ID.
Definition at line 193 of file bier_types.c.