FD.io VPP
v18.11-rc0-18-g2a3fb1a
Vector Packet Processing
|
Functions for encapsulating VXLAN GPE tunnels. More...
Go to the source code of this file.
Data Structures | |
struct | vxlan_gpe_encap_trace_t |
Struct for tracing VXLAN GPE encapsulated packets. More... | |
Macros | |
#define | foreach_vxlan_gpe_encap_error _(ENCAPSULATED, "good packets encapsulated") |
Statistics (not really errors) More... | |
Enumerations | |
enum | vxlan_gpe_encap_error_t { VXLAN_GPE_ENCAP_N_ERROR } |
Struct for VXLAN GPE errors/counters. More... | |
Functions | |
u8 * | format_vxlan_gpe_encap_trace (u8 *s, va_list *args) |
Trace of packets encapsulated in VXLAN GPE. More... | |
static void | vxlan_gpe_encap_one_inline (vxlan_gpe_main_t *ngm, vlib_buffer_t *b0, vxlan_gpe_tunnel_t *t0, u32 *next0, u8 is_v4) |
Instantiates UDP + VXLAN-GPE header then set next node to IP4|6 lookup. More... | |
static void | vxlan_gpe_encap_two_inline (vxlan_gpe_main_t *ngm, vlib_buffer_t *b0, vlib_buffer_t *b1, vxlan_gpe_tunnel_t *t0, vxlan_gpe_tunnel_t *t1, u32 *next0, u32 *next1, u8 is_v4) |
Instantiates UDP + VXLAN-GPE header then set next node to IP4|6 lookup for two packets. More... | |
static uword | vxlan_gpe_encap (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
Common processing for IPv4 and IPv6 VXLAN GPE encap dispatch functions. More... | |
Variables | |
static char * | vxlan_gpe_encap_error_strings [] |
VXLAN GPE encap error strings. More... | |
vlib_node_registration_t | vxlan_gpe_encap_node |
(constructor) VLIB_REGISTER_NODE (vxlan_gpe_encap_node) More... | |
Functions for encapsulating VXLAN GPE tunnels.
Definition in file encap.c.
#define foreach_vxlan_gpe_encap_error _(ENCAPSULATED, "good packets encapsulated") |
|
static |
Common processing for IPv4 and IPv6 VXLAN GPE encap dispatch functions.
It is worth noting that other than trivial UDP forwarding (transit), VXLAN GPE tunnels are "establish local". This means that we don't have a TX interface as yet as we need to look up where the outer-header dest is. By setting the TX index in the buffer metadata to the encap FIB, we can do a lookup to get the adjacency and real TX.
vnet_buffer(b0)->sw_if_index[VLIB_TX] = t0->encap_fib_index;
vxlan-gpe-input
*vm | |
*node | |
*from_frame |
Definition at line 146 of file encap.c.
|
inlinestatic |
Instantiates UDP + VXLAN-GPE header then set next node to IP4|6 lookup.
*ngm | |
*b0 | |
*t0 | contains rewrite header |
*next0 | relative index of next dispatch function (next node) |
is_v4 | Is this IPv4? (or IPv6) |
Definition at line 90 of file encap.c.
|
inlinestatic |
Instantiates UDP + VXLAN-GPE header then set next node to IP4|6 lookup for two packets.
*ngm | |
*b0 | Packet0 |
*b1 | Packet1 |
*t0 | contains rewrite header for Packet0 |
*t1 | contains rewrite header for Packet1 |
*next0 | relative index of next dispatch function (next node) for Packet0 |
*next1 | relative index of next dispatch function (next node) for Packet1 |
is_v4 | Is this IPv4? (or IPv6) |
Definition at line 114 of file encap.c.
|
static |
VXLAN GPE encap error strings.
vlib_node_registration_t vxlan_gpe_encap_node |
(constructor) VLIB_REGISTER_NODE (vxlan_gpe_encap_node)