FD.io VPP  v21.10.1-2-g0a485f517
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)
 
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)
 
return ipsec_handoff (vm, node, from_frame, im->esp_mpls_enc_tun_fq_index)
 
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_main_tvm
 
vlib_main_t vlib_node_runtime_tnode
 
vlib_main_t vlib_node_runtime_t vlib_frame_tfrom_frame
 
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 esp_mpls_encrypt_tun_handoff
 (constructor) VLIB_REGISTER_NODE (esp_mpls_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 244 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 226 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 253 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 235 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 190 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 208 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 146 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 164 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 199 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 217 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 155 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 173 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.

◆ ipsec_handoff() [1/2]

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

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:

◆ ipsec_handoff() [2/2]

return ipsec_handoff ( vm  ,
node  ,
from_frame  ,
im->  esp_mpls_enc_tun_fq_index 
)

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",
},
}

(constructor) VLIB_REGISTER_NODE (ah4_decrypt_handoff)

Definition at line 395 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",
},
}

(constructor) VLIB_REGISTER_NODE (ah4_encrypt_handoff)

Definition at line 371 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",
},
}

(constructor) VLIB_REGISTER_NODE (ah6_decrypt_handoff)

Definition at line 407 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",
},
}

(constructor) VLIB_REGISTER_NODE (ah6_encrypt_handoff)

Definition at line 383 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",
},
}

(constructor) VLIB_REGISTER_NODE (esp4_decrypt_handoff)

Definition at line 323 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",
},
}

(constructor) VLIB_REGISTER_NODE (esp4_decrypt_tun_handoff)

Definition at line 347 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",
},
}

(constructor) VLIB_REGISTER_NODE (esp4_encrypt_handoff)

Definition at line 263 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",
},
}

(constructor) VLIB_REGISTER_NODE (esp4_encrypt_tun_handoff)

Definition at line 287 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",
},
}

(constructor) VLIB_REGISTER_NODE (esp6_decrypt_handoff)

Definition at line 335 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",
},
}

(constructor) VLIB_REGISTER_NODE (esp6_decrypt_tun_handoff)

Definition at line 359 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",
},
}

(constructor) VLIB_REGISTER_NODE (esp6_encrypt_handoff)

Definition at line 275 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",
},
}

(constructor) VLIB_REGISTER_NODE (esp6_encrypt_tun_handoff)

Definition at line 299 of file ipsec_handoff.c.

◆ esp_mpls_encrypt_tun_handoff

vlib_node_registration_t esp_mpls_encrypt_tun_handoff
Initial value:
= {
.name = "esp-mpls-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",
},
}

(constructor) VLIB_REGISTER_NODE (esp_mpls_encrypt_tun_handoff)

Definition at line 311 of file ipsec_handoff.c.

◆ from_frame

Initial value:

Definition at line 184 of file ipsec_handoff.c.

◆ ipsec_handoff_error_strings

char* ipsec_handoff_error_strings[]
static
Initial value:
= {
#define _(sym,string)
}

Definition at line 32 of file ipsec_handoff.c.

◆ node

Definition at line 183 of file ipsec_handoff.c.

◆ vm

Definition at line 183 of file ipsec_handoff.c.

im
vnet_interface_main_t * im
Definition: interface_output.c:415
format_ipsec_handoff_trace
static u8 * format_ipsec_handoff_trace(u8 *s, va_list *args)
Definition: ipsec_handoff.c:44
VLIB_NODE_TYPE_INTERNAL
@ VLIB_NODE_TYPE_INTERNAL
Definition: node.h:72
foreach_ipsec_handoff_error
#define foreach_ipsec_handoff_error
Definition: ipsec_handoff.c:21
ARRAY_LEN
#define ARRAY_LEN(x)
Definition: clib.h:70
ipsec_main_t
Definition: ipsec.h:108
ipsec_main
ipsec_main_t ipsec_main
Definition: ipsec.c:29
u32
unsigned int u32
Definition: types.h:88
ipsec_handoff_error_strings
static char * ipsec_handoff_error_strings[]
Definition: ipsec_handoff.c:32
type
vl_api_fib_path_type_t type
Definition: fib_types.api:123