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

Go to the source code of this file.

Data Structures

struct  esp_encrypt_trace_t
 
struct  esp_encrypt_post_trace_t
 
struct  esp_no_crypto_trace_t
 

Macros

#define foreach_esp_encrypt_next
 
#define foreach_esp_encrypt_error
 

Enumerations

enum  esp_encrypt_next_t { ESP_ENCRYPT_N_NEXT, ESP_ENCRYPT_N_NEXT }
 
enum  esp_encrypt_error_t { ESP_ENCRYPT_N_ERROR, ESP_ENCRYPT_N_ERROR }
 
enum  { ESP_NO_CRYPTO_NEXT_DROP, ESP_NO_CRYPTO_N_NEXT }
 
enum  { ESP_NO_CRYPTO_ERROR_RX_PKTS }
 

Functions

static u8format_esp_encrypt_trace (u8 *s, va_list *args)
 
static u8format_esp_post_encrypt_trace (u8 *s, va_list *args)
 
static_always_inline u8esp_add_footer_and_icv (vlib_main_t *vm, vlib_buffer_t **last, u8 esp_align, u8 icv_sz, u16 *next, vlib_node_runtime_t *node, u16 buffer_data_size, uword total_len)
 
static_always_inline void esp_update_ip4_hdr (ip4_header_t *ip4, u16 len, int is_transport, int is_udp)
 
static_always_inline void esp_fill_udp_hdr (ipsec_sa_t *sa, udp_header_t *udp, u16 len)
 
static_always_inline u8 ext_hdr_is_pre_esp (u8 nexthdr)
 
static_always_inline u8 esp_get_ip6_hdr_len (ip6_header_t *ip6, ip6_ext_header_t **ext_hdr)
 
static_always_inline void esp_process_chained_ops (vlib_main_t *vm, vlib_node_runtime_t *node, vnet_crypto_op_t *ops, vlib_buffer_t *b[], u16 *nexts, vnet_crypto_op_chunk_t *chunks, u16 drop_next)
 
static_always_inline void esp_process_ops (vlib_main_t *vm, vlib_node_runtime_t *node, vnet_crypto_op_t *ops, vlib_buffer_t *b[], u16 *nexts, u16 drop_next)
 
 STATIC_ASSERT_SIZEOF (esp_gcm_nonce_t, 12)
 
static_always_inline u32 esp_encrypt_chain_crypto (vlib_main_t *vm, ipsec_per_thread_data_t *ptd, ipsec_sa_t *sa0, vlib_buffer_t *b, vlib_buffer_t *lb, u8 icv_sz, u8 *start, u32 start_len, u16 *n_ch)
 
static_always_inline u32 esp_encrypt_chain_integ (vlib_main_t *vm, ipsec_per_thread_data_t *ptd, ipsec_sa_t *sa0, vlib_buffer_t *b, vlib_buffer_t *lb, u8 icv_sz, u8 *start, u32 start_len, u8 *digest, u16 *n_ch)
 
static void esp_prepare_sync_op (vlib_main_t *vm, ipsec_per_thread_data_t *ptd, vnet_crypto_op_t **crypto_ops, vnet_crypto_op_t **integ_ops, ipsec_sa_t *sa0, u8 *payload, u16 payload_len, u8 iv_sz, u8 icv_sz, vlib_buffer_t **bufs, vlib_buffer_t **b, vlib_buffer_t *lb, u32 hdr_len, esp_header_t *esp, esp_gcm_nonce_t *nonce)
 
static_always_inline int esp_prepare_async_frame (vlib_main_t *vm, ipsec_per_thread_data_t *ptd, vnet_crypto_async_frame_t **async_frame, ipsec_sa_t *sa, vlib_buffer_t *b, esp_header_t *esp, u8 *payload, u32 payload_len, u8 iv_sz, u8 icv_sz, u32 bi, u16 *next, u32 hdr_len, u16 async_next, vlib_buffer_t *lb)
 
static_always_inline void esp_async_recycle_failed_submit (vnet_crypto_async_frame_t *f, vlib_buffer_t **b, u16 *next, u16 drop_next)
 
static uword esp_encrypt_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, int is_ip6, int is_tun, u16 async_next)
 
static uword esp_encrypt_post_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
VLIB_NODE_FN() esp4_encrypt_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp4_encrypt_post_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp6_encrypt_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp6_encrypt_post_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp4_encrypt_tun_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp4_encrypt_tun_post_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp6_encrypt_tun_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp6_encrypt_tun_post_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
static u8format_esp_no_crypto_trace (u8 *s, va_list *args)
 
