FD.io VPP  v20.09-64-g4f7b92f0a
Vector Packet Processing
ipsec_handoff.c File Reference
+ Include dependency graph for ipsec_handoff.c:

Go to the source code of this file.

Data Structures

struct  ipsec_handoff_trace_t_
 

Macros

#define foreach_ipsec_handoff_error   _(CONGESTION_DROP, "congestion drop")
 

Typedefs

typedef struct ipsec_handoff_trace_t_ ipsec_handoff_trace_t
 

Enumerations

enum  ipsec_handoff_error_t { HANDOFF_N_ERROR, NAT44_HANDOFF_N_ERROR }
 

Functions

static u8format_ipsec_handoff_trace (u8 *s, va_list *args)
 
static_always_inline uword ipsec_handoff (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, u32 fq_index, bool is_enc)
 
VLIB_NODE_FN() esp4_encrypt_handoff (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp6_encrypt_handoff (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp4_encrypt_tun_handoff (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp6_encrypt_tun_handoff (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp4_decrypt_handoff (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp6_decrypt_handoff (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp4_decrypt_tun_handoff (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp6_decrypt_tun_handoff (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() ah4_encrypt_handoff (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() ah6_encrypt_handoff (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() ah4_decrypt_handoff (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() ah6_decrypt_handoff (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 

Variables

static char * ipsec_handoff_error_strings []
 
vlib_node_registration_t esp4_encrypt_handoff
 (constructor) VLIB_REGISTER_NODE (esp4_encrypt_handoff) More...
 
vlib_node_registration_t esp6_encrypt_handoff
 (constructor) VLIB_REGISTER_NODE (esp6_encrypt_handoff) More...
 
vlib_node_registration_t esp4_encrypt_tun_handoff
 (constructor) VLIB_REGISTER_NODE (esp4_encrypt_tun_handoff) More...
 
vlib_node_registration_t esp6_encrypt_tun_handoff
 (constructor) VLIB_REGISTER_NODE (esp6_encrypt_tun_handoff) More...
 
vlib_node_registration_t esp4_decrypt_handoff
 (constructor) VLIB_REGISTER_NODE (esp4_decrypt_handoff) More...
 
vlib_node_registration_t esp6_decrypt_handoff
 (constructor) VLIB_REGISTER_NODE (esp6_decrypt_handoff) More...
 
vlib_node_registration_t esp4_decrypt_tun_handoff
 (constructor) VLIB_REGISTER_NODE (esp4_decrypt_tun_handoff) More...
 
vlib_node_registration_t esp6_decrypt_tun_handoff
 (constructor) VLIB_REGISTER_NODE (esp6_decrypt_tun_handoff) More...
 
vlib_node_registration_t ah4_encrypt_handoff
 (constructor) VLIB_REGISTER_NODE (ah4_encrypt_handoff) More...
 
vlib_node_registration_t ah6_encrypt_handoff
 (constructor) VLIB_REGISTER_NODE (ah6_encrypt_handoff) More...
 
vlib_node_registration_t ah4_decrypt_handoff
 (constructor) VLIB_REGISTER_NODE (ah4_decrypt_handoff) More...
 
vlib_node_registration_t ah6_decrypt_handoff
 (constructor) VLIB_REGISTER_NODE (ah6_decrypt_handoff) More...
 

Macro Definition Documentation

◆ foreach_ipsec_handoff_error

#define foreach_ipsec_handoff_error   _(CONGESTION_DROP, "congestion drop")

Definition at line 21 of file ipsec_handoff.c.

Typedef Documentation

◆ ipsec_handoff_trace_t

Enumeration Type Documentation

◆ ipsec_handoff_error_t

Enumerator
HANDOFF_N_ERROR 
NAT44_HANDOFF_N_ERROR 

Definition at line 24 of file ipsec_handoff.c.

Function Documentation

◆ ah4_decrypt_handoff()

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

Definition at line 279 of file ipsec_handoff.c.

+ Here is the call graph for this function:

◆ ah4_encrypt_handoff()

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

Definition at line 261 of file ipsec_handoff.c.

+ Here is the call graph for this function:

◆ ah6_decrypt_handoff()

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

Definition at line 288 of file ipsec_handoff.c.

+ Here is the call graph for this function:

◆ ah6_encrypt_handoff()

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

Definition at line 270 of file ipsec_handoff.c.

+ Here is the call graph for this function:

◆ esp4_decrypt_handoff()

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

Definition at line 223 of file ipsec_handoff.c.

+ Here is the call graph for this function:

◆ esp4_decrypt_tun_handoff()

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

Definition at line 241 of file ipsec_handoff.c.

+ Here is the call graph for this function:

◆ esp4_encrypt_handoff()

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

Definition at line 185 of file ipsec_handoff.c.

+ Here is the call graph for this function:

◆ esp4_encrypt_tun_handoff()

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

Definition at line 203 of file ipsec_handoff.c.

+ Here is the call graph for this function:

◆ esp6_decrypt_handoff()

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

Definition at line 232 of file ipsec_handoff.c.

+ Here is the call graph for this function:

◆ esp6_decrypt_tun_handoff()

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

Definition at line 251 of file ipsec_handoff.c.

+ Here is the call graph for this function:

◆ esp6_encrypt_handoff()

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

Definition at line 194 of file ipsec_handoff.c.

+ Here is the call graph for this function:

◆ esp6_encrypt_tun_handoff()

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

Definition at line 213 of file ipsec_handoff.c.

+ Here is the call graph for this function:

◆ format_ipsec_handoff_trace()

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

Definition at line 44 of file ipsec_handoff.c.

+ Here is the call graph for this function:

◆ ipsec_handoff()

static_always_inline uword ipsec_handoff ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame,
u32  fq_index,
bool  is_enc 
)

Definition at line 57 of file ipsec_handoff.c.

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

Variable Documentation

◆ ah4_decrypt_handoff

vlib_node_registration_t ah4_decrypt_handoff
Initial value:
= {
.name = "ah4-decrypt-handoff",
.vector_size = sizeof (u32),
.format_trace = format_ipsec_handoff_trace,
.error_strings = ipsec_handoff_error_strings,
.n_next_nodes = 1,
.next_nodes = {
[0] = "error-drop",
},
}
static u8 * format_ipsec_handoff_trace(u8 *s, va_list *args)
Definition: ipsec_handoff.c:44
static char * ipsec_handoff_error_strings[]
Definition: ipsec_handoff.c:32
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:67

(constructor) VLIB_REGISTER_NODE (ah4_decrypt_handoff)

Definition at line 418 of file ipsec_handoff.c.

◆ ah4_encrypt_handoff

vlib_node_registration_t ah4_encrypt_handoff
Initial value:
= {
.name = "ah4-encrypt-handoff",
.vector_size = sizeof (u32),
.format_trace = format_ipsec_handoff_trace,
.error_strings = ipsec_handoff_error_strings,
.n_next_nodes = 1,
.next_nodes = {
[0] = "error-drop",
},
}
static u8 * format_ipsec_handoff_trace(u8 *s, va_list *args)
Definition: ipsec_handoff.c:44
static char * ipsec_handoff_error_strings[]
Definition: ipsec_handoff.c:32
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:67

(constructor) VLIB_REGISTER_NODE (ah4_encrypt_handoff)

Definition at line 394 of file ipsec_handoff.c.

◆ ah6_decrypt_handoff

vlib_node_registration_t ah6_decrypt_handoff
Initial value:
= {
.name = "ah6-decrypt-handoff",
.vector_size = sizeof (u32),
.format_trace = format_ipsec_handoff_trace,
.error_strings = ipsec_handoff_error_strings,
.n_next_nodes = 1,
.next_nodes = {
[0] = "error-drop",
},
}
static u8 * format_ipsec_handoff_trace(u8 *s, va_list *args)
Definition: ipsec_handoff.c:44
static char * ipsec_handoff_error_strings[]
Definition: ipsec_handoff.c:32
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:67

(constructor) VLIB_REGISTER_NODE (ah6_decrypt_handoff)

Definition at line 430 of file ipsec_handoff.c.

◆ ah6_encrypt_handoff

vlib_node_registration_t ah6_encrypt_handoff
Initial value:
= {
.name = "ah6-encrypt-handoff",
.vector_size = sizeof (u32),
.format_trace = format_ipsec_handoff_trace,
.error_strings = ipsec_handoff_error_strings,
.n_next_nodes = 1,
.next_nodes = {
[0] = "error-drop",
},
}
static u8 * format_ipsec_handoff_trace(u8 *s, va_list *args)
Definition: ipsec_handoff.c:44
static char * ipsec_handoff_error_strings[]
Definition: ipsec_handoff.c:32
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:67

(constructor) VLIB_REGISTER_NODE (ah6_encrypt_handoff)

Definition at line 406 of file ipsec_handoff.c.

◆ esp4_decrypt_handoff

vlib_node_registration_t esp4_decrypt_handoff
Initial value:
= {
.name = "esp4-decrypt-handoff",
.vector_size = sizeof (u32),
.format_trace = format_ipsec_handoff_trace,
.error_strings = ipsec_handoff_error_strings,
.n_next_nodes = 1,
.next_nodes = {
[0] = "error-drop",
},
}
static u8 * format_ipsec_handoff_trace(u8 *s, va_list *args)
Definition: ipsec_handoff.c:44
static char * ipsec_handoff_error_strings[]
Definition: ipsec_handoff.c:32
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:67

(constructor) VLIB_REGISTER_NODE (esp4_decrypt_handoff)

Definition at line 346 of file ipsec_handoff.c.

◆ esp4_decrypt_tun_handoff

vlib_node_registration_t esp4_decrypt_tun_handoff
Initial value:
= {
.name = "esp4-decrypt-tun-handoff",
.vector_size = sizeof (u32),
.format_trace = format_ipsec_handoff_trace,
.error_strings = ipsec_handoff_error_strings,
.n_next_nodes = 1,
.next_nodes = {
[0] = "error-drop",
},
}
static u8 * format_ipsec_handoff_trace(u8 *s, va_list *args)
Definition: ipsec_handoff.c:44
static char * ipsec_handoff_error_strings[]
Definition: ipsec_handoff.c:32
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:67

(constructor) VLIB_REGISTER_NODE (esp4_decrypt_tun_handoff)

Definition at line 370 of file ipsec_handoff.c.

◆ esp4_encrypt_handoff

vlib_node_registration_t esp4_encrypt_handoff
Initial value:
= {
.name = "esp4-encrypt-handoff",
.vector_size = sizeof (u32),
.format_trace = format_ipsec_handoff_trace,
.error_strings = ipsec_handoff_error_strings,
.n_next_nodes = 1,
.next_nodes = {
[0] = "error-drop",
},
}
static u8 * format_ipsec_handoff_trace(u8 *s, va_list *args)
Definition: ipsec_handoff.c:44
static char * ipsec_handoff_error_strings[]
Definition: ipsec_handoff.c:32
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:67

(constructor) VLIB_REGISTER_NODE (esp4_encrypt_handoff)

Definition at line 298 of file ipsec_handoff.c.

◆ esp4_encrypt_tun_handoff

vlib_node_registration_t esp4_encrypt_tun_handoff
Initial value:
= {
.name = "esp4-encrypt-tun-handoff",
.vector_size = sizeof (u32),
.format_trace = format_ipsec_handoff_trace,
.error_strings = ipsec_handoff_error_strings,
.n_next_nodes = 1,
.next_nodes = {
[0] = "error-drop",
},
}
static u8 * format_ipsec_handoff_trace(u8 *s, va_list *args)
Definition: ipsec_handoff.c:44
static char * ipsec_handoff_error_strings[]
Definition: ipsec_handoff.c:32
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:67

(constructor) VLIB_REGISTER_NODE (esp4_encrypt_tun_handoff)

Definition at line 322 of file ipsec_handoff.c.

◆ esp6_decrypt_handoff

vlib_node_registration_t esp6_decrypt_handoff
Initial value:
= {
.name = "esp6-decrypt-handoff",
.vector_size = sizeof (u32),
.format_trace = format_ipsec_handoff_trace,
.error_strings = ipsec_handoff_error_strings,
.n_next_nodes = 1,
.next_nodes = {
[0] = "error-drop",
},
}
static u8 * format_ipsec_handoff_trace(u8 *s, va_list *args)
Definition: ipsec_handoff.c:44
static char * ipsec_handoff_error_strings[]
Definition: ipsec_handoff.c:32
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:67

(constructor) VLIB_REGISTER_NODE (esp6_decrypt_handoff)

Definition at line 358 of file ipsec_handoff.c.

◆ esp6_decrypt_tun_handoff

vlib_node_registration_t esp6_decrypt_tun_handoff
Initial value:
= {
.name = "esp6-decrypt-tun-handoff",
.vector_size = sizeof (u32),
.format_trace = format_ipsec_handoff_trace,
.error_strings = ipsec_handoff_error_strings,
.n_next_nodes = 1,
.next_nodes = {
[0] = "error-drop",
},
}
static u8 * format_ipsec_handoff_trace(u8 *s, va_list *args)
Definition: ipsec_handoff.c:44
static char * ipsec_handoff_error_strings[]
Definition: ipsec_handoff.c:32
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:67

(constructor) VLIB_REGISTER_NODE (esp6_decrypt_tun_handoff)

Definition at line 382 of file ipsec_handoff.c.

◆ esp6_encrypt_handoff

vlib_node_registration_t esp6_encrypt_handoff
Initial value:
= {
.name = "esp6-encrypt-handoff",
.vector_size = sizeof (u32),
.format_trace = format_ipsec_handoff_trace,
.error_strings = ipsec_handoff_error_strings,
.n_next_nodes = 1,
.next_nodes = {
[0] = "error-drop",
},
}
static u8 * format_ipsec_handoff_trace(u8 *s, va_list *args)
Definition: ipsec_handoff.c:44
static char * ipsec_handoff_error_strings[]
Definition: ipsec_handoff.c:32
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:67

(constructor) VLIB_REGISTER_NODE (esp6_encrypt_handoff)

Definition at line 310 of file ipsec_handoff.c.

◆ esp6_encrypt_tun_handoff

vlib_node_registration_t esp6_encrypt_tun_handoff
Initial value:
= {
.name = "esp6-encrypt-tun-handoff",
.vector_size = sizeof (u32),
.format_trace = format_ipsec_handoff_trace,
.error_strings = ipsec_handoff_error_strings,
.n_next_nodes = 1,
.next_nodes = {
[0] = "error-drop",
},
}
static u8 * format_ipsec_handoff_trace(u8 *s, va_list *args)
Definition: ipsec_handoff.c:44
static char * ipsec_handoff_error_strings[]
Definition: ipsec_handoff.c:32
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:67

(constructor) VLIB_REGISTER_NODE (esp6_encrypt_tun_handoff)

Definition at line 334 of file ipsec_handoff.c.

◆ ipsec_handoff_error_strings

char* ipsec_handoff_error_strings[]
static
Initial value:
= {
#define _(sym,string)
}
#define foreach_ipsec_handoff_error
Definition: ipsec_handoff.c:21

Definition at line 32 of file ipsec_handoff.c.