FD.io VPP  v17.01.1-3-gc6833f8
Vector Packet Processing
ip6_fib.c File Reference
+ Include dependency graph for ip6_fib.c:

Go to the source code of this file.

Data Structures

struct  ip6_fib_show_ctx_t_
 
struct  count_routes_in_fib_at_prefix_length_arg_t
 

Typedefs

typedef struct ip6_fib_show_ctx_t_ ip6_fib_show_ctx_t
 

Functions

static void vnet_ip6_fib_init (u32 fib_index)
 
static u32 create_fib_with_table_id (u32 table_id)
 
u32 ip6_fib_table_find_or_create_and_lock (u32 table_id)
 Get or create an IPv6 fib. More...
 
u32 ip6_fib_table_create_and_lock (void)
 
void ip6_fib_table_destroy (u32 fib_index)
 
fib_node_index_t ip6_fib_table_lookup (u32 fib_index, const ip6_address_t *addr, u32 len)
 
fib_node_index_t ip6_fib_table_lookup_exact_match (u32 fib_index, const ip6_address_t *addr, u32 len)
 
static void compute_prefix_lengths_in_search_order (ip6_fib_table_instance_t *table)
 
void ip6_fib_table_entry_remove (u32 fib_index, const ip6_address_t *addr, u32 len)
 
void ip6_fib_table_entry_insert (u32 fib_index, const ip6_address_t *addr, u32 len, fib_node_index_t fib_entry_index)
 
u32 ip6_fib_table_fwding_lookup (ip6_main_t *im, u32 fib_index, const ip6_address_t *dst)
 
u32 ip6_fib_table_fwding_lookup_with_if_index (ip6_main_t *im, u32 sw_if_index, const ip6_address_t *dst)
 
flow_hash_config_t ip6_fib_table_get_flow_hash_config (u32 fib_index)
 
u32 ip6_fib_table_get_index_for_sw_if_index (u32 sw_if_index)
 
void ip6_fib_table_fwding_dpo_update (u32 fib_index, const ip6_address_t *addr, u32 len, const dpo_id_t *dpo)
 
void ip6_fib_table_fwding_dpo_remove (u32 fib_index, const ip6_address_t *addr, u32 len, const dpo_id_t *dpo)
 
static void ip6_fib_table_collect_entries (clib_bihash_kv_24_8_t *kvp, void *arg)
 
static void ip6_fib_table_show_all (ip6_fib_t *fib, vlib_main_t *vm)
 
static void ip6_fib_table_show_one (ip6_fib_t *fib, vlib_main_t *vm, ip6_address_t *address, u32 mask_len)
 
static void count_routes_in_fib_at_prefix_length (BVT(clib_bihash_kv)*kvp, void *arg)
 
static clib_error_tip6_show_fib (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 

Variables

static vlib_cli_command_t ip6_show_fib_command
 (constructor) VLIB_CLI_COMMAND (ip6_show_fib_command) More...
 

Typedef Documentation

Function Documentation

static void compute_prefix_lengths_in_search_order ( ip6_fib_table_instance_t table)
static

Definition at line 318 of file ip6_fib.c.

+ Here is the caller graph for this function:

static void count_routes_in_fib_at_prefix_length ( BVT(clib_bihash_kv)*  kvp,
void *  arg 
)
static

Definition at line 584 of file ip6_fib.c.

static u32 create_fib_with_table_id ( u32  table_id)
static

Definition at line 106 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ip6_fib_table_collect_entries ( clib_bihash_kv_24_8_t kvp,
void *  arg 
)
static

Definition at line 527 of file ip6_fib.c.

+ Here is the caller graph for this function:

u32 ip6_fib_table_create_and_lock ( void  )

Definition at line 148 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ip6_fib_table_destroy ( u32  fib_index)

Definition at line 154 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ip6_fib_table_entry_insert ( u32  fib_index,
const ip6_address_t addr,
u32  len,
fib_node_index_t  fib_entry_index 
)

Definition at line 362 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ip6_fib_table_entry_remove ( u32  fib_index,
const ip6_address_t addr,
u32  len 
)

Definition at line 331 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 ip6_fib_table_find_or_create_and_lock ( u32  table_id)

Get or create an IPv6 fib.

Get or create an IPv4 fib with the provided table ID.

Parameters
imip4_main pointer.
table_idWhen set to ~0, an arbitrary and unused fib ID is picked and can be retrieved with ret->table_id. Otherwise, the fib ID to be used to retrieve or create the desired fib.
Returns
A pointer to the retrieved or created fib.

Definition at line 134 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ip6_fib_table_fwding_dpo_remove ( u32  fib_index,
const ip6_address_t addr,
u32  len,
const dpo_id_t dpo 
)

Definition at line 489 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ip6_fib_table_fwding_dpo_update ( u32  fib_index,
const ip6_address_t addr,
u32  len,
const dpo_id_t dpo 
)

Definition at line 459 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 ip6_fib_table_fwding_lookup ( ip6_main_t im,
u32  fib_index,
const ip6_address_t dst 
)

Definition at line 392 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 ip6_fib_table_fwding_lookup_with_if_index ( ip6_main_t im,
u32  sw_if_index,
const ip6_address_t dst 
)

Definition at line 430 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

flow_hash_config_t ip6_fib_table_get_flow_hash_config ( u32  fib_index)

Definition at line 439 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 ip6_fib_table_get_index_for_sw_if_index ( u32  sw_if_index)

Definition at line 445 of file ip6_fib.c.

+ Here is the caller graph for this function:

fib_node_index_t ip6_fib_table_lookup ( u32  fib_index,
const ip6_address_t addr,
u32  len 
)

Definition at line 246 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

fib_node_index_t ip6_fib_table_lookup_exact_match ( u32  fib_index,
const ip6_address_t addr,
u32  len 
)

Definition at line 292 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ip6_fib_table_show_all ( ip6_fib_t fib,
vlib_main_t vm 
)
static

Definition at line 539 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void ip6_fib_table_show_one ( ip6_fib_t fib,
vlib_main_t vm,
ip6_address_t address,
u32  mask_len 
)
static

Definition at line 567 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 598 of file ip6_fib.c.

+ Here is the call graph for this function:

static void vnet_ip6_fib_init ( u32  fib_index)
static

Definition at line 20 of file ip6_fib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

vlib_cli_command_t ip6_show_fib_command
static
Initial value:
= {
.path = "show ip6 fib",
.short_help = "show ip6 fib [summary] [table <table-id>] [index <fib-id>] [<ip6-addr>[/<width>]]",
.function = ip6_show_fib,
}
static clib_error_t * ip6_show_fib(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: ip6_fib.c:598

(constructor) VLIB_CLI_COMMAND (ip6_show_fib_command)

Definition at line 779 of file ip6_fib.c.