6 #ifndef _RTE_SECURITY_H_ 7 #define _RTE_SECURITY_H_ 20 #include <sys/types.h> 22 #include <rte_compat.h> 57 #define RTE_SECURITY_IPSEC_TUNNEL_VERIFY_DST_ADDR 0x1 58 #define RTE_SECURITY_IPSEC_TUNNEL_VERIFY_SRC_DST_ADDR 0x2 80 #define RTE_SEC_CTX_F_FAST_SET_MDATA 0x00000001 83 #define RTE_SEC_CTX_F_FAST_GET_UDATA 0x00000002 100 struct in_addr src_ip;
102 struct in_addr dst_ip;
128 struct rte_security_ipsec_udp_param {
353 struct rte_security_ipsec_udp_param udp;
521 struct rte_security_session {
522 void *sess_private_data;
524 uint64_t opaque_data;
539 struct rte_security_session *
558 struct rte_security_session *sess,
589 struct rte_security_session *sess);
610 static inline rte_security_dynfield_t *
614 rte_security_dynfield_offset,
615 rte_security_dynfield_t *);
629 return rte_security_dynfield_offset >= 0;
635 struct rte_security_session *sess,
653 struct rte_security_session *sess,
695 return (
void *)(uintptr_t)md;
709 struct rte_security_session *sess)
717 get_sec_session_private_data(
const struct rte_security_session *sess)
719 return sess->sess_private_data;
723 set_sec_session_private_data(
struct rte_security_session *sess,
726 sess->sess_private_data = private_data;
740 struct rte_security_session *sess)
750 struct rte_security_macsec_stats {
754 struct rte_security_ipsec_stats {
765 struct rte_security_pdcp_stats {
769 struct rte_security_docsis_stats {
773 struct rte_security_stats {
779 struct rte_security_macsec_stats macsec;
780 struct rte_security_ipsec_stats ipsec;
781 struct rte_security_pdcp_stats pdcp;
782 struct rte_security_docsis_stats docsis;
802 struct rte_security_session *sess,
803 struct rte_security_stats *stats);
861 #define RTE_SECURITY_PDCP_ORDERING_CAP 0x00000001 867 #define RTE_SECURITY_PDCP_DUP_DETECT_CAP 0x00000002 869 #define RTE_SECURITY_TX_OLOAD_NEED_MDATA 0x00000001 873 #define RTE_SECURITY_TX_HW_TRAILER_OFFLOAD 0x00000002 879 #define RTE_SECURITY_RX_HW_TRAILER_OFFLOAD 0x00010000
rte_security_pdcp_sn_size
rte_security_ipsec_sa_protocol
__rte_experimental void * __rte_security_get_userdata(struct rte_security_ctx *instance, uint64_t md)
static int rte_security_attach_session(struct rte_crypto_op *op, struct rte_security_session *sess)
uint32_t tunnel_hdr_verify
struct rte_ether_addr src_addr
rte_security_session_action_type
__rte_experimental int __rte_security_set_pkt_metadata(struct rte_security_ctx *instance, struct rte_security_session *sess, struct rte_mbuf *m, void *params)
rte_security_pdcp_direction
static int rte_security_set_pkt_metadata(struct rte_security_ctx *instance, struct rte_security_session *sess, struct rte_mbuf *mb, void *params)
int rte_security_session_destroy(struct rte_security_ctx *instance, struct rte_security_session *sess)
struct rte_security_session * sec_session
const struct rte_security_capability * rte_security_capabilities_get(struct rte_security_ctx *instance)
unsigned int rte_security_session_get_size(struct rte_security_ctx *instance)
uint32_t replay_win_sz_max
struct rte_crypto_sym_xform * crypto_xform
static __rte_experimental rte_security_dynfield_t * rte_security_dynfield(struct rte_mbuf *mbuf)
uint64_t bytes_hard_limit
rte_security_ipsec_sa_mode
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)
static int __rte_security_attach_session(struct rte_crypto_sym_op *sym_op, struct rte_security_session *sess)
uint64_t bytes_soft_limit
uint32_t ip_reassembly_en
int rte_security_dynfield_offset
rte_security_ipsec_sa_direction
rte_security_ipsec_tunnel_type
struct rte_ether_addr dst_addr
__rte_experimental int rte_security_session_stats_get(struct rte_security_ctx *instance, struct rte_security_session *sess, struct rte_security_stats *stats)
#define RTE_MBUF_DYNFIELD(m, offset, type)
#define RTE_SEC_CTX_F_FAST_SET_MDATA
__rte_experimental int rte_security_session_update(struct rte_security_ctx *instance, struct rte_security_session *sess, struct rte_security_session_conf *conf)
static __rte_experimental bool rte_security_dynfield_is_registered(void)
#define RTE_SEC_CTX_F_FAST_GET_UDATA
uint32_t udp_ports_verify
rte_security_docsis_direction
uint64_t rte_security_dynfield_t
const struct rte_security_capability * rte_security_capability_get(struct rte_security_ctx *instance, struct rte_security_capability_idx *idx)
const struct rte_cryptodev_capabilities * crypto_capabilities
uint64_t packets_hard_limit
static __rte_experimental void * rte_security_get_userdata(struct rte_security_ctx *instance, uint64_t md)
rte_security_session_protocol
uint64_t packets_soft_limit
const struct rte_security_ops * ops
struct rte_crypto_sym_op sym[0]