FD.io VPP  v19.04.4-rc0-5-ge88582fac
Vector Packet Processing
lisp_gpe_fwd_entry.c File Reference
+ Include dependency graph for lisp_gpe_fwd_entry.c:

Go to the source code of this file.

Macros

#define L2_FIB_DEFAULT_HASH_NUM_BUCKETS   (64 * 1024)
 
#define L2_FIB_DEFAULT_HASH_MEMORY_SIZE   (32<<20)
 
#define NSH_FIB_DEFAULT_HASH_NUM_BUCKETS   (64 * 1024)
 
#define NSH_FIB_DEFAULT_HASH_MEMORY_SIZE   (32<<20)
 

Typedefs

typedef enum lisp_gpe_fwd_entry_format_flag_t_ lisp_gpe_fwd_entry_format_flag_t
 

Enumerations

enum  lisp_gpe_fwd_entry_format_flag_t_ { LISP_GPE_FWD_ENTRY_FORMAT_NONE = (0 << 0), LISP_GPE_FWD_ENTRY_FORMAT_DETAIL = (1 << 1) }
 

Functions

static u32 ip_dst_fib_add_route (u32 dst_fib_index, const ip_prefix_t *dst_prefix)
 Add route to IP4 or IP6 Destination FIB. More...
 
static void ip_src_dst_fib_del_route (u32 src_fib_index, const ip_prefix_t *src_prefix, u32 dst_fib_index, const ip_prefix_t *dst_prefix)
 Del route to IP4 or IP6 SD FIB. More...
 
static fib_node_index_t ip_src_fib_add_route_w_dpo (u32 src_fib_index, const ip_prefix_t *src_prefix, const dpo_id_t *src_dpo)
 Add route to IP4 or IP6 SRC FIB. More...
 
static fib_route_path_tlisp_gpe_mk_fib_paths (const lisp_fwd_path_t *paths)
 
static fib_node_index_t ip_src_fib_add_route (u32 src_fib_index, const ip_prefix_t *src_prefix, const lisp_fwd_path_t *paths)
 Add route to IP4 or IP6 SRC FIB. More...
 
static void gpe_native_fwd_add_del_lfe (lisp_gpe_fwd_entry_t *lfe, u8 is_add)
 
static index_t create_fib_entries (lisp_gpe_fwd_entry_t *lfe)
 
static void delete_fib_entries (lisp_gpe_fwd_entry_t *lfe)
 
static lisp_gpe_fwd_entry_tfind_fwd_entry (lisp_gpe_main_t *lgm, vnet_lisp_gpe_add_del_fwd_entry_args_t *a, lisp_gpe_fwd_entry_key_t *key)
 
static int lisp_gpe_fwd_entry_path_sort (void *a1, void *a2)
 
static void lisp_gpe_fwd_entry_mk_paths (lisp_gpe_fwd_entry_t *lfe, vnet_lisp_gpe_add_del_fwd_entry_args_t *a)
 
void vnet_lisp_gpe_add_fwd_counters (vnet_lisp_gpe_add_del_fwd_entry_args_t *a, u32 fwd_entry_index)
 
static int add_ip_fwd_entry (lisp_gpe_main_t *lgm, vnet_lisp_gpe_add_del_fwd_entry_args_t *a)
 Add/Delete LISP IP forwarding entry. More...
 
static void del_ip_fwd_entry_i (lisp_gpe_main_t *lgm, lisp_gpe_fwd_entry_t *lfe)
 
static int del_ip_fwd_entry (lisp_gpe_main_t *lgm, vnet_lisp_gpe_add_del_fwd_entry_args_t *a)
 Add/Delete LISP IP forwarding entry. More...
 
static void make_mac_fib_key (BVT(clib_bihash_kv) *kv, u16 bd_index, u8 src_mac[6], u8 dst_mac[6])
 
index_t lisp_l2_fib_lookup (lisp_gpe_main_t *lgm, u16 bd_index, u8 src_mac[6], u8 dst_mac[6])
 Lookup L2 SD FIB entry. More...
 
