FD.io VPP  v18.01.2-1-g9b554f3
Vector Packet Processing
fib_entry_src.c File Reference
+ Include dependency graph for fib_entry_src.c:

Go to the source code of this file.

Data Structures

struct  fib_entry_src_collect_forwarding_ctx_t_
 

Typedefs

typedef struct fib_entry_src_collect_forwarding_ctx_t_ fib_entry_src_collect_forwarding_ctx_t
 

Functions

void fib_entry_src_register (fib_source_t source, const fib_entry_src_vft_t *vft)
 
static int fib_entry_src_cmp_for_sort (void *v1, void *v2)
 
void fib_entry_src_action_init (fib_entry_t *fib_entry, fib_source_t source)
 
static fib_entry_src_tfib_entry_src_find (const fib_entry_t *fib_entry, fib_source_t source, u32 *index)
 
int fib_entry_is_sourced (fib_node_index_t fib_entry_index, fib_source_t source)
 
static fib_entry_src_tfib_entry_src_find_or_create (fib_entry_t *fib_entry, fib_source_t source, u32 *index)
 
void fib_entry_src_action_deinit (fib_entry_t *fib_entry, fib_source_t source)
 
fib_entry_src_cover_res_t fib_entry_src_action_cover_change (fib_entry_t *fib_entry, fib_source_t source)
 
fib_entry_src_cover_res_t fib_entry_src_action_cover_update (fib_entry_t *fib_entry, fib_source_t source)
 
load_balance_flags_t fib_entry_calc_lb_flags (fib_entry_src_collect_forwarding_ctx_t *ctx)
 Determine whether this FIB entry should use a load-balance MAP to support PIC edge fast convergence. More...
 
static int fib_entry_src_valid_out_label (mpls_label_t label)
 
fib_forward_chain_type_t fib_entry_chain_type_fixup (const fib_entry_t *entry, fib_forward_chain_type_t fct)
 Turn the chain type requested by the client into the one they really wanted. More...
 
static dpo_proto_t fib_prefix_get_payload_proto (const fib_prefix_t *pfx)
 
static void fib_entry_src_get_path_forwarding (fib_node_index_t path_index, fib_entry_src_collect_forwarding_ctx_t *ctx)
 
static fib_path_list_walk_rc_t fib_entry_src_collect_forwarding (fib_node_index_t pl_index, fib_node_index_t path_index, void *arg)
 
void fib_entry_src_mk_lb (fib_entry_t *fib_entry, const fib_entry_src_t *esrc, fib_forward_chain_type_t fct, dpo_id_t *dpo_lb)
 
void fib_entry_src_action_install (fib_entry_t *fib_entry, fib_source_t source)
 
void fib_entry_src_action_uninstall (fib_entry_t *fib_entry)
 
static void fib_entry_recursive_loop_detect_i (fib_node_index_t path_list_index)
 
void fib_entry_src_action_activate (fib_entry_t *fib_entry, fib_source_t source)
 
void fib_entry_src_action_deactivate (fib_entry_t *fib_entry, fib_source_t source)
 
static void fib_entry_src_action_fwd_update (const fib_entry_t *fib_entry, fib_source_t source)
 
void fib_entry_src_action_reactivate (fib_entry_t *fib_entry, fib_source_t source)
 
void fib_entry_src_action_installed (const fib_entry_t *fib_entry, fib_source_t source)
 
fib_entry_tfib_entry_src_action_add (fib_entry_t *fib_entry, fib_source_t source, fib_entry_flag_t flags, const dpo_id_t *dpo)
 
fib_entry_tfib_entry_src_action_update (fib_entry_t *fib_entry, fib_source_t source, fib_entry_flag_t flags, const dpo_id_t *dpo)
 
fib_entry_src_flag_t fib_entry_src_action_remove (fib_entry_t *fib_entry, fib_source_t source)
 
static int fib_route_attached_cross_table (const fib_entry_t *fib_entry, const fib_route_path_t *rpath)
 
static int fib_path_is_attached (const fib_route_path_t *rpath)
 
fib_path_list_flags_t fib_entry_src_flags_2_path_list_flags (fib_entry_flag_t eflags)
 
static void fib_entry_flags_update (const fib_entry_t *fib_entry, const fib_route_path_t *rpath, fib_path_list_flags_t *pl_flags, fib_entry_src_t *esrc)
 
fib_entry_tfib_entry_src_action_path_add (fib_entry_t *fib_entry, fib_source_t source, fib_entry_flag_t flags, const fib_route_path_t *rpath)
 