static uword esp_no_crypto_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
VLIB_NODE_FN() esp4_no_crypto_tun_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp6_no_crypto_tun_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
VLIB_NODE_FN() esp_encrypt_pending_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 

Variables

static char * esp_encrypt_error_strings []
 
vlib_node_registration_t esp4_encrypt_node
 (constructor) VLIB_REGISTER_NODE (esp4_encrypt_node) More...
 
vlib_node_registration_t esp4_encrypt_post_node
 (constructor) VLIB_REGISTER_NODE (esp4_encrypt_post_node) More...
 
vlib_node_registration_t esp6_encrypt_node
 (constructor) VLIB_REGISTER_NODE (esp6_encrypt_node) More...
 
vlib_node_registration_t esp6_encrypt_post_node
 (constructor) VLIB_REGISTER_NODE (esp6_encrypt_post_node) More...
 
vlib_node_registration_t esp4_encrypt_tun_node
 (constructor) VLIB_REGISTER_NODE (esp4_encrypt_tun_node) More...
 
vlib_node_registration_t esp4_encrypt_tun_post_node
 (constructor) VLIB_REGISTER_NODE (esp4_encrypt_tun_post_node) More...
 
vlib_node_registration_t esp6_encrypt_tun_node
 (constructor) VLIB_REGISTER_NODE (esp6_encrypt_tun_node) More...
 
vlib_node_registration_t esp6_encrypt_tun_post_node
 (constructor) VLIB_REGISTER_NODE (esp6_encrypt_tun_post_node) More...
 
static char * esp_no_crypto_error_strings []
 
vlib_node_registration_t esp4_no_crypto_tun_node
 (constructor) VLIB_REGISTER_NODE (esp4_no_crypto_tun_node) More...
 
vlib_node_registration_t esp6_no_crypto_tun_node
 (constructor) VLIB_REGISTER_NODE (esp6_no_crypto_tun_node) More...
 
vlib_node_registration_t esp_encrypt_pending_node
 (constructor) VLIB_REGISTER_NODE (esp_encrypt_pending_node) More...
 

Macro Definition Documentation

◆ foreach_esp_encrypt_error

#define foreach_esp_encrypt_error
Value:
_(RX_PKTS, "ESP pkts received") \
_(POST_RX_PKTS, "ESP-post pkts received") \
_(SEQ_CYCLED, "sequence number cycled (packet dropped)") \
_(CRYPTO_ENGINE_ERROR, "crypto engine error (packet dropped)") \
_(CRYPTO_QUEUE_FULL, "crypto queue full (packet dropped)") \
_(NO_BUFFERS, "no buffers (packet dropped)") \

Definition at line 45 of file esp_encrypt.c.

◆ foreach_esp_encrypt_next

#define foreach_esp_encrypt_next
Value:
_(DROP4, "ip4-drop") \
_(DROP6, "ip6-drop") \
_(PENDING, "pending") \
_(HANDOFF4, "handoff4") \
_(HANDOFF6, "handoff6") \
_(INTERFACE_OUTPUT, "interface-output")

Definition at line 29 of file esp_encrypt.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ESP_NO_CRYPTO_NEXT_DROP 
ESP_NO_CRYPTO_N_NEXT 

Definition at line 1254 of file esp_encrypt.c.

◆ anonymous enum

anonymous enum
Enumerator
ESP_NO_CRYPTO_ERROR_RX_PKTS 

Definition at line 1260 of file esp_encrypt.c.

◆ esp_encrypt_error_t

Enumerator
ESP_ENCRYPT_N_ERROR 
ESP_ENCRYPT_N_ERROR 

Definition at line 53 of file esp_encrypt.c.

◆ esp_encrypt_next_t

Enumerator
ESP_ENCRYPT_N_NEXT 
ESP_ENCRYPT_N_NEXT 

Definition at line 38 of file esp_encrypt.c.

Function Documentation

◆ esp4_encrypt_node()

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

Definition at line 1046 of file esp_encrypt.c.

+ Here is the call graph for this function:

◆ esp4_encrypt_post_node()

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

Definition at line 1076 of file esp_encrypt.c.

+ Here is the call graph for this function:

◆ esp4_encrypt_tun_node()

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

