|
static u8 * | format_decap_next (u8 *s, va_list *args) |
|
u8 * | format_vxlan_tunnel (u8 *s, va_list *args) |
|
static u8 * | format_vxlan_name (u8 *s, va_list *args) |
|
static clib_error_t * | vxlan_interface_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags) |
|
| VNET_DEVICE_CLASS (vxlan_device_class, static) |
|
static u8 * | format_vxlan_header_with_length (u8 *s, va_list *args) |
|
| VNET_HW_INTERFACE_CLASS (vxlan_hw_class) |
|
static void | vxlan_tunnel_restack_dpo (vxlan_tunnel_t *t) |
|
static vxlan_tunnel_t * | vxlan_tunnel_from_fib_node (fib_node_t *node) |
|
static fib_node_back_walk_rc_t | vxlan_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 DIP to encap node. More...
|
|
static fib_node_t * | vxlan_tunnel_fib_node_get (fib_node_index_t index) |
| Function definition to get a FIB node from its index. More...
|
|
static void | vxlan_tunnel_last_lock_gone (fib_node_t *node) |
| Function definition to inform the FIB node that its last lock has gone. More...
|
|
static void | vxlan_rewrite (vxlan_tunnel_t *t, bool is_ip6) |
|
static bool | vxlan_decap_next_is_valid (vxlan_main_t *vxm, u32 is_ip6, u32 decap_next_index) |
|
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 *dst, fib_node_index_t mfei, adj_index_t ai) |
|
static void | mcast_shared_remove (ip46_address_t *dst) |
|
int | vnet_vxlan_add_del_tunnel (vnet_vxlan_add_del_tunnel_args_t *a, u32 *sw_if_indexp) |
|
static uword | get_decap_next_for_node (u32 node_index, u32 ipv4_set) |
|
static uword | unformat_decap_next (unformat_input_t *input, va_list *args) |
|
static clib_error_t * | vxlan_add_del_tunnel_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | show_vxlan_tunnel_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
void | vnet_int_vxlan_bypass_mode (u32 sw_if_index, u8 is_ip6, u8 is_enable) |
|
static clib_error_t * | set_ip_vxlan_bypass (u32 is_ip6, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | set_ip4_vxlan_bypass (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | set_ip6_vxlan_bypass (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
clib_error_t * | vxlan_init (vlib_main_t *vm) |
|
VXLAN.
VXLAN 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 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 (Virtual eXtensible VLAN) segment.
Definition in file vxlan.c.