FD.io VPP  v21.01.1
Vector Packet Processing
mfib_entry.h File Reference
+ Include dependency graph for mfib_entry.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  mfib_entry_t_
 An entry in a FIB table. More...
 

Macros

#define MFIB_ENTRY_DBG(_e, _fmt, _args...)
 
#define MFIB_ENTRY_FORMAT_BRIEF   (0x0)
 
#define MFIB_ENTRY_FORMAT_DETAIL   (0x1)
 
#define MFIB_ENTRY_FORMAT_DETAIL2   (0x2)
 

Typedefs

typedef struct mfib_entry_t_ mfib_entry_t
 An entry in a FIB table. More...
 
typedef enum mfib_entry_fwd_flags_t_ mfib_entry_fwd_flags_t
 Flags to control what is present in the replicate DPO returned when the entry contributes forwarding. More...
 

Enumerations

enum  mfib_entry_fwd_flags_t_ { MFIB_ENTRY_FWD_FLAG_NONE, MFIB_ENTRY_FWD_FLAG_NO_LOCAL }
 Flags to control what is present in the replicate DPO returned when the entry contributes forwarding. More...
 

Functions

u8format_mfib_entry (u8 *s, va_list *args)
 
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)
 
int mfib_entry_update (fib_node_index_t fib_entry_index, mfib_source_t source, mfib_entry_flags_t entry_flags, fib_rpf_id_t rpf_id, index_t rep_dpo)
 
int mfib_entry_special_add (fib_node_index_t fib_entry_index, mfib_source_t source, mfib_entry_flags_t entry_flags, fib_rpf_id_t rpf_id, index_t rep_dpo)
 
void mfib_entry_path_update (fib_node_index_t fib_entry_index, mfib_source_t source, const fib_route_path_t *rpath)
 
int mfib_entry_path_remove (fib_node_index_t fib_entry_index, mfib_source_t source, const fib_route_path_t *rpath)
 
int mfib_entry_delete (fib_node_index_t mfib_entry_index, mfib_source_t source)
 mfib_entry_delete More...
 
int mfib_entry_cmp_for_sort (void *i1, void *i2)
 
u32 mfib_entry_child_add (fib_node_index_t mfib_entry_index, fib_node_type_t type, fib_node_index_t child_index)
 
void mfib_entry_child_remove (fib_node_index_t mfib_entry_index, u32 sibling_index)
 
void mfib_entry_lock (fib_node_index_t fib_entry_index)
 
void mfib_entry_unlock (fib_node_index_t fib_entry_index)
 
const mfib_prefix_tmfib_entry_get_prefix (fib_node_index_t fib_entry_index)
 
u32 mfib_entry_get_fib_index (fib_node_index_t fib_entry_index)
 
int mfib_entry_is_sourced (fib_node_index_t fib_entry_index, mfib_source_t source)
 
int mfib_entry_is_host (fib_node_index_t fib_entry_index)
 
int mfib_entry_is_marked (fib_node_index_t fib_entry_index, mfib_source_t source)
 
void mfib_entry_mark (fib_node_index_t fib_entry_index, mfib_source_t source)
 
u32 mfib_entry_get_stats_index (fib_node_index_t fib_entry_index)
 
void mfib_entry_cover_changed (fib_node_index_t fib_entry_index)
 
void mfib_entry_cover_updated (fib_node_index_t fib_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)
 
fib_route_path_tmfib_entry_encode (fib_node_index_t fib_entry_index)
 
void mfib_entry_module_init (void)
 
static mfib_entry_tmfib_entry_get (fib_node_index_t index)
 
static fib_node_index_t mfib_entry_get_index (const mfib_entry_t *mfe)
 
static mfib_itf_tmfib_entry_itf_find (mfib_itf_t *itfs, u32 sw_if_index)
 
static mfib_itf_tmfib_entry_get_itf (const mfib_entry_t *mfe, u32 sw_if_index)
 

Variables

vlib_log_class_t mfib_entry_logger
 Debug macro. More...
 
mfib_entry_tmfib_entry_pool
 

Macro Definition Documentation

◆ MFIB_ENTRY_DBG

