6 #ifndef _RTE_SECURITY_H_
7 #define _RTE_SECURITY_H_
20 #include <sys/types.h>
22 #include <netinet/in.h>
23 #include <netinet/ip.h>
24 #include <netinet/ip6.h>
26 #include <rte_compat.h>
347 struct rte_security_session {
348 void *sess_private_data;
350 uint64_t opaque_data;
364 struct rte_security_session *
382 struct rte_security_session *sess,
413 struct rte_security_session *sess);
430 struct rte_security_session *sess,
462 struct rte_security_session *sess)
470 get_sec_session_private_data(
const struct rte_security_session *sess)
472 return sess->sess_private_data;
476 set_sec_session_private_data(
struct rte_security_session *sess,
479 sess->sess_private_data = private_data;
493 struct rte_security_session *sess)
503 struct rte_security_macsec_stats {
507 struct rte_security_ipsec_stats {
518 struct rte_security_pdcp_stats {
522 struct rte_security_stats {
528 struct rte_security_macsec_stats macsec;
529 struct rte_security_ipsec_stats ipsec;
530 struct rte_security_pdcp_stats pdcp;
550 struct rte_security_session *sess,
551 struct rte_security_stats *stats);
604 #define RTE_SECURITY_PDCP_ORDERING_CAP 0x00000001
610 #define RTE_SECURITY_PDCP_DUP_DETECT_CAP 0x00000002
612 #define RTE_SECURITY_TX_OLOAD_NEED_MDATA 0x00000001
616 #define RTE_SECURITY_TX_HW_TRAILER_OFFLOAD 0x00000002
622 #define RTE_SECURITY_RX_HW_TRAILER_OFFLOAD 0x00010000
@ RTE_CRYPTO_OP_SECURITY_SESSION
@ RTE_CRYPTO_OP_TYPE_SYMMETRIC
rte_security_session_protocol
@ RTE_SECURITY_PROTOCOL_PDCP
@ RTE_SECURITY_PROTOCOL_IPSEC
@ RTE_SECURITY_PROTOCOL_MACSEC
int rte_security_set_pkt_metadata(struct rte_security_ctx *instance, struct rte_security_session *sess, struct rte_mbuf *mb, void *params)
static int __rte_security_attach_session(struct rte_crypto_sym_op *sym_op, struct rte_security_session *sess)
struct rte_security_session * rte_security_session_create(struct rte_security_ctx *instance, struct rte_security_session_conf *conf, struct rte_mempool *mp)
rte_security_pdcp_direction
@ RTE_SECURITY_PDCP_UPLINK
@ RTE_SECURITY_PDCP_DOWNLINK
const struct rte_security_capability * rte_security_capability_get(struct rte_security_ctx *instance, struct rte_security_capability_idx *idx)
rte_security_ipsec_sa_protocol
@ RTE_SECURITY_IPSEC_SA_PROTO_AH
@ RTE_SECURITY_IPSEC_SA_PROTO_ESP
__rte_experimental int rte_security_session_update(struct rte_security_ctx *instance, struct rte_security_session *sess, struct rte_security_session_conf *conf)
rte_security_session_action_type
@ RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL
@ RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL
@ RTE_SECURITY_ACTION_TYPE_NONE
@ RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO
__rte_experimental int rte_security_session_stats_get(struct rte_security_ctx *instance, struct rte_security_session *sess, struct rte_security_stats *stats)
rte_security_ipsec_sa_direction
@ RTE_SECURITY_IPSEC_SA_DIR_INGRESS
@ RTE_SECURITY_IPSEC_SA_DIR_EGRESS
int rte_security_session_destroy(struct rte_security_ctx *instance, struct rte_security_session *sess)
__rte_experimental void * rte_security_get_userdata(struct rte_security_ctx *instance, uint64_t md)
rte_security_ipsec_sa_mode
@ RTE_SECURITY_IPSEC_SA_MODE_TUNNEL
@ RTE_SECURITY_IPSEC_SA_MODE_TRANSPORT
@ RTE_SECURITY_PDCP_MODE_CONTROL
@ RTE_SECURITY_PDCP_MODE_DATA
static int rte_security_attach_session(struct rte_crypto_op *op, struct rte_security_session *sess)
unsigned int rte_security_session_get_size(struct rte_security_ctx *instance)
const struct rte_security_capability * rte_security_capabilities_get(struct rte_security_ctx *instance)
rte_security_pdcp_sn_size
@ RTE_SECURITY_PDCP_SN_SIZE_12
@ RTE_SECURITY_PDCP_SN_SIZE_18
@ RTE_SECURITY_PDCP_SN_SIZE_15
@ RTE_SECURITY_PDCP_SN_SIZE_7
@ RTE_SECURITY_PDCP_SN_SIZE_5
rte_security_ipsec_tunnel_type
@ RTE_SECURITY_IPSEC_TUNNEL_IPV6
@ RTE_SECURITY_IPSEC_TUNNEL_IPV4
struct rte_crypto_sym_op sym[0]
struct rte_security_session * sec_session
struct rte_security_capability::@272::@275 macsec
uint32_t replay_win_sz_max
enum rte_security_ipsec_sa_protocol proto
enum rte_security_session_action_type action
enum rte_security_ipsec_sa_direction direction
struct rte_security_ipsec_sa_options options
struct rte_security_capability::@272::@276 pdcp
enum rte_security_pdcp_domain domain
enum rte_security_session_protocol protocol
enum rte_security_ipsec_sa_mode mode
struct rte_security_capability::@272::@274 ipsec
const struct rte_cryptodev_capabilities * crypto_capabilities
const struct rte_security_ops * ops
struct rte_security_ipsec_tunnel_param::@264::@267 ipv6
enum rte_security_ipsec_tunnel_type type
struct rte_security_ipsec_tunnel_param::@264::@266 ipv4
struct rte_crypto_sym_xform * crypto_xform
enum rte_security_session_action_type action_type
enum rte_security_session_protocol protocol