FD.io VPP
v17.01-9-ge7dcee4
Vector Packet Processing
|
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) |
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 void | 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_t * | lisp_gpe_mk_fib_paths (const lisp_fwd_path_t *paths) |
static void | 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 | create_fib_entries (lisp_gpe_fwd_entry_t *lfe) |
static void | delete_fib_entries (lisp_gpe_fwd_entry_t *lfe) |
static void | gid_to_dp_address (gid_address_t *g, dp_address_t *d) |
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 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) |
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 a 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... | |
static lisp_gpe_fwd_entry_t * | lisp_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_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. 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... | |
void | vnet_lisp_gpe_fwd_entry_flush (void) |
Flush all the forwrding entries. More... | |
static u8 * | format_lisp_fwd_path (u8 *s, va_list ap) |
static u8 * | format_lisp_gpe_fwd_entry (u8 *s, va_list ap) |
static clib_error_t * | lisp_gpe_fwd_entry_show (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
clib_error_t * | lisp_gpe_fwd_entry_init (vlib_main_t *vm) |
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... | |
#define L2_FIB_DEFAULT_HASH_MEMORY_SIZE (32<<20) |
Definition at line 602 of file lisp_gpe_fwd_entry.c.
#define L2_FIB_DEFAULT_HASH_NUM_BUCKETS (64 * 1024) |
Definition at line 601 of file lisp_gpe_fwd_entry.c.
Enumerator | |
---|---|
LISP_GPE_FWD_ENTRY_FORMAT_NONE | |
LISP_GPE_FWD_ENTRY_FORMAT_DETAIL |
Definition at line 925 of file lisp_gpe_fwd_entry.c.
|
static |
Add/Delete LISP IP forwarding entry.
creation of forwarding entries for IP LISP overlay:
[in] | lgm | Reference to lisp_gpe_main_t. |
[in] | a | Parameters for building the forwarding entry. |
Definition at line 425 of file lisp_gpe_fwd_entry.c.
|
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.
[in] | lgm | Reference to lisp_gpe_main_t. |
[in] | a | Parameters for building the forwarding entry. |
Definition at line 714 of file lisp_gpe_fwd_entry.c.
|
static |
Definition at line 283 of file lisp_gpe_fwd_entry.c.
|
static |
Add/Delete LISP IP forwarding entry.
removal of forwarding entries for IP LISP overlay:
[in] | lgm | Reference to lisp_gpe_main_t. |
[in] | a | Parameters for building the forwarding entry. |
Definition at line 500 of file lisp_gpe_fwd_entry.c.
|
static |
Definition at line 468 of file lisp_gpe_fwd_entry.c.
|
static |
Delete LISP L2 forwarding entry.
Coordinates the removal of forwarding entries for L2 LISP overlay:
[in] | lgm | Reference to lisp_gpe_main_t. |
[in] | a | Parameters for building the forwarding entry. |
Definition at line 657 of file lisp_gpe_fwd_entry.c.
|
static |
Definition at line 623 of file lisp_gpe_fwd_entry.c.
|
static |
Definition at line 325 of file lisp_gpe_fwd_entry.c.
|
static |
Definition at line 351 of file lisp_gpe_fwd_entry.c.
Definition at line 912 of file lisp_gpe_fwd_entry.c.
Definition at line 933 of file lisp_gpe_fwd_entry.c.
|
static |
Definition at line 333 of file lisp_gpe_fwd_entry.c.
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.
[in] | dst_table_id | Destination FIB Table-ID |
[in] | dst_prefix | Destination IP prefix. |
Definition at line 42 of file lisp_gpe_fwd_entry.c.
|
static |
Del route to IP4 or IP6 SD FIB.
Remove routes from both destination and source FIBs.
[in] | src_fib_index | The index/ID of the SRC FIB |
[in] | src_prefix | Source IP prefix. |
[in] | dst_fib_index | The index/ID of the DST FIB |
[in] | dst_prefix | Destination IP prefix. |
Definition at line 139 of file lisp_gpe_fwd_entry.c.
|
static |
Add route to IP4 or IP6 SRC FIB.
Adds a route to in the LISP SRC FIB for the tunnel.
[in] | src_fib_index | The index/ID of the SRC FIB |
[in] | src_prefix | Source IP prefix. |
[in] | paths | The paths from which to construct the load balance |
Definition at line 264 of file lisp_gpe_fwd_entry.c.
|
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.
[in] | src_fib_index | The index/ID of the SRC FIB |
[in] | src_prefix | Source IP prefix. |
[in] | src_dpo | The DPO the route will link to. |
Definition at line 197 of file lisp_gpe_fwd_entry.c.
|
static |
Definition at line 605 of file lisp_gpe_fwd_entry.c.
|
static |
Function invoked during a backwalk of the FIB graph.
Definition at line 802 of file lisp_gpe_fwd_entry.c.
|
static |
An indication from the graph that the last lock has gone.
Definition at line 828 of file lisp_gpe_fwd_entry.c.
|
static |
conver from the embedded fib_node_t struct to the LSIP entry
Definition at line 791 of file lisp_gpe_fwd_entry.c.
|
static |
Get a fib_node_t struct from the index of a LISP fwd entry.
Definition at line 814 of file lisp_gpe_fwd_entry.c.
clib_error_t* lisp_gpe_fwd_entry_init | ( | vlib_main_t * | vm | ) |
|
static |
Definition at line 391 of file lisp_gpe_fwd_entry.c.
|
static |
|
static |
|
static |
Construct and insert the forwarding information used by a L2 entry.
Definition at line 677 of file lisp_gpe_fwd_entry.c.
|
static |
Definition at line 223 of file lisp_gpe_fwd_entry.c.
|
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.
[in] | lgm | Reference to lisp_gpe_main_t. |
[in] | bd_index | Bridge domain index. |
[in] | src_mac | Source mac address. |
[in] | dst_mac | Destination mac address. |
[in] | val | Value to add. |
[in] | is_add | Add/del flag. |
Definition at line 579 of file lisp_gpe_fwd_entry.c.
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).
[in] | lgm | Reference to lisp_gpe_main_t. |
[in] | bd_index | Bridge domain index. |
[in] | src_mac | Source mac address. |
[in] | dst_mac | Destination mac address. |
Definition at line 540 of file lisp_gpe_fwd_entry.c.
|
static |
Definition at line 518 of file lisp_gpe_fwd_entry.c.
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.
[in] | a | Forwarding entry parameters. |
[out] | hw_if_indexp | NOT USED |
Definition at line 854 of file lisp_gpe_fwd_entry.c.
void vnet_lisp_gpe_fwd_entry_flush | ( | void | ) |
Flush all the forwrding entries.
Definition at line 890 of file lisp_gpe_fwd_entry.c.
|
static |
Virtual function table to register with FIB for the LISP type.
Definition at line 837 of file lisp_gpe_fwd_entry.c.
|
static |
(constructor) VLIB_CLI_COMMAND (lisp_gpe_fwd_entry_show_command)
Definition at line 1022 of file lisp_gpe_fwd_entry.c.