FD.io VPP  v19.01.3-6-g70449b9b9
Vector Packet Processing
decap.c File Reference
+ Include dependency graph for decap.c:

Go to the source code of this file.

Data Structures

struct  vxlan_gbp_rx_trace_t
 

Macros

#define vxlan_gbp_error(n, s)   s,
 

Typedefs

typedef vxlan4_gbp_tunnel_key_t last_tunnel_cache4
 
typedef vxlan6_gbp_tunnel_key_t last_tunnel_cache6
 

Enumerations

enum  ip_vxan_gbp_bypass_next_t { IP_VXLAN_GBP_BYPASS_NEXT_DROP, IP_VXLAN_GBP_BYPASS_NEXT_VXLAN_GBP, IP_VXLAN_GBP_BYPASS_N_NEXT }
 

Functions

static u8format_vxlan_gbp_rx_trace (u8 *s, va_list *args)
 
static u32 buf_fib_index (vlib_buffer_t *b, u32 is_ip4)
 
static vxlan_gbp_tunnel_tvxlan4_gbp_find_tunnel (vxlan_gbp_main_t *vxm, last_tunnel_cache4 *cache, u32 fib_index, ip4_header_t *ip4_0, vxlan_gbp_header_t *vxlan_gbp0, vxlan_gbp_tunnel_t **stats_t0)
 
static vxlan_gbp_tunnel_tvxlan6_gbp_find_tunnel (vxlan_gbp_main_t *vxm, last_tunnel_cache6 *cache, u32 fib_index, ip6_header_t *ip6_0, vxlan_gbp_header_t *vxlan_gbp0, vxlan_gbp_tunnel_t **stats_t0)
 
static vxlan_gbp_input_next_t vxlan_gbp_tunnel_get_next (const vxlan_gbp_tunnel_t *t, vlib_buffer_t *b0)
 
static uword vxlan_gbp_input (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame, u8 is_ip4)
 
