FD.io VPP  v19.08-27-gf4dcae4
Vector Packet Processing
ipsec_tun_in.c File Reference
+ Include dependency graph for ipsec_tun_in.c:

Go to the source code of this file.

Data Structures

struct  ipsec_tun_protect_input_trace_t
 

Macros

#define foreach_ipsec_tun_protect_input_error
 

Typedefs

typedef enum ipsec_tun_next_t_ ipsec_tun_next_t
 

Enumerations

enum  ipsec_tun_protect_input_error_t { IPSEC_TUN_PROTECT_INPUT_N_ERROR }
 
enum  ipsec_tun_next_t_ { IPSEC_TUN_PROTECT_NEXT_DECRYPT, IPSEC_TUN_PROTECT_N_NEXT }
 

Functions

static u8format_ipsec_tun_protect_input_trace (u8 *s, va_list *args)
 
static u16 ipsec_ip4_if_no_tunnel (vlib_node_runtime_t *node, vlib_buffer_t *b, const esp_header_t *esp, const ip4_header_t *ip4)
 
static u16 ipsec_ip6_if_no_tunnel (vlib_node_runtime_t *node, vlib_buffer_t *b, const esp_header_t *esp)
 
static uword ipsec_tun_protect_input_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame, int is_ip6)
 
VLIB_NODE_FN() ipsec4_tun_input_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() ipsec6_tun_input_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 

Variables

static char * ipsec_tun_protect_input_error_strings []
 
vlib_node_registration_t ipsec4_tun_input_node
 (constructor) VLIB_REGISTER_NODE (ipsec4_tun_input_node) More...
 
vlib_node_registration_t ipsec6_tun_input_node
 (constructor) VLIB_REGISTER_NODE (ipsec6_tun_input_node) More...
 

Macro Definition Documentation

#define foreach_ipsec_tun_protect_input_error
Value:
_(RX, "good packets received") \
_(DISABLED, "ipsec packets received on disabled interface") \
_(NO_TUNNEL, "no matching tunnel") \
_(TUNNEL_MISMATCH, "SPI-tunnel mismatch") \
_(NAT_KEEPALIVE, "NAT Keepalive") \
_(TOO_SHORT, "Too Short") \
_(SPI_0, "SPI 0")

Definition at line 30 of file ipsec_tun_in.c.

Typedef Documentation

Enumeration Type Documentation

Enumerator
IPSEC_TUN_PROTECT_NEXT_DECRYPT 
IPSEC_TUN_PROTECT_N_NEXT 

Definition at line 53 of file ipsec_tun_in.c.

Enumerator
IPSEC_TUN_PROTECT_INPUT_N_ERROR 

Definition at line 45 of file ipsec_tun_in.c.

Function Documentation

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

Definition at line 74 of file ipsec_tun_in.c.

+ Here is the call graph for this function:

VLIB_NODE_FN() ipsec4_tun_input_node ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t from_frame 
)

Definition at line 406 of file ipsec_tun_in.c.

+ Here is the call graph for this function:

VLIB_NODE_FN() ipsec6_tun_input_node ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t from_frame 
)

Definition at line 431 of file ipsec_tun_in.c.

+ Here is the call graph for this function:

static u16 ipsec_ip4_if_no_tunnel ( vlib_node_runtime_t node,
vlib_buffer_t b,
const esp_header_t esp,
const ip4_header_t ip4 
)
inlinestatic

Definition at line 91 of file ipsec_tun_in.c.

+ Here is the caller graph for this function:

static u16 ipsec_ip6_if_no_tunnel ( vlib_node_runtime_t node,
vlib_buffer_t b,
const esp_header_t esp 
)
inlinestatic

Definition at line 111 of file ipsec_tun_in.c.

+ Here is the caller graph for this function:

static uword ipsec_tun_protect_input_inline ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t from_frame,
int  is_ip6 
)
inlinestatic

Definition at line 121 of file ipsec_tun_in.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

vlib_node_registration_t ipsec4_tun_input_node
Initial value:
= {
.name = "ipsec4-tun-input",
.vector_size = sizeof (u32),
.n_next_nodes = IPSEC_TUN_PROTECT_N_NEXT,
.next_nodes = {
[IPSEC_TUN_PROTECT_NEXT_DROP] = "ip4-drop",
[IPSEC_TUN_PROTECT_NEXT_PUNT] = "punt-dispatch",
[IPSEC_TUN_PROTECT_NEXT_DECRYPT] = "esp4-decrypt-tun",
}
}
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123
#define ARRAY_LEN(x)
Definition: clib.h:62
static char * ipsec_tun_protect_input_error_strings[]
Definition: ipsec_tun_in.c:39
static u8 * format_ipsec_tun_protect_input_trace(u8 *s, va_list *args)
Definition: ipsec_tun_in.c:74

(constructor) VLIB_REGISTER_NODE (ipsec4_tun_input_node)

Definition at line 415 of file ipsec_tun_in.c.

vlib_node_registration_t ipsec6_tun_input_node
Initial value:
= {
.name = "ipsec6-tun-input",
.vector_size = sizeof (u32),
.n_next_nodes = IPSEC_TUN_PROTECT_N_NEXT,
.next_nodes = {
[IPSEC_TUN_PROTECT_NEXT_DROP] = "ip6-drop",
[IPSEC_TUN_PROTECT_NEXT_PUNT] = "punt-dispatch",
[IPSEC_TUN_PROTECT_NEXT_DECRYPT] = "esp6-decrypt-tun",
}
}
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123
#define ARRAY_LEN(x)
Definition: clib.h:62
static char * ipsec_tun_protect_input_error_strings[]
Definition: ipsec_tun_in.c:39
static u8 * format_ipsec_tun_protect_input_trace(u8 *s, va_list *args)
Definition: ipsec_tun_in.c:74

(constructor) VLIB_REGISTER_NODE (ipsec6_tun_input_node)

Definition at line 440 of file ipsec_tun_in.c.

char* ipsec_tun_protect_input_error_strings[]
static
Initial value:
= {
#define _(sym,string)
}
#define foreach_ipsec_tun_protect_input_error
Definition: ipsec_tun_in.c:30

Definition at line 39 of file ipsec_tun_in.c.