![]() |
FD.io VPP
v20.05.1-6-gf53edbc3b
Vector Packet Processing
|
Include dependency graph for bier_types.h:
This graph shows which files directly or indirectly include this file: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.
Here is the caller graph for this function:| 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.
Here is the caller graph for this function:| u32 bier_hdr_len_id_to_num_bytes | ( | bier_hdr_len_id_t | id | ) |
Definition at line 66 of file bier_types.c.
Here is the call graph for this function:
Here is the caller graph for this function:| 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.
Here is the caller graph for this function:
|
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.
Here is the caller graph for this function:Definition at line 222 of file bier_types.c.
Here is the call graph for this function:
Here is the caller graph for this function:Format a BIER header.
Definition at line 205 of file bier_types.c.
Here is the call graph for this function:
Here is the caller graph for this function:Format the header length field.
Definition at line 96 of file bier_types.c.
Here is the call graph for this function:
Here is the caller graph for this function:Format the header length field.
Definition at line 104 of file bier_types.c.
Here is the call graph for this function:
Here is the caller graph for this function:Format a BIER table ID.
Definition at line 193 of file bier_types.c.
Here is the call graph for this function:
Here is the caller graph for this function: