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

Go to the source code of this file.

Data Structures

struct  fib_path_t_
 A FIB path. More...
 

Macros

#define FIB_PATH_TYPE_MAX   (FIB_PATH_TYPE_LAST + 1)
 The maximum number of path_types. More...
 
#define FIB_PATH_TYPES
 
#define FOR_EACH_FIB_PATH_TYPE(_item)
 
#define FIB_PATH_OPER_ATTRIBUTE_MAX   (FIB_PATH_OPER_ATTRIBUTE_LAST + 1)
 The maximum number of path operational attributes. More...
 
#define FIB_PATH_OPER_ATTRIBUTES
 
#define FOR_EACH_FIB_PATH_OPER_ATTRIBUTE(_item)
 
#define FIB_PATH_DBG(_p, _fmt, _args...)
 

Typedefs

typedef enum fib_path_type_t_ fib_path_type_t
 Enurmeration of path types. More...
 
typedef enum fib_path_oper_attribute_t_ fib_path_oper_attribute_t
 Enurmeration of path operational (i.e. More...
 
typedef enum fib_path_oper_flags_t_ fib_path_oper_flags_t
 Path flags from the attributes. More...
 
typedef struct fib_path_t_ fib_path_t
 A FIB path. More...
 

Enumerations

enum  fib_path_type_t_ {
  FIB_PATH_TYPE_FIRST = 0, FIB_PATH_TYPE_ATTACHED_NEXT_HOP = FIB_PATH_TYPE_FIRST, FIB_PATH_TYPE_ATTACHED, FIB_PATH_TYPE_RECURSIVE,
  FIB_PATH_TYPE_SPECIAL, FIB_PATH_TYPE_EXCLUSIVE, FIB_PATH_TYPE_DEAG, FIB_PATH_TYPE_INTF_RX,
  FIB_PATH_TYPE_UDP_ENCAP, FIB_PATH_TYPE_RECEIVE, FIB_PATH_TYPE_BIER_IMP, FIB_PATH_TYPE_BIER_TABLE,
  FIB_PATH_TYPE_BIER_FMASK, FIB_PATH_TYPE_DVR, FIB_PATH_TYPE_LAST = FIB_PATH_TYPE_BIER_FMASK
}
 Enurmeration of path types. More...
 
enum  fib_path_oper_attribute_t_ {
  FIB_PATH_OPER_ATTRIBUTE_FIRST = 0, FIB_PATH_OPER_ATTRIBUTE_RECURSIVE_LOOP = FIB_PATH_OPER_ATTRIBUTE_FIRST, FIB_PATH_OPER_ATTRIBUTE_RESOLVED, FIB_PATH_OPER_ATTRIBUTE_ATTACHED,
  FIB_PATH_OPER_ATTRIBUTE_DROP, FIB_PATH_OPER_ATTRIBUTE_LAST = FIB_PATH_OPER_ATTRIBUTE_DROP
}
 Enurmeration of path operational (i.e. More...
 
enum  fib_path_oper_flags_t_ {
  FIB_PATH_OPER_FLAG_NONE = 0, FIB_PATH_OPER_FLAG_RECURSIVE_LOOP = (1 << FIB_PATH_OPER_ATTRIBUTE_RECURSIVE_LOOP), FIB_PATH_OPER_FLAG_DROP = (1 << FIB_PATH_OPER_ATTRIBUTE_DROP), FIB_PATH_OPER_FLAG_RESOLVED = (1 << FIB_PATH_OPER_ATTRIBUTE_RESOLVED),
  FIB_PATH_OPER_FLAG_ATTACHED = (1 << FIB_PATH_OPER_ATTRIBUTE_ATTACHED)
}
 Path flags from the attributes. More...
 

Functions

static fib_path_tfib_path_get (fib_node_index_t index)
 
static fib_node_index_t fib_path_get_index (fib_path_t *path)
 
static fib_node_tfib_path_get_node (fib_node_index_t index)
 
static fib_path_tfib_path_from_fib_node (fib_node_t *node)
 
u8format_fib_path (u8 *s, va_list *args)
 
static void fib_path_last_lock_gone (fib_node_t *node)
 
static fib_path_tfib_path_attached_next_hop_get_adj (fib_path_t *path, vnet_link_t link, dpo_id_t *dpo)
 
static void fib_path_attached_next_hop_set (fib_path_t *path)
 
static void fib_path_attached_get_adj (fib_path_t *path, vnet_link_t link, dpo_id_t *dpo)
 
static void fib_path_recursive_adj_update (fib_path_t *path, fib_forward_chain_type_t fct, dpo_id_t *dpo)
 
static void fib_path_bier_fmask_update (fib_path_t *path, dpo_id_t *dpo)
 
static int fib_path_is_permanent_drop (fib_path_t *path)
 
static void fib_path_unresolve (fib_path_t *path)
 
static fib_forward_chain_type_t fib_path_to_chain_type (const fib_path_t *path)
 
static fib_node_back_walk_rc_t fib_path_back_walk_notify (fib_node_t *node, fib_node_back_walk_ctx_t *ctx)
 
static void fib_path_memory_show (void)
 
static fib_path_cfg_flags_t fib_path_route_flags_to_cfg_flags (const fib_route_path_t *rpath)
 
fib_node_index_t fib_path_create (fib_node_index_t pl_index, const fib_route_path_t *rpath)
 
fib_node_index_t fib_path_create_special (fib_node_index_t pl_index, dpo_proto_t nh_proto, fib_path_cfg_flags_t flags, const dpo_id_t *dpo)
 
fib_node_index_t fib_path_copy (fib_node_index_t path_index, fib_node_index_t path_list_index)
 
void fib_path_destroy (fib_node_index_t path_index)
 
uword fib_path_hash (fib_node_index_t path_index)
 
static int fib_path_cmp_i (const fib_path_t *path1, const fib_path_t *path2)
 
int fib_path_cmp_for_sort (void *v1, void *v2)
 
int fib_path_cmp (fib_node_index_t pi1, fib_node_index_t pi2)
 
int fib_path_cmp_w_route_path (fib_node_index_t path_index, const fib_route_path_t *rpath)
 
int fib_path_recursive_loop_detect (fib_node_index_t path_index, fib_node_index_t **entry_indicies)
 
int fib_path_resolve (fib_node_index_t path_index)
 
u32 fib_path_get_resolving_interface (fib_node_index_t path_index)
 
index_t fib_path_get_resolving_index (fib_node_index_t path_index)
 
adj_index_t fib_path_get_adj (fib_node_index_t path_index)
 
u16 fib_path_get_weight (fib_node_index_t path_index)
 
u16 fib_path_get_preference (fib_node_index_t path_index)
 
u32 fib_path_get_rpf_id (fib_node_index_t path_index)
 
void fib_path_contribute_urpf (fib_node_index_t path_index, index_t urpf)
 Contribute the path's adjacency to the list passed. More...
 
void fib_path_stack_mpls_disp (fib_node_index_t path_index, dpo_proto_t payload_proto, fib_mpls_lsp_mode_t mode, dpo_id_t *dpo)
 
void fib_path_contribute_forwarding (fib_node_index_t path_index, fib_forward_chain_type_t fct, dpo_id_t *dpo)
 
load_balance_path_tfib_path_append_nh_for_multipath_hash (fib_node_index_t path_index, fib_forward_chain_type_t fct, load_balance_path_t *hash_key)
 
int fib_path_is_recursive_constrained (fib_node_index_t path_index)
 
int fib_path_is_exclusive (fib_node_index_t path_index)
 
int fib_path_is_deag (fib_node_index_t path_index)
 
int fib_path_is_resolved (fib_node_index_t path_index)
 
int fib_path_is_looped (fib_node_index_t path_index)
 
fib_path_list_walk_rc_t fib_path_encode (fib_node_index_t path_list_index, fib_node_index_t path_index, const fib_path_ext_t *path_ext, void *args)
 
dpo_proto_t fib_path_get_proto (fib_node_index_t path_index)
 
void fib_path_module_init (void)
 
static clib_error_tshow_fib_path_command (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 

Variables

static const char * fib_path_type_names [] = FIB_PATH_TYPES
 
static const char * fib_path_oper_attribute_names [] = FIB_PATH_OPER_ATTRIBUTES
 
static const char * fib_path_cfg_attribute_names [] = FIB_PATH_CFG_ATTRIBUTES
 
static fib_path_tfib_path_pool
 
vlib_log_class_t fib_path_logger
 the logger More...
 
static const fib_node_vft_t fib_path_vft
 
static vlib_cli_command_t show_fib_path
 (constructor) VLIB_CLI_COMMAND (show_fib_path) More...
 

Macro Definition Documentation

◆ FIB_PATH_DBG

#define FIB_PATH_DBG (   _p,
  _fmt,
  _args... 
)
Value:
{ \
vlib_log_debug (fib_path_logger, \
"[%U]: " _fmt, \
##_args); \
}
u8 * format_fib_path(u8 *s, va_list *args)
Definition: fib_path.c:464
static fib_node_index_t fib_path_get_index(fib_path_t *path)
Definition: fib_path.c:445
vlib_log_class_t fib_path_logger
the logger
Definition: fib_path.c:424

Definition at line 429 of file fib_path.c.

◆ FIB_PATH_OPER_ATTRIBUTE_MAX

#define FIB_PATH_OPER_ATTRIBUTE_MAX   (FIB_PATH_OPER_ATTRIBUTE_LAST + 1)

The maximum number of path operational attributes.

Definition at line 174 of file fib_path.c.

◆ FIB_PATH_OPER_ATTRIBUTES

#define FIB_PATH_OPER_ATTRIBUTES
Value:
{ \
}
The path is resolved.
Definition: fib_path.c:156
The path has become a permanent drop.
Definition: fib_path.c:164
The path forms part of a recursive loop.
Definition: fib_path.c:152

Definition at line 176 of file fib_path.c.

◆ FIB_PATH_TYPE_MAX

#define FIB_PATH_TYPE_MAX   (FIB_PATH_TYPE_LAST + 1)

The maximum number of path_types.

Definition at line 118 of file fib_path.c.

◆ FIB_PATH_TYPES

#define FIB_PATH_TYPES
Value:
{ \
[FIB_PATH_TYPE_ATTACHED_NEXT_HOP] = "attached-nexthop", \
[FIB_PATH_TYPE_ATTACHED] = "attached", \
[FIB_PATH_TYPE_RECURSIVE] = "recursive", \
[FIB_PATH_TYPE_SPECIAL] = "special", \
[FIB_PATH_TYPE_EXCLUSIVE] = "exclusive", \
[FIB_PATH_TYPE_DEAG] = "deag", \
[FIB_PATH_TYPE_INTF_RX] = "intf-rx", \
[FIB_PATH_TYPE_UDP_ENCAP] = "udp-encap", \
[FIB_PATH_TYPE_RECEIVE] = "receive", \
[FIB_PATH_TYPE_BIER_IMP] = "bier-imp", \
[FIB_PATH_TYPE_BIER_TABLE] = "bier-table", \
[FIB_PATH_TYPE_BIER_FMASK] = "bier-fmask", \
[FIB_PATH_TYPE_DVR] = "dvr", \
}
interface receive.
Definition: fib_path.c:84
via a DVR.
Definition: fib_path.c:108
Path resolves via a UDP encap object.
Definition: fib_path.c:88
Attached-nexthop.
Definition: fib_path.c:60

Definition at line 120 of file fib_path.c.

◆ FOR_EACH_FIB_PATH_OPER_ATTRIBUTE

#define FOR_EACH_FIB_PATH_OPER_ATTRIBUTE (   _item)
Value:

Definition at line 182 of file fib_path.c.

◆ FOR_EACH_FIB_PATH_TYPE

#define FOR_EACH_FIB_PATH_TYPE (   _item)
Value:
for (_item = FIB_PATH_TYPE_FIRST; \
_item <= FIB_PATH_TYPE_LAST; \
_item++)

Definition at line 136 of file fib_path.c.

Typedef Documentation

◆ fib_path_oper_attribute_t

Enurmeration of path operational (i.e.

derived) attributes

◆ fib_path_oper_flags_t

Path flags from the attributes.

◆ fib_path_t

typedef struct fib_path_t_ fib_path_t

A FIB path.

◆ fib_path_type_t

Enurmeration of path types.

Enumeration Type Documentation

◆ fib_path_oper_attribute_t_

Enurmeration of path operational (i.e.

derived) attributes

Enumerator
FIB_PATH_OPER_ATTRIBUTE_FIRST 

Marker.

Add new types after this one.

FIB_PATH_OPER_ATTRIBUTE_RECURSIVE_LOOP 

The path forms part of a recursive loop.

FIB_PATH_OPER_ATTRIBUTE_RESOLVED 

The path is resolved.

FIB_PATH_OPER_ATTRIBUTE_ATTACHED 

The path is attached, despite what the next-hop may say.

FIB_PATH_OPER_ATTRIBUTE_DROP 

The path has become a permanent drop.

FIB_PATH_OPER_ATTRIBUTE_LAST 

Marker.

Add new types before this one, then update it.

Definition at line 144 of file fib_path.c.

◆ fib_path_oper_flags_t_

Path flags from the attributes.

Enumerator
FIB_PATH_OPER_FLAG_NONE 
FIB_PATH_OPER_FLAG_RECURSIVE_LOOP 
FIB_PATH_OPER_FLAG_DROP 
FIB_PATH_OPER_FLAG_RESOLVED 
FIB_PATH_OPER_FLAG_ATTACHED 

Definition at line 190 of file fib_path.c.

◆ fib_path_type_t_

Enurmeration of path types.

Enumerator
FIB_PATH_TYPE_FIRST 

Marker.

Add new types after this one.

FIB_PATH_TYPE_ATTACHED_NEXT_HOP 

Attached-nexthop.

An interface and a nexthop are known.

FIB_PATH_TYPE_ATTACHED 

attached.

Only the interface is known.

FIB_PATH_TYPE_RECURSIVE 

recursive.

Only the next-hop is known.

FIB_PATH_TYPE_SPECIAL 

special.

nothing is known. so we drop.

FIB_PATH_TYPE_EXCLUSIVE 

exclusive.

user provided adj.

FIB_PATH_TYPE_DEAG 

deag.

Link to a lookup adj in the next table

FIB_PATH_TYPE_INTF_RX 

interface receive.

FIB_PATH_TYPE_UDP_ENCAP 

Path resolves via a UDP encap object.

FIB_PATH_TYPE_RECEIVE 

receive.

it's for-us.

FIB_PATH_TYPE_BIER_IMP 

bier-imp.

it's via a BIER imposition.

FIB_PATH_TYPE_BIER_TABLE 

bier-fmask.

it's via a BIER ECMP-table.

FIB_PATH_TYPE_BIER_FMASK 

bier-fmask.

it's via a BIER f-mask.

FIB_PATH_TYPE_DVR 

via a DVR.

FIB_PATH_TYPE_LAST 

Marker.

Add new types before this one, then update it.

Definition at line 52 of file fib_path.c.

Function Documentation

◆ fib_path_append_nh_for_multipath_hash()

load_balance_path_t* fib_path_append_nh_for_multipath_hash ( fib_node_index_t  path_index,
fib_forward_chain_type_t  fct,
load_balance_path_t hash_key 
)

Definition at line 2622 of file fib_path.c.

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

◆ fib_path_attached_get_adj()

static void fib_path_attached_get_adj ( fib_path_t path,
vnet_link_t  link,
dpo_id_t dpo 
)
static

Definition at line 715 of file fib_path.c.

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

◆ fib_path_attached_next_hop_get_adj()

static fib_path_t* fib_path_attached_next_hop_get_adj ( fib_path_t path,
vnet_link_t  link,
dpo_id_t dpo 
)
static

Definition at line 649 of file fib_path.c.

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

◆ fib_path_attached_next_hop_set()

static void fib_path_attached_next_hop_set ( fib_path_t path)
static

Definition at line 686 of file fib_path.c.

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

◆ fib_path_back_walk_notify()

static fib_node_back_walk_rc_t fib_path_back_walk_notify ( fib_node_t node,
fib_node_back_walk_ctx_t ctx 
)
static

Definition at line 997 of file fib_path.c.

+ Here is the call graph for this function:

◆ fib_path_bier_fmask_update()

static void fib_path_bier_fmask_update ( fib_path_t path,
dpo_id_t dpo 
)
static

Definition at line 864 of file fib_path.c.

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

◆ fib_path_cmp()

int fib_path_cmp ( fib_node_index_t  pi1,
fib_node_index_t  pi2 
)

Definition at line 1679 of file fib_path.c.

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

◆ fib_path_cmp_for_sort()

int fib_path_cmp_for_sort ( void *  v1,
void *  v2 
)

Definition at line 1652 of file fib_path.c.

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

◆ fib_path_cmp_i()

static int fib_path_cmp_i ( const fib_path_t path1,
const fib_path_t path2 
)
static

Definition at line 1557 of file fib_path.c.

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

◆ fib_path_cmp_w_route_path()

int fib_path_cmp_w_route_path ( fib_node_index_t  path_index,
const fib_route_path_t rpath 
)

Definition at line 1691 of file fib_path.c.

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

◆ fib_path_contribute_forwarding()

void fib_path_contribute_forwarding ( fib_node_index_t  path_index,
fib_forward_chain_type_t  fct,
dpo_id_t dpo 
)

Definition at line 2419 of file fib_path.c.

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

◆ fib_path_contribute_urpf()

void fib_path_contribute_urpf ( fib_node_index_t  path_index,
index_t  urpf 
)

Contribute the path's adjacency to the list passed.

By calling this function over all paths, recursively, a child can construct its full set of forwarding adjacencies, and hence its uRPF list.

Definition at line 2291 of file fib_path.c.

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

◆ fib_path_copy()

fib_node_index_t fib_path_copy ( fib_node_index_t  path_index,
fib_node_index_t  path_list_index 
)

Definition at line 1485 of file fib_path.c.

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

◆ fib_path_create()

fib_node_index_t fib_path_create ( fib_node_index_t  pl_index,
const fib_route_path_t rpath 
)

Definition at line 1290 of file fib_path.c.

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

◆ fib_path_create_special()

fib_node_index_t fib_path_create_special ( fib_node_index_t  pl_index,
dpo_proto_t  nh_proto,
fib_path_cfg_flags_t  flags,
const dpo_id_t dpo 
)

Definition at line 1439 of file fib_path.c.

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

◆ fib_path_destroy()

void fib_path_destroy ( fib_node_index_t  path_index)

Definition at line 1518 of file fib_path.c.

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

◆ fib_path_encode()

fib_path_list_walk_rc_t fib_path_encode ( fib_node_index_t  path_list_index,
fib_node_index_t  path_index,
const fib_path_ext_t path_ext,
void *  args 
)

Definition at line 2706 of file fib_path.c.

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

◆ fib_path_from_fib_node()

static fib_path_t* fib_path_from_fib_node ( fib_node_t node)
static

Definition at line 457 of file fib_path.c.

+ Here is the caller graph for this function:

◆ fib_path_get()

static fib_path_t* fib_path_get ( fib_node_index_t  index)
static

Definition at line 439 of file fib_path.c.

+ Here is the caller graph for this function:

◆ fib_path_get_adj()

adj_index_t fib_path_get_adj ( fib_node_index_t  path_index)

Definition at line 2230 of file fib_path.c.

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

◆ fib_path_get_index()

static fib_node_index_t fib_path_get_index ( fib_path_t path)
static

Definition at line 445 of file fib_path.c.

+ Here is the caller graph for this function:

◆ fib_path_get_node()

static fib_node_t* fib_path_get_node ( fib_node_index_t  index)
static

Definition at line 451 of file fib_path.c.

+ Here is the call graph for this function:

◆ fib_path_get_preference()

u16 fib_path_get_preference ( fib_node_index_t  path_index)

Definition at line 2256 of file fib_path.c.

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

◆ fib_path_get_proto()

dpo_proto_t fib_path_get_proto ( fib_node_index_t  path_index)

Definition at line 2790 of file fib_path.c.

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

◆ fib_path_get_resolving_index()

index_t fib_path_get_resolving_index ( fib_node_index_t  path_index)

Definition at line 2198 of file fib_path.c.

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

◆ fib_path_get_resolving_interface()

u32 fib_path_get_resolving_interface ( fib_node_index_t  path_index)

Definition at line 2162 of file fib_path.c.

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

◆ fib_path_get_rpf_id()

u32 fib_path_get_rpf_id ( fib_node_index_t  path_index)

Definition at line 2268 of file fib_path.c.

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

◆ fib_path_get_weight()

u16 fib_path_get_weight ( fib_node_index_t  path_index)

Definition at line 2244 of file fib_path.c.

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

◆ fib_path_hash()

uword fib_path_hash ( fib_node_index_t  path_index)

Definition at line 1539 of file fib_path.c.

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

◆ fib_path_is_deag()

int fib_path_is_deag ( fib_node_index_t  path_index)

Definition at line 2673 of file fib_path.c.

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

◆ fib_path_is_exclusive()

int fib_path_is_exclusive ( fib_node_index_t  path_index)

Definition at line 2663 of file fib_path.c.

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

◆ fib_path_is_looped()

int fib_path_is_looped ( fib_node_index_t  path_index)

Definition at line 2696 of file fib_path.c.

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

◆ fib_path_is_permanent_drop()

static int fib_path_is_permanent_drop ( fib_path_t path)
static

Definition at line 889 of file fib_path.c.

+ Here is the caller graph for this function:

◆ fib_path_is_recursive_constrained()

int fib_path_is_recursive_constrained ( fib_node_index_t  path_index)

Definition at line 2651 of file fib_path.c.

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

◆ fib_path_is_resolved()

int fib_path_is_resolved ( fib_node_index_t  path_index)

Definition at line 2683 of file fib_path.c.

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

◆ fib_path_last_lock_gone()

static void fib_path_last_lock_gone ( fib_node_t node)
static

Definition at line 643 of file fib_path.c.

◆ fib_path_memory_show()

static void fib_path_memory_show ( void  )
static

Definition at line 1232 of file fib_path.c.

+ Here is the call graph for this function:

◆ fib_path_module_init()

void fib_path_module_init ( void  )

Definition at line 2800 of file fib_path.c.

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

◆ fib_path_recursive_adj_update()

static void fib_path_recursive_adj_update ( fib_path_t path,
fib_forward_chain_type_t  fct,
dpo_id_t dpo 
)
static

Definition at line 759 of file fib_path.c.

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

◆ fib_path_recursive_loop_detect()

int fib_path_recursive_loop_detect ( fib_node_index_t  path_index,
fib_node_index_t **  entry_indicies 
)

Definition at line 1813 of file fib_path.c.

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

◆ fib_path_resolve()

int fib_path_resolve ( fib_node_index_t  path_index)

Definition at line 1911 of file fib_path.c.

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

◆ fib_path_route_flags_to_cfg_flags()

static fib_path_cfg_flags_t fib_path_route_flags_to_cfg_flags ( const fib_route_path_t rpath)
static

Definition at line 1251 of file fib_path.c.

+ Here is the caller graph for this function:

◆ fib_path_stack_mpls_disp()

void fib_path_stack_mpls_disp ( fib_node_index_t  path_index,
dpo_proto_t  payload_proto,
fib_mpls_lsp_mode_t  mode,
dpo_id_t dpo 
)

Definition at line 2358 of file fib_path.c.

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

◆ fib_path_to_chain_type()

static fib_forward_chain_type_t fib_path_to_chain_type ( const fib_path_t path)
static

Definition at line 971 of file fib_path.c.

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

◆ fib_path_unresolve()

static void fib_path_unresolve ( fib_path_t path)
static

Definition at line 901 of file fib_path.c.

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

◆ format_fib_path()

u8* format_fib_path ( u8 s,
va_list *  args 
)

Definition at line 464 of file fib_path.c.

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

◆ show_fib_path_command()

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

Definition at line 2807 of file fib_path.c.

+ Here is the call graph for this function:

Variable Documentation

◆ fib_path_cfg_attribute_names

const char* fib_path_cfg_attribute_names[] = FIB_PATH_CFG_ATTRIBUTES
static

Definition at line 414 of file fib_path.c.

◆ fib_path_logger

vlib_log_class_t fib_path_logger

the logger

Definition at line 424 of file fib_path.c.

◆ fib_path_oper_attribute_names

const char* fib_path_oper_attribute_names[] = FIB_PATH_OPER_ATTRIBUTES
static

Definition at line 413 of file fib_path.c.

◆ fib_path_pool

fib_path_t* fib_path_pool
static

Definition at line 419 of file fib_path.c.

◆ fib_path_type_names

const char* fib_path_type_names[] = FIB_PATH_TYPES
static

Definition at line 412 of file fib_path.c.

◆ fib_path_vft

const fib_node_vft_t fib_path_vft
static
Initial value:
= {
.fnv_get = fib_path_get_node,
.fnv_last_lock = fib_path_last_lock_gone,
.fnv_back_walk = fib_path_back_walk_notify,
.fnv_mem_show = fib_path_memory_show,
}
static void fib_path_last_lock_gone(fib_node_t *node)
Definition: fib_path.c:643
static void fib_path_memory_show(void)
Definition: fib_path.c:1232
static fib_node_back_walk_rc_t fib_path_back_walk_notify(fib_node_t *node, fib_node_back_walk_ctx_t *ctx)
Definition: fib_path.c:997
static fib_node_t * fib_path_get_node(fib_node_index_t index)
Definition: fib_path.c:451

Definition at line 1243 of file fib_path.c.

◆ show_fib_path

vlib_cli_command_t show_fib_path
static
Initial value:
= {
.path = "show fib paths",
.function = show_fib_path_command,
.short_help = "show fib paths",
}
static clib_error_t * show_fib_path_command(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: fib_path.c:2807

(constructor) VLIB_CLI_COMMAND (show_fib_path)

Definition at line 2847 of file fib_path.c.