FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Common utility functions for IPv4 and IPv6 VXLAN GPE tunnels. More...
Go to the source code of this file.
Macros | |
#define | foreach_gpe_copy_field |
#define | foreach_copy_ipv4 |
#define | foreach_copy_ipv6 |
Functions | |
static u8 * | format_decap_next (u8 *s, va_list *args) |
u8 * | format_vxlan_gpe_tunnel (u8 *s, va_list *args) |
Format function for VXLAN GPE tunnel. More... | |
static u8 * | format_vxlan_gpe_name (u8 *s, va_list *args) |
Naming for VXLAN GPE tunnel. More... | |
static clib_error_t * | vxlan_gpe_interface_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags) |
CLI function for VXLAN GPE admin up/down. More... | |
VNET_DEVICE_CLASS (vxlan_gpe_device_class, static) | |
static u8 * | format_vxlan_gpe_header_with_length (u8 *s, va_list *args) |
Formatting function for tracing VXLAN GPE with length. More... | |
VNET_HW_INTERFACE_CLASS (vxlan_gpe_hw_class) | |
static void | vxlan_gpe_tunnel_restack_dpo (vxlan_gpe_tunnel_t *t) |
static vxlan_gpe_tunnel_t * | vxlan_gpe_tunnel_from_fib_node (fib_node_t *node) |
static fib_node_back_walk_rc_t | vxlan_gpe_tunnel_back_walk (fib_node_t *node, fib_node_back_walk_ctx_t *ctx) |
Function definition to backwalk a FIB node - Here we will restack the new dpo of VXLAN_GPE DIP to encap node. More... | |
static fib_node_t * | vxlan_gpe_tunnel_fib_node_get (fib_node_index_t index) |
Function definition to get a FIB node from its index. More... | |
static void | vxlan_gpe_tunnel_last_lock_gone (fib_node_t *node) |
Function definition to inform the FIB node that its last lock has gone. More... | |
int | vxlan4_gpe_rewrite (vxlan_gpe_tunnel_t *t, u32 extension_size, u8 protocol_override, uword encap_next_node) |
Calculate IPv4 VXLAN GPE rewrite header. More... | |
int | vxlan6_gpe_rewrite (vxlan_gpe_tunnel_t *t, u32 extension_size, u8 protocol_override, uword encap_next_node) |
Calculate IPv6 VXLAN GPE rewrite header. More... | |
typedef | CLIB_PACKED (union { struct { fib_node_index_t mfib_entry_index;adj_index_t mcast_adj_index;};u64 as_u64;}) |
static void | mcast_shared_add (ip46_address_t *remote, fib_node_index_t mfei, adj_index_t ai) |
static void | mcast_shared_remove (ip46_address_t *remote) |
int | vnet_vxlan_gpe_add_del_tunnel (vnet_vxlan_gpe_add_del_tunnel_args_t *a, u32 *sw_if_indexp) |
Add or Del a VXLAN GPE tunnel. More... | |
static clib_error_t * | vxlan_gpe_add_del_tunnel_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
static clib_error_t * | show_vxlan_gpe_tunnel_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
CLI function for showing VXLAN GPE tunnels. More... | |
void | vnet_int_vxlan_gpe_bypass_mode (u32 sw_if_index, u8 is_ip6, u8 is_enable) |
static clib_error_t * | set_ip_vxlan_gpe_bypass (u32 is_ip6, unformat_input_t *input, vlib_cli_command_t *cmd) |
static clib_error_t * | set_ip4_vxlan_gpe_bypass (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
static clib_error_t * | set_ip6_vxlan_gpe_bypass (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
VNET_FEATURE_INIT (ip4_vxlan_gpe_bypass, static) | |
VNET_FEATURE_INIT (ip6_vxlan_gpe_bypass, static) | |
clib_error_t * | vxlan_gpe_init (vlib_main_t *vm) |
Feature init function for VXLAN GPE. More... | |
Variables | |
vxlan_gpe_main_t | vxlan_gpe_main |
const static fib_node_vft_t | vxlan_gpe_vft |
static vlib_cli_command_t | create_vxlan_gpe_tunnel_command |
(constructor) VLIB_CLI_COMMAND (create_vxlan_gpe_tunnel_command) More... | |
static vlib_cli_command_t | show_vxlan_gpe_tunnel_command |
(constructor) VLIB_CLI_COMMAND (show_vxlan_gpe_tunnel_command) More... | |
static vlib_cli_command_t | set_interface_ip_vxlan_gpe_bypass_command |
(constructor) VLIB_CLI_COMMAND (set_interface_ip_vxlan_gpe_bypass_command) More... | |
static vlib_cli_command_t | set_interface_ip6_vxlan_gpe_bypass_command |
(constructor) VLIB_CLI_COMMAND (set_interface_ip6_vxlan_gpe_bypass_command) More... | |
Common utility functions for IPv4 and IPv6 VXLAN GPE tunnels.
VXLAN-GPE.
VXLAN-GPE provides the features needed to allow L2 bridge domains (BDs) to span multiple servers. This is done by building an L2 overlay on top of an L3 network underlay using VXLAN-GPE tunnels.
This makes it possible for servers to be co-located in the same data center or be separated geographically as long as they are reachable through the underlay L3 network.
You can refer to this kind of L2 overlay bridge domain as a VXLAN-GPE segment.
Definition in file vxlan_gpe.c.
#define foreach_copy_ipv4 |
Definition at line 258 of file vxlan_gpe.c.
#define foreach_copy_ipv6 |
Definition at line 263 of file vxlan_gpe.c.
#define foreach_gpe_copy_field |
Definition at line 251 of file vxlan_gpe.c.
typedef CLIB_PACKED | ( | union { struct { fib_node_index_t mfib_entry_index;adj_index_t mcast_adj_index;};u64 as_u64;} | ) |
Definition at line 389 of file vxlan_gpe.c.
Formatting function for tracing VXLAN GPE with length.
*s | |
*args |
Definition at line 166 of file vxlan_gpe.c.
Naming for VXLAN GPE tunnel.
*s | formatting string |
*args |
Definition at line 119 of file vxlan_gpe.c.
Format function for VXLAN GPE tunnel.
*s | formatting string |
*args |
Definition at line 85 of file vxlan_gpe.c.
|
inlinestatic |
|
inlinestatic |
|
static |
|
static |
|
static |
Definition at line 1039 of file vxlan_gpe.c.
|
static |
CLI function for showing VXLAN GPE tunnels.
*vm | |
*input | |
*cmd |
Definition at line 990 of file vxlan_gpe.c.
VNET_DEVICE_CLASS | ( | vxlan_gpe_device_class | , |
static | |||
) |
VNET_FEATURE_INIT | ( | ip4_vxlan_gpe_bypass | , |
static | |||
) |
VNET_FEATURE_INIT | ( | ip6_vxlan_gpe_bypass | , |
static | |||
) |
VNET_HW_INTERFACE_CLASS | ( | vxlan_gpe_hw_class | ) |
Definition at line 1027 of file vxlan_gpe.c.
int vnet_vxlan_gpe_add_del_tunnel | ( | vnet_vxlan_gpe_add_del_tunnel_args_t * | a, |
u32 * | sw_if_indexp | ||
) |
Add or Del a VXLAN GPE tunnel.
*a | |
*sw_if_index |
Definition at line 442 of file vxlan_gpe.c.
int vxlan4_gpe_rewrite | ( | vxlan_gpe_tunnel_t * | t, |
u32 | extension_size, | ||
u8 | protocol_override, | ||
uword | encap_next_node | ||
) |
Calculate IPv4 VXLAN GPE rewrite header.
*t |
Definition at line 280 of file vxlan_gpe.c.
int vxlan6_gpe_rewrite | ( | vxlan_gpe_tunnel_t * | t, |
u32 | extension_size, | ||
u8 | protocol_override, | ||
uword | encap_next_node | ||
) |
Calculate IPv6 VXLAN GPE rewrite header.
*t |
Definition at line 338 of file vxlan_gpe.c.
|
static |
clib_error_t* vxlan_gpe_init | ( | vlib_main_t * | vm | ) |
Feature init function for VXLAN GPE.
*vm |
Definition at line 1221 of file vxlan_gpe.c.
|
static |
CLI function for VXLAN GPE admin up/down.
*vnm | |
hw_if_index | |
flag |
Definition at line 136 of file vxlan_gpe.c.
|
static |
Function definition to backwalk a FIB node - Here we will restack the new dpo of VXLAN_GPE DIP to encap node.
Definition at line 208 of file vxlan_gpe.c.
|
static |
Function definition to get a FIB node from its index.
Definition at line 218 of file vxlan_gpe.c.
|
static |
|
static |
Function definition to inform the FIB node that its last lock has gone.
Definition at line 232 of file vxlan_gpe.c.
|
static |
Definition at line 182 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (create_vxlan_gpe_tunnel_command)
Definition at line 968 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_interface_ip6_vxlan_gpe_bypass_command)
Definition at line 1189 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_interface_ip_vxlan_gpe_bypass_command)
Definition at line 1132 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (show_vxlan_gpe_tunnel_command)
Definition at line 1020 of file vxlan_gpe.c.
vxlan_gpe_main_t vxlan_gpe_main |
Definition at line 47 of file vxlan_gpe.c.
|
static |
Definition at line 245 of file vxlan_gpe.c.