fib_entry_tfib_entry_src_action_path_swap (fib_entry_t *fib_entry, fib_source_t source, fib_entry_flag_t flags, const fib_route_path_t *rpaths)
 
fib_entry_src_flag_t fib_entry_src_action_path_remove (fib_entry_t *fib_entry, fib_source_t source, const fib_route_path_t *rpath)
 
u8fib_entry_src_format (fib_entry_t *fib_entry, fib_source_t source, u8 *s)
 
adj_index_t fib_entry_get_adj_for_source (fib_node_index_t fib_entry_index, fib_source_t source)
 
const int fib_entry_get_dpo_for_source (fib_node_index_t fib_entry_index, fib_source_t source, dpo_id_t *dpo)
 
u32 fib_entry_get_resolving_interface_for_source (fib_node_index_t entry_index, fib_source_t source)
 
fib_entry_flag_t fib_entry_get_flags_for_source (fib_node_index_t entry_index, fib_source_t source)
 
fib_entry_flag_t fib_entry_get_flags_i (const fib_entry_t *fib_entry)
 
void fib_entry_set_source_data (fib_node_index_t fib_entry_index, fib_source_t source, const void *data)
 
const void * fib_entry_get_source_data (fib_node_index_t fib_entry_index, fib_source_t source)
 
void fib_entry_src_module_init (void)
 

Variables

static fib_entry_src_vft_t fib_entry_src_vft [FIB_SOURCE_MAX]
 

Typedef Documentation

Function Documentation

Determine whether this FIB entry should use a load-balance MAP to support PIC edge fast convergence.

We'll use a LB map if the path-list has multiple recursive paths. recursive paths implies BGP, and hence scale.

Definition at line 198 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

fib_forward_chain_type_t fib_entry_chain_type_fixup ( const fib_entry_t entry,
fib_forward_chain_type_t  fct 
)

Turn the chain type requested by the client into the one they really wanted.

Definition at line 226 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void fib_entry_flags_update ( const fib_entry_t fib_entry,
const fib_route_path_t rpath,
fib_path_list_flags_t pl_flags,
fib_entry_src_t esrc 
)
static

Definition at line 1064 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

adj_index_t fib_entry_get_adj_for_source ( fib_node_index_t  fib_entry_index,
fib_source_t  source 
)

Definition at line 1283 of file fib_entry_src.c.

+ Here is the call graph for this function:

const int fib_entry_get_dpo_for_source ( fib_node_index_t  fib_entry_index,
fib_source_t  source,
dpo_id_t dpo 
)

Definition at line 1308 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

fib_entry_flag_t fib_entry_get_flags_for_source ( fib_node_index_t  entry_index,
fib_source_t  source 
)

Definition at line 1359 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

fib_entry_flag_t fib_entry_get_flags_i ( const fib_entry_t fib_entry)

Definition at line 1378 of file fib_entry_src.c.

+ Here is the caller graph for this function:

u32 fib_entry_get_resolving_interface_for_source ( fib_node_index_t  entry_index,
fib_source_t  source 
)

Definition at line 1338 of file fib_entry_src.c.

+ Here is the call graph for this function:

const void* fib_entry_get_source_data ( fib_node_index_t  fib_entry_index,
fib_source_t  source 
)

Definition at line 1419 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int fib_entry_is_sourced ( fib_node_index_t  fib_entry_index,
fib_source_t  source 
)

Definition at line 99 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void fib_entry_recursive_loop_detect_i ( fib_node_index_t  path_list_index)
static

Definition at line 648 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void fib_entry_set_source_data ( fib_node_index_t  fib_entry_index,
fib_source_t  source,
const void *  data 
)

Definition at line 1401 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void fib_entry_src_action_activate ( fib_entry_t fib_entry,
fib_source_t  source 
)

Definition at line 658 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

fib_entry_t* fib_entry_src_action_add ( fib_entry_t fib_entry,
fib_source_t  source,
fib_entry_flag_t  flags,
const dpo_id_t dpo 
)

Definition at line 845 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

fib_entry_src_cover_res_t fib_entry_src_action_cover_change ( fib_entry_t fib_entry,
fib_source_t  source 
)

Definition at line 148 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

fib_entry_src_cover_res_t fib_entry_src_action_cover_update ( fib_entry_t fib_entry,
fib_source_t  source 
)

Definition at line 166 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void fib_entry_src_action_deactivate ( fib_entry_t fib_entry,
fib_source_t  source 
)

