|
static u8 * | format_decap_next (u8 *s, va_list *args) |
|
u8 * | format_geneve_tunnel (u8 *s, va_list *args) |
|
static u8 * | format_geneve_name (u8 *s, va_list *args) |
|
static clib_error_t * | geneve_interface_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags) |
|
| VNET_DEVICE_CLASS (geneve_device_class, static) |
|
static u8 * | format_geneve_header_with_length (u8 *s, va_list *args) |
|
| VNET_HW_INTERFACE_CLASS (geneve_hw_class) |
|
static void | geneve_tunnel_restack_dpo (geneve_tunnel_t *t) |
|
static geneve_tunnel_t * | geneve_tunnel_from_fib_node (fib_node_t *node) |
|
static fib_node_back_walk_rc_t | geneve_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 GENEVE DIP to encap node. More...
|
|
static fib_node_t * | geneve_tunnel_fib_node_get (fib_node_index_t index) |
| Function definition to get a FIB node from its index. More...
|
|
static void | geneve_tunnel_last_lock_gone (fib_node_t *node) |
| Function definition to inform the FIB node that its last lock has gone. More...
|
|
static int | geneve_rewrite (geneve_tunnel_t *t, bool is_ip6) |
|
static bool | geneve_decap_next_is_valid (geneve_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 *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_geneve_add_del_tunnel (vnet_geneve_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 * | geneve_add_del_tunnel_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | show_geneve_tunnel_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
void | vnet_int_geneve_bypass_mode (u32 sw_if_index, u8 is_ip6, u8 is_enable) |
|
static clib_error_t * | set_ip_geneve_bypass (u32 is_ip6, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | set_ip4_geneve_bypass (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | set_ip6_geneve_bypass (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
clib_error_t * | geneve_init (vlib_main_t *vm) |
|
GENEVE.
GENEVE 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 GENEVE 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.
Definition in file geneve.c.