FD.io VPP  v20.09-64-g4f7b92f0a
Vector Packet Processing
mfib_entry.c File Reference
+ Include dependency graph for mfib_entry.c:

Go to the source code of this file.

Data Structures

struct  mfib_entry_collect_forwarding_ctx_t_
 

Typedefs

typedef struct mfib_entry_collect_forwarding_ctx_t_ mfib_entry_collect_forwarding_ctx_t
 

Functions

static fib_node_tmfib_entry_get_node (fib_node_index_t index)
 
static fib_protocol_t mfib_entry_get_proto (const mfib_entry_t *mfib_entry)
 
fib_forward_chain_type_t mfib_entry_get_default_chain_type (const mfib_entry_t *mfib_entry)
 
static u8format_mfib_entry_dpo (u8 *s, va_list *args)
 
static mfib_path_ext_tmfib_entry_path_ext_get (index_t mi)
 
static u8format_mfib_entry_path_ext (u8 *s, va_list *args)
 
u8format_mfib_entry_src_flags (u8 *s, va_list *args)
 
u8format_mfib_entry (u8 *s, va_list *args)
 
static mfib_entry_tmfib_entry_from_fib_node (fib_node_t *node)
 
static int mfib_entry_src_cmp_for_sort (void *v1, void *v2)
 
static void mfib_entry_src_init (mfib_entry_t *mfib_entry, mfib_source_t source)
 
static mfib_entry_src_tmfib_entry_src_find (const mfib_entry_t *mfib_entry, mfib_source_t source, u32 *index)
 
static mfib_entry_src_tmfib_entry_src_find_or_create (mfib_entry_t *mfib_entry, mfib_source_t source)
 
static mfib_entry_src_tmfib_entry_src_update (mfib_entry_t *mfib_entry, mfib_source_t source, fib_rpf_id_t rpf_id, mfib_entry_flags_t entry_flags)
 
static mfib_entry_src_tmfib_entry_src_update_and_lock (mfib_entry_t *mfib_entry, mfib_source_t source, fib_rpf_id_t rpf_id, mfib_entry_flags_t entry_flags)
 
mfib_entry_src_tmfib_entry_get_best_src (const mfib_entry_t *mfib_entry)
 
static mfib_source_t mfib_entry_get_best_source (const mfib_entry_t *mfib_entry)
 
int mfib_entry_is_sourced (fib_node_index_t mfib_entry_index, mfib_source_t source)
 
int mfib_entry_is_marked (fib_node_index_t mfib_entry_index, mfib_source_t source)
 
void mfib_entry_mark (fib_node_index_t fib_entry_index, mfib_source_t source)
 
int mfib_entry_is_host (fib_node_index_t mfib_entry_index)
 
static void mfib_entry_src_flush (mfib_entry_src_t *msrc)
 
static void mfib_entry_src_remove (mfib_entry_t *mfib_entry, mfib_source_t source)
 
u32 mfib_entry_child_add (fib_node_index_t mfib_entry_index, fib_node_type_t child_type, fib_node_index_t child_index)
 
void mfib_entry_child_remove (fib_node_index_t mfib_entry_index, u32 sibling_index)
 
static mfib_entry_tmfib_entry_alloc (u32 fib_index, const mfib_prefix_t *prefix, fib_node_index_t *mfib_entry_index)
 
static mfib_path_ext_tmfib_entry_path_ext_find (mfib_path_ext_t *exts, fib_node_index_t path_index)
 
static mfib_path_ext_tmfib_path_ext_add (mfib_entry_src_t *msrc, fib_node_index_t path_index, mfib_itf_flags_t mfi_flags)
 
static void mfib_path_ext_remove (mfib_entry_src_t *msrc, fib_node_index_t path_index)
 
static fib_path_list_walk_rc_t mfib_entry_src_collect_forwarding (fib_node_index_t pl_index, fib_node_index_t path_index, void *arg)
 
static void mfib_entry_stack (mfib_entry_t *mfib_entry, mfib_entry_src_t *msrc)
 