Definition at line 712 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void fib_entry_src_action_deinit ( fib_entry_t fib_entry,
fib_source_t  source 
)

Definition at line 127 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void fib_entry_src_action_fwd_update ( const fib_entry_t fib_entry,
fib_source_t  source 
)
static

Definition at line 748 of file fib_entry_src.c.

+ Here is the caller graph for this function:

void fib_entry_src_action_init ( fib_entry_t fib_entry,
fib_source_t  source 
)

Definition at line 49 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void fib_entry_src_action_install ( fib_entry_t fib_entry,
fib_source_t  source 
)

Definition at line 575 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void fib_entry_src_action_installed ( const fib_entry_t fib_entry,
fib_source_t  source 
)

Definition at line 820 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

fib_entry_t* fib_entry_src_action_path_add ( fib_entry_t fib_entry,
fib_source_t  source,
fib_entry_flag_t  flags,
const fib_route_path_t rpath 
)

Definition at line 1104 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

fib_entry_src_flag_t fib_entry_src_action_path_remove ( fib_entry_t fib_entry,
fib_source_t  source,
const fib_route_path_t rpath 
)

Definition at line 1219 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

fib_entry_t* fib_entry_src_action_path_swap ( fib_entry_t fib_entry,
fib_source_t  source,
fib_entry_flag_t  flags,
const fib_route_path_t rpaths 
)

Definition at line 1162 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void fib_entry_src_action_reactivate ( fib_entry_t fib_entry,
fib_source_t  source 
)

Definition at line 765 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

fib_entry_src_flag_t fib_entry_src_action_remove ( fib_entry_t fib_entry,
fib_source_t  source 
)

Definition at line 946 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void fib_entry_src_action_uninstall ( fib_entry_t fib_entry)

Definition at line 628 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

fib_entry_t* fib_entry_src_action_update ( fib_entry_t fib_entry,
fib_source_t  source,
fib_entry_flag_t  flags,
const dpo_id_t dpo 
)

Definition at line 904 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 40 of file fib_entry_src.c.

+ Here is the caller graph for this function:

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

Definition at line 346 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static fib_entry_src_t* fib_entry_src_find ( const fib_entry_t fib_entry,
fib_source_t  source,
u32 index 
)
static

Definition at line 70 of file fib_entry_src.c.

+ Here is the caller graph for this function:

static fib_entry_src_t* fib_entry_src_find_or_create ( fib_entry_t fib_entry,
fib_source_t  source,
u32 index 
)
static

Definition at line 110 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

fib_path_list_flags_t fib_entry_src_flags_2_path_list_flags ( fib_entry_flag_t  eflags)

Definition at line 1043 of file fib_entry_src.c.

+ Here is the caller graph for this function:

u8* fib_entry_src_format ( fib_entry_t fib_entry,
fib_source_t  source,
u8 s 
)

Definition at line 1267 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void fib_entry_src_get_path_forwarding ( fib_node_index_t  path_index,
fib_entry_src_collect_forwarding_ctx_t ctx 
)
static

Definition at line 280 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void fib_entry_src_mk_lb ( fib_entry_t fib_entry,
const fib_entry_src_t esrc,
fib_forward_chain_type_t  fct,
dpo_id_t dpo_lb 
)

Definition at line 436 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void fib_entry_src_module_init ( void  )

Definition at line 1437 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void fib_entry_src_register ( fib_source_t  source,
const fib_entry_src_vft_t vft 
)

Definition at line 33 of file fib_entry_src.c.

+ Here is the caller graph for this function:

static int fib_entry_src_valid_out_label ( mpls_label_t  label)
static

Definition at line 213 of file fib_entry_src.c.

+ Here is the caller graph for this function:

static int fib_path_is_attached ( const fib_route_path_t rpath)
inlinestatic

Definition at line 1024 of file fib_entry_src.c.

+ Here is the caller graph for this function:

static dpo_proto_t fib_prefix_get_payload_proto ( const fib_prefix_t pfx)
static

Definition at line 263 of file fib_entry_src.c.

+ Here is the caller graph for this function:

static int fib_route_attached_cross_table ( const fib_entry_t fib_entry,
const fib_route_path_t rpath 
)
inlinestatic

Definition at line 998 of file fib_entry_src.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

fib_entry_src_vft_t fib_entry_src_vft[FIB_SOURCE_MAX]
static

Definition at line 30 of file fib_entry_src.c.