FD.io VPP
v18.07.1-19-g511ce25
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | bier_table_t_ |
A BIER Table is the bit-indexed forwarding table. More... | |
Typedefs | |
typedef struct bier_table_t_ | bier_table_t |
A BIER Table is the bit-indexed forwarding table. More... | |
typedef void(* | bier_table_ecmp_walk_fn_t) (index_t btei, void *ctx) |
Types and functions to walk the ECMP tables of a main table. More... | |
typedef void(* | bier_tables_walk_fn_t) (const bier_table_t *bt, void *ctx) |
Types and functions to walk all the BIER Tables. More... | |
typedef void(* | bier_table_walk_fn_t) (const bier_table_t *bt, const bier_entry_t *be, void *ctx) |
Types and functions to walk all the entries in one BIER Table. More... | |
Variables | |
bier_table_t * | bier_table_pool |
Memory pool of all the allocated tables. More... | |
Types and functions to walk the ECMP tables of a main table.
Definition at line 124 of file bier_table.h.
typedef struct bier_table_t_ bier_table_t |
A BIER Table is the bit-indexed forwarding table.
Each entry (bit-position) represents one destination, and its reachability
The number of entries in a table is thus the maximum supported bit-position. Since this is smal <4096, the table is a flat arry
typedef void(* bier_table_walk_fn_t) (const bier_table_t *bt, const bier_entry_t *be, void *ctx) |
Types and functions to walk all the entries in one BIER Table.
Definition at line 142 of file bier_table.h.
typedef void(* bier_tables_walk_fn_t) (const bier_table_t *bt, void *ctx) |
Types and functions to walk all the BIER Tables.
Definition at line 134 of file bier_table.h.
index_t bier_table_add_or_lock | ( | const bier_table_id_t * | id, |
mpls_label_t | ll | ||
) |
Definition at line 397 of file bier_table.c.
Definition at line 664 of file bier_table.c.
index_t bier_table_ecmp_create_and_lock | ( | const bier_table_id_t * | id | ) |
Definition at line 456 of file bier_table.c.
Definition at line 724 of file bier_table.c.
void bier_table_ecmp_unlock | ( | index_t | bti | ) |
Definition at line 462 of file bier_table.c.
void bier_table_ecmp_walk | ( | index_t | bti, |
bier_table_ecmp_walk_fn_t | fn, | ||
void * | ctx | ||
) |
Definition at line 706 of file bier_table.c.
|
inlinestatic |
|
inlinestatic |
const bier_table_id_t* bier_table_get_id | ( | index_t | bti | ) |
Definition at line 524 of file bier_table.c.
int bier_table_is_main | ( | const bier_table_t * | bt | ) |
index_t bier_table_lock | ( | const bier_table_id_t * | id | ) |
Definition at line 374 of file bier_table.c.
|
inlinestatic |
void bier_table_route_add | ( | const bier_table_id_t * | bti, |
bier_bp_t | bp, | ||
fib_route_path_t * | brp | ||
) |
Definition at line 549 of file bier_table.c.
void bier_table_route_remove | ( | const bier_table_id_t * | bti, |
bier_bp_t | bp, | ||
fib_route_path_t * | brp | ||
) |
Definition at line 601 of file bier_table.c.
void bier_table_show_all | ( | vlib_main_t * | vm, |
bier_show_flags_t | flags | ||
) |
Definition at line 834 of file bier_table.c.
void bier_table_unlock | ( | const bier_table_id_t * | id | ) |
Definition at line 218 of file bier_table.c.
void bier_table_walk | ( | const bier_table_id_t * | id, |
bier_table_walk_fn_t | fn, | ||
void * | ctx | ||
) |
Definition at line 861 of file bier_table.c.
void bier_tables_walk | ( | bier_tables_walk_fn_t | fn, |
void * | ctx | ||
) |
Definition at line 853 of file bier_table.c.
Definition at line 777 of file bier_table.c.
Definition at line 742 of file bier_table.c.
STATIC_ASSERT | ( | (sizeof(bier_table_t)<=2 *CLIB_CACHE_LINE_BYTES) | , |
"BIER table fits on 2 cache lines" | |||
) |
bier_table_t* bier_table_pool |
Memory pool of all the allocated tables.
Definition at line 32 of file bier_table.c.