Definition at line 1137 of file esp_encrypt.c.

+ Here is the call graph for this function:

◆ esp4_encrypt_tun_post_node()

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

Definition at line 1166 of file esp_encrypt.c.

+ Here is the call graph for this function:

◆ esp4_no_crypto_tun_node()

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

Definition at line 1308 of file esp_encrypt.c.

+ Here is the call graph for this function:

◆ esp6_encrypt_node()

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

Definition at line 1096 of file esp_encrypt.c.

+ Here is the call graph for this function:

◆ esp6_encrypt_post_node()

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

Definition at line 1117 of file esp_encrypt.c.

+ Here is the call graph for this function:

◆ esp6_encrypt_tun_node()

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

Definition at line 1186 of file esp_encrypt.c.

+ Here is the call graph for this function:

◆ esp6_encrypt_tun_post_node()

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

Definition at line 1217 of file esp_encrypt.c.

+ Here is the call graph for this function:

◆ esp6_no_crypto_tun_node()

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

Definition at line 1329 of file esp_encrypt.c.

+ Here is the call graph for this function:

◆ esp_add_footer_and_icv()

static_always_inline u8* esp_add_footer_and_icv ( vlib_main_t vm,
vlib_buffer_t **  last,
u8  esp_align,
u8  icv_sz,
u16 next,
vlib_node_runtime_t node,
u16  buffer_data_size,
uword  total_len 
)

Definition at line 114 of file esp_encrypt.c.

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

◆ esp_async_recycle_failed_submit()

static_always_inline void esp_async_recycle_failed_submit ( vnet_crypto_async_frame_t f,
vlib_buffer_t **  b,
u16 next,
u16  drop_next 
)

Definition at line 561 of file esp_encrypt.c.

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

◆ esp_encrypt_chain_crypto()

static_always_inline u32 esp_encrypt_chain_crypto ( vlib_main_t vm,
ipsec_per_thread_data_t ptd,
ipsec_sa_t sa0,
vlib_buffer_t b,
vlib_buffer_t lb,
u8  icv_sz,
u8 start,
u32  start_len,
u16 n_ch 
)

Definition at line 303 of file esp_encrypt.c.

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

◆ esp_encrypt_chain_integ()

static_always_inline u32 esp_encrypt_chain_integ ( vlib_main_t vm,
ipsec_per_thread_data_t ptd,
ipsec_sa_t sa0,
vlib_buffer_t b,
vlib_buffer_t lb,
u8  icv_sz,
u8 start,
u32  start_len,
u8 digest,
u16 n_ch 
)

Definition at line 340 of file esp_encrypt.c.

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

◆ esp_encrypt_inline()

static uword esp_encrypt_inline ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame,
int  is_ip6,
int  is_tun,
u16  async_next 
)
inlinestatic

Definition at line 575 of file esp_encrypt.c.

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

◆ esp_encrypt_pending_node()

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

Definition at line 1351 of file esp_encrypt.c.

◆ esp_encrypt_post_inline()

static uword esp_encrypt_post_inline ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
inlinestatic

Definition at line 961 of file esp_encrypt.c.

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

◆ esp_fill_udp_hdr()

static_always_inline void esp_fill_udp_hdr ( ipsec_sa_t sa,
udp_header_t udp,
u16  len 
)

Definition at line 185 of file esp_encrypt.c.

+ Here is the caller graph for this function:

◆ esp_get_ip6_hdr_len()

static_always_inline u8 esp_get_ip6_hdr_len ( ip6_header_t ip6,
ip6_ext_header_t **  ext_hdr 
)

Definition at line 210 of file esp_encrypt.c.

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

◆ esp_no_crypto_inline()

static uword esp_no_crypto_inline ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
inlinestatic

Definition at line 1270 of file esp_encrypt.c.

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

◆ esp_prepare_async_frame()

static_always_inline int esp_prepare_async_frame ( vlib_main_t vm,
ipsec_per_thread_data_t ptd,
vnet_crypto_async_frame_t **  async_frame,
ipsec_sa_t sa,
vlib_buffer_t b,
esp_header_t esp,
u8 payload,
u32  payload_len,
u8  iv_sz,
u8  icv_sz,
u32  bi,
u16 next,
u32  hdr_len,
u16  async_next,
vlib_buffer_t lb 
)

Definition at line 474 of file esp_encrypt.c.

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

◆ esp_prepare_sync_op()

