FD.io VPP  v18.07.1-19-g511ce25
Vector Packet Processing
bier_disp_entry.c File Reference
+ Include dependency graph for bier_disp_entry.c:

Go to the source code of this file.

Data Structures

struct  bier_disp_entry_path_list_walk_ctx_t_
 

Macros

#define BIER_DISP_ENTRY_ID_HLEN_SHIFT   24
 When constructing the BIER imp ID from an index and BSL, shift the BSL this far. More...
 

Typedefs

typedef struct bier_disp_entry_path_list_walk_ctx_t_ bier_disp_entry_path_list_walk_ctx_t
 

Functions

static void bier_disp_entry_lock_i (bier_disp_entry_t *bde)
 
void bier_disp_entry_lock (index_t bdei)
 
static index_t bier_disp_entry_get_index (bier_disp_entry_t *bde)
 
index_t bier_disp_entry_add_or_lock (void)
 
void bier_disp_entry_unlock (index_t bdei)
 
static fib_path_list_walk_rc_t bier_disp_entry_path_list_walk (fib_node_index_t pl_index, fib_node_index_t path_index, void *arg)
 
static void bier_disp_entry_restack (bier_disp_entry_t *bde, bier_hdr_proto_id_t pproto)
 
void bier_disp_entry_path_add (index_t bdei, bier_hdr_proto_id_t pproto, const fib_route_path_t *rpaths)
 
int bier_disp_entry_path_remove (index_t bdei, bier_hdr_proto_id_t pproto, const fib_route_path_t *rpaths)
 
u8format_bier_disp_entry (u8 *s, va_list *args)
 
void bier_disp_entry_contribute_forwarding (index_t bdei, dpo_id_t *dpo)
 
static void bier_disp_entry_dpo_lock (dpo_id_t *dpo)
 
static void bier_disp_entry_dpo_unlock (dpo_id_t *dpo)
 
static void bier_disp_entry_dpo_mem_show (void)
 
static u8format_bier_disp_entry_dpo (u8 *s, va_list *ap)
 
clib_error_tbier_disp_entry_db_module_init (vlib_main_t *vm)
 
static clib_error_tshow_bier_disp_entry (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 

Variables

bier_disp_entry_tbier_disp_entry_pool
 bier_dispositon : The BIER dispositon object More...
 
static const char *const bier_disp_entry_bier_nodes []
 
static const char *const *const bier_disp_entry_nodes [DPO_PROTO_NUM]
 
static const dpo_vft_t bier_disp_entry_vft
 
static vlib_cli_command_t show_bier_disp_entry_node
 (constructor) VLIB_CLI_COMMAND (show_bier_disp_entry_node) More...
 

Macro Definition Documentation

#define BIER_DISP_ENTRY_ID_HLEN_SHIFT   24

When constructing the BIER imp ID from an index and BSL, shift the BSL this far.

Definition at line 38 of file bier_disp_entry.c.

Typedef Documentation

Function Documentation

index_t bier_disp_entry_add_or_lock ( void  )

Definition at line 59 of file bier_disp_entry.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void bier_disp_entry_contribute_forwarding ( index_t  bdei,
dpo_id_t dpo 
)

Definition at line 286 of file bier_disp_entry.c.

+ Here is the call graph for this function:

clib_error_t* bier_disp_entry_db_module_init ( vlib_main_t vm)

Definition at line 343 of file bier_disp_entry.c.

+ Here is the call graph for this function:

static void bier_disp_entry_dpo_lock ( dpo_id_t dpo)
static

Definition at line 304 of file bier_disp_entry.c.

+ Here is the call graph for this function:

static void bier_disp_entry_dpo_mem_show ( void  )
static

Definition at line 316 of file bier_disp_entry.c.

+ Here is the call graph for this function:

static void bier_disp_entry_dpo_unlock ( dpo_id_t dpo)
static

Definition at line 310 of file bier_disp_entry.c.

+ Here is the call graph for this function:

static index_t bier_disp_entry_get_index ( bier_disp_entry_t bde)
static

Definition at line 53 of file bier_disp_entry.c.

+ Here is the caller graph for this function:

void bier_disp_entry_lock ( index_t  bdei)

Definition at line 47 of file bier_disp_entry.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void bier_disp_entry_lock_i ( bier_disp_entry_t bde)
static

Definition at line 41 of file bier_disp_entry.c.

+ Here is the caller graph for this function:

void bier_disp_entry_path_add ( index_t  bdei,
bier_hdr_proto_id_t  pproto,
const fib_route_path_t rpaths 
)

Definition at line 166 of file bier_disp_entry.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static fib_path_list_walk_rc_t bier_disp_entry_path_list_walk ( fib_node_index_t  pl_index,
fib_node_index_t  path_index,
void *  arg 
)
static

Definition at line 114 of file bier_disp_entry.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int bier_disp_entry_path_remove ( index_t  bdei,
bier_hdr_proto_id_t  pproto,
const fib_route_path_t rpaths 
)

Definition at line 202 of file bier_disp_entry.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void bier_disp_entry_restack ( bier_disp_entry_t bde,
bier_hdr_proto_id_t  pproto 
)
static

Definition at line 130 of file bier_disp_entry.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void bier_disp_entry_unlock ( index_t  bdei)

Definition at line 81 of file bier_disp_entry.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_bier_disp_entry ( u8 s,
va_list *  args 
)

Definition at line 248 of file bier_disp_entry.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 325 of file bier_disp_entry.c.

+ Here is the call graph for this function:

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

Definition at line 355 of file bier_disp_entry.c.

+ Here is the call graph for this function:

Variable Documentation

const char* const bier_disp_entry_bier_nodes[]
static
Initial value:
=
{
"bier-disp-dispatch",
}
#define NULL
Definition: clib.h:55

Definition at line 292 of file bier_disp_entry.c.

const char* const* const bier_disp_entry_nodes[DPO_PROTO_NUM]
static
Initial value:
=
{
}
static const char *const bier_disp_entry_bier_nodes[]

Definition at line 298 of file bier_disp_entry.c.

bier_disp_entry_t* bier_disp_entry_pool

bier_dispositon : The BIER dispositon object

A BIER dispositon object is present in the IP mcast output list and represents the dispositon of a BIER bitmask. After BIER header dispositon the packet is forward within the appropriate/specifid BIER table The memory pool of all imp objects

Definition at line 32 of file bier_disp_entry.c.

const dpo_vft_t bier_disp_entry_vft
static
Initial value:
= {
}
static void bier_disp_entry_dpo_unlock(dpo_id_t *dpo)
static void bier_disp_entry_dpo_mem_show(void)
static void bier_disp_entry_dpo_lock(dpo_id_t *dpo)
static u8 * format_bier_disp_entry_dpo(u8 *s, va_list *ap)

Definition at line 335 of file bier_disp_entry.c.

vlib_cli_command_t show_bier_disp_entry_node
static
Initial value:
= {
.path = "show bier disp entry",
.short_help = "show bier disp entry index",
.function = show_bier_disp_entry,
}
static clib_error_t * show_bier_disp_entry(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (show_bier_disp_entry_node)

Definition at line 391 of file bier_disp_entry.c.