FD.io VPP  v21.06-3-gbb25fbf28
Vector Packet Processing
bier_disp_table.c File Reference
+ Include dependency graph for bier_disp_table.c:

Go to the source code of this file.

Functions

static index_t bier_disp_table_get_index (const bier_disp_table_t *bdt)
 
static void bier_disp_table_lock_i (bier_disp_table_t *bdt)
 
index_t bier_disp_table_find (u32 table_id)
 
index_t bier_disp_table_add_or_lock (u32 table_id)
 
void bier_disp_table_unlock_w_table_id (u32 table_id)
 
void bier_disp_table_unlock (index_t bdti)
 
void bier_disp_table_lock (index_t bdti)
 
void bier_disp_table_contribute_forwarding (index_t bdti, dpo_id_t *dpo)
 
u8format_bier_disp_table (u8 *s, va_list *ap)
 Format the description/name of the table. More...
 
static u8format_bier_disp_table_dpo (u8 *s, va_list *ap)
 
static void bier_disp_table_entry_insert (index_t bdti, bier_bp_t src, index_t bdei)
 
static void bier_disp_table_entry_remove (index_t bdti, bier_bp_t src)
 
static index_t bier_disp_table_lookup_hton (index_t bdti, bier_bp_t bp)
 
void bier_disp_table_entry_path_add (u32 table_id, bier_bp_t src, bier_hdr_proto_id_t payload_proto, const fib_route_path_t *rpaths)
 
void bier_disp_table_entry_path_remove (u32 table_id, bier_bp_t src, bier_hdr_proto_id_t payload_proto, const fib_route_path_t *rpath)
 
void bier_disp_table_walk (u32 table_id, bier_disp_table_walk_fn_t fn, void *ctx)
 
static void bier_disp_table_dpo_lock (dpo_id_t *dpo)
 
static void bier_disp_table_dpo_unlock (dpo_id_t *dpo)
 
static void bier_disp_table_dpo_mem_show (void)
 
clib_error_tbier_disp_table_module_init (vlib_main_t *vm)
 
