FD.io VPP
v18.01-8-g0eacf49
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 | |
u8 * | format_vxlan_gpe_tunnel (u8 *s, va_list *args) |
Tracing function for VXLAN GPE tunnel packets. 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) |
static fib_protocol_t | fib_ip_proto (bool is_ip6) |
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 245 of file vxlan_gpe.c.
#define foreach_copy_ipv6 |
Definition at line 250 of file vxlan_gpe.c.
#define foreach_gpe_copy_field |
Definition at line 238 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;} | ) |
|
inlinestatic |
Definition at line 449 of file vxlan_gpe.c.
Formatting function for tracing VXLAN GPE with length.
*s | |
*args |
Definition at line 153 of file vxlan_gpe.c.
Naming for VXLAN GPE tunnel.
*s | formatting string |
*args |
Definition at line 106 of file vxlan_gpe.c.
Tracing function for VXLAN GPE tunnel packets.
*s | formatting string |
*args |
Definition at line 57 of file vxlan_gpe.c.
|
inlinestatic |
Definition at line 426 of file vxlan_gpe.c.
|
inlinestatic |
Definition at line 438 of file vxlan_gpe.c.
|
static |
|
static |
|
static |
Definition at line 1050 of file vxlan_gpe.c.
|
static |
CLI function for showing VXLAN GPE tunnels.
*vm | |
*input | |
*cmd |
Definition at line 1001 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 1038 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 464 of file vxlan_gpe.c.
|
static |
Definition at line 376 of file vxlan_gpe.c.
|
static |
Definition at line 390 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 267 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 325 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 1232 of file vxlan_gpe.c.
|
static |
CLI function for VXLAN GPE admin up/down.
*vnm | |
hw_if_index | |
flag |
Definition at line 123 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 195 of file vxlan_gpe.c.
|
static |
Function definition to get a FIB node from its index.
Definition at line 205 of file vxlan_gpe.c.
|
static |
|
static |
Function definition to inform the FIB node that its last lock has gone.
Definition at line 219 of file vxlan_gpe.c.
|
static |
Definition at line 169 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (create_vxlan_gpe_tunnel_command)
Definition at line 979 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_interface_ip6_vxlan_gpe_bypass_command)
Definition at line 1200 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_interface_ip_vxlan_gpe_bypass_command)
Definition at line 1143 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (show_vxlan_gpe_tunnel_command)
Definition at line 1031 of file vxlan_gpe.c.
vxlan_gpe_main_t vxlan_gpe_main |
Definition at line 45 of file vxlan_gpe.c.
|
static |
Definition at line 232 of file vxlan_gpe.c.