21 #define foreach_ipsec_handoff_error \ 22 _(CONGESTION_DROP, "congestion drop") 26 #define _(sym,str) IPSEC_HANDOFF_ERROR_##sym, 33 #define _(sym,string) string, 63 u32 n_enq, n_left_from, *from;
74 while (n_left_from >= 4)
77 u32 sai0, sai1, sai2, sai3;
80 if (n_left_from >= 12)
149 while (n_left_from > 0)
177 if (n_enq < frame->n_vectors)
179 IPSEC_HANDOFF_ERROR_CONGESTION_DROP,
299 .name =
"esp4-encrypt-handoff",
300 .vector_size =
sizeof (
u32),
311 .name =
"esp6-encrypt-handoff",
312 .vector_size =
sizeof (
u32),
323 .name =
"esp4-encrypt-tun-handoff",
324 .vector_size =
sizeof (
u32),
335 .name =
"esp6-encrypt-tun-handoff",
336 .vector_size =
sizeof (
u32),
347 .name =
"esp4-decrypt-handoff",
348 .vector_size =
sizeof (
u32),
359 .name =
"esp6-decrypt-handoff",
360 .vector_size =
sizeof (
u32),
371 .name =
"esp4-decrypt-tun-handoff",
372 .vector_size =
sizeof (
u32),
383 .name =
"esp6-decrypt-tun-handoff",
384 .vector_size =
sizeof (
u32),
395 .name =
"ah4-encrypt-handoff",
396 .vector_size =
sizeof (
u32),
407 .name =
"ah6-encrypt-handoff",
408 .vector_size =
sizeof (
u32),
419 .name =
"ah4-decrypt-handoff",
420 .vector_size =
sizeof (
u32),
431 .name =
"ah6-decrypt-handoff",
432 .vector_size =
sizeof (
u32),
vlib_node_registration_t esp6_decrypt_handoff
(constructor) VLIB_REGISTER_NODE (esp6_decrypt_handoff)
struct ipsec_handoff_trace_t_ ipsec_handoff_trace_t
vlib_node_registration_t ah6_encrypt_handoff
(constructor) VLIB_REGISTER_NODE (ah6_encrypt_handoff)
vlib_node_registration_t esp6_encrypt_tun_handoff
(constructor) VLIB_REGISTER_NODE (esp6_encrypt_tun_handoff)
static u8 * format_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)
#define VLIB_NODE_FN(node)
vlib_node_registration_t esp4_decrypt_tun_handoff
(constructor) VLIB_REGISTER_NODE (esp4_decrypt_tun_handoff)
u32 esp4_enc_tun_fq_index
#define static_always_inline
#define vlib_prefetch_buffer_header(b, type)
Prefetch buffer metadata.
u32 esp4_dec_tun_fq_index
static char * ipsec_handoff_error_strings[]
vl_api_fib_path_type_t type
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
vlib_node_registration_t esp4_encrypt_tun_handoff
(constructor) VLIB_REGISTER_NODE (esp4_encrypt_tun_handoff)
u32 esp6_dec_tun_fq_index
vlib_node_registration_t esp6_decrypt_tun_handoff
(constructor) VLIB_REGISTER_NODE (esp6_decrypt_tun_handoff)
u32 ah4_enc_fq_index
Worker handoff.
u32 node_index
Node index.
static void vlib_node_increment_counter(vlib_main_t *vm, u32 node_index, u32 counter_index, u64 increment)
#define VLIB_REGISTER_NODE(x,...)
u32 esp6_enc_tun_fq_index
#define vlib_prefetch_buffer_data(b, type)
vlib_node_registration_t ah4_encrypt_handoff
(constructor) VLIB_REGISTER_NODE (ah4_encrypt_handoff)
vlib_main_t vlib_node_runtime_t * node
vlib_node_registration_t esp4_encrypt_handoff
(constructor) VLIB_REGISTER_NODE (esp4_encrypt_handoff)
vlib_node_registration_t ah4_decrypt_handoff
(constructor) VLIB_REGISTER_NODE (ah4_decrypt_handoff)
vlib_node_registration_t ah6_decrypt_handoff
(constructor) VLIB_REGISTER_NODE (ah6_decrypt_handoff)
vlib_node_registration_t esp6_encrypt_handoff
(constructor) VLIB_REGISTER_NODE (esp6_encrypt_handoff)
static void * vlib_add_trace(vlib_main_t *vm, vlib_node_runtime_t *r, vlib_buffer_t *b, u32 n_data_bytes)
#define foreach_ipsec_handoff_error
VLIB buffer representation.
static void * vlib_frame_vector_args(vlib_frame_t *f)
Get pointer to frame vector data.
vlib_node_registration_t esp4_decrypt_handoff
(constructor) VLIB_REGISTER_NODE (esp4_decrypt_handoff)
static_always_inline u32 vlib_buffer_enqueue_to_thread(vlib_main_t *vm, u32 frame_queue_index, u32 *buffer_indices, u16 *thread_indices, u32 n_packets, int drop_on_congestion)
vlib_main_t vlib_node_runtime_t vlib_frame_t * frame
u16 flags
Copy of main node flags.
static_always_inline void vlib_get_buffers(vlib_main_t *vm, u32 *bi, vlib_buffer_t **b, int count)
Translate array of buffer indices into buffer pointers.
#define VLIB_NODE_FLAG_TRACE