FD.io VPP
v20.01-48-g3e0dafb74
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... | |
static uword | vtep_addr_ref (ip46_address_t *ip) |
static uword | vtep_addr_unref (ip46_address_t *ip) |
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 |
static const 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 257 of file vxlan_gpe.c.
#define foreach_copy_ipv6 |
Definition at line 262 of file vxlan_gpe.c.
#define foreach_gpe_copy_field |
Definition at line 250 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 49 of file vxlan_gpe.c.
Formatting function for tracing VXLAN GPE with length.
*s | |
*args |
Definition at line 165 of file vxlan_gpe.c.
Naming for VXLAN GPE tunnel.
*s | formatting string |
*args |
Definition at line 118 of file vxlan_gpe.c.
Format function for VXLAN GPE tunnel.
*s | formatting string |
*args |
Definition at line 84 of file vxlan_gpe.c.
|
inlinestatic |
|
inlinestatic |
|
static |
|
static |
|
static |
Definition at line 1065 of file vxlan_gpe.c.
|
static |
CLI function for showing VXLAN GPE tunnels.
*vm | |
*input | |
*cmd |
Definition at line 1016 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 1053 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 470 of file vxlan_gpe.c.
|
static |
|
static |
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 279 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 337 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 1247 of file vxlan_gpe.c.
|
static |
CLI function for VXLAN GPE admin up/down.
*vnm | |
hw_if_index | |
flag |
Definition at line 135 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 207 of file vxlan_gpe.c.
|
static |
Function definition to get a FIB node from its index.
Definition at line 217 of file vxlan_gpe.c.
|
static |
|
static |
Function definition to inform the FIB node that its last lock has gone.
Definition at line 231 of file vxlan_gpe.c.
|
static |
Definition at line 181 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (create_vxlan_gpe_tunnel_command)
Definition at line 994 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_interface_ip6_vxlan_gpe_bypass_command)
Definition at line 1215 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_interface_ip_vxlan_gpe_bypass_command)
Definition at line 1158 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (show_vxlan_gpe_tunnel_command)
Definition at line 1046 of file vxlan_gpe.c.
vxlan_gpe_main_t vxlan_gpe_main |
Definition at line 46 of file vxlan_gpe.c.
|
static |
Definition at line 244 of file vxlan_gpe.c.