DPDK 25.03.0-rc0
rte_security.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright 2017,2019-2020 NXP
3 * Copyright(c) 2017-2020 Intel Corporation.
4 */
5
6#ifndef _RTE_SECURITY_H_
7#define _RTE_SECURITY_H_
8
15#include <sys/types.h>
16
17#include <rte_compat.h>
18#include <rte_common.h>
19#include <rte_crypto.h>
20#include <rte_ip.h>
21#include <rte_mbuf_dyn.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
33};
34
41};
42
49};
50
56#define RTE_SECURITY_IPSEC_TUNNEL_VERIFY_DST_ADDR 0x1
57#define RTE_SECURITY_IPSEC_TUNNEL_VERIFY_SRC_DST_ADDR 0x2
58
59#define RTE_SEC_CTX_F_FAST_SET_MDATA 0x00000001
73 union {
74 struct {
75 struct in_addr src_ip;
77 struct in_addr dst_ip;
79 uint8_t dscp;
81 uint8_t df;
83 uint8_t ttl;
85 } ipv4;
87 struct {
92 uint8_t dscp;
94 uint32_t flabel;
96 uint8_t hlimit;
98 } ipv6;
100 };
101};
102
103struct rte_security_ipsec_udp_param {
104 uint16_t sport;
105 uint16_t dport;
106};
107
117 uint32_t esn : 1;
118
125 uint32_t udp_encap : 1;
126
134 uint32_t copy_dscp : 1;
135
142 uint32_t copy_flabel : 1;
143
150 uint32_t copy_df : 1;
151
159 uint32_t dec_ttl : 1;
160
168 uint32_t ecn : 1;
169
176 uint32_t stats : 1;
177
190 uint32_t iv_gen_disable : 1;
191
199 uint32_t tunnel_hdr_verify : 2;
200
206 uint32_t udp_ports_verify : 1;
207
221 uint32_t ip_csum_enable : 1;
222
237 uint32_t l4_csum_enable : 1;
238
250 uint32_t ip_reassembly_en : 1;
251
261 uint32_t ingress_oop : 1;
262};
263
270};
271
294};
295
302 uint32_t spi;
304 uint32_t salt;
322 union {
323 uint64_t value;
324 struct {
325 uint32_t low;
326 uint32_t hi;
327 };
328 } esn;
330 struct rte_security_ipsec_udp_param udp;
332};
333
342};
343
345#define RTE_SECURITY_MACSEC_NUM_AN 4
347#define RTE_SECURITY_MACSEC_SALT_LEN 12
348
356 struct {
357 const uint8_t *data;
358 uint16_t length;
363 uint8_t an : 2;
365 uint32_t ssci;
367 uint32_t xpn;
369 uint32_t next_pn;
370};
371
379 uint64_t pn_threshold;
380 union {
381 struct {
387 uint8_t active : 1;
389 uint8_t is_xpn : 1;
391 uint8_t reserved : 6;
392 } sc_rx;
393 struct {
394 uint16_t sa_id;
395 uint16_t sa_id_rekey;
396 uint64_t sci;
397 uint8_t active : 1;
398 uint8_t re_key_en : 1;
400 uint8_t is_xpn : 1;
402 uint8_t reserved : 5;
403 } sc_tx;
404 };
405};
406
415};
416
418#define RTE_SECURITY_MACSEC_VALIDATE_DISABLE 0
420#define RTE_SECURITY_MACSEC_VALIDATE_NO_DISCARD 1
422#define RTE_SECURITY_MACSEC_VALIDATE_STRICT 2
424#define RTE_SECURITY_MACSEC_VALIDATE_NO_OP 3
425
435 uint8_t cipher_off;
440 uint64_t sci;
442 uint16_t sc_id;
443 union {
444 struct {
446 uint16_t mtu;
451 uint8_t sectag_off;
453 uint16_t protect_frames : 1;
460 uint16_t sectag_insert_mode : 1;
462 uint16_t icv_include_da_sa : 1;
464 uint16_t ctrl_port_enable : 1;
466 uint16_t sectag_version : 1;
468 uint16_t end_station : 1;
470 uint16_t send_sci : 1;
472 uint16_t scb : 1;
477 uint16_t encrypt : 1;
479 uint16_t reserved : 7;
480 } tx_secy;
481 struct {
485 uint16_t validate_frames : 2;
487 uint16_t icv_include_da_sa : 1;
489 uint16_t ctrl_port_enable : 1;
491 uint16_t preserve_sectag : 1;
493 uint16_t preserve_icv : 1;
495 uint16_t replay_protect : 1;
497 uint16_t reserved : 9;
498 } rx_secy;
499 };
500};
501
509};
510
515};
516
530
537 int8_t bearer;
541 uint8_t en_ordering;
556 uint32_t hfn;
567 uint8_t hfn_ovrd;
575 uint16_t reserved;
576};
577
588};
589
598};
599
601#define RTE_SECURITY_TLS_1_2_IMP_NONCE_LEN 4
603#define RTE_SECURITY_TLS_1_3_IMP_NONCE_LEN 12
605#define RTE_SECURITY_DTLS_1_2_IMP_NONCE_LEN 4
606
612};
613
624};
625
638 uint32_t iv_gen_disable : 1;
655};
656
671};
672
687 union {
689 struct {
691 uint64_t seq_no;
695
697 struct {
699 uint64_t seq_no;
709
711 struct {
713 uint16_t epoch;
715 uint64_t seq_no;
722 uint32_t ar_win_sz;
724 };
725};
726
730/* Enumeration of rte_security_session_action_type 8<*/
751/* >8 End enumeration of rte_security_session_action_type. */
752
754/* Enumeration of rte_security_session_protocol 8<*/
766};
767/* >8 End enumeration of rte_security_session_protocol. */
768
772/* Structure rte_security_session_conf 8< */
778 union {
779 struct rte_security_ipsec_xform ipsec;
780 struct rte_security_macsec_xform macsec;
781 struct rte_security_pdcp_xform pdcp;
782 struct rte_security_docsis_xform docsis;
783 struct rte_security_tls_record_xform tls_record;
784 };
788 void *userdata;
790};
791/* >8 End of structure rte_security_session_conf. */
792
803void *
805 struct rte_security_session_conf *conf,
806 struct rte_mempool *mp);
807
818int
820 void *sess,
821 struct rte_security_session_conf *conf);
822
832unsigned int
834
849int
850rte_security_session_destroy(void *instance, void *sess);
851
864int
866 struct rte_security_macsec_sc *conf);
867
879int
880rte_security_macsec_sc_destroy(void *instance, uint16_t sc_id,
882
895int
897 struct rte_security_macsec_sa *conf);
898
910int
911rte_security_macsec_sa_destroy(void *instance, uint16_t sa_id,
913
915typedef uint64_t rte_security_dynfield_t;
918
925
936static inline rte_security_dynfield_t *
938{
939 return RTE_MBUF_DYNFIELD(mbuf,
942}
943
954__rte_experimental
955static inline rte_security_oop_dynfield_t *
957{
958 return RTE_MBUF_DYNFIELD(mbuf,
961}
962
969{
971}
972
973#define RTE_SECURITY_CTX_FLAGS_OFF 4
977static inline uint32_t
979{
980 return *((uint32_t *)ctx + RTE_SECURITY_CTX_FLAGS_OFF);
981}
982
986static inline void
987rte_security_ctx_flags_set(void *ctx, uint32_t flags)
988{
989 uint32_t *data;
990 data = (((uint32_t *)ctx) + RTE_SECURITY_CTX_FLAGS_OFF);
991 *data = flags;
992}
993
994#define RTE_SECURITY_SESS_OPAQUE_DATA_OFF 0
995#define RTE_SECURITY_SESS_FAST_MDATA_OFF 1
999static inline uint64_t
1001{
1002 return *((uint64_t *)sess + RTE_SECURITY_SESS_OPAQUE_DATA_OFF);
1003}
1004
1008static inline void
1009rte_security_session_opaque_data_set(void *sess, uint64_t opaque)
1010{
1011 uint64_t *data;
1012 data = (((uint64_t *)sess) + RTE_SECURITY_SESS_OPAQUE_DATA_OFF);
1013 *data = opaque;
1014}
1015
1019static inline uint64_t
1021{
1022 return *((uint64_t *)sess + RTE_SECURITY_SESS_FAST_MDATA_OFF);
1023}
1024
1028static inline void
1029rte_security_session_fast_mdata_set(void *sess, uint64_t fdata)
1030{
1031 uint64_t *data;
1032 data = (((uint64_t *)sess) + RTE_SECURITY_SESS_FAST_MDATA_OFF);
1033 *data = fdata;
1034}
1035
1038 void *sess,
1039 struct rte_mbuf *m, void *params);
1040
1054static inline int
1056 void *sess,
1057 struct rte_mbuf *mb, void *params)
1058{
1059 /* Fast Path */
1063 return 0;
1064 }
1065
1066 /* Jump to PMD specific function pointer */
1067 return __rte_security_set_pkt_metadata(instance, sess, mb, params);
1068}
1069
1076static inline int
1078{
1079 sym_op->session = sess;
1080
1081 return 0;
1082}
1083
1093static inline int
1095 void *sess)
1096{
1098 return -EINVAL;
1099
1101
1102 return __rte_security_attach_session(op->sym, sess);
1103}
1104
1105struct rte_security_macsec_secy_stats {
1106 uint64_t ctl_pkt_bcast_cnt;
1107 uint64_t ctl_pkt_mcast_cnt;
1108 uint64_t ctl_pkt_ucast_cnt;
1109 uint64_t ctl_octet_cnt;
1110 uint64_t unctl_pkt_bcast_cnt;
1111 uint64_t unctl_pkt_mcast_cnt;
1112 uint64_t unctl_pkt_ucast_cnt;
1113 uint64_t unctl_octet_cnt;
1114 /* Valid only for Rx */
1115 uint64_t octet_decrypted_cnt;
1116 uint64_t octet_validated_cnt;
1117 uint64_t pkt_port_disabled_cnt;
1118 uint64_t pkt_badtag_cnt;
1119 uint64_t pkt_nosa_cnt;
1120 uint64_t pkt_nosaerror_cnt;
1121 uint64_t pkt_tagged_ctl_cnt;
1122 uint64_t pkt_untaged_cnt;
1123 uint64_t pkt_ctl_cnt;
1124 uint64_t pkt_notag_cnt;
1125 /* Valid only for Tx */
1126 uint64_t octet_encrypted_cnt;
1127 uint64_t octet_protected_cnt;
1128 uint64_t pkt_noactivesa_cnt;
1129 uint64_t pkt_toolong_cnt;
1130 uint64_t pkt_untagged_cnt;
1131};
1132
1133struct rte_security_macsec_sc_stats {
1134 /* Rx */
1135 uint64_t hit_cnt;
1136 uint64_t pkt_invalid_cnt;
1137 uint64_t pkt_late_cnt;
1138 uint64_t pkt_notvalid_cnt;
1139 uint64_t pkt_unchecked_cnt;
1140 uint64_t pkt_delay_cnt;
1141 uint64_t pkt_ok_cnt;
1142 uint64_t octet_decrypt_cnt;
1143 uint64_t octet_validate_cnt;
1144 /* Tx */
1145 uint64_t pkt_encrypt_cnt;
1146 uint64_t pkt_protected_cnt;
1147 uint64_t octet_encrypt_cnt;
1148 uint64_t octet_protected_cnt;
1149};
1150
1151struct rte_security_macsec_sa_stats {
1152 /* Rx */
1153 uint64_t pkt_invalid_cnt;
1154 uint64_t pkt_nosaerror_cnt;
1155 uint64_t pkt_notvalid_cnt;
1156 uint64_t pkt_ok_cnt;
1157 uint64_t pkt_nosa_cnt;
1158 /* Tx */
1159 uint64_t pkt_encrypt_cnt;
1160 uint64_t pkt_protected_cnt;
1161};
1162
1163struct rte_security_ipsec_stats {
1164 uint64_t ipackets;
1165 uint64_t opackets;
1166 uint64_t ibytes;
1167 uint64_t obytes;
1168 uint64_t ierrors;
1169 uint64_t oerrors;
1170 uint64_t reserved1;
1171 uint64_t reserved2;
1172};
1173
1174struct rte_security_pdcp_stats {
1175 uint64_t reserved;
1176};
1177
1178struct rte_security_docsis_stats {
1179 uint64_t reserved;
1180};
1181
1182struct rte_security_stats {
1183 enum rte_security_session_protocol protocol;
1186 union {
1187 struct rte_security_macsec_secy_stats macsec;
1188 struct rte_security_ipsec_stats ipsec;
1189 struct rte_security_pdcp_stats pdcp;
1190 struct rte_security_docsis_stats docsis;
1191 };
1192};
1193
1207int
1209 void *sess,
1210 struct rte_security_stats *stats);
1211
1223int
1225 uint16_t sa_id, enum rte_security_macsec_direction dir,
1226 struct rte_security_macsec_sa_stats *stats);
1227
1239int
1241 uint16_t sc_id, enum rte_security_macsec_direction dir,
1242 struct rte_security_macsec_sc_stats *stats);
1243
1252 union {
1253 struct {
1266 } ipsec;
1268 struct {
1270 uint16_t mtu;
1274 uint16_t max_nb_sc;
1276 uint16_t max_nb_sa;
1278 uint16_t max_nb_sess;
1286 uint16_t icv_include_da_sa : 1;
1288 uint16_t ctrl_port_enable : 1;
1290 uint16_t preserve_sectag : 1;
1292 uint16_t preserve_icv : 1;
1294 uint16_t validate_frames : 1;
1296 uint16_t re_key : 1;
1298 uint16_t anti_replay : 1;
1300 uint16_t reserved : 7;
1301 } macsec;
1303 struct {
1306 uint32_t capa_flags;
1308 } pdcp;
1310 struct {
1313 } docsis;
1315 struct {
1320 uint32_t ar_win_size;
1324 } tls_record;
1326 };
1327
1331 uint32_t ol_flags;
1333};
1334
1340#define RTE_SECURITY_PDCP_ORDERING_CAP 0x00000001
1341
1346#define RTE_SECURITY_PDCP_DUP_DETECT_CAP 0x00000002
1347
1348#define RTE_SECURITY_TX_OLOAD_NEED_MDATA 0x00000001
1352#define RTE_SECURITY_TX_HW_TRAILER_OFFLOAD 0x00000002
1358#define RTE_SECURITY_RX_HW_TRAILER_OFFLOAD 0x00010000
1371 enum rte_security_session_protocol protocol;
1372
1373 union {
1374 struct {
1377 enum rte_security_ipsec_sa_direction direction;
1378 } ipsec;
1379 struct {
1380 enum rte_security_pdcp_domain domain;
1381 uint32_t capa_flags;
1382 } pdcp;
1383 struct {
1384 enum rte_security_docsis_direction direction;
1385 } docsis;
1386 struct {
1387 enum rte_security_macsec_alg alg;
1388 } macsec;
1389 struct {
1390 enum rte_security_tls_version ver;
1392 } tls_record;
1393 };
1394};
1395
1405const struct rte_security_capability *
1407
1419const struct rte_security_capability *
1421 struct rte_security_capability_idx *idx);
1422
1446__rte_experimental
1447int
1448rte_security_rx_inject_configure(void *ctx, uint16_t port_id, bool enable);
1449
1502__rte_experimental
1503uint16_t
1504rte_security_inb_pkt_rx_inject(void *ctx, struct rte_mbuf **pkts, void **sess,
1505 uint16_t nb_pkts);
1506
1507#ifdef __cplusplus
1508}
1509#endif
1510
1511#endif /* _RTE_SECURITY_H_ */
#define unlikely(x)
@ RTE_CRYPTO_OP_SECURITY_SESSION
Definition: rte_crypto.h:64
@ RTE_CRYPTO_OP_TYPE_SYMMETRIC
Definition: rte_crypto.h:31
#define RTE_MBUF_DYNFIELD(m, offset, type)
Definition: rte_mbuf_dyn.h:227
rte_security_session_protocol
Definition: rte_security.h:755
@ RTE_SECURITY_PROTOCOL_PDCP
Definition: rte_security.h:760
@ RTE_SECURITY_PROTOCOL_DOCSIS
Definition: rte_security.h:762
@ RTE_SECURITY_PROTOCOL_IPSEC
Definition: rte_security.h:756
@ RTE_SECURITY_PROTOCOL_MACSEC
Definition: rte_security.h:758
@ RTE_SECURITY_PROTOCOL_TLS_RECORD
Definition: rte_security.h:764
void * rte_security_session_create(void *instance, struct rte_security_session_conf *conf, struct rte_mempool *mp)
__rte_experimental uint16_t rte_security_inb_pkt_rx_inject(void *ctx, struct rte_mbuf **pkts, void **sess, uint16_t nb_pkts)
static bool rte_security_dynfield_is_registered(void)
Definition: rte_security.h:968
int rte_security_session_destroy(void *instance, void *sess)
static void rte_security_session_fast_mdata_set(void *sess, uint64_t fdata)
int rte_security_session_update(void *instance, void *sess, struct rte_security_session_conf *conf)
int rte_security_session_stats_get(void *instance, void *sess, struct rte_security_stats *stats)
rte_security_macsec_direction
Definition: rte_security.h:337
@ RTE_SECURITY_MACSEC_DIR_TX
Definition: rte_security.h:339
@ RTE_SECURITY_MACSEC_DIR_RX
Definition: rte_security.h:341
#define RTE_SECURITY_TLS_1_3_IMP_NONCE_LEN
Definition: rte_security.h:603
unsigned int rte_security_session_get_size(void *instance)
int __rte_security_set_pkt_metadata(void *instance, void *sess, struct rte_mbuf *m, void *params)
#define RTE_SECURITY_TLS_1_2_IMP_NONCE_LEN
Definition: rte_security.h:601
int rte_security_macsec_sa_stats_get(void *instance, uint16_t sa_id, enum rte_security_macsec_direction dir, struct rte_security_macsec_sa_stats *stats)
#define RTE_SEC_CTX_F_FAST_SET_MDATA
Definition: rte_security.h:59
#define RTE_SECURITY_MACSEC_SALT_LEN
Definition: rte_security.h:347
static uint64_t rte_security_session_fast_mdata_get(void *sess)
rte_security_pdcp_direction
Definition: rte_security.h:512
@ RTE_SECURITY_PDCP_UPLINK
Definition: rte_security.h:513
@ RTE_SECURITY_PDCP_DOWNLINK
Definition: rte_security.h:514
rte_security_tls_version
Definition: rte_security.h:608
@ RTE_SECURITY_VERSION_DTLS_1_2
Definition: rte_security.h:611
@ RTE_SECURITY_VERSION_TLS_1_3
Definition: rte_security.h:610
@ RTE_SECURITY_VERSION_TLS_1_2
Definition: rte_security.h:609
int rte_security_macsec_sc_create(void *instance, struct rte_security_macsec_sc *conf)
struct rte_mbuf * rte_security_oop_dynfield_t
Definition: rte_security.h:920
rte_security_ipsec_sa_protocol
Definition: rte_security.h:36
@ RTE_SECURITY_IPSEC_SA_PROTO_AH
Definition: rte_security.h:37
@ RTE_SECURITY_IPSEC_SA_PROTO_ESP
Definition: rte_security.h:39
rte_security_session_action_type
Definition: rte_security.h:731
@ RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO
Definition: rte_security.h:746
@ RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL
Definition: rte_security.h:738
@ RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL
Definition: rte_security.h:742
@ RTE_SECURITY_ACTION_TYPE_NONE
Definition: rte_security.h:732
@ RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO
Definition: rte_security.h:734
static uint32_t rte_security_ctx_flags_get(void *ctx)
Definition: rte_security.h:978
static int rte_security_attach_session(struct rte_crypto_op *op, void *sess)
int rte_security_oop_dynfield_offset
rte_security_ipsec_sa_direction
Definition: rte_security.h:265
@ RTE_SECURITY_IPSEC_SA_DIR_INGRESS
Definition: rte_security.h:268
@ RTE_SECURITY_IPSEC_SA_DIR_EGRESS
Definition: rte_security.h:266
static void rte_security_session_opaque_data_set(void *sess, uint64_t opaque)
static rte_security_dynfield_t * rte_security_dynfield(struct rte_mbuf *mbuf)
Definition: rte_security.h:937
__rte_experimental int rte_security_rx_inject_configure(void *ctx, uint16_t port_id, bool enable)
rte_security_ipsec_sa_mode
Definition: rte_security.h:28
@ RTE_SECURITY_IPSEC_SA_MODE_TUNNEL
Definition: rte_security.h:31
@ RTE_SECURITY_IPSEC_SA_MODE_TRANSPORT
Definition: rte_security.h:29
rte_security_pdcp_domain
Definition: rte_security.h:505
@ RTE_SECURITY_PDCP_MODE_CONTROL
Definition: rte_security.h:506
@ RTE_SECURITY_PDCP_MODE_SHORT_MAC
Definition: rte_security.h:508
@ RTE_SECURITY_PDCP_MODE_DATA
Definition: rte_security.h:507
#define RTE_SECURITY_MACSEC_NUM_AN
Definition: rte_security.h:345
rte_security_docsis_direction
Definition: rte_security.h:579
@ RTE_SECURITY_DOCSIS_UPLINK
Definition: rte_security.h:580
@ RTE_SECURITY_DOCSIS_DOWNLINK
Definition: rte_security.h:584
static int __rte_security_attach_session(struct rte_crypto_sym_op *sym_op, void *sess)
int rte_security_dynfield_offset
static int rte_security_set_pkt_metadata(void *instance, void *sess, struct rte_mbuf *mb, void *params)
static uint64_t rte_security_session_opaque_data_get(void *sess)
int rte_security_macsec_sa_create(void *instance, struct rte_security_macsec_sa *conf)
rte_security_macsec_alg
Definition: rte_security.h:410
@ RTE_SECURITY_MACSEC_ALG_GCM_256
Definition: rte_security.h:412
@ RTE_SECURITY_MACSEC_ALG_GCM_128
Definition: rte_security.h:411
@ RTE_SECURITY_MACSEC_ALG_GCM_XPN_128
Definition: rte_security.h:413
@ RTE_SECURITY_MACSEC_ALG_GCM_XPN_256
Definition: rte_security.h:414
uint64_t rte_security_dynfield_t
Definition: rte_security.h:915
const struct rte_security_capability * rte_security_capability_get(void *instance, struct rte_security_capability_idx *idx)
const struct rte_security_capability * rte_security_capabilities_get(void *instance)
int rte_security_macsec_sa_destroy(void *instance, uint16_t sa_id, enum rte_security_macsec_direction dir)
int rte_security_macsec_sc_destroy(void *instance, uint16_t sc_id, enum rte_security_macsec_direction dir)
int rte_security_macsec_sc_stats_get(void *instance, uint16_t sc_id, enum rte_security_macsec_direction dir, struct rte_security_macsec_sc_stats *stats)
static void rte_security_ctx_flags_set(void *ctx, uint32_t flags)
Definition: rte_security.h:987
rte_security_pdcp_sn_size
Definition: rte_security.h:518
@ RTE_SECURITY_PDCP_SN_SIZE_12
Definition: rte_security.h:524
@ RTE_SECURITY_PDCP_SN_SIZE_18
Definition: rte_security.h:528
@ RTE_SECURITY_PDCP_SN_SIZE_15
Definition: rte_security.h:526
@ RTE_SECURITY_PDCP_SN_SIZE_7
Definition: rte_security.h:522
@ RTE_SECURITY_PDCP_SN_SIZE_5
Definition: rte_security.h:520
rte_security_tls_sess_type
Definition: rte_security.h:615
@ RTE_SECURITY_TLS_SESS_TYPE_READ
Definition: rte_security.h:619
@ RTE_SECURITY_TLS_SESS_TYPE_WRITE
Definition: rte_security.h:623
#define RTE_SECURITY_DTLS_1_2_IMP_NONCE_LEN
Definition: rte_security.h:605
rte_security_ipsec_tunnel_type
Definition: rte_security.h:44
@ RTE_SECURITY_IPSEC_TUNNEL_IPV6
Definition: rte_security.h:47
@ RTE_SECURITY_IPSEC_TUNNEL_IPV4
Definition: rte_security.h:45
static __rte_experimental rte_security_oop_dynfield_t * rte_security_oop_dynfield(struct rte_mbuf *mbuf)
Definition: rte_security.h:956
uint8_t type
Definition: rte_crypto.h:97
struct rte_crypto_sym_op sym[0]
Definition: rte_crypto.h:178
uint8_t sess_type
Definition: rte_crypto.h:107
struct rte_security_capability::@457::@463 tls_record
enum rte_security_tls_sess_type type
struct rte_security_capability::@457::@460 macsec
enum rte_security_ipsec_sa_protocol proto
struct rte_security_capability::@457::@459 ipsec
struct rte_security_capability::@457::@462 docsis
enum rte_security_tls_version ver
enum rte_security_session_action_type action
enum rte_security_ipsec_sa_direction direction
enum rte_security_macsec_alg alg
struct rte_security_capability::@457::@461 pdcp
struct rte_security_ipsec_sa_options options
enum rte_security_pdcp_domain domain
enum rte_security_session_protocol protocol
enum rte_security_ipsec_sa_mode mode
enum rte_security_docsis_direction direction
const struct rte_cryptodev_capabilities * crypto_capabilities
enum rte_security_docsis_direction direction
Definition: rte_security.h:596
struct rte_security_ipsec_tunnel_param::@432::@435 ipv6
enum rte_security_ipsec_tunnel_type type
Definition: rte_security.h:71
struct rte_ipv6_addr src_addr
Definition: rte_security.h:88
struct rte_security_ipsec_tunnel_param::@432::@434 ipv4
struct rte_ipv6_addr dst_addr
Definition: rte_security.h:90
struct rte_security_ipsec_lifetime life
Definition: rte_security.h:316
struct rte_security_ipsec_tunnel_param tunnel
Definition: rte_security.h:314
enum rte_security_ipsec_sa_protocol proto
Definition: rte_security.h:310
enum rte_security_ipsec_sa_direction direction
Definition: rte_security.h:308
struct rte_security_ipsec_sa_options options
Definition: rte_security.h:306
enum rte_security_ipsec_sa_mode mode
Definition: rte_security.h:312
struct rte_security_ipsec_udp_param udp
Definition: rte_security.h:330
union rte_security_ipsec_xform::@436 esn
struct rte_security_macsec_sa::@439 key
const uint8_t * data
Definition: rte_security.h:357
uint8_t salt[RTE_SECURITY_MACSEC_SALT_LEN]
Definition: rte_security.h:361
enum rte_security_macsec_direction dir
Definition: rte_security.h:354
uint16_t sa_id[RTE_SECURITY_MACSEC_NUM_AN]
Definition: rte_security.h:383
uint8_t sa_in_use[RTE_SECURITY_MACSEC_NUM_AN]
Definition: rte_security.h:385
enum rte_security_macsec_direction dir
Definition: rte_security.h:377
enum rte_security_macsec_alg alg
Definition: rte_security.h:433
enum rte_security_macsec_direction dir
Definition: rte_security.h:431
enum rte_security_pdcp_sn_size sn_size
Definition: rte_security.h:552
enum rte_security_pdcp_direction pkt_dir
Definition: rte_security.h:550
enum rte_security_pdcp_domain domain
Definition: rte_security.h:548
struct rte_crypto_sym_xform * crypto_xform
Definition: rte_security.h:786
enum rte_security_session_action_type action_type
Definition: rte_security.h:774
enum rte_security_session_protocol protocol
Definition: rte_security.h:776
enum rte_security_tls_sess_type type
Definition: rte_security.h:682
struct rte_security_tls_record_lifetime life
Definition: rte_security.h:686
enum rte_security_tls_version ver
Definition: rte_security.h:680
uint8_t imp_nonce[RTE_SECURITY_TLS_1_2_IMP_NONCE_LEN]
Definition: rte_security.h:693
struct rte_security_tls_record_xform::@448::@452 dtls_1_2
struct rte_security_tls_record_sess_options options
Definition: rte_security.h:684
struct rte_security_tls_record_xform::@448::@450 tls_1_2
struct rte_security_tls_record_xform::@448::@451 tls_1_3