#define MFIB_ENTRY_DBG (   _e,
  _fmt,
  _args... 
)
Value:
{ \
vlib_log_debug(mfib_entry_logger, \
"e:[%d:%U]: " _fmt, \
&_e->mfe_prefix, \
##_args); \
}
static fib_node_index_t mfib_entry_get_index(const mfib_entry_t *mfe)
Definition: mfib_entry.h:205
vlib_log_class_t mfib_entry_logger
Debug macro.
Definition: mfib_entry.c:30
u8 * format_mfib_prefix(u8 *s, va_list *args)
Definition: mfib_types.c:106

Definition at line 100 of file mfib_entry.h.

◆ MFIB_ENTRY_FORMAT_BRIEF

#define MFIB_ENTRY_FORMAT_BRIEF   (0x0)

Definition at line 110 of file mfib_entry.h.

◆ MFIB_ENTRY_FORMAT_DETAIL

#define MFIB_ENTRY_FORMAT_DETAIL   (0x1)

Definition at line 111 of file mfib_entry.h.

◆ MFIB_ENTRY_FORMAT_DETAIL2

#define MFIB_ENTRY_FORMAT_DETAIL2   (0x2)

Definition at line 112 of file mfib_entry.h.

Typedef Documentation

◆ mfib_entry_fwd_flags_t

Flags to control what is present in the replicate DPO returned when the entry contributes forwarding.

◆ mfib_entry_t

typedef struct mfib_entry_t_ mfib_entry_t

An entry in a FIB table.

This entry represents a route added to the FIB that is stored in one of the FIB tables.

Enumeration Type Documentation

◆ mfib_entry_fwd_flags_t_

Flags to control what is present in the replicate DPO returned when the entry contributes forwarding.

Enumerator
MFIB_ENTRY_FWD_FLAG_NONE 
MFIB_ENTRY_FWD_FLAG_NO_LOCAL 

Do not reutrn any local replications in the set.

Definition at line 177 of file mfib_entry.h.

Function Documentation

◆ 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:

◆ mfib_entry_child_add()

u32 mfib_entry_child_add ( fib_node_index_t  mfib_entry_index,
fib_node_type_t  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_for_sort()

int mfib_entry_cmp_for_sort ( void *  i1,
void *  i2 
)

Definition at line 1313 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 1519 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 1509 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  fib_entry_index)

Definition at line 1570 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  fib_entry_index)

Definition at line 1595 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 1224 of file mfib_entry.c.

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

◆ mfib_entry_encode()

fib_route_path_t* mfib_entry_encode ( fib_node_index_t  fib_entry_index)

Definition at line 1453 of file mfib_entry.c.

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

◆ mfib_entry_get()

static mfib_entry_t* mfib_entry_get ( fib_node_index_t  index)
inlinestatic

Definition at line 200 of file mfib_entry.h.

+ Here is the caller graph for this function:

◆ mfib_entry_get_fib_index()

u32 mfib_entry_get_fib_index ( fib_node_index_t  fib_entry_index)

Definition at line 1499 of file mfib_entry.c.

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

◆ mfib_entry_get_index()

static fib_node_index_t mfib_entry_get_index ( const mfib_entry_t mfe)
inlinestatic

Definition at line 205 of file mfib_entry.h.

+ Here is the caller graph for this function:

◆ mfib_entry_get_itf()

static mfib_itf_t* mfib_entry_get_itf ( const mfib_entry_t mfe,
u32  sw_if_index 
)
inlinestatic

Definition at line 228 of file mfib_entry.h.

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

◆ mfib_entry_get_prefix()

const mfib_prefix_t* mfib_entry_get_prefix ( fib_node_index_t  fib_entry_index)

Definition at line 1489 of file mfib_entry.c.

+ Here is the call graph for this function:
+ 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 1345 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  fib_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  fib_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  fib_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_find()

static mfib_itf_t* mfib_entry_itf_find ( mfib_itf_t itfs,
u32  sw_if_index 
)
inlinestatic

Definition at line 212 of file mfib_entry.h.

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

◆ mfib_entry_lock()

void mfib_entry_lock ( fib_node_index_t  fib_entry_index)

Definition at line 1392 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 1445 of file mfib_entry.c.

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

◆ mfib_entry_path_remove()

int mfib_entry_path_remove ( fib_node_index_t  fib_entry_index,
mfib_source_t  source,
const fib_route_path_t rpath 
)

Definition at line 1123 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  fib_entry_index,
mfib_source_t  source,
const fib_route_path_t rpath 
)

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_special_add()

int mfib_entry_special_add ( fib_node_index_t  fib_entry_index,
mfib_source_t  source,
mfib_entry_flags_t  entry_flags,
fib_rpf_id_t  rpf_id,
index_t  rep_dpo 
)

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_unlock()

void mfib_entry_unlock ( fib_node_index_t  fib_entry_index)

Definition at line 1402 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  fib_entry_index,
mfib_source_t  source,
mfib_entry_flags_t  entry_flags,
fib_rpf_id_t  rpf_id,
index_t  rep_dpo 
)

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:

Variable Documentation

◆ mfib_entry_logger

vlib_log_class_t mfib_entry_logger

Debug macro.

Debug macro.

Definition at line 30 of file mfib_entry.c.

◆ mfib_entry_pool

mfib_entry_t* mfib_entry_pool

Definition at line 46 of file mfib_entry.c.