Go to the documentation of this file.
6 #ifndef _RTE_SECURITY_H_
7 #define _RTE_SECURITY_H_
20 #include <sys/types.h>
22 #include <rte_compat.h>
60 #define RTE_SECURITY_IPSEC_TUNNEL_VERIFY_DST_ADDR 0x1
61 #define RTE_SECURITY_IPSEC_TUNNEL_VERIFY_SRC_DST_ADDR 0x2
83 #define RTE_SEC_CTX_F_FAST_SET_MDATA 0x00000001
86 #define RTE_SEC_CTX_F_FAST_GET_UDATA 0x00000002
131 struct rte_security_ipsec_udp_param {
343 struct rte_security_ipsec_udp_param
udp;
517 struct rte_security_session {
518 void *sess_private_data;
520 uint64_t opaque_data;
535 struct rte_security_session *
554 struct rte_security_session *sess,
585 struct rte_security_session *sess);
631 struct rte_security_session *sess,
649 struct rte_security_session *sess,
691 return (
void *)(uintptr_t)md;
705 struct rte_security_session *sess)
713 get_sec_session_private_data(
const struct rte_security_session *sess)
715 return sess->sess_private_data;
719 set_sec_session_private_data(
struct rte_security_session *sess,
722 sess->sess_private_data = private_data;
736 struct rte_security_session *sess)
746 struct rte_security_macsec_stats {
750 struct rte_security_ipsec_stats {
761 struct rte_security_pdcp_stats {
765 struct rte_security_docsis_stats {
769 struct rte_security_stats {
775 struct rte_security_macsec_stats macsec;
776 struct rte_security_ipsec_stats ipsec;
777 struct rte_security_pdcp_stats pdcp;
778 struct rte_security_docsis_stats docsis;
798 struct rte_security_session *sess,
799 struct rte_security_stats *stats);
857 #define RTE_SECURITY_PDCP_ORDERING_CAP 0x00000001
863 #define RTE_SECURITY_PDCP_DUP_DETECT_CAP 0x00000002
865 #define RTE_SECURITY_TX_OLOAD_NEED_MDATA 0x00000001
869 #define RTE_SECURITY_TX_HW_TRAILER_OFFLOAD 0x00000002
875 #define RTE_SECURITY_RX_HW_TRAILER_OFFLOAD 0x00010000
rte_security_pdcp_direction
@ RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO
@ RTE_SECURITY_IPSEC_SA_DIR_INGRESS
static int rte_security_set_pkt_metadata(struct rte_security_ctx *instance, struct rte_security_session *sess, struct rte_mbuf *mb, void *params)
@ RTE_CRYPTO_OP_SECURITY_SESSION
@ RTE_SECURITY_DOCSIS_DOWNLINK
static __rte_experimental void * rte_security_get_userdata(struct rte_security_ctx *instance, uint64_t md)
rte_security_session_protocol
uint32_t replay_win_sz_max
const struct rte_security_capability * rte_security_capabilities_get(struct rte_security_ctx *instance)
@ RTE_SECURITY_PROTOCOL_PDCP
struct rte_security_capability::@375::@377 ipsec
rte_security_session_action_type
@ RTE_SECURITY_IPSEC_SA_DIR_EGRESS
@ RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL
@ RTE_SECURITY_PDCP_MODE_SHORT_MAC
@ RTE_SECURITY_PDCP_SN_SIZE_12
rte_security_ipsec_sa_direction
rte_security_pdcp_sn_size
__rte_experimental void * __rte_security_get_userdata(struct rte_security_ctx *instance, uint64_t md)
@ RTE_SECURITY_PDCP_MODE_CONTROL
uint32_t tunnel_hdr_verify
@ RTE_SECURITY_IPSEC_SA_MODE_TUNNEL
struct rte_security_ipsec_tunnel_param::@364::@366 ipv4
int rte_security_session_destroy(struct rte_security_ctx *instance, struct rte_security_session *sess)
__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_IPSEC_SA_PROTO_AH
static __rte_experimental rte_security_dynfield_t * rte_security_dynfield(struct rte_mbuf *mbuf)
struct rte_crypto_sym_xform * crypto_xform
uint64_t packets_soft_limit
@ RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO
#define RTE_SEC_CTX_F_FAST_SET_MDATA
rte_security_ipsec_sa_mode
int rte_security_dynfield_offset
@ RTE_SECURITY_DOCSIS_UPLINK
rte_security_ipsec_tunnel_type
@ RTE_SECURITY_IPSEC_TUNNEL_IPV4
struct rte_security_session * rte_security_session_create(struct rte_security_ctx *instance, struct rte_security_session_conf *conf, struct rte_mempool *mp, struct rte_mempool *priv_mp)
enum rte_security_session_action_type action_type
const struct rte_cryptodev_capabilities * crypto_capabilities
enum rte_security_session_action_type action
uint64_t bytes_soft_limit
static int __rte_security_attach_session(struct rte_crypto_sym_op *sym_op, struct rte_security_session *sess)
uint64_t packets_hard_limit
struct rte_crypto_sym_op sym[0]
struct rte_security_ipsec_sa_options options
@ RTE_SECURITY_PDCP_UPLINK
@ RTE_SECURITY_PDCP_SN_SIZE_18
struct rte_security_session * sec_session
__rte_experimental int rte_security_session_stats_get(struct rte_security_ctx *instance, struct rte_security_session *sess, struct rte_security_stats *stats)
uint64_t bytes_hard_limit
@ RTE_SECURITY_PDCP_DOWNLINK
@ RTE_SECURITY_PROTOCOL_MACSEC
@ RTE_SECURITY_PDCP_SN_SIZE_15
struct rte_security_capability::@375::@379 pdcp
enum rte_security_session_protocol protocol
enum rte_security_ipsec_sa_mode mode
rte_security_docsis_direction
enum rte_security_ipsec_tunnel_type type
@ RTE_SECURITY_IPSEC_TUNNEL_IPV6
static __rte_experimental bool rte_security_dynfield_is_registered(void)
enum rte_security_pdcp_domain domain
@ RTE_CRYPTO_OP_TYPE_SYMMETRIC
@ RTE_SECURITY_PDCP_SN_SIZE_5
enum rte_security_session_protocol protocol
@ RTE_SECURITY_PROTOCOL_IPSEC
struct rte_security_ipsec_tunnel_param::@364::@367 ipv6
@ RTE_SECURITY_IPSEC_SA_PROTO_ESP
#define RTE_MBUF_DYNFIELD(m, offset, type)
@ RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL
@ RTE_SECURITY_PDCP_MODE_DATA
const struct rte_security_ops * ops
uint64_t rte_security_dynfield_t
#define RTE_SEC_CTX_F_FAST_GET_UDATA
@ RTE_SECURITY_PDCP_SN_SIZE_7
uint32_t udp_ports_verify
@ RTE_SECURITY_PROTOCOL_DOCSIS
enum rte_security_ipsec_sa_direction direction
enum rte_security_ipsec_sa_protocol proto
rte_security_ipsec_sa_protocol
const struct rte_security_capability * rte_security_capability_get(struct rte_security_ctx *instance, struct rte_security_capability_idx *idx)
struct rte_security_capability::@375::@380 docsis
unsigned int rte_security_session_get_size(struct rte_security_ctx *instance)
@ RTE_SECURITY_ACTION_TYPE_NONE
@ RTE_SECURITY_IPSEC_SA_MODE_TRANSPORT
static int rte_security_attach_session(struct rte_crypto_op *op, struct rte_security_session *sess)
struct rte_security_capability::@375::@378 macsec
__rte_experimental int __rte_security_set_pkt_metadata(struct rte_security_ctx *instance, struct rte_security_session *sess, struct rte_mbuf *m, void *params)