static fib_node_index_tmfib_entry_src_paths_add (mfib_entry_src_t *msrc, const fib_route_path_t *rpaths)
 
static fib_node_index_tmfib_entry_src_paths_remove (mfib_entry_src_t *msrc, const fib_route_path_t *rpaths)
 
static void mfib_entry_recalculate_forwarding (mfib_entry_t *mfib_entry, mfib_source_t old_best)
 
fib_node_index_t mfib_entry_create (u32 fib_index, mfib_source_t source, const mfib_prefix_t *prefix, fib_rpf_id_t rpf_id, mfib_entry_flags_t entry_flags, index_t repi)
 
static int mfib_entry_ok_for_delete (mfib_entry_t *mfib_entry)
 
static int mfib_entry_src_ok_for_delete (const mfib_entry_src_t *msrc)
 
static void mfib_entry_update_i (mfib_entry_t *mfib_entry, mfib_entry_src_t *msrc, mfib_source_t current_best, index_t repi)
 
int mfib_entry_special_add (fib_node_index_t mfib_entry_index, mfib_source_t source, mfib_entry_flags_t entry_flags, fib_rpf_id_t rpf_id, index_t repi)
 
int mfib_entry_update (fib_node_index_t mfib_entry_index, mfib_source_t source, mfib_entry_flags_t entry_flags, fib_rpf_id_t rpf_id, index_t repi)
 
static void mfib_entry_itf_add (mfib_entry_src_t *msrc, u32 sw_if_index, index_t mi)
 
static void mfib_entry_itf_remove (mfib_entry_src_t *msrc, u32 sw_if_index)
 
static int mfib_entry_path_itf_based (const fib_route_path_t *rpath)
 
void mfib_entry_path_update (fib_node_index_t mfib_entry_index, mfib_source_t source, const fib_route_path_t *rpaths)
 
int mfib_entry_path_remove (fib_node_index_t mfib_entry_index, mfib_source_t source, const fib_route_path_t *rpaths)
 
int mfib_entry_delete (fib_node_index_t mfib_entry_index, mfib_source_t source)
 mfib_entry_delete More...
 
static int fib_ip4_address_compare (ip4_address_t *a1, ip4_address_t *a2)
 
static int fib_ip6_address_compare (ip6_address_t *a1, ip6_address_t *a2)
 
static int mfib_entry_cmp (fib_node_index_t mfib_entry_index1, fib_node_index_t mfib_entry_index2)
 
int mfib_entry_cmp_for_sort (void *i1, void *i2)
 
static void mfib_entry_last_lock_gone (fib_node_t *node)
 
u32 mfib_entry_get_stats_index (fib_node_index_t fib_entry_index)
 
static fib_node_back_walk_rc_t mfib_entry_back_walk_notify (fib_node_t *node, fib_node_back_walk_ctx_t *ctx)
 
static void mfib_entry_show_memory (void)
 
void mfib_entry_lock (fib_node_index_t mfib_entry_index)
 
void mfib_entry_unlock (fib_node_index_t mfib_entry_index)
 
static void mfib_entry_dpo_lock (dpo_id_t *dpo)
 
static void mfib_entry_dpo_unlock (dpo_id_t *dpo)
 
void mfib_entry_module_init (void)
 
fib_route_path_tmfib_entry_encode (fib_node_index_t mfib_entry_index)
 
const mfib_prefix_tmfib_entry_get_prefix (fib_node_index_t mfib_entry_index)
 
u32 mfib_entry_get_fib_index (fib_node_index_t mfib_entry_index)
 
const dpo_id_tmfib_entry_contribute_ip_forwarding (fib_node_index_t mfib_entry_index)
 
void mfib_entry_contribute_forwarding (fib_node_index_t mfib_entry_index, fib_forward_chain_type_t type, mfib_entry_fwd_flags_t flags, dpo_id_t *dpo)
 
void mfib_entry_cover_changed (fib_node_index_t mfib_entry_index)
 
void mfib_entry_cover_updated (fib_node_index_t mfib_entry_index)
 
u32 mfib_entry_pool_size (void)
 
