FD.io VPP
v17.07-30-g839fa73
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 uword | dummy_interface_tx (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
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 void | hash_set_key_copy (uword **h, void *key, uword v) |
static void | hash_unset_key_free (uword **h, void *key) |
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) |
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 249 of file vxlan_gpe.c.
#define foreach_copy_ipv6 |
Definition at line 254 of file vxlan_gpe.c.
#define foreach_gpe_copy_field |
Definition at line 242 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;} | ) |
|
static |
|
inlinestatic |
Definition at line 465 of file vxlan_gpe.c.
Formatting function for tracing VXLAN GPE with length.
*s | |
*args |
Definition at line 157 of file vxlan_gpe.c.
Naming for VXLAN GPE tunnel.
*s | formatting string |
*args |
Definition at line 105 of file vxlan_gpe.c.
Tracing function for VXLAN GPE tunnel packets.
*s | formatting string |
*args |
Definition at line 56 of file vxlan_gpe.c.
Definition at line 377 of file vxlan_gpe.c.
|
static |
Definition at line 385 of file vxlan_gpe.c.
|
inlinestatic |
Definition at line 440 of file vxlan_gpe.c.
|
inlinestatic |
Definition at line 453 of file vxlan_gpe.c.
|
static |
|
static |
|
static |
Definition at line 1044 of file vxlan_gpe.c.
|
static |
CLI function for showing VXLAN GPE tunnels.
*vm | |
*input | |
*cmd |
Definition at line 996 of file vxlan_gpe.c.
VNET_DEVICE_CLASS | ( | vxlan_gpe_device_class | , |
static | |||
) |
VNET_HW_INTERFACE_CLASS | ( | vxlan_gpe_hw_class | ) |
Definition at line 1030 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 480 of file vxlan_gpe.c.
|
static |
Definition at line 394 of file vxlan_gpe.c.
|
static |
Definition at line 408 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 270 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 327 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 1211 of file vxlan_gpe.c.
|
static |
CLI function for VXLAN GPE admin up/down.
*vnm | |
hw_if_index | |
flag |
Definition at line 130 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 198 of file vxlan_gpe.c.
|
static |
Function definition to get a FIB node from its index.
Definition at line 209 of file vxlan_gpe.c.
|
static |
|
static |
Function definition to inform the FIB node that its last lock has gone.
Definition at line 223 of file vxlan_gpe.c.
|
static |
Definition at line 171 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (create_vxlan_gpe_tunnel_command)
Definition at line 974 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_interface_ip6_vxlan_gpe_bypass_command)
Definition at line 1196 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_interface_ip_vxlan_gpe_bypass_command)
Definition at line 1138 of file vxlan_gpe.c.
|
static |
(constructor) VLIB_CLI_COMMAND (show_vxlan_gpe_tunnel_command)
Definition at line 1024 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 236 of file vxlan_gpe.c.