static void esp_prepare_sync_op ( vlib_main_t vm,
ipsec_per_thread_data_t ptd,
vnet_crypto_op_t **  crypto_ops,
vnet_crypto_op_t **  integ_ops,
ipsec_sa_t sa0,
u8 payload,
u16  payload_len,
u8  iv_sz,
u8  icv_sz,
vlib_buffer_t **  bufs,
vlib_buffer_t **  b,
vlib_buffer_t lb,
u32  hdr_len,
esp_header_t esp,
esp_gcm_nonce_t *  nonce 
)
inlinestatic

Definition at line 386 of file esp_encrypt.c.

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

◆ esp_process_chained_ops()

static_always_inline void esp_process_chained_ops ( vlib_main_t vm,
vlib_node_runtime_t node,
vnet_crypto_op_t ops,
vlib_buffer_t b[],
u16 nexts,
vnet_crypto_op_chunk_t chunks,
u16  drop_next 
)

Definition at line 238 of file esp_encrypt.c.

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

◆ esp_process_ops()

static_always_inline void esp_process_ops ( vlib_main_t vm,
vlib_node_runtime_t node,
vnet_crypto_op_t ops,
vlib_buffer_t b[],
u16 nexts,
u16  drop_next 
)

Definition at line 267 of file esp_encrypt.c.

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

◆ esp_update_ip4_hdr()

static_always_inline void esp_update_ip4_hdr ( ip4_header_t ip4,
u16  len,
int  is_transport,
int  is_udp 
)

Definition at line 159 of file esp_encrypt.c.

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

◆ ext_hdr_is_pre_esp()

static_always_inline u8 ext_hdr_is_pre_esp ( u8  nexthdr)

Definition at line 192 of file esp_encrypt.c.

+ Here is the caller graph for this function:

◆ format_esp_encrypt_trace()

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

Definition at line 85 of file esp_encrypt.c.

+ Here is the call graph for this function:

◆ format_esp_no_crypto_trace()

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

Definition at line 1243 of file esp_encrypt.c.

+ Here is the call graph for this function:

◆ format_esp_post_encrypt_trace()

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

Definition at line 102 of file esp_encrypt.c.

+ Here is the call graph for this function:

◆ STATIC_ASSERT_SIZEOF()

STATIC_ASSERT_SIZEOF ( esp_gcm_nonce_t  ,
12   
)

Variable Documentation

◆ esp4_encrypt_node

vlib_node_registration_t esp4_encrypt_node
Initial value:
= {
.name = "esp4-encrypt",
.vector_size = sizeof (u32),
.format_trace = format_esp_encrypt_trace,
.error_strings = esp_encrypt_error_strings,
.n_next_nodes = ESP_ENCRYPT_N_NEXT,
.next_nodes = {
[ESP_ENCRYPT_NEXT_DROP4] = "ip4-drop",
[ESP_ENCRYPT_NEXT_DROP6] = "ip6-drop",
[ESP_ENCRYPT_NEXT_HANDOFF4] = "esp4-encrypt-handoff",
[ESP_ENCRYPT_NEXT_HANDOFF6] = "esp6-encrypt-handoff",
[ESP_ENCRYPT_NEXT_INTERFACE_OUTPUT] = "interface-output",
[ESP_ENCRYPT_NEXT_PENDING] = "esp-encrypt-pending",
},
}
static u8 * format_esp_encrypt_trace(u8 *s, va_list *args)
Definition: esp_encrypt.c:85
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123
static char * esp_encrypt_error_strings[]
Definition: esp_encrypt.c:61
#define ARRAY_LEN(x)
Definition: clib.h:67

(constructor) VLIB_REGISTER_NODE (esp4_encrypt_node)

Definition at line 1055 of file esp_encrypt.c.

◆ esp4_encrypt_post_node

vlib_node_registration_t esp4_encrypt_post_node
Initial value:
= {
.name = "esp4-encrypt-post",
.vector_size = sizeof (u32),
.sibling_of = "esp4-encrypt",
.error_strings = esp_encrypt_error_strings,
}
static u8 * format_esp_post_encrypt_trace(u8 *s, va_list *args)
Definition: esp_encrypt.c:102
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123
static char * esp_encrypt_error_strings[]
Definition: esp_encrypt.c:61
#define ARRAY_LEN(x)
Definition: clib.h:67

(constructor) VLIB_REGISTER_NODE (esp4_encrypt_post_node)

