FD.io VPP  v21.10.1-2-g0a485f517
Vector Packet Processing
ipsec.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 Cisco and/or its affiliates.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at:
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #ifndef __IPSEC_H__
16 #define __IPSEC_H__
17 
18 #include <vnet/ip/ip.h>
19 #include <vnet/crypto/crypto.h>
20 #include <vnet/feature/feature.h>
21 
22 #include <vppinfra/types.h>
23 #include <vppinfra/cache.h>
24 
25 #include <vnet/ipsec/ipsec_spd.h>
27 #include <vnet/ipsec/ipsec_sa.h>
28 
29 #include <vppinfra/bihash_8_16.h>
30 
31 #include <vppinfra/bihash_24_16.h>
32 
33 typedef clib_error_t *(*add_del_sa_sess_cb_t) (u32 sa_index, u8 is_add);
34 typedef clib_error_t *(*check_support_cb_t) (ipsec_sa_t * sa);
35 typedef clib_error_t *(*enable_disable_cb_t) (int is_enable);
36 
37 typedef struct
38 {
39  u8 *name;
40  /* add/del callback */
42  /* check support function */
53 
54 typedef struct
55 {
56  u8 *name;
57  /* add/del callback */
59  /* check support function */
61  /* enable or disable function */
79 
80 typedef struct
81 {
89 
90 typedef struct
91 {
96 
97 typedef struct
98 {
99  CLIB_CACHE_LINE_ALIGN_MARK (cacheline0);
107 
108 typedef struct
109 {
110  /* pool of tunnel instances */
112  /* pool of policies */
114 
115  /* hash tables of UDP port registrations */
117 
119 
120  /* convenience */
123 
124  /* hashes */
132 
133  clib_bihash_8_16_t tun4_protect_by_key;
134  clib_bihash_24_16_t tun6_protect_by_key;
135 
136  /* node indices */
151  /* next node indices */
162 
163  /* tun nodes to drop packets when no crypto alg set on outbound SA */
166 
167  /* tun nodes for encrypt on L2 interfaces */
170 
171  /* pool of ah backends */
173  /* pool of esp backends */
175  /* index of current ah backend */
177  /* index of current esp backend */
179  /* index of default ah backend */
181  /* index of default esp backend */
183 
184  /* crypto alg data */
186 
187  /* crypto integ data */
189 
190  /* per-thread data */
192 
193  /** Worker handoff */
198 
208 
211 } ipsec_main_t;
212 
214 {
219 
220 extern ipsec_main_t ipsec_main;
221 
223  u8 is_add);
224 
226 
229 
230 /*
231  * functions
232  */
233 
234 /*
235  * inline functions
236  */
237 
240  vlib_node_runtime_t * nr)
241 {
242  u32 next;
245 
247  return node->next_nodes[next];
248 }
249 
251  const char *name,
252  const char *ah4_encrypt_node_name,
253  const char *ah4_decrypt_node_name,
254  const char *ah6_encrypt_node_name,
255  const char *ah6_decrypt_node_name,
256  check_support_cb_t ah_check_support_cb,
257  add_del_sa_sess_cb_t ah_add_del_sa_sess_cb);
258 
260  vlib_main_t *vm, ipsec_main_t *im, const char *name,
261  const char *esp4_encrypt_node_name, const char *esp4_encrypt_tun_node_name,
262  const char *esp4_decrypt_node_name, const char *esp4_decrypt_tun_node_name,
263  const char *esp6_encrypt_node_name, const char *esp6_encrypt_tun_node_name,
264  const char *esp6_decrypt_node_name, const char *esp6_decrypt_tun_node_name,
265  const char *esp_mpls_encrypt_tun_node_name,
266  check_support_cb_t esp_check_support_cb,
267  add_del_sa_sess_cb_t esp_add_del_sa_sess_cb,
268  enable_disable_cb_t enable_disable_cb);
269 
270 int ipsec_select_ah_backend (ipsec_main_t * im, u32 ah_backend_idx);
271 int ipsec_select_esp_backend (ipsec_main_t * im, u32 esp_backend_idx);
272 
274 void ipsec_set_async_mode (u32 is_enabled);
275 
276 extern void ipsec_register_udp_port (u16 udp_port);
277 extern void ipsec_unregister_udp_port (u16 udp_port);
278 
279 #endif /* __IPSEC_H__ */
280 
281 /*
282  * fd.io coding-style-patch-verification: ON
283  *
284  * Local Variables:
285  * eval: (c-set-style "gnu")
286  * End:
287  */
ipsec_ah_backend_t::ah4_decrypt_next_index
u32 ah4_decrypt_next_index
Definition: ipsec.h:47
ipsec_main_t::ah6_encrypt_next_index
u32 ah6_encrypt_next_index
Definition: ipsec.h:160
ipsec_per_thread_data_t::integ_ops
vnet_crypto_op_t * integ_ops
Definition: ipsec.h:101
ipsec_esp_backend_t::esp6_decrypt_node_index
u32 esp6_decrypt_node_index
Definition: ipsec.h:68
ipsec_main_t::ah_backends
ipsec_ah_backend_t * ah_backends
Definition: ipsec.h:172
im
vnet_interface_main_t * im
Definition: interface_output.c:415
bihash_8_16.h
ipsec_main_integ_alg_t
Definition: ipsec.h:90
ipsec_main_t::tunnel_index_by_key
uword * tunnel_index_by_key
Definition: ipsec.h:118
ipsec_esp_backend_t::esp4_decrypt_tun_node_index
u32 esp4_decrypt_tun_node_index
Definition: ipsec.h:71
ipsec_main_t::esp6_decrypt_node_index
u32 esp6_decrypt_node_index
Definition: ipsec.h:145
crypto.h
ipsec_main_t::vlib_main
vlib_main_t * vlib_main
Definition: ipsec.h:121
ipsec6_tun_input_node
vlib_node_registration_t ipsec6_tun_input_node
(constructor) VLIB_REGISTER_NODE (ipsec6_tun_input_node)
Definition: ipsec_tun_in.c:407
types.h
ipsec_main_t::esp4_decrypt_tun_next_index
u32 esp4_decrypt_tun_next_index
Definition: ipsec.h:154
ipsec_ah_backend_t::ah4_decrypt_node_index
u32 ah4_decrypt_node_index
Definition: ipsec.h:45
ipsec_main_crypto_alg_t::enc_op_id
vnet_crypto_op_id_t enc_op_id
Definition: ipsec.h:82
ipsec_esp_backend_t::esp6_decrypt_next_index
u32 esp6_decrypt_next_index
Definition: ipsec.h:70
ipsec_main_t::esp4_enc_tun_fq_index
u32 esp4_enc_tun_fq_index
Definition: ipsec.h:203
ipsec_main_t::ipsec4_if_pool_index_by_key
uword * ipsec4_if_pool_index_by_key
Definition: ipsec.h:128
ipsec_main_t::esp6_decrypt_tun_next_index
u32 esp6_decrypt_tun_next_index
Definition: ipsec.h:159
get_next_output_feature_node_index
static_always_inline u32 get_next_output_feature_node_index(vlib_buffer_t *b, vlib_node_runtime_t *nr)
Definition: ipsec.h:239
CLIB_CACHE_LINE_ALIGN_MARK
#define CLIB_CACHE_LINE_ALIGN_MARK(mark)
Definition: cache.h:60
ipsec_per_thread_data_t::chunks
vnet_crypto_op_chunk_t * chunks
Definition: ipsec.h:104
name
string name[64]
Definition: fib.api:25
ipsec_main_t::integ_algs
ipsec_main_integ_alg_t * integ_algs
Definition: ipsec.h:188
ipsec_esp_backend_t::esp6_decrypt_tun_node_index
u32 esp6_decrypt_tun_node_index
Definition: ipsec.h:74
ipsec_main_t::esp6_enc_tun_fq_index
u32 esp6_enc_tun_fq_index
Definition: ipsec.h:204
ipsec_main_t::ah4_encrypt_next_index
u32 ah4_encrypt_next_index
Definition: ipsec.h:155
ipsec_ah_backend_t::ah4_encrypt_next_index
u32 ah4_encrypt_next_index
Definition: ipsec.h:46
next
u16 * next
Definition: nat44_ei_out2in.c:718
ipsec_main_t::esp4_dec_tun_fq_index
u32 esp4_dec_tun_fq_index
Definition: ipsec.h:206
node
vlib_main_t vlib_node_runtime_t * node
Definition: nat44_ei.c:3047
ipsec_main_crypto_alg_t::alg
vnet_crypto_alg_t alg
Definition: ipsec.h:84
ipsec_esp_backend_t::esp4_decrypt_node_index
u32 esp4_decrypt_node_index
Definition: ipsec.h:64
ipsec_main_t::esp4_dec_fq_index
u32 esp4_dec_fq_index
Definition: ipsec.h:200
ipsec_main_t::msg_id_base
u16 msg_id_base
Definition: ipsec.h:210
ipsec_main_t::vnet_main
vnet_main_t * vnet_main
Definition: ipsec.h:122
ipsec_format_flags_t_
ipsec_format_flags_t_
Definition: ipsec.h:213
ipsec_main_t::spds
ipsec_spd_t * spds
Definition: ipsec.h:111
u16
unsigned short u16
Definition: types.h:57
ipsec_main_t::ah6_decrypt_node_index
u32 ah6_decrypt_node_index
Definition: ipsec.h:150
vnet_crypto_async_frame_t
Definition: crypto.h:358
ipsec_main_t::esp_default_backend
u32 esp_default_backend
Definition: ipsec.h:182
vm
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
Definition: nat44_ei.c:3047
ipsec_main_t::esp4_encrypt_l2_tun_node_index
u32 esp4_encrypt_l2_tun_node_index
Definition: ipsec.h:168
ipsec_main_t::policies
ipsec_policy_t * policies
Definition: ipsec.h:113
ipsec_main_t::error_drop_node_index
u32 error_drop_node_index
Definition: ipsec.h:137
ipsec_main_t::spd_index_by_sw_if_index
uword * spd_index_by_sw_if_index
Definition: ipsec.h:126
ipsec_esp_backend_t::esp4_encrypt_node_index
u32 esp4_encrypt_node_index
Definition: ipsec.h:63
ipsec_main_t::esp4_decrypt_node_index
u32 esp4_decrypt_node_index
Definition: ipsec.h:139
ipsec_main_t::esp4_decrypt_tun_node_index
u32 esp4_decrypt_tun_node_index
Definition: ipsec.h:140
ipsec_ah_backend_t
Definition: ipsec.h:37
ipsec_sa.h
ipsec_main_t::esp6_dec_tun_fq_index
u32 esp6_dec_tun_fq_index
Definition: ipsec.h:207
ipsec_esp_backend_t::check_support_cb
check_support_cb_t check_support_cb
Definition: ipsec.h:60
vnet_crypto_op_t
Definition: crypto.h:255
ipsec_main_t::udp_port_registrations
uword * udp_port_registrations
Definition: ipsec.h:116
ipsec_esp_backend_t::esp4_decrypt_tun_next_index
u32 esp4_decrypt_tun_next_index
Definition: ipsec.h:72
ipsec_esp_backend_t::esp6_encrypt_node_index
u32 esp6_encrypt_node_index
Definition: ipsec.h:67
ipsec_main_t::ah4_dec_fq_index
u32 ah4_dec_fq_index
Definition: ipsec.h:195
ipsec_ah_backend_t::check_support_cb
check_support_cb_t check_support_cb
Definition: ipsec.h:43
ipsec_main_t::ah6_decrypt_next_index
u32 ah6_decrypt_next_index
Definition: ipsec.h:161
ipsec_main_t::spd_index_by_spd_id
uword * spd_index_by_spd_id
Definition: ipsec.h:125
ipsec_main_t::ah4_decrypt_node_index
u32 ah4_decrypt_node_index
Definition: ipsec.h:143
ipsec_main_t::esp4_encrypt_tun_node_index
u32 esp4_encrypt_tun_node_index
Definition: ipsec.h:141
ipsec_main_t::ah6_enc_fq_index
u32 ah6_enc_fq_index
Definition: ipsec.h:196
ipsec_main_t::tun4_protect_by_key
clib_bihash_8_16_t tun4_protect_by_key
Definition: ipsec.h:133
check_support_cb_t
clib_error_t *(* check_support_cb_t)(ipsec_sa_t *sa)
Definition: ipsec.h:34
ipsec_esp_backend_t::name
u8 * name
Definition: ipsec.h:56
feature.h
ipsec_main_t::esp6_encrypt_l2_tun_node_index
u32 esp6_encrypt_l2_tun_node_index
Definition: ipsec.h:169
ipsec_esp_backend_t::esp4_encrypt_next_index
u32 esp4_encrypt_next_index
Definition: ipsec.h:65
ipsec_main_t::esp6_encrypt_next_index
u32 esp6_encrypt_next_index
Definition: ipsec.h:157
ipsec_select_esp_backend
int ipsec_select_esp_backend(ipsec_main_t *im, u32 esp_backend_idx)
Definition: ipsec.c:281
ipsec_set_async_mode
void ipsec_set_async_mode(u32 is_enabled)
Definition: ipsec.c:328
ipsec_select_ah_backend
int ipsec_select_ah_backend(ipsec_main_t *im, u32 ah_backend_idx)
Definition: ipsec.c:258
ipsec_per_thread_data_t
Definition: ipsec.h:97
ipsec_main_t::ah4_encrypt_node_index
u32 ah4_encrypt_node_index
Definition: ipsec.h:142
vnet_feature_next
static_always_inline void vnet_feature_next(u32 *next0, vlib_buffer_t *b0)
Definition: feature.h:322
ipsec_per_thread_data_t::async_frames
vnet_crypto_async_frame_t ** async_frames
Definition: ipsec.h:105
ipsec_main_t
Definition: ipsec.h:108
ipsec_main_crypto_alg_t
Definition: ipsec.h:80
static_always_inline
#define static_always_inline
Definition: clib.h:112
ipsec_main_t::ah_current_backend
u32 ah_current_backend
Definition: ipsec.h:176
ipsec_main_t::tun6_protect_by_key
clib_bihash_24_16_t tun6_protect_by_key
Definition: ipsec.h:134
ipsec_esp_backend_t::esp6_decrypt_tun_next_index
u32 esp6_decrypt_tun_next_index
Definition: ipsec.h:75
uword
u64 uword
Definition: types.h:112
vlib_get_node
static vlib_node_t * vlib_get_node(vlib_main_t *vm, u32 i)
Get vlib node by index.
Definition: node_funcs.h:86
ipsec_main_crypto_alg_t::dec_op_id
vnet_crypto_op_id_t dec_op_id
Definition: ipsec.h:83
ipsec_register_esp_backend
u32 ipsec_register_esp_backend(vlib_main_t *vm, ipsec_main_t *im, const char *name, const char *esp4_encrypt_node_name, const char *esp4_encrypt_tun_node_name, const char *esp4_decrypt_node_name, const char *esp4_decrypt_tun_node_name, const char *esp6_encrypt_node_name, const char *esp6_encrypt_tun_node_name, const char *esp6_decrypt_node_name, const char *esp6_decrypt_tun_node_name, const char *esp_mpls_encrypt_tun_node_name, check_support_cb_t esp_check_support_cb, add_del_sa_sess_cb_t esp_add_del_sa_sess_cb, enable_disable_cb_t enable_disable_cb)
Definition: ipsec.c:201
ipsec_main_t::ah4_enc_fq_index
u32 ah4_enc_fq_index
Worker handoff.
Definition: ipsec.h:194
vnet_crypto_op_id_t
vnet_crypto_op_id_t
Definition: crypto.h:219
ipsec_main_t::esp6_dec_fq_index
u32 esp6_dec_fq_index
Definition: ipsec.h:202
IPSEC_FORMAT_INSECURE
@ IPSEC_FORMAT_INSECURE
Definition: ipsec.h:217
ipsec_main_t::esp_mpls_encrypt_tun_node_index
u32 esp_mpls_encrypt_tun_node_index
Definition: ipsec.h:148
ipsec_main_t::esp_mpls_enc_tun_fq_index
u32 esp_mpls_enc_tun_fq_index
Definition: ipsec.h:205
ipsec_esp_backend_t::esp6_encrypt_next_index
u32 esp6_encrypt_next_index
Definition: ipsec.h:69
vnet_crypto_op_chunk_t
Definition: crypto.h:248
ipsec_ah_backend_t::add_del_sa_sess_cb
add_del_sa_sess_cb_t add_del_sa_sess_cb
Definition: ipsec.h:41
ipsec_main_integ_alg_t::alg
vnet_crypto_alg_t alg
Definition: ipsec.h:93
bihash_24_16.h
IPSEC_FORMAT_BRIEF
@ IPSEC_FORMAT_BRIEF
Definition: ipsec.h:215
vlib_node_registration_t
struct _vlib_node_registration vlib_node_registration_t
ipsec_spd_policy.h
ipsec_ah_backend_t::ah6_decrypt_node_index
u32 ah6_decrypt_node_index
Definition: ipsec.h:49
ipsec_main_t::ipsec_if_by_sw_if_index
uword * ipsec_if_by_sw_if_index
Definition: ipsec.h:131
ipsec_main_t::sa_index_by_sa_id
uword * sa_index_by_sa_id
Definition: ipsec.h:127
ipsec_esp_backend_t::esp4_decrypt_next_index
u32 esp4_decrypt_next_index
Definition: ipsec.h:66
ipsec_main_t::crypto_algs
ipsec_main_crypto_alg_t * crypto_algs
Definition: ipsec.h:185
ipsec_main_t::ah6_encrypt_node_index
u32 ah6_encrypt_node_index
Definition: ipsec.h:149
ipsec_main_t::ptd
ipsec_per_thread_data_t * ptd
Definition: ipsec.h:191
ipsec_ah_backend_t::ah6_decrypt_next_index
u32 ah6_decrypt_next_index
Definition: ipsec.h:51
ipsec_sa_t
Definition: ipsec_sa.h:116
ipsec_main_t::esp4_encrypt_node_index
u32 esp4_encrypt_node_index
Definition: ipsec.h:138
ipsec_main_t::ah4_decrypt_next_index
u32 ah4_decrypt_next_index
Definition: ipsec.h:156
vnet_main_t
Definition: vnet.h:76
ipsec_main_t::esp6_no_crypto_tun_node_index
u32 esp6_no_crypto_tun_node_index
Definition: ipsec.h:165
ipsec_main_t::esp6_decrypt_next_index
u32 esp6_decrypt_next_index
Definition: ipsec.h:158
vlib_node_runtime_t::node_index
u32 node_index
Node index.
Definition: node.h:478
ipsec_check_support_cb
clib_error_t * ipsec_check_support_cb(ipsec_main_t *im, ipsec_sa_t *sa)
Definition: ipsec.c:92
ipsec_main_t::ipsec_if_real_dev_by_show_dev
uword * ipsec_if_real_dev_by_show_dev
Definition: ipsec.h:130
ipsec4_tun_input_node
vlib_node_registration_t ipsec4_tun_input_node
(constructor) VLIB_REGISTER_NODE (ipsec4_tun_input_node)
Definition: ipsec_tun_in.c:388
cache.h
enable_disable_cb_t
clib_error_t *(* enable_disable_cb_t)(int is_enable)
Definition: ipsec.h:35
ipsec_per_thread_data_t::chained_crypto_ops
vnet_crypto_op_t * chained_crypto_ops
Definition: ipsec.h:102
ipsec_esp_backend_t::add_del_sa_sess_cb
add_del_sa_sess_cb_t add_del_sa_sess_cb
Definition: ipsec.h:58
ip.h
u32
unsigned int u32
Definition: types.h:88
ipsec_policy_t_
A Secruity Policy.
Definition: ipsec_spd_policy.h:54
ipsec_ah_backend_t::ah4_encrypt_node_index
u32 ah4_encrypt_node_index
Definition: ipsec.h:44
ipsec_esp_backend_t
Definition: ipsec.h:54
ipsec_spd.h
ipsec_main_t::ipsec6_if_pool_index_by_key
uword * ipsec6_if_pool_index_by_key
Definition: ipsec.h:129
ipsec_spd_t
A Secruity Policy Database.
Definition: ipsec_spd.h:46
ipsec_esp_backend_t::esp_mpls_encrypt_tun_node_index
u32 esp_mpls_encrypt_tun_node_index
Definition: ipsec.h:77
ipsec_per_thread_data_t::chained_integ_ops
vnet_crypto_op_t * chained_integ_ops
Definition: ipsec.h:103
ipsec_main_crypto_alg_t::iv_size
u8 iv_size
Definition: ipsec.h:85
ipsec_main_t::esp_current_backend
u32 esp_current_backend
Definition: ipsec.h:178
ipsec_ah_backend_t::ah6_encrypt_next_index
u32 ah6_encrypt_next_index
Definition: ipsec.h:50
ipsec_main_t::esp4_encrypt_next_index
u32 esp4_encrypt_next_index
Definition: ipsec.h:152
ipsec_main_t::esp6_encrypt_node_index
u32 esp6_encrypt_node_index
Definition: ipsec.h:144
ipsec_esp_backend_t::esp4_encrypt_tun_node_index
u32 esp4_encrypt_tun_node_index
Definition: ipsec.h:73
vlib_main_t
Definition: main.h:102
vlib_node_t
Definition: node.h:247
vlib_get_main
static vlib_main_t * vlib_get_main(void)
Definition: global_funcs.h:38
b
vlib_buffer_t ** b
Definition: nat44_ei_out2in.c:717
u8
unsigned char u8
Definition: types.h:56
clib_error_t
Definition: clib_error.h:21
ipsec_main_t::esp4_no_crypto_tun_node_index
u32 esp4_no_crypto_tun_node_index
Definition: ipsec.h:164
ipsec_main_crypto_alg_t::icv_size
u8 icv_size
Definition: ipsec.h:87
ipsec_add_del_sa_sess_cb
clib_error_t * ipsec_add_del_sa_sess_cb(ipsec_main_t *im, u32 sa_index, u8 is_add)
Definition: ipsec.c:70
ipsec_rsc_in_use
clib_error_t * ipsec_rsc_in_use(ipsec_main_t *im)
Definition: ipsec.c:247
IPSEC_FORMAT_DETAIL
@ IPSEC_FORMAT_DETAIL
Definition: ipsec.h:216
ipsec_ah_backend_t::ah6_encrypt_node_index
u32 ah6_encrypt_node_index
Definition: ipsec.h:48
ipsec_ah_backend_t::name
u8 * name
Definition: ipsec.h:39
ipsec_main_integ_alg_t::icv_size
u8 icv_size
Definition: ipsec.h:94
ipsec_main_t::ah_default_backend
u32 ah_default_backend
Definition: ipsec.h:180
ipsec_main_t::esp4_decrypt_next_index
u32 esp4_decrypt_next_index
Definition: ipsec.h:153
vlib_node_runtime_t
Definition: node.h:454
ipsec_main_t::esp6_decrypt_tun_node_index
u32 esp6_decrypt_tun_node_index
Definition: ipsec.h:146
ipsec_main_crypto_alg_t::block_align
u8 block_align
Definition: ipsec.h:86
ipsec_main_t::ah6_dec_fq_index
u32 ah6_dec_fq_index
Definition: ipsec.h:197
ipsec_main_t::esp_backends
ipsec_esp_backend_t * esp_backends
Definition: ipsec.h:174
vnet_crypto_alg_t
vnet_crypto_alg_t
Definition: crypto.h:145
ipsec_format_flags_t
enum ipsec_format_flags_t_ ipsec_format_flags_t
ipsec_esp_backend_t::enable_disable_cb
enable_disable_cb_t enable_disable_cb
Definition: ipsec.h:62
ipsec_unregister_udp_port
void ipsec_unregister_udp_port(u16 udp_port)
Definition: ipsec.c:129
ipsec_main_t::async_mode
u8 async_mode
Definition: ipsec.h:209
ipsec_register_ah_backend
u32 ipsec_register_ah_backend(vlib_main_t *vm, ipsec_main_t *im, const char *name, const char *ah4_encrypt_node_name, const char *ah4_decrypt_node_name, const char *ah6_encrypt_node_name, const char *ah6_decrypt_node_name, check_support_cb_t ah_check_support_cb, add_del_sa_sess_cb_t ah_add_del_sa_sess_cb)
Definition: ipsec.c:173
ipsec_main_t::esp6_enc_fq_index
u32 esp6_enc_fq_index
Definition: ipsec.h:201
ipsec_register_udp_port
void ipsec_register_udp_port(u16 udp_port)
Definition: ipsec.c:154
ipsec_main_t::esp4_enc_fq_index
u32 esp4_enc_fq_index
Definition: ipsec.h:199
ipsec_main_t::esp6_encrypt_tun_node_index
u32 esp6_encrypt_tun_node_index
Definition: ipsec.h:147
ipsec_main_integ_alg_t::op_id
vnet_crypto_op_id_t op_id
Definition: ipsec.h:92
ipsec_esp_backend_t::esp6_encrypt_tun_node_index
u32 esp6_encrypt_tun_node_index
Definition: ipsec.h:76
ipsec_main
ipsec_main_t ipsec_main
Definition: ipsec.c:29
add_del_sa_sess_cb_t
clib_error_t *(* add_del_sa_sess_cb_t)(u32 sa_index, u8 is_add)
Definition: ipsec.h:33
ipsec_per_thread_data_t::crypto_ops
vnet_crypto_op_t * crypto_ops
Definition: ipsec.h:100
vlib_buffer_t
VLIB buffer representation.
Definition: buffer.h:111