static u32 lisp_l2_fib_add_del_entry (u16 bd_index, u8 src_mac[6], u8 dst_mac[6], const dpo_id_t *dpo, u8 is_add)
 Add/del L2 SD FIB entry. More...
 
static void l2_fib_init (lisp_gpe_main_t *lgm)
 
static void del_l2_fwd_entry_i (lisp_gpe_main_t *lgm, lisp_gpe_fwd_entry_t *lfe)
 
static int del_l2_fwd_entry (lisp_gpe_main_t *lgm, vnet_lisp_gpe_add_del_fwd_entry_args_t *a)
 Delete LISP L2 forwarding entry. More...
 
static void lisp_gpe_l2_update_fwding (lisp_gpe_fwd_entry_t *lfe)
 Construct and insert the forwarding information used by an L2 entry. More...
 
static int add_l2_fwd_entry (lisp_gpe_main_t *lgm, vnet_lisp_gpe_add_del_fwd_entry_args_t *a)
 Add LISP L2 forwarding entry. More...
 
const dpo_id_tlisp_nsh_fib_lookup (lisp_gpe_main_t *lgm, u32 spi_si_net_order)
 Lookup NSH SD FIB entry. More...
 
static u32 lisp_nsh_fib_add_del_entry (u32 spi_si_host_order, u32 lfei, u8 is_add)
 Add/del NSH FIB entry. More...
 
static void nsh_fib_init (lisp_gpe_main_t *lgm)
 
static void del_nsh_fwd_entry_i (lisp_gpe_main_t *lgm, lisp_gpe_fwd_entry_t *lfe)
 
static int del_nsh_fwd_entry (lisp_gpe_main_t *lgm, vnet_lisp_gpe_add_del_fwd_entry_args_t *a)
 Delete LISP NSH forwarding entry. More...
 
static void lisp_gpe_nsh_update_fwding (lisp_gpe_fwd_entry_t *lfe)
 Construct and insert the forwarding information used by an NSH entry. More...
 
static int add_nsh_fwd_entry (lisp_gpe_main_t *lgm, vnet_lisp_gpe_add_del_fwd_entry_args_t *a)
 Add LISP NSH forwarding entry. More...
 
static lisp_gpe_fwd_entry_tlisp_gpe_fwd_entry_from_fib_node (fib_node_t *node)
 conver from the embedded fib_node_t struct to the LSIP entry More...
 
static fib_node_back_walk_rc_t lisp_gpe_fib_node_back_walk (fib_node_t *node, fib_node_back_walk_ctx_t *ctx)
 Function invoked during a backwalk of the FIB graph. More...
 
static fib_node_tlisp_gpe_fwd_entry_get_fib_node (fib_node_index_t index)
 Get a fib_node_t struct from the index of a LISP fwd entry. More...
 
static void lisp_gpe_fwd_entry_fib_node_last_lock_gone (fib_node_t *node)
 An indication from the graph that the last lock has gone. More...
 
int vnet_lisp_gpe_add_del_fwd_entry (vnet_lisp_gpe_add_del_fwd_entry_args_t *a, u32 *hw_if_indexp)
 Forwarding entry create/remove dispatcher. More...
 
int vnet_lisp_flush_stats (void)
 
static void lisp_del_adj_stats (lisp_gpe_main_t *lgm, u32 fwd_entry_index, u32 ti)
 
void vnet_lisp_gpe_del_fwd_counters (vnet_lisp_gpe_add_del_fwd_entry_args_t *a, u32 fwd_entry_index)
 
void vnet_lisp_gpe_fwd_entry_flush (void)
 Flush all the forwrding entries. More...
 
static u8format_lisp_fwd_path (u8 *s, va_list *ap)
 
static u8format_lisp_gpe_fwd_entry (u8 *s, va_list *ap)
 
