FD.io VPP  v18.10-34-gcce845e
Vector Packet Processing
decap.c File Reference
+ Include dependency graph for decap.c:

Go to the source code of this file.

Data Structures

struct  geneve_rx_trace_t
 

Macros

#define geneve_error(n, s)   s,
 

Enumerations

enum  ip_vxan_bypass_next_t {
  IP_GENEVE_BYPASS_NEXT_DROP, IP_GENEVE_BYPASS_NEXT_GENEVE, IP_GENEVE_BYPASS_N_NEXT, IP_VXLAN_BYPASS_NEXT_DROP,
  IP_VXLAN_BYPASS_NEXT_VXLAN, IP_VXLAN_BYPASS_N_NEXT, IP_VXLAN_BYPASS_NEXT_DROP, IP_VXLAN_BYPASS_NEXT_VXLAN,
  IP_VXLAN_BYPASS_N_NEXT, IP_GTPU_BYPASS_NEXT_DROP, IP_GTPU_BYPASS_NEXT_GTPU, IP_GTPU_BYPASS_N_NEXT
}
 

Functions

static u8format_geneve_rx_trace (u8 *s, va_list *args)
 
static u32 validate_geneve_fib (vlib_buffer_t *b, geneve_tunnel_t *t, u32 is_ip4)
 
static uword geneve_input (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame, u32 is_ip4)
 
static uword geneve4_input (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
static uword geneve6_input (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
static uword ip_geneve_bypass_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, u32 is_ip4)
 
static uword ip4_geneve_bypass (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
clib_error_tip4_geneve_bypass_init (vlib_main_t *vm)
 
static uword ip6_geneve_bypass (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
clib_error_tip6_geneve_bypass_init (vlib_main_t *vm)
 

Variables

vlib_node_registration_t geneve4_input_node
 (constructor) VLIB_REGISTER_NODE (geneve4_input_node) More...
 
vlib_node_registration_t geneve6_input_node
 (constructor) VLIB_REGISTER_NODE (geneve6_input_node) More...
 
static char * geneve_error_strings []
 
vlib_node_registration_t ip4_geneve_bypass_node
 (constructor) VLIB_REGISTER_NODE (ip4_geneve_bypass_node) More...
 
vlib_node_registration_t ip6_geneve_bypass_node
 (constructor) VLIB_REGISTER_NODE (ip6_geneve_bypass_node) More...
 

Macro Definition Documentation

#define geneve_error (   n,
 
)    s,

Enumeration Type Documentation

Enumerator
IP_GENEVE_BYPASS_NEXT_DROP 
IP_GENEVE_BYPASS_NEXT_GENEVE 
IP_GENEVE_BYPASS_N_NEXT 
IP_VXLAN_BYPASS_NEXT_DROP 
IP_VXLAN_BYPASS_NEXT_VXLAN 
IP_VXLAN_BYPASS_N_NEXT 
IP_VXLAN_BYPASS_NEXT_DROP 
IP_VXLAN_BYPASS_NEXT_VXLAN 
IP_VXLAN_BYPASS_N_NEXT 
IP_GTPU_BYPASS_NEXT_DROP 
IP_GTPU_BYPASS_NEXT_GTPU 
IP_GTPU_BYPASS_N_NEXT 

Definition at line 864 of file decap.c.

Function Documentation

static u8* format_geneve_rx_trace ( u8 s,
va_list *  args 
)
static

Definition at line 32 of file decap.c.

+ Here is the call graph for this function:

static uword geneve4_input ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t from_frame 
)
static

Definition at line 801 of file decap.c.

+ Here is the call graph for this function:

static uword geneve6_input ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t from_frame 
)
static

Definition at line 808 of file decap.c.

+ Here is the call graph for this function:

static uword geneve_input ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t from_frame,
u32  is_ip4 
)
inlinestatic

Definition at line 73 of file decap.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword ip4_geneve_bypass ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 1268 of file decap.c.

+ Here is the call graph for this function:

clib_error_t* ip4_geneve_bypass_init ( vlib_main_t vm)

Definition at line 1287 of file decap.c.

static uword ip6_geneve_bypass ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 1296 of file decap.c.

+ Here is the call graph for this function:

clib_error_t* ip6_geneve_bypass_init ( vlib_main_t vm)