Definition at line 1084 of file esp_encrypt.c.

◆ esp4_encrypt_tun_node

vlib_node_registration_t esp4_encrypt_tun_node
Initial value:
= {
.name = "esp4-encrypt-tun",
.vector_size = sizeof (u32),
.format_trace = format_esp_encrypt_trace,
.error_strings = esp_encrypt_error_strings,
.n_next_nodes = ESP_ENCRYPT_N_NEXT,
.next_nodes = {
[ESP_ENCRYPT_NEXT_DROP4] = "ip4-drop",
[ESP_ENCRYPT_NEXT_DROP6] = "ip6-drop",
[ESP_ENCRYPT_NEXT_HANDOFF4] = "esp4-encrypt-tun-handoff",
[ESP_ENCRYPT_NEXT_HANDOFF6] = "error-drop",
[ESP_ENCRYPT_NEXT_INTERFACE_OUTPUT] = "adj-midchain-tx",
[ESP_ENCRYPT_NEXT_PENDING] = "esp-encrypt-pending",
},
}
static u8 * format_esp_encrypt_trace(u8 *s, va_list *args)
Definition: esp_encrypt.c:85
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123
static char * esp_encrypt_error_strings[]
Definition: esp_encrypt.c:61
#define ARRAY_LEN(x)
Definition: clib.h:67

(constructor) VLIB_REGISTER_NODE (esp4_encrypt_tun_node)

Definition at line 1146 of file esp_encrypt.c.

◆ esp4_encrypt_tun_post_node

vlib_node_registration_t esp4_encrypt_tun_post_node
Initial value:
= {
.name = "esp4-encrypt-tun-post",
.vector_size = sizeof (u32),
.sibling_of = "esp4-encrypt-tun",
.error_strings = esp_encrypt_error_strings,
}
static u8 * format_esp_post_encrypt_trace(u8 *s, va_list *args)
Definition: esp_encrypt.c:102
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123
static char * esp_encrypt_error_strings[]
Definition: esp_encrypt.c:61
#define ARRAY_LEN(x)
Definition: clib.h:67

(constructor) VLIB_REGISTER_NODE (esp4_encrypt_tun_post_node)

Definition at line 1174 of file esp_encrypt.c.

◆ esp4_no_crypto_tun_node

vlib_node_registration_t esp4_no_crypto_tun_node
Initial value:
=
{
.name = "esp4-no-crypto",
.vector_size = sizeof (u32),
.format_trace = format_esp_no_crypto_trace,
.error_strings = esp_no_crypto_error_strings,
.n_next_nodes = ESP_NO_CRYPTO_N_NEXT,
.next_nodes = {
[ESP_NO_CRYPTO_NEXT_DROP] = "ip4-drop",
},
}
static char * esp_no_crypto_error_strings[]
Definition: esp_encrypt.c:1265
unsigned int u32
Definition: types.h:88
static u8 * format_esp_no_crypto_trace(u8 *s, va_list *args)
Definition: esp_encrypt.c:1243
#define ARRAY_LEN(x)
Definition: clib.h:67

(constructor) VLIB_REGISTER_NODE (esp4_no_crypto_tun_node)

Definition at line 1316 of file esp_encrypt.c.

◆ esp6_encrypt_node

vlib_node_registration_t esp6_encrypt_node
Initial value:
= {
.name = "esp6-encrypt",
.vector_size = sizeof (u32),
.format_trace = format_esp_encrypt_trace,
.sibling_of = "esp4-encrypt",
.error_strings = esp_encrypt_error_strings,
}
static u8 * format_esp_encrypt_trace(u8 *s, va_list *args)
Definition: esp_encrypt.c:85
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123
static char * esp_encrypt_error_strings[]
Definition: esp_encrypt.c:61
#define ARRAY_LEN(x)
Definition: clib.h:67

(constructor) VLIB_REGISTER_NODE (esp6_encrypt_node)

Definition at line 1105 of file esp_encrypt.c.

◆ esp6_encrypt_post_node

vlib_node_registration_t esp6_encrypt_post_node
Initial value:
= {
.name = "esp6-encrypt-post",
.vector_size = sizeof (u32),
.sibling_of = "esp4-encrypt",
.error_strings = esp_encrypt_error_strings,
}
static u8 * format_esp_post_encrypt_trace(u8 *s, va_list *args)
Definition: esp_encrypt.c:102
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123
static char * esp_encrypt_error_strings[]
Definition: esp_encrypt.c:61
#define ARRAY_LEN(x)
Definition: clib.h:67