static clib_error_tlisp_gpe_fwd_entry_show (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
clib_error_tlisp_gpe_fwd_entry_init (vlib_main_t *vm)
 
u32vnet_lisp_gpe_get_fwd_entry_vnis (void)
 
lisp_api_gpe_fwd_entry_tvnet_lisp_gpe_fwd_entries_get_by_vni (u32 vni)
 
int vnet_lisp_gpe_get_fwd_stats (vnet_lisp_gpe_add_del_fwd_entry_args_t *a, vlib_counter_t *c)
 

Variables

static const fib_node_vft_t lisp_fwd_vft
 Virtual function table to register with FIB for the LISP type. More...
 
static vlib_cli_command_t lisp_gpe_fwd_entry_show_command
 (constructor) VLIB_CLI_COMMAND (lisp_gpe_fwd_entry_show_command) More...
 

Macro Definition Documentation

◆ L2_FIB_DEFAULT_HASH_MEMORY_SIZE

#define L2_FIB_DEFAULT_HASH_MEMORY_SIZE   (32<<20)

Definition at line 706 of file lisp_gpe_fwd_entry.c.

◆ L2_FIB_DEFAULT_HASH_NUM_BUCKETS

#define L2_FIB_DEFAULT_HASH_NUM_BUCKETS   (64 * 1024)

Definition at line 705 of file lisp_gpe_fwd_entry.c.

◆ NSH_FIB_DEFAULT_HASH_MEMORY_SIZE

#define NSH_FIB_DEFAULT_HASH_MEMORY_SIZE   (32<<20)

Definition at line 972 of file lisp_gpe_fwd_entry.c.

◆ NSH_FIB_DEFAULT_HASH_NUM_BUCKETS

#define NSH_FIB_DEFAULT_HASH_NUM_BUCKETS   (64 * 1024)

Definition at line 971 of file lisp_gpe_fwd_entry.c.

Typedef Documentation

◆ lisp_gpe_fwd_entry_format_flag_t

Enumeration Type Documentation

◆ lisp_gpe_fwd_entry_format_flag_t_

Enumerator
LISP_GPE_FWD_ENTRY_FORMAT_NONE 
LISP_GPE_FWD_ENTRY_FORMAT_DETAIL 

Definition at line 1392 of file lisp_gpe_fwd_entry.c.

Function Documentation

◆ add_ip_fwd_entry()

static int add_ip_fwd_entry ( lisp_gpe_main_t lgm,
vnet_lisp_gpe_add_del_fwd_entry_args_t a 
)
static

Add/Delete LISP IP forwarding entry.

creation of forwarding entries for IP LISP overlay:

Parameters
[in]lgmReference to lisp_gpe_main_t.
[in]aParameters for building the forwarding entry.
Returns
0 on success.

Definition at line 520 of file lisp_gpe_fwd_entry.c.

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

◆ add_l2_fwd_entry()

static int add_l2_fwd_entry ( lisp_gpe_main_t lgm,
vnet_lisp_gpe_add_del_fwd_entry_args_t a 
)
static

Add LISP L2 forwarding entry.

Coordinates the creation of forwarding entries for L2 LISP overlay: creates lisp-gpe tunnel and injects new entry in Source/Dest L2 FIB.

Parameters
[in]lgmReference to lisp_gpe_main_t.
[in]aParameters for building the forwarding entry.
Returns
0 on success.

Definition at line 829 of file lisp_gpe_fwd_entry.c.

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

◆ add_nsh_fwd_entry()

static int add_nsh_fwd_entry ( lisp_gpe_main_t lgm,
vnet_lisp_gpe_add_del_fwd_entry_args_t a 
)
static

Add LISP NSH forwarding entry.

Coordinates the creation of forwarding entries for L2 LISP overlay: creates lisp-gpe tunnel and injects new entry in Source/Dest L2 FIB.

Parameters
[in]lgmReference to lisp_gpe_main_t.
[in]aParameters for building the forwarding entry.
Returns
0 on success.

Definition at line 1113 of file lisp_gpe_fwd_entry.c.

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

◆ create_fib_entries()

static index_t create_fib_entries ( lisp_gpe_fwd_entry_t lfe)
static

Definition at line 323 of file lisp_gpe_fwd_entry.c.

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

◆ del_ip_fwd_entry()

static int del_ip_fwd_entry ( lisp_gpe_main_t lgm,
vnet_lisp_gpe_add_del_fwd_entry_args_t a 
)
static

Add/Delete LISP IP forwarding entry.

removal of forwarding entries for IP LISP overlay:

Parameters
[in]lgmReference to lisp_gpe_main_t.
[in]aParameters for building the forwarding entry.
Returns
0 on success.

Definition at line 604 of file lisp_gpe_fwd_entry.c.

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

◆ del_ip_fwd_entry_i()

static void del_ip_fwd_entry_i ( lisp_gpe_main_t lgm,
lisp_gpe_fwd_entry_t lfe 
)
static

Definition at line 569 of file lisp_gpe_fwd_entry.c.

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

◆ del_l2_fwd_entry()

static int del_l2_fwd_entry ( lisp_gpe_main_t lgm,
vnet_lisp_gpe_add_del_fwd_entry_args_t a 
)
static

Delete LISP L2 forwarding entry.

Coordinates the removal of forwarding entries for L2 LISP overlay:

Parameters
[in]lgmReference to lisp_gpe_main_t.
[in]aParameters for building the forwarding entry.
Returns
0 on success.

Definition at line 761 of file lisp_gpe_fwd_entry.c.

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

◆ del_l2_fwd_entry_i()

static void del_l2_fwd_entry_i ( lisp_gpe_main_t lgm,
lisp_gpe_fwd_entry_t lfe 
)
static

Definition at line 727 of file lisp_gpe_fwd_entry.c.

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

◆ del_nsh_fwd_entry()

static int del_nsh_fwd_entry ( lisp_gpe_main_t lgm,
vnet_lisp_gpe_add_del_fwd_entry_args_t a 
)
static

Delete LISP NSH forwarding entry.

Coordinates the removal of forwarding entries for NSH LISP overlay:

Parameters
[in]lgmReference to lisp_gpe_main_t.
[in]aParameters for building the forwarding entry.
Returns
0 on success.

Definition at line 1021 of file lisp_gpe_fwd_entry.c.

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

◆ del_nsh_fwd_entry_i()

static void del_nsh_fwd_entry_i ( lisp_gpe_main_t lgm,
lisp_gpe_fwd_entry_t lfe 
)
static

Definition at line 988 of file lisp_gpe_fwd_entry.c.

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

◆ delete_fib_entries()

static void delete_fib_entries ( lisp_gpe_fwd_entry_t lfe)
static

Definition at line 388 of file lisp_gpe_fwd_entry.c.

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

◆ find_fwd_entry()

static lisp_gpe_fwd_entry_t* find_fwd_entry ( lisp_gpe_main_t lgm,
vnet_lisp_gpe_add_del_fwd_entry_args_t a,
lisp_gpe_fwd_entry_key_t key 
)
static

Definition at line 406 of file lisp_gpe_fwd_entry.c.

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

◆ format_lisp_fwd_path()

static u8* format_lisp_fwd_path ( u8 s,
va_list *  ap 
)
static

Definition at line 1379 of file lisp_gpe_fwd_entry.c.

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

◆ format_lisp_gpe_fwd_entry()

static u8* format_lisp_gpe_fwd_entry ( u8 s,
va_list *  ap 
)
static

Definition at line 1400 of file lisp_gpe_fwd_entry.c.

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

◆ gpe_native_fwd_add_del_lfe()

static void gpe_native_fwd_add_del_lfe ( lisp_gpe_fwd_entry_t lfe,
u8  is_add 
)
static

Definition at line 292 of file lisp_gpe_fwd_entry.c.

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

◆ ip_dst_fib_add_route()

static u32 ip_dst_fib_add_route ( u32  dst_fib_index,
const ip_prefix_t *  dst_prefix 
)
static

Add route to IP4 or IP6 Destination FIB.

Add a route to the destination FIB that results in the lookup in the SRC FIB. The SRC FIB is created is it does not yet exist.

Parameters
[in]dst_table_idDestination FIB Table-ID
[in]dst_prefixDestination IP prefix.
Returns
src_fib_index The index/ID of the SRC FIB created.

Definition at line 42 of file lisp_gpe_fwd_entry.c.

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

◆ ip_src_dst_fib_del_route()

static void ip_src_dst_fib_del_route ( u32  src_fib_index,
const ip_prefix_t *  src_prefix,
u32  dst_fib_index,
const ip_prefix_t *  dst_prefix 
)
static

Del route to IP4 or IP6 SD FIB.

Remove routes from both destination and source FIBs.

Parameters
[in]src_fib_indexThe index/ID of the SRC FIB
[in]src_prefixSource IP prefix.
[in]dst_fib_indexThe index/ID of the DST FIB
[in]dst_prefixDestination IP prefix.

Definition at line 141 of file lisp_gpe_fwd_entry.c.

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

◆ ip_src_fib_add_route()

static fib_node_index_t ip_src_fib_add_route ( u32  src_fib_index,
const ip_prefix_t *  src_prefix,
const lisp_fwd_path_t paths 
)
static

Add route to IP4 or IP6 SRC FIB.

Adds a route to in the LISP SRC FIB for the tunnel.

Parameters
[in]src_fib_indexThe index/ID of the SRC FIB
[in]src_prefixSource IP prefix.
[in]pathsThe paths from which to construct the load balance

Definition at line 273 of file lisp_gpe_fwd_entry.c.

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

◆ ip_src_fib_add_route_w_dpo()

static fib_node_index_t ip_src_fib_add_route_w_dpo ( u32  src_fib_index,
const ip_prefix_t *  src_prefix,
const dpo_id_t src_dpo 
)
static

Add route to IP4 or IP6 SRC FIB.

Adds a route to in the LISP SRC FIB with the result of the route being the DPO passed.

Parameters
[in]src_fib_indexThe index/ID of the SRC FIB
[in]src_prefixSource IP prefix.
[in]src_dpoThe DPO the route will link to.
Returns
fib index of the inserted prefix

Definition at line 202 of file lisp_gpe_fwd_entry.c.

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

◆ l2_fib_init()

static void l2_fib_init ( lisp_gpe_main_t lgm)
static

Definition at line 709 of file lisp_gpe_fwd_entry.c.

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

◆ lisp_del_adj_stats()

static void lisp_del_adj_stats ( lisp_gpe_main_t lgm,
u32  fwd_entry_index,
u32  ti 
)
static

Definition at line 1302 of file lisp_gpe_fwd_entry.c.

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

◆ lisp_gpe_fib_node_back_walk()

static fib_node_back_walk_rc_t lisp_gpe_fib_node_back_walk ( fib_node_t node,
fib_node_back_walk_ctx_t ctx 
)
static

Function invoked during a backwalk of the FIB graph.

Definition at line 1191 of file lisp_gpe_fwd_entry.c.

+ Here is the call graph for this function:

◆ lisp_gpe_fwd_entry_fib_node_last_lock_gone()

static void lisp_gpe_fwd_entry_fib_node_last_lock_gone ( fib_node_t node)
static

An indication from the graph that the last lock has gone.

Definition at line 1222 of file lisp_gpe_fwd_entry.c.

◆ lisp_gpe_fwd_entry_from_fib_node()

static lisp_gpe_fwd_entry_t* lisp_gpe_fwd_entry_from_fib_node ( fib_node_t node)
static

conver from the embedded fib_node_t struct to the LSIP entry

Definition at line 1180 of file lisp_gpe_fwd_entry.c.

+ Here is the caller graph for this function:

◆ lisp_gpe_fwd_entry_get_fib_node()

static fib_node_t* lisp_gpe_fwd_entry_get_fib_node ( fib_node_index_t  index)
static

Get a fib_node_t struct from the index of a LISP fwd entry.

Definition at line 1208 of file lisp_gpe_fwd_entry.c.

◆ lisp_gpe_fwd_entry_init()

clib_error_t* lisp_gpe_fwd_entry_init ( vlib_main_t vm)

Definition at line 1501 of file lisp_gpe_fwd_entry.c.

+ Here is the call graph for this function:

◆ lisp_gpe_fwd_entry_mk_paths()

static void lisp_gpe_fwd_entry_mk_paths ( lisp_gpe_fwd_entry_t lfe,
vnet_lisp_gpe_add_del_fwd_entry_args_t a 
)
static

Definition at line 446 of file lisp_gpe_fwd_entry.c.

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

◆ lisp_gpe_fwd_entry_path_sort()

static int lisp_gpe_fwd_entry_path_sort ( void *  a1,
void *  a2 
)
static

Definition at line 438 of file lisp_gpe_fwd_entry.c.

+ Here is the caller graph for this function:

◆ lisp_gpe_fwd_entry_show()

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

Definition at line 1450 of file lisp_gpe_fwd_entry.c.

+ Here is the call graph for this function:

◆ lisp_gpe_l2_update_fwding()

static void lisp_gpe_l2_update_fwding ( lisp_gpe_fwd_entry_t lfe)
static

Construct and insert the forwarding information used by an L2 entry.

Definition at line 781 of file lisp_gpe_fwd_entry.c.

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

◆ lisp_gpe_mk_fib_paths()

static fib_route_path_t* lisp_gpe_mk_fib_paths ( const lisp_fwd_path_t paths)
static

Definition at line 231 of file lisp_gpe_fwd_entry.c.

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

◆ lisp_gpe_nsh_update_fwding()

static void lisp_gpe_nsh_update_fwding ( lisp_gpe_fwd_entry_t lfe)
static

Construct and insert the forwarding information used by an NSH entry.

Definition at line 1041 of file lisp_gpe_fwd_entry.c.

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

◆ lisp_l2_fib_add_del_entry()

static u32 lisp_l2_fib_add_del_entry ( u16  bd_index,
u8  src_mac[6],
u8  dst_mac[6],
const dpo_id_t dpo,
u8  is_add 
)
static

Add/del L2 SD FIB entry.

Inserts value in L2 FIB keyed by vni + dest + source. If entry is overwritten the associated value is returned.

Parameters
[in]lgmReference to lisp_gpe_main_t.
[in]bd_indexBridge domain index.
[in]src_macSource mac address.
[in]dst_macDestination mac address.
[in]valValue to add.
[in]is_addAdd/del flag.
Returns
~0 or value of overwritten entry.

Definition at line 683 of file lisp_gpe_fwd_entry.c.

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

◆ lisp_l2_fib_lookup()

index_t lisp_l2_fib_lookup ( lisp_gpe_main_t lgm,
u16  bd_index,
u8  src_mac[6],
u8  dst_mac[6] 
)

Lookup L2 SD FIB entry.

Does a vni + dest + source lookup in the L2 LISP FIB. If the lookup fails it tries a second time with source set to 0 (i.e., a simple dest lookup).

Parameters
[in]lgmReference to lisp_gpe_main_t.
[in]bd_indexBridge domain index.
[in]src_macSource mac address.
[in]dst_macDestination mac address.
Returns
index of mapping matching the lookup key.

Definition at line 644 of file lisp_gpe_fwd_entry.c.

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

◆ lisp_nsh_fib_add_del_entry()

static u32 lisp_nsh_fib_add_del_entry ( u32  spi_si_host_order,
u32  lfei,
u8  is_add 
)
static

Add/del NSH FIB entry.

Inserts value in NSH FIB keyed by SPI+SI. If entry is overwritten the associated value is returned.

Parameters
[in]lgmReference to lisp_gpe_main_t.
[in]spi_siSPI + SI.
[in]dpoLoad balanced mapped to SPI + SI
Returns
~0 or value of overwritten entry.

Definition at line 948 of file lisp_gpe_fwd_entry.c.

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

◆ lisp_nsh_fib_lookup()

const dpo_id_t* lisp_nsh_fib_lookup ( lisp_gpe_main_t lgm,
u32  spi_si_net_order 
)

Lookup NSH SD FIB entry.

Does an SPI+SI lookup in the NSH LISP FIB.

Parameters
[in]lgmReference to lisp_gpe_main_t.
[in]spi_siSPI + SI.
Returns
next node index.

Definition at line 914 of file lisp_gpe_fwd_entry.c.

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

◆ make_mac_fib_key()

static void make_mac_fib_key ( BVT(clib_bihash_kv) *  kv,
u16  bd_index,
u8  src_mac[6],
u8  dst_mac[6] 
)
static

Definition at line 622 of file lisp_gpe_fwd_entry.c.

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

◆ nsh_fib_init()

static void nsh_fib_init ( lisp_gpe_main_t lgm)
static

Definition at line 975 of file lisp_gpe_fwd_entry.c.

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

◆ vnet_lisp_flush_stats()

int vnet_lisp_flush_stats ( void  )

Definition at line 1286 of file lisp_gpe_fwd_entry.c.

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

◆ vnet_lisp_gpe_add_del_fwd_entry()

int vnet_lisp_gpe_add_del_fwd_entry ( vnet_lisp_gpe_add_del_fwd_entry_args_t a,
u32 hw_if_indexp 
)

Forwarding entry create/remove dispatcher.

Calls l2 or l3 forwarding entry add/del function based on input data.

Parameters
[in]aForwarding entry parameters.
[out]hw_if_indexpNOT USED
Returns
0 on success.

Definition at line 1248 of file lisp_gpe_fwd_entry.c.

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

◆ vnet_lisp_gpe_add_fwd_counters()

void vnet_lisp_gpe_add_fwd_counters ( vnet_lisp_gpe_add_del_fwd_entry_args_t a,
u32  fwd_entry_index 
)

Definition at line 470 of file lisp_gpe_fwd_entry.c.

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

◆ vnet_lisp_gpe_del_fwd_counters()

void vnet_lisp_gpe_del_fwd_counters ( vnet_lisp_gpe_add_del_fwd_entry_args_t a,
u32  fwd_entry_index 
)

Definition at line 1327 of file lisp_gpe_fwd_entry.c.

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

◆ vnet_lisp_gpe_fwd_entries_get_by_vni()

lisp_api_gpe_fwd_entry_t* vnet_lisp_gpe_fwd_entries_get_by_vni ( u32  vni)

Definition at line 1535 of file lisp_gpe_fwd_entry.c.

+ Here is the caller graph for this function:

◆ vnet_lisp_gpe_fwd_entry_flush()

void vnet_lisp_gpe_fwd_entry_flush ( void  )

Flush all the forwrding entries.

Definition at line 1354 of file lisp_gpe_fwd_entry.c.

+ Here is the caller graph for this function:

◆ vnet_lisp_gpe_get_fwd_entry_vnis()

u32* vnet_lisp_gpe_get_fwd_entry_vnis ( void  )

Definition at line 1518 of file lisp_gpe_fwd_entry.c.

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

◆ vnet_lisp_gpe_get_fwd_stats()

int vnet_lisp_gpe_get_fwd_stats ( vnet_lisp_gpe_add_del_fwd_entry_args_t a,
vlib_counter_t c 
)

Definition at line 1563 of file lisp_gpe_fwd_entry.c.

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

Variable Documentation

◆ lisp_fwd_vft

const fib_node_vft_t lisp_fwd_vft
static
Initial value:
= {
.fnv_back_walk = lisp_gpe_fib_node_back_walk,
}
static fib_node_t * lisp_gpe_fwd_entry_get_fib_node(fib_node_index_t index)
Get a fib_node_t struct from the index of a LISP fwd entry.
static void lisp_gpe_fwd_entry_fib_node_last_lock_gone(fib_node_t *node)
An indication from the graph that the last lock has gone.
static fib_node_back_walk_rc_t lisp_gpe_fib_node_back_walk(fib_node_t *node, fib_node_back_walk_ctx_t *ctx)
Function invoked during a backwalk of the FIB graph.

Virtual function table to register with FIB for the LISP type.

Definition at line 1231 of file lisp_gpe_fwd_entry.c.

◆ lisp_gpe_fwd_entry_show_command

vlib_cli_command_t lisp_gpe_fwd_entry_show_command
static
Initial value:
= {
.path = "show gpe entry",
.short_help = "show gpe entry vni <vni> vrf <vrf> [leid <leid>] reid <reid>",
}
static clib_error_t * lisp_gpe_fwd_entry_show(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (lisp_gpe_fwd_entry_show_command)

Definition at line 1493 of file lisp_gpe_fwd_entry.c.