Definition at line 1316 of file decap.c.

static uword ip_geneve_bypass_inline ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame,
u32  is_ip4 
)
inlinestatic

Definition at line 872 of file decap.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 validate_geneve_fib ( vlib_buffer_t b,
geneve_tunnel_t t,
u32  is_ip4 
)
inlinestatic

Definition at line 54 of file decap.c.

+ Here is the caller graph for this function:

Variable Documentation

vlib_node_registration_t geneve4_input_node
Initial value:
= {
.function = geneve4_input,
.name = "geneve4-input",
.vector_size = sizeof (u32),
.n_errors = GENEVE_N_ERROR,
.error_strings = geneve_error_strings,
.n_next_nodes = GENEVE_INPUT_N_NEXT,
.next_nodes = {
#define _(s,n)
},
.format_trace = format_geneve_rx_trace,
}
static char * geneve_error_strings[]
Definition: decap.c:814
#define foreach_geneve_input_next
Definition: geneve.h:133
unsigned int u32
Definition: types.h:88
static u8 * format_geneve_rx_trace(u8 *s, va_list *args)
Definition: decap.c:32
static uword geneve4_input(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
Definition: decap.c:801

(constructor) VLIB_REGISTER_NODE (geneve4_input_node)

Definition at line 20 of file decap.c.

vlib_node_registration_t geneve6_input_node
Initial value:
= {
.function = geneve6_input,
.name = "geneve6-input",
.vector_size = sizeof (u32),
.n_errors = GENEVE_N_ERROR,
.error_strings = geneve_error_strings,
.n_next_nodes = GENEVE_INPUT_N_NEXT,
.next_nodes = {
#define _(s,n)
},
.format_trace = format_geneve_rx_trace,
}
static char * geneve_error_strings[]
Definition: decap.c:814
#define foreach_geneve_input_next
Definition: geneve.h:133
unsigned int u32
Definition: types.h:88
static uword geneve6_input(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
Definition: decap.c:808
static u8 * format_geneve_rx_trace(u8 *s, va_list *args)
Definition: decap.c:32

(constructor) VLIB_REGISTER_NODE (geneve6_input_node)

Definition at line 21 of file decap.c.

char* geneve_error_strings[]
static
Initial value:
= {
#define geneve_error(n,s)
}

Definition at line 814 of file decap.c.

vlib_node_registration_t ip4_geneve_bypass_node
Initial value:
=
{
.function = ip4_geneve_bypass,.name = "ip4-geneve-bypass",.vector_size =
sizeof (u32),.n_next_nodes = IP_GENEVE_BYPASS_N_NEXT,.next_nodes =
{
[IP_GENEVE_BYPASS_NEXT_DROP] = "error-drop",
[IP_GENEVE_BYPASS_NEXT_GENEVE] = "geneve4-input",}
,.format_buffer = format_ip4_header,.format_trace =
format_function_t format_ip4_header
Definition: format.h:83
unsigned int u32
Definition: types.h:88
static uword ip4_geneve_bypass(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: decap.c:1268
u8 * format_ip4_forward_next_trace(u8 *s, va_list *args)
Definition: ip4_forward.c:988

(constructor) VLIB_REGISTER_NODE (ip4_geneve_bypass_node)

Definition at line 1275 of file decap.c.

vlib_node_registration_t ip6_geneve_bypass_node
Initial value:
=
{
.function = ip6_geneve_bypass,.name = "ip6-geneve-bypass",.vector_size =
sizeof (u32),.n_next_nodes = IP_GENEVE_BYPASS_N_NEXT,.next_nodes =
{
[IP_GENEVE_BYPASS_NEXT_DROP] = "error-drop",
[IP_GENEVE_BYPASS_NEXT_GENEVE] = "geneve6-input",}
,.format_buffer = format_ip6_header,.format_trace =
unsigned int u32
Definition: types.h:88
format_function_t format_ip6_header
Definition: format.h:97
static uword ip6_geneve_bypass(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: decap.c:1296
u8 * format_ip6_forward_next_trace(u8 *s, va_list *args)
Definition: ip6_forward.c:768

(constructor) VLIB_REGISTER_NODE (ip6_geneve_bypass_node)

Definition at line 1303 of file decap.c.