FD.io VPP
v19.04.4-rc0-5-ge88582fac
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 256 of file vxlan_gpe.c.
#define foreach_copy_ipv6 |
Definition at line 261 of file vxlan_gpe.c.
#define foreach_gpe_copy_field |
Definition at line 249 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 48 of file vxlan_gpe.c.
Formatting function for tracing VXLAN GPE with length.
*s | |
*args |
Definition at line 164 of file vxlan_gpe.c.
Naming for VXLAN GPE tunnel.
*s | formatting string |
*args |
Definition at line 117 of file vxlan_gpe.c.
Format function for VXLAN GPE tunnel.
*s | formatting string |
*args |
Definition at line 83 of file vxlan_gpe.c.
|
inlinestatic |
|
inlinestatic |
|
static |
|
static |
|
static |
Definition at line 1055 of file vxlan_gpe.c.
|
static |
CLI function for showing VXLAN GPE tunnels.
*vm | |
*input | |
*cmd |
Definition at line 1006 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 1043 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 469 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 278 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 336 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 1237 of file vxlan_gpe.c.
|
static |
CLI function for VXLAN GPE admin up/down.
*vnm | |
hw_if_index | |
flag |
Definition at line 134 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 206 of file vxlan_gpe.c.
|
static |
Function definition to get a FIB node from its index.
Definition at line 216 of file vxlan_gpe.c.
|
static |
|
static |
Function definition to inform the FIB node that its last lock has gone.
Definition at line 230 of file vxlan_gpe.c.
|
static |
Definition at line 180 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (create_vxlan_gpe_tunnel_command)
Definition at line 984 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_interface_ip6_vxlan_gpe_bypass_command)
Definition at line 1205 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_interface_ip_vxlan_gpe_bypass_command)
Definition at line 1148 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (show_vxlan_gpe_tunnel_command)
Definition at line 1036 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 243 of file vxlan_gpe.c.