static uword vxlan4_gbp_input (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
static uword vxlan6_gbp_input (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
static uword ip_vxlan_gbp_bypass_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, u32 is_ip4)
 
static uword ip4_vxlan_gbp_bypass (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
clib_error_tip4_vxlan_gbp_bypass_init (vlib_main_t *vm)
 
static uword ip6_vxlan_gbp_bypass (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
clib_error_tip6_vxlan_gbp_bypass_init (vlib_main_t *vm)
 

Variables

vlib_node_registration_t vxlan4_gbp_input_node
 (constructor) VLIB_REGISTER_NODE (vxlan4_gbp_input_node) More...
 
vlib_node_registration_t vxlan6_gbp_input_node
 (constructor) VLIB_REGISTER_NODE (vxlan6_gbp_input_node) More...
 
static char * vxlan_gbp_error_strings []
 
vlib_node_registration_t ip4_vxlan_gbp_bypass_node
 (constructor) VLIB_REGISTER_NODE (ip4_vxlan_gbp_bypass_node) More...
 
vlib_node_registration_t ip6_vxlan_gbp_bypass_node
 (constructor) VLIB_REGISTER_NODE (ip6_vxlan_gbp_bypass_node) More...
 

Macro Definition Documentation

◆ vxlan_gbp_error

#define vxlan_gbp_error (   n,
 
)    s,

Typedef Documentation

◆ last_tunnel_cache4

Definition at line 68 of file decap.c.

◆ last_tunnel_cache6

Definition at line 115 of file decap.c.

Enumeration Type Documentation

◆ ip_vxan_gbp_bypass_next_t

Enumerator
IP_VXLAN_GBP_BYPASS_NEXT_DROP 
IP_VXLAN_GBP_BYPASS_NEXT_VXLAN_GBP 
IP_VXLAN_GBP_BYPASS_N_NEXT 

Definition at line 565 of file decap.c.

Function Documentation

◆ buf_fib_index()

static u32 buf_fib_index ( vlib_buffer_t b,
u32  is_ip4 
)
inlinestatic

Definition at line 55 of file decap.c.

+ Here is the caller graph for this function:

◆ format_vxlan_gbp_rx_trace()

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

Definition at line 36 of file decap.c.

+ Here is the call graph for this function:

◆ ip4_vxlan_gbp_bypass()

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

Definition at line 972 of file decap.c.

+ Here is the call graph for this function:

◆ ip4_vxlan_gbp_bypass_init()

clib_error_t* ip4_vxlan_gbp_bypass_init ( vlib_main_t vm)

Definition at line 998 of file decap.c.

◆ ip6_vxlan_gbp_bypass()

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

Definition at line 1006 of file decap.c.

+ Here is the call graph for this function:

◆ ip6_vxlan_gbp_bypass_init()

clib_error_t* ip6_vxlan_gbp_bypass_init ( vlib_main_t vm)

Definition at line 1032 of file decap.c.

◆ ip_vxlan_gbp_bypass_inline()

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

Definition at line 573 of file decap.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vxlan4_gbp_find_tunnel()

static vxlan_gbp_tunnel_t* vxlan4_gbp_find_tunnel ( vxlan_gbp_main_t vxm,
last_tunnel_cache4 cache,
u32  fib_index,
ip4_header_t ip4_0,
vxlan_gbp_header_t vxlan_gbp0,
vxlan_gbp_tunnel_t **  stats_t0 
)
inlinestatic

Definition at line 71 of file decap.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vxlan4_gbp_input()

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

Definition at line 509 of file decap.c.

+ Here is the call graph for this function:

◆ vxlan6_gbp_find_tunnel()

static vxlan_gbp_tunnel_t* vxlan6_gbp_find_tunnel ( vxlan_gbp_main_t vxm,
last_tunnel_cache6 cache,
u32  fib_index,
ip6_header_t ip6_0,
vxlan_gbp_header_t vxlan_gbp0,
vxlan_gbp_tunnel_t **  stats_t0 
)
inlinestatic

Definition at line 118 of file decap.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vxlan6_gbp_input()

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

Definition at line 516 of file decap.c.

+ Here is the call graph for this function:

◆ vxlan_gbp_input()

static uword vxlan_gbp_input ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t from_frame,
u8  is_ip4 
)
inlinestatic

Definition at line 192 of file decap.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vxlan_gbp_tunnel_get_next()

static vxlan_gbp_input_next_t vxlan_gbp_tunnel_get_next ( const vxlan_gbp_tunnel_t t,
vlib_buffer_t b0 
)
inlinestatic

Definition at line 168 of file decap.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ ip4_vxlan_gbp_bypass_node

vlib_node_registration_t ip4_vxlan_gbp_bypass_node
Initial value:
=
{
.function = ip4_vxlan_gbp_bypass,
.name = "ip4-vxlan-gbp-bypass",
.vector_size = sizeof (u32),
.n_next_nodes = IP_VXLAN_GBP_BYPASS_N_NEXT,
.next_nodes = {
[IP_VXLAN_GBP_BYPASS_NEXT_VXLAN_GBP] = "vxlan4-gbp-input",
},
.format_buffer = format_ip4_header,
}
format_function_t format_ip4_header
Definition: format.h:83
static uword ip4_vxlan_gbp_bypass(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: decap.c:972
unsigned int u32
Definition: types.h:88
u8 * format_ip4_forward_next_trace(u8 *s, va_list *args)
Definition: ip4_forward.c:991

(constructor) VLIB_REGISTER_NODE (ip4_vxlan_gbp_bypass_node)

Definition at line 979 of file decap.c.

◆ ip6_vxlan_gbp_bypass_node

vlib_node_registration_t ip6_vxlan_gbp_bypass_node
Initial value:
=
{
.function = ip6_vxlan_gbp_bypass,
.name = "ip6-vxlan-gbp-bypass",
.vector_size = sizeof (u32),
.n_next_nodes = IP_VXLAN_GBP_BYPASS_N_NEXT,
.next_nodes = {
[IP_VXLAN_GBP_BYPASS_NEXT_VXLAN_GBP] = "vxlan6-gbp-input",
},
.format_buffer = format_ip6_header,
}
static uword ip6_vxlan_gbp_bypass(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: decap.c:1006
unsigned int u32
Definition: types.h:88
format_function_t format_ip6_header
Definition: format.h:97
u8 * format_ip6_forward_next_trace(u8 *s, va_list *args)
Definition: ip6_forward.c:802

(constructor) VLIB_REGISTER_NODE (ip6_vxlan_gbp_bypass_node)

Definition at line 1013 of file decap.c.

◆ vxlan4_gbp_input_node

vlib_node_registration_t vxlan4_gbp_input_node
Initial value:
=
{
.function = vxlan4_gbp_input,
.name = "vxlan4-gbp-input",
.vector_size = sizeof (u32),
.n_errors = VXLAN_GBP_N_ERROR,
.error_strings = vxlan_gbp_error_strings,
.n_next_nodes = VXLAN_GBP_INPUT_N_NEXT,
.format_trace = format_vxlan_gbp_rx_trace,
.next_nodes = {
#define _(s,n)
},
}
#define foreach_vxlan_gbp_input_next
Definition: vxlan_gbp.h:133
static u8 * format_vxlan_gbp_rx_trace(u8 *s, va_list *args)
Definition: decap.c:36
unsigned int u32
Definition: types.h:88
static char * vxlan_gbp_error_strings[]
Definition: decap.c:522
static uword vxlan4_gbp_input(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
Definition: decap.c:509

(constructor) VLIB_REGISTER_NODE (vxlan4_gbp_input_node)

Definition at line 22 of file decap.c.

◆ vxlan6_gbp_input_node

vlib_node_registration_t vxlan6_gbp_input_node
Initial value:
=
{
.function = vxlan6_gbp_input,
.name = "vxlan6-gbp-input",
.vector_size = sizeof (u32),
.n_errors = VXLAN_GBP_N_ERROR,
.error_strings = vxlan_gbp_error_strings,
.n_next_nodes = VXLAN_GBP_INPUT_N_NEXT,
.next_nodes = {
#define _(s,n)
},
.format_trace = format_vxlan_gbp_rx_trace,
}
#define foreach_vxlan_gbp_input_next
Definition: vxlan_gbp.h:133
static u8 * format_vxlan_gbp_rx_trace(u8 *s, va_list *args)
Definition: decap.c:36
unsigned int u32
Definition: types.h:88
static char * vxlan_gbp_error_strings[]
Definition: decap.c:522
static uword vxlan6_gbp_input(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
Definition: decap.c:516

(constructor) VLIB_REGISTER_NODE (vxlan6_gbp_input_node)

Definition at line 23 of file decap.c.

◆ vxlan_gbp_error_strings

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

Definition at line 522 of file decap.c.