(constructor) VLIB_REGISTER_NODE (esp6_encrypt_post_node)

Definition at line 1125 of file esp_encrypt.c.

◆ esp6_encrypt_tun_node

vlib_node_registration_t esp6_encrypt_tun_node
Initial value:
= {
.name = "esp6-encrypt-tun",
.vector_size = sizeof (u32),
.format_trace = format_esp_encrypt_trace,
.error_strings = esp_encrypt_error_strings,
.n_next_nodes = ESP_ENCRYPT_N_NEXT,
.next_nodes = {
[ESP_ENCRYPT_NEXT_DROP4] = "ip4-drop",
[ESP_ENCRYPT_NEXT_DROP6] = "ip6-drop",
[ESP_ENCRYPT_NEXT_HANDOFF4] = "error-drop",
[ESP_ENCRYPT_NEXT_HANDOFF6] = "esp6-encrypt-tun-handoff",
[ESP_ENCRYPT_NEXT_PENDING] = "esp-encrypt-pending",
[ESP_ENCRYPT_NEXT_INTERFACE_OUTPUT] = "adj-midchain-tx",
},
}
static u8 * format_esp_encrypt_trace(u8 *s, va_list *args)
Definition: esp_encrypt.c:85
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123
static char * esp_encrypt_error_strings[]
Definition: esp_encrypt.c:61
#define ARRAY_LEN(x)
Definition: clib.h:67

(constructor) VLIB_REGISTER_NODE (esp6_encrypt_tun_node)

Definition at line 1195 of file esp_encrypt.c.

◆ esp6_encrypt_tun_post_node

vlib_node_registration_t esp6_encrypt_tun_post_node
Initial value:
= {
.name = "esp6-encrypt-tun-post",
.vector_size = sizeof (u32),
.sibling_of = "esp6-encrypt-tun",
.error_strings = esp_encrypt_error_strings,
}
static u8 * format_esp_post_encrypt_trace(u8 *s, va_list *args)
Definition: esp_encrypt.c:102
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123
static char * esp_encrypt_error_strings[]
Definition: esp_encrypt.c:61
#define ARRAY_LEN(x)
Definition: clib.h:67

(constructor) VLIB_REGISTER_NODE (esp6_encrypt_tun_post_node)

Definition at line 1225 of file esp_encrypt.c.

◆ esp6_no_crypto_tun_node

vlib_node_registration_t esp6_no_crypto_tun_node
Initial value:
=
{
.name = "esp6-no-crypto",
.vector_size = sizeof (u32),
.format_trace = format_esp_no_crypto_trace,
.error_strings = esp_no_crypto_error_strings,
.n_next_nodes = ESP_NO_CRYPTO_N_NEXT,
.next_nodes = {
[ESP_NO_CRYPTO_NEXT_DROP] = "ip6-drop",
},
}
static char * esp_no_crypto_error_strings[]
Definition: esp_encrypt.c:1265
unsigned int u32
Definition: types.h:88
static u8 * format_esp_no_crypto_trace(u8 *s, va_list *args)
Definition: esp_encrypt.c:1243
#define ARRAY_LEN(x)
Definition: clib.h:67

(constructor) VLIB_REGISTER_NODE (esp6_no_crypto_tun_node)

Definition at line 1337 of file esp_encrypt.c.

◆ esp_encrypt_error_strings

char* esp_encrypt_error_strings[]
static
Initial value:
= {
#define _(sym,string)
}
#define foreach_esp_encrypt_error
Definition: esp_encrypt.c:45

Definition at line 61 of file esp_encrypt.c.

◆ esp_encrypt_pending_node

vlib_node_registration_t esp_encrypt_pending_node
Initial value:
= {
.name = "esp-encrypt-pending",
.vector_size = sizeof (u32),
.n_next_nodes = 0
}
unsigned int u32
Definition: types.h:88
vl_api_fib_path_type_t type
Definition: fib_types.api:123

(constructor) VLIB_REGISTER_NODE (esp_encrypt_pending_node)

Definition at line 1359 of file esp_encrypt.c.

◆ esp_no_crypto_error_strings

char* esp_no_crypto_error_strings[]
static
Initial value:
= {
"Outbound ESP packets received",
}

Definition at line 1265 of file esp_encrypt.c.