static clib_error_tshow_mfib_entry_command (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 

Variables

vlib_log_class_t mfib_entry_logger
 the logger More...
 
static mfib_path_ext_tmfib_path_ext_pool
 Pool of path extensions. More...
 
static const char * mfib_source_names [] = MFIB_SOURCE_NAMES
 String names for each source. More...
 
static const char * mfib_src_attribute_names [] = MFIB_ENTRY_SRC_ATTRIBUTES
 
mfib_entry_tmfib_entry_pool
 
static const fib_node_vft_t mfib_entry_vft
 
static const dpo_vft_t mfib_entry_dpo_vft
 
static const char *const mfib_entry_ip4_nodes []
 
static const char *const mfib_entry_ip6_nodes []
 
static const char *const *const mfib_entry_nodes [DPO_PROTO_NUM]
 
static vlib_cli_command_t show_mfib_entry
 (constructor) VLIB_CLI_COMMAND (show_mfib_entry) More...
 

Typedef Documentation

◆ mfib_entry_collect_forwarding_ctx_t

Function Documentation

◆ fib_ip4_address_compare()

static int fib_ip4_address_compare ( ip4_address_t a1,
ip4_address_t a2 
)
static

Definition at line 1186 of file mfib_entry.c.

+ Here is the caller graph for this function:

◆ fib_ip6_address_compare()

static int fib_ip6_address_compare ( ip6_address_t *  a1,
ip6_address_t *  a2 
)
static

Definition at line 1200 of file mfib_entry.c.

+ Here is the caller graph for this function:

◆ format_mfib_entry()

u8* format_mfib_entry ( u8 s,
va_list *  args 
)

Definition at line 126 of file mfib_entry.c.

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

◆ format_mfib_entry_dpo()

static u8* format_mfib_entry_dpo ( u8 s,
va_list *  args 
)
static

Definition at line 77 of file mfib_entry.c.

+ Here is the call graph for this function:

◆ format_mfib_entry_path_ext()

static u8* format_mfib_entry_path_ext ( u8 s,
va_list *  args 
)
static

Definition at line 94 of file mfib_entry.c.

+ Here is the call graph for this function:

◆ format_mfib_entry_src_flags()

u8* format_mfib_entry_src_flags ( u8 s,
va_list *  args 
)

Definition at line 106 of file mfib_entry.c.

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

◆ mfib_entry_alloc()

static mfib_entry_t* mfib_entry_alloc ( u32  fib_index,
const mfib_prefix_t prefix,
fib_node_index_t mfib_entry_index 
)
static

Definition at line 467 of file mfib_entry.c.

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

◆ mfib_entry_back_walk_notify()

static fib_node_back_walk_rc_t mfib_entry_back_walk_notify ( fib_node_t node,
fib_node_back_walk_ctx_t ctx 
)
static

Definition at line 1306 of file mfib_entry.c.

+ Here is the call graph for this function:

◆ mfib_entry_child_add()

u32 mfib_entry_child_add ( fib_node_index_t  mfib_entry_index,
fib_node_type_t  child_type,
fib_node_index_t  child_index 
)

Definition at line 447 of file mfib_entry.c.

+ Here is the call graph for this function:

◆ mfib_entry_child_remove()

void mfib_entry_child_remove ( fib_node_index_t  mfib_entry_index,
u32  sibling_index 
)

Definition at line 458 of file mfib_entry.c.

+ Here is the call graph for this function:

◆ mfib_entry_cmp()

static int mfib_entry_cmp ( fib_node_index_t  mfib_entry_index1,
fib_node_index_t  mfib_entry_index2 
)
static

Definition at line 1215 of file mfib_entry.c.

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

◆ mfib_entry_cmp_for_sort()

int mfib_entry_cmp_for_sort ( void *  i1,
void *  i2 
)

Definition at line 1259 of file mfib_entry.c.

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

◆ mfib_entry_contribute_forwarding()

void mfib_entry_contribute_forwarding ( fib_node_index_t  mfib_entry_index,
fib_forward_chain_type_t  type,
mfib_entry_fwd_flags_t  flags,
dpo_id_t dpo 
)

Definition at line 1465 of file mfib_entry.c.

+ Here is the call graph for this function:

◆ mfib_entry_contribute_ip_forwarding()

const dpo_id_t* mfib_entry_contribute_ip_forwarding ( fib_node_index_t  mfib_entry_index)

Definition at line 1455 of file mfib_entry.c.

+ Here is the call graph for this function:

◆ mfib_entry_cover_changed()

void mfib_entry_cover_changed ( fib_node_index_t  mfib_entry_index)

Definition at line 1516 of file mfib_entry.c.

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

◆ mfib_entry_cover_updated()

void mfib_entry_cover_updated ( fib_node_index_t  mfib_entry_index)

Definition at line 1541 of file mfib_entry.c.

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

◆ mfib_entry_create()

fib_node_index_t mfib_entry_create ( u32  fib_index,
mfib_source_t  source,
const mfib_prefix_t prefix,
fib_rpf_id_t  rpf_id,
mfib_entry_flags_t  entry_flags,
index_t  repi 
)

Definition at line 803 of file mfib_entry.c.

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

◆ mfib_entry_delete()

int mfib_entry_delete ( fib_node_index_t  mfib_entry_index,
mfib_source_t  source 
)

mfib_entry_delete

The source is withdrawing all the paths it provided

Definition at line 1170 of file mfib_entry.c.

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

◆ mfib_entry_dpo_lock()

static void mfib_entry_dpo_lock ( dpo_id_t dpo)
static

Definition at line 1358 of file mfib_entry.c.

◆ mfib_entry_dpo_unlock()

static void mfib_entry_dpo_unlock ( dpo_id_t dpo)
static

Definition at line 1362 of file mfib_entry.c.

◆ mfib_entry_encode()

fib_route_path_t* mfib_entry_encode ( fib_node_index_t  mfib_entry_index)

Definition at line 1399 of file mfib_entry.c.

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

◆ mfib_entry_from_fib_node()

static mfib_entry_t* mfib_entry_from_fib_node ( fib_node_t node)
static

Definition at line 204 of file mfib_entry.c.

+ Here is the caller graph for this function:

◆ mfib_entry_get_best_source()

static mfib_source_t mfib_entry_get_best_source ( const mfib_entry_t mfib_entry)
static

Definition at line 338 of file mfib_entry.c.

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

◆ mfib_entry_get_best_src()

mfib_entry_src_t* mfib_entry_get_best_src ( const mfib_entry_t mfib_entry)

Definition at line 318 of file mfib_entry.c.

+ Here is the caller graph for this function:

◆ mfib_entry_get_default_chain_type()

fib_forward_chain_type_t mfib_entry_get_default_chain_type ( const mfib_entry_t mfib_entry)

Definition at line 61 of file mfib_entry.c.

+ Here is the caller graph for this function:

◆ mfib_entry_get_fib_index()

u32 mfib_entry_get_fib_index ( fib_node_index_t  mfib_entry_index)

Definition at line 1445 of file mfib_entry.c.

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

◆ mfib_entry_get_node()

static fib_node_t* mfib_entry_get_node ( fib_node_index_t  index)
static

Definition at line 49 of file mfib_entry.c.

+ Here is the call graph for this function:

◆ mfib_entry_get_prefix()

const mfib_prefix_t* mfib_entry_get_prefix ( fib_node_index_t  mfib_entry_index)

Definition at line 1435 of file mfib_entry.c.

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

◆ mfib_entry_get_proto()

static fib_protocol_t mfib_entry_get_proto ( const mfib_entry_t mfib_entry)
static

Definition at line 55 of file mfib_entry.c.

+ Here is the caller graph for this function:

◆ mfib_entry_get_stats_index()

u32 mfib_entry_get_stats_index ( fib_node_index_t  fib_entry_index)

Definition at line 1291 of file mfib_entry.c.

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

◆ mfib_entry_is_host()

int mfib_entry_is_host ( fib_node_index_t  mfib_entry_index)

Definition at line 397 of file mfib_entry.c.

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

◆ mfib_entry_is_marked()

int mfib_entry_is_marked ( fib_node_index_t  mfib_entry_index,
mfib_source_t  source 
)

Definition at line 359 of file mfib_entry.c.

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

◆ mfib_entry_is_sourced()

int mfib_entry_is_sourced ( fib_node_index_t  mfib_entry_index,
mfib_source_t  source 
)

Definition at line 348 of file mfib_entry.c.

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

◆ mfib_entry_itf_add()

static void mfib_entry_itf_add ( mfib_entry_src_t msrc,
u32  sw_if_index,
index_t  mi 
)
static

Definition at line 959 of file mfib_entry.c.

+ Here is the caller graph for this function:

◆ mfib_entry_itf_remove()

static void mfib_entry_itf_remove ( mfib_entry_src_t msrc,
u32  sw_if_index 
)
static

Definition at line 967 of file mfib_entry.c.

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

◆ mfib_entry_last_lock_gone()

static void mfib_entry_last_lock_gone ( fib_node_t node)
static

Definition at line 1268 of file mfib_entry.c.

+ Here is the call graph for this function:

◆ mfib_entry_lock()

void mfib_entry_lock ( fib_node_index_t  mfib_entry_index)

Definition at line 1338 of file mfib_entry.c.

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

◆ mfib_entry_mark()

void mfib_entry_mark ( fib_node_index_t  fib_entry_index,
mfib_source_t  source 
)

Definition at line 380 of file mfib_entry.c.

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

◆ mfib_entry_module_init()

void mfib_entry_module_init ( void  )

Definition at line 1391 of file mfib_entry.c.

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

◆ mfib_entry_ok_for_delete()

static int mfib_entry_ok_for_delete ( mfib_entry_t mfib_entry)
static

Definition at line 852 of file mfib_entry.c.

+ Here is the caller graph for this function:

◆ mfib_entry_path_ext_find()

static mfib_path_ext_t* mfib_entry_path_ext_find ( mfib_path_ext_t exts,
fib_node_index_t  path_index 
)
inlinestatic

Definition at line 500 of file mfib_entry.c.

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

◆ mfib_entry_path_ext_get()

static mfib_path_ext_t* mfib_entry_path_ext_get ( index_t  mi)
inlinestatic

Definition at line 88 of file mfib_entry.c.

+ Here is the caller graph for this function:

◆ mfib_entry_path_itf_based()

static int mfib_entry_path_itf_based ( const fib_route_path_t rpath)
static

Definition at line 980 of file mfib_entry.c.

+ Here is the caller graph for this function:

◆ mfib_entry_path_remove()

int mfib_entry_path_remove ( fib_node_index_t  mfib_entry_index,
mfib_source_t  source,
const fib_route_path_t rpaths 
)

Definition at line 1087 of file mfib_entry.c.

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

◆ mfib_entry_path_update()

void mfib_entry_path_update ( fib_node_index_t  mfib_entry_index,
mfib_source_t  source,
const fib_route_path_t rpaths 
)

Definition at line 987 of file mfib_entry.c.

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

◆ mfib_entry_pool_size()

u32 mfib_entry_pool_size ( void  )

Definition at line 1560 of file mfib_entry.c.

+ Here is the call graph for this function:

◆ mfib_entry_recalculate_forwarding()

static void mfib_entry_recalculate_forwarding ( mfib_entry_t mfib_entry,
mfib_source_t  old_best 
)
static

Definition at line 769 of file mfib_entry.c.

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

◆ mfib_entry_show_memory()

static void mfib_entry_show_memory ( void  )
static

Definition at line 1319 of file mfib_entry.c.

+ Here is the call graph for this function:

◆ mfib_entry_special_add()

int mfib_entry_special_add ( fib_node_index_t  mfib_entry_index,
mfib_source_t  source,
mfib_entry_flags_t  entry_flags,
fib_rpf_id_t  rpf_id,
index_t  repi 
)

Definition at line 917 of file mfib_entry.c.

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

◆ mfib_entry_src_cmp_for_sort()

static int mfib_entry_src_cmp_for_sort ( void *  v1,
void *  v2 
)
static

Definition at line 211 of file mfib_entry.c.

+ Here is the caller graph for this function:

◆ mfib_entry_src_collect_forwarding()

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

Definition at line 553 of file mfib_entry.c.

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

◆ mfib_entry_src_find()

static mfib_entry_src_t* mfib_entry_src_find ( const mfib_entry_t mfib_entry,
mfib_source_t  source,
u32 index 
)
static

Definition at line 239 of file mfib_entry.c.

+ Here is the caller graph for this function:

◆ mfib_entry_src_find_or_create()

static mfib_entry_src_t* mfib_entry_src_find_or_create ( mfib_entry_t mfib_entry,
mfib_source_t  source 
)
static

Definition at line 268 of file mfib_entry.c.

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

◆ mfib_entry_src_flush()

static void mfib_entry_src_flush ( mfib_entry_src_t msrc)
static

Definition at line 404 of file mfib_entry.c.

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

◆ mfib_entry_src_init()

static void mfib_entry_src_init ( mfib_entry_t mfib_entry,
mfib_source_t  source 
)
static

Definition at line 220 of file mfib_entry.c.

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

◆ mfib_entry_src_ok_for_delete()

static int mfib_entry_src_ok_for_delete ( const mfib_entry_src_t msrc)
static

Definition at line 858 of file mfib_entry.c.

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

◆ mfib_entry_src_paths_add()

static fib_node_index_t* mfib_entry_src_paths_add ( mfib_entry_src_t msrc,
const fib_route_path_t rpaths 
)
static

Definition at line 739 of file mfib_entry.c.

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

◆ mfib_entry_src_paths_remove()

static fib_node_index_t* mfib_entry_src_paths_remove ( mfib_entry_src_t msrc,
const fib_route_path_t rpaths 
)
static

Definition at line 758 of file mfib_entry.c.

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

◆ mfib_entry_src_remove()

static void mfib_entry_src_remove ( mfib_entry_t mfib_entry,
mfib_source_t  source 
)
static

Definition at line 419 of file mfib_entry.c.

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

◆ mfib_entry_src_update()

static mfib_entry_src_t* mfib_entry_src_update ( mfib_entry_t mfib_entry,
mfib_source_t  source,
fib_rpf_id_t  rpf_id,
mfib_entry_flags_t  entry_flags 
)
static

Definition at line 285 of file mfib_entry.c.

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

◆ mfib_entry_src_update_and_lock()

static mfib_entry_src_t* mfib_entry_src_update_and_lock ( mfib_entry_t mfib_entry,
mfib_source_t  source,
fib_rpf_id_t  rpf_id,
mfib_entry_flags_t  entry_flags 
)
static

Definition at line 302 of file mfib_entry.c.

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

◆ mfib_entry_stack()

static void mfib_entry_stack ( mfib_entry_t mfib_entry,
mfib_entry_src_t msrc 
)
static

Definition at line 613 of file mfib_entry.c.

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

◆ mfib_entry_unlock()

void mfib_entry_unlock ( fib_node_index_t  mfib_entry_index)

Definition at line 1348 of file mfib_entry.c.

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

◆ mfib_entry_update()

int mfib_entry_update ( fib_node_index_t  mfib_entry_index,
mfib_source_t  source,
mfib_entry_flags_t  entry_flags,
fib_rpf_id_t  rpf_id,
index_t  repi 
)

Definition at line 939 of file mfib_entry.c.

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

◆ mfib_entry_update_i()

static void mfib_entry_update_i ( mfib_entry_t mfib_entry,
mfib_entry_src_t msrc,
mfib_source_t  current_best,
index_t  repi 
)
static

Definition at line 872 of file mfib_entry.c.

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

◆ mfib_path_ext_add()

static mfib_path_ext_t* mfib_path_ext_add ( mfib_entry_src_t msrc,
fib_node_index_t  path_index,
mfib_itf_flags_t  mfi_flags 
)
static

Definition at line 516 of file mfib_entry.c.

+ Here is the caller graph for this function:

◆ mfib_path_ext_remove()

static void mfib_path_ext_remove ( mfib_entry_src_t msrc,
fib_node_index_t  path_index 
)
static

Definition at line 534 of file mfib_entry.c.

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

◆ show_mfib_entry_command()

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

Definition at line 1566 of file mfib_entry.c.

+ Here is the call graph for this function:

Variable Documentation

◆ mfib_entry_dpo_vft

const dpo_vft_t mfib_entry_dpo_vft
static
Initial value:
= {
.dv_lock = mfib_entry_dpo_lock,
.dv_unlock = mfib_entry_dpo_unlock,
.dv_format = format_mfib_entry_dpo,
.dv_mem_show = mfib_entry_show_memory,
}
static void mfib_entry_dpo_unlock(dpo_id_t *dpo)
Definition: mfib_entry.c:1362
static void mfib_entry_dpo_lock(dpo_id_t *dpo)
Definition: mfib_entry.c:1358
static u8 * format_mfib_entry_dpo(u8 *s, va_list *args)
Definition: mfib_entry.c:77
static void mfib_entry_show_memory(void)
Definition: mfib_entry.c:1319

Definition at line 1366 of file mfib_entry.c.

◆ mfib_entry_ip4_nodes

const char* const mfib_entry_ip4_nodes[]
static
Initial value:
=
{
"ip4-mfib-forward-rpf",
NULL,
}

Definition at line 1373 of file mfib_entry.c.

◆ mfib_entry_ip6_nodes

const char* const mfib_entry_ip6_nodes[]
static
Initial value:
=
{
"ip6-mfib-forward-rpf",
NULL,
}

Definition at line 1378 of file mfib_entry.c.

◆ mfib_entry_logger

vlib_log_class_t mfib_entry_logger

the logger

Debug macro.

Definition at line 30 of file mfib_entry.c.

◆ mfib_entry_nodes

const char* const* const mfib_entry_nodes[DPO_PROTO_NUM]
static
Initial value:
=
{
}
static const char *const mfib_entry_ip4_nodes[]
Definition: mfib_entry.c:1373
static const char *const mfib_entry_ip6_nodes[]
Definition: mfib_entry.c:1378

Definition at line 1384 of file mfib_entry.c.

◆ mfib_entry_pool

mfib_entry_t* mfib_entry_pool

Definition at line 46 of file mfib_entry.c.

◆ mfib_entry_vft

const fib_node_vft_t mfib_entry_vft
static
Initial value:
= {
.fnv_get = mfib_entry_get_node,
.fnv_last_lock = mfib_entry_last_lock_gone,
.fnv_back_walk = mfib_entry_back_walk_notify,
.fnv_mem_show = mfib_entry_show_memory,
}
static fib_node_t * mfib_entry_get_node(fib_node_index_t index)
Definition: mfib_entry.c:49
static void mfib_entry_last_lock_gone(fib_node_t *node)
Definition: mfib_entry.c:1268
static fib_node_back_walk_rc_t mfib_entry_back_walk_notify(fib_node_t *node, fib_node_back_walk_ctx_t *ctx)
Definition: mfib_entry.c:1306
static void mfib_entry_show_memory(void)
Definition: mfib_entry.c:1319

Definition at line 1330 of file mfib_entry.c.

◆ mfib_path_ext_pool

mfib_path_ext_t* mfib_path_ext_pool
static

Pool of path extensions.

Definition at line 35 of file mfib_entry.c.

◆ mfib_source_names

const char* mfib_source_names[] = MFIB_SOURCE_NAMES
static

String names for each source.

Definition at line 40 of file mfib_entry.c.

◆ mfib_src_attribute_names

const char* mfib_src_attribute_names[] = MFIB_ENTRY_SRC_ATTRIBUTES
static

Definition at line 41 of file mfib_entry.c.

◆ show_mfib_entry

vlib_cli_command_t show_mfib_entry
static
Initial value:
= {
.path = "show mfib entry",
.short_help = "show mfib entry",
}
static clib_error_t * show_mfib_entry_command(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: mfib_entry.c:1566

(constructor) VLIB_CLI_COMMAND (show_mfib_entry)

Definition at line 1611 of file mfib_entry.c.