FD.io VPP  v18.04-17-g3a0d853
Vector Packet Processing
bier_imp.c File Reference
+ Include dependency graph for bier_imp.c:

Go to the source code of this file.

Macros

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

Functions

static void bier_imp_lock_i (bier_imp_t *bi)
 
void bier_imp_lock (index_t bii)
 
static index_t bier_imp_get_index (bier_imp_t *bi)
 
index_t bier_imp_add_or_lock (const bier_table_id_t *bti, bier_bp_t sender, const bier_bit_string_t *bs)
 
void bier_imp_unlock (index_t bii)
 
u8format_bier_imp (u8 *s, va_list *args)
 
void bier_imp_contribute_forwarding (index_t bii, dpo_proto_t proto, dpo_id_t *dpo)
 
static void bier_imp_dpo_lock (dpo_id_t *dpo)
 
static void bier_imp_dpo_unlock (dpo_id_t *dpo)
 
static void bier_imp_dpo_mem_show (void)
 
static u8format_bier_imp_dpo (u8 *s, va_list *ap)
 
clib_error_tbier_imp_db_module_init (vlib_main_t *vm)
 
static clib_error_tshow_bier_imp (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 

Variables

bier_imp_tbier_imp_pool
 bier_imposition : The BIER imposition object More...
 
static const char *const bier_imp_ip4_nodes []
 
static const char *const bier_imp_ip6_nodes []
 
static const char *const *const bier_imp_nodes [DPO_PROTO_NUM]
 
static const dpo_vft_t bier_imp_vft
 
static vlib_cli_command_t show_bier_imp_node
 (constructor) VLIB_CLI_COMMAND (show_bier_imp_node) More...
 

Macro Definition Documentation

#define BIER_IMP_ID_HLEN_SHIFT   24

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

Definition at line 39 of file bier_imp.c.

Function Documentation

index_t bier_imp_add_or_lock ( const bier_table_id_t bti,
bier_bp_t  sender,
const bier_bit_string_t bs 
)

Definition at line 60 of file bier_imp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void bier_imp_contribute_forwarding ( index_t  bii,
dpo_proto_t  proto,
dpo_id_t dpo 
)

Definition at line 174 of file bier_imp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* bier_imp_db_module_init ( vlib_main_t vm)

Definition at line 238 of file bier_imp.c.

+ Here is the call graph for this function:

static void bier_imp_dpo_lock ( dpo_id_t dpo)
static

Definition at line 199 of file bier_imp.c.

+ Here is the call graph for this function:

static void bier_imp_dpo_mem_show ( void  )
static

Definition at line 211 of file bier_imp.c.

+ Here is the call graph for this function:

static void bier_imp_dpo_unlock ( dpo_id_t dpo)
static

Definition at line 205 of file bier_imp.c.

+ Here is the call graph for this function:

static index_t bier_imp_get_index ( bier_imp_t bi)
static

Definition at line 54 of file bier_imp.c.

+ Here is the caller graph for this function:

void bier_imp_lock ( index_t  bii)

Definition at line 48 of file bier_imp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void bier_imp_lock_i ( bier_imp_t bi)
static

Definition at line 42 of file bier_imp.c.

+ Here is the caller graph for this function:

void bier_imp_unlock ( index_t  bii)

Definition at line 110 of file bier_imp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_bier_imp ( u8 s,
va_list *  args 
)

Definition at line 137 of file bier_imp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 220 of file bier_imp.c.

+ Here is the call graph for this function:

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

Definition at line 248 of file bier_imp.c.

+ Here is the call graph for this function:

Variable Documentation

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

Definition at line 181 of file bier_imp.c.

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

Definition at line 186 of file bier_imp.c.

const char* const* const bier_imp_nodes[DPO_PROTO_NUM]
static
Initial value:
=
{
}
static const char *const bier_imp_ip4_nodes[]
Definition: bier_imp.c:181
static const char *const bier_imp_ip6_nodes[]
Definition: bier_imp.c:186

Definition at line 192 of file bier_imp.c.

bier_imp_t* bier_imp_pool

bier_imposition : The BIER imposition object

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

Definition at line 33 of file bier_imp.c.

const dpo_vft_t bier_imp_vft
static
Initial value:
= {
.dv_lock = bier_imp_dpo_lock,
.dv_unlock = bier_imp_dpo_unlock,
.dv_format = format_bier_imp_dpo,
.dv_mem_show = bier_imp_dpo_mem_show,
}
static void bier_imp_dpo_lock(dpo_id_t *dpo)
Definition: bier_imp.c:199
static void bier_imp_dpo_unlock(dpo_id_t *dpo)
Definition: bier_imp.c:205
static void bier_imp_dpo_mem_show(void)
Definition: bier_imp.c:211
static u8 * format_bier_imp_dpo(u8 *s, va_list *ap)
Definition: bier_imp.c:220

Definition at line 230 of file bier_imp.c.

vlib_cli_command_t show_bier_imp_node
static
Initial value:
= {
.path = "show bier imp",
.short_help = "show bier imp [index]",
.function = show_bier_imp,
}
static clib_error_t * show_bier_imp(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: bier_imp.c:248

(constructor) VLIB_CLI_COMMAND (show_bier_imp_node)

Definition at line 291 of file bier_imp.c.