static clib_error_tshow_bier_disp_table (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 

Variables

bier_disp_table_tbier_disp_table_pool
 memory pool for disposition tables More...
 
static uwordbier_disp_table_id_to_index
 Hash table to map client table IDs to VPP index. More...
 
const static dpo_vft_t bier_disp_table_dpo_vft
 
const static char *const bier_disp_table_bier_nodes []
 
const static char *const *const bier_disp_table_nodes [DPO_PROTO_NUM]
 
static vlib_cli_command_t show_bier_disp_table_node
 (constructor) VLIB_CLI_COMMAND (show_bier_disp_table_node) More...
 

Function Documentation

◆ bier_disp_table_add_or_lock()

index_t bier_disp_table_add_or_lock ( u32  table_id)

Set the result for each entry in the DB to be invalid

Definition at line 57 of file bier_disp_table.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bier_disp_table_contribute_forwarding()

void bier_disp_table_contribute_forwarding ( index_t  bdti,
dpo_id_t dpo 
)

Definition at line 132 of file bier_disp_table.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bier_disp_table_dpo_lock()

static void bier_disp_table_dpo_lock ( dpo_id_t dpo)
static

Definition at line 304 of file bier_disp_table.c.

+ Here is the call graph for this function:

◆ bier_disp_table_dpo_mem_show()

static void bier_disp_table_dpo_mem_show ( void  )
static

Definition at line 316 of file bier_disp_table.c.

+ Here is the call graph for this function:

◆ bier_disp_table_dpo_unlock()

static void bier_disp_table_dpo_unlock ( dpo_id_t dpo)
static

Definition at line 310 of file bier_disp_table.c.

+ Here is the call graph for this function:

◆ bier_disp_table_entry_insert()

static void bier_disp_table_entry_insert ( index_t  bdti,
bier_bp_t  src,
index_t  bdei 
)
static

Definition at line 187 of file bier_disp_table.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bier_disp_table_entry_path_add()

void bier_disp_table_entry_path_add ( u32  table_id,
bier_bp_t  src,
bier_hdr_proto_id_t  payload_proto,
const fib_route_path_t rpaths 
)

Definition at line 217 of file bier_disp_table.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bier_disp_table_entry_path_remove()

void bier_disp_table_entry_path_remove ( u32  table_id,
bier_bp_t  src,
bier_hdr_proto_id_t  payload_proto,
const fib_route_path_t rpath 
)

Definition at line 243 of file bier_disp_table.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bier_disp_table_entry_remove()

static void bier_disp_table_entry_remove ( index_t  bdti,
bier_bp_t  src 
)
static

Definition at line 198 of file bier_disp_table.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bier_disp_table_find()

index_t bier_disp_table_find ( u32  table_id)

Definition at line 42 of file bier_disp_table.c.

+ Here is the caller graph for this function:

◆ bier_disp_table_get_index()

static index_t bier_disp_table_get_index ( const bier_disp_table_t bdt)
static

Definition at line 30 of file bier_disp_table.c.

+ Here is the caller graph for this function:

◆ bier_disp_table_lock()

void bier_disp_table_lock ( index_t  bdti)

Definition at line 126 of file bier_disp_table.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bier_disp_table_lock_i()

static void bier_disp_table_lock_i ( bier_disp_table_t bdt)
static

Definition at line 36 of file bier_disp_table.c.

+ Here is the caller graph for this function:

◆ bier_disp_table_lookup_hton()

static index_t bier_disp_table_lookup_hton ( index_t  bdti,
bier_bp_t  bp 
)
static

Definition at line 208 of file bier_disp_table.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bier_disp_table_module_init()

clib_error_t* bier_disp_table_module_init ( vlib_main_t vm)

Definition at line 343 of file bier_disp_table.c.

+ Here is the call graph for this function:

◆ bier_disp_table_unlock()

void bier_disp_table_unlock ( index_t  bdti)

Definition at line 104 of file bier_disp_table.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bier_disp_table_unlock_w_table_id()

void bier_disp_table_unlock_w_table_id ( u32  table_id)

Definition at line 91 of file bier_disp_table.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bier_disp_table_walk()

void bier_disp_table_walk ( u32  table_id,
bier_disp_table_walk_fn_t  fn,
void *  ctx 
)

Definition at line 274 of file bier_disp_table.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_bier_disp_table()

u8* format_bier_disp_table ( u8 s,
va_list *  ap 
)

Format the description/name of the table.

Definition at line 143 of file bier_disp_table.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_bier_disp_table_dpo()

static u8* format_bier_disp_table_dpo ( u8 s,
va_list *  ap 
)
static

Definition at line 176 of file bier_disp_table.c.

+ Here is the call graph for this function:

◆ show_bier_disp_table()

static clib_error_t* show_bier_disp_table ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 357 of file bier_disp_table.c.

+ Here is the call graph for this function:

Variable Documentation

◆ bier_disp_table_bier_nodes

const static char* const bier_disp_table_bier_nodes[]
static
Initial value:
=
{
"bier-disp-lookup",
NULL
}

Definition at line 331 of file bier_disp_table.c.

◆ bier_disp_table_dpo_vft

const static dpo_vft_t bier_disp_table_dpo_vft
static
Initial value:

Definition at line 324 of file bier_disp_table.c.

◆ bier_disp_table_id_to_index

uword* bier_disp_table_id_to_index
static

Hash table to map client table IDs to VPP index.

Definition at line 27 of file bier_disp_table.c.

◆ bier_disp_table_nodes

const static char* const * const bier_disp_table_nodes[DPO_PROTO_NUM]
static
Initial value:

Definition at line 337 of file bier_disp_table.c.

◆ bier_disp_table_pool

bier_disp_table_t* bier_disp_table_pool

memory pool for disposition tables

Get a pointer to a FIB table.

Definition at line 22 of file bier_disp_table.c.

◆ show_bier_disp_table_node

vlib_cli_command_t show_bier_disp_table_node
static
Initial value:
= {
.path = "show bier disp table",
.short_help = "show bier disp table [index]",
.function = show_bier_disp_table,
}

(constructor) VLIB_CLI_COMMAND (show_bier_disp_table_node)

Definition at line 401 of file bier_disp_table.c.

DPO_PROTO_BIER
@ DPO_PROTO_BIER
Definition: dpo.h:68
bier_disp_table_dpo_mem_show
static void bier_disp_table_dpo_mem_show(void)
Definition: bier_disp_table.c:316
show_bier_disp_table
static clib_error_t * show_bier_disp_table(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: bier_disp_table.c:357
bier_disp_table_dpo_lock
static void bier_disp_table_dpo_lock(dpo_id_t *dpo)
Definition: bier_disp_table.c:304
bier_disp_table_bier_nodes
const static char *const bier_disp_table_bier_nodes[]
Definition: bier_disp_table.c:331
bier_disp_table_dpo_unlock
static void bier_disp_table_dpo_unlock(dpo_id_t *dpo)
Definition: bier_disp_table.c:310
format_bier_disp_table_dpo
static u8 * format_bier_disp_table_dpo(u8 *s, va_list *ap)
Definition: bier_disp_table.c:176