DPDK
18.02.2
|
#include <sys/types.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/ip6.h>
#include <rte_compat.h>
#include <rte_common.h>
#include <rte_crypto.h>
#include <rte_mbuf.h>
#include <rte_memory.h>
#include <rte_mempool.h>
Go to the source code of this file.
Data Structures | |
struct | rte_security_ctx |
struct | rte_security_ipsec_tunnel_param |
struct | rte_security_ipsec_sa_options |
struct | rte_security_ipsec_xform |
struct | rte_security_macsec_xform |
struct | rte_security_session_conf |
struct | rte_security_capability |
struct | rte_security_capability_idx |
Macros | |
#define | RTE_SECURITY_TX_OLOAD_NEED_MDATA 0x00000001 |
#define | RTE_SECURITY_TX_HW_TRAILER_OFFLOAD 0x00000002 |
#define | RTE_SECURITY_RX_HW_TRAILER_OFFLOAD 0x00010000 |
Functions | |
struct rte_security_session *__rte_experimental | rte_security_session_create (struct rte_security_ctx *instance, struct rte_security_session_conf *conf, struct rte_mempool *mp) |
int __rte_experimental | rte_security_session_update (struct rte_security_ctx *instance, struct rte_security_session *sess, struct rte_security_session_conf *conf) |
unsigned int __rte_experimental | rte_security_session_get_size (struct rte_security_ctx *instance) |
int __rte_experimental | rte_security_session_destroy (struct rte_security_ctx *instance, struct rte_security_session *sess) |
int __rte_experimental | rte_security_set_pkt_metadata (struct rte_security_ctx *instance, struct rte_security_session *sess, struct rte_mbuf *mb, void *params) |
void *__rte_experimental | rte_security_get_userdata (struct rte_security_ctx *instance, uint64_t md) |
static int __rte_experimental | __rte_security_attach_session (struct rte_crypto_sym_op *sym_op, struct rte_security_session *sess) |
static int __rte_experimental | rte_security_attach_session (struct rte_crypto_op *op, struct rte_security_session *sess) |
int __rte_experimental | rte_security_session_stats_get (struct rte_security_ctx *instance, struct rte_security_session *sess, struct rte_security_stats *stats) |
struct rte_security_capability *__rte_experimental | rte_security_capabilities_get (struct rte_security_ctx *instance) |
struct rte_security_capability *__rte_experimental | rte_security_capability_get (struct rte_security_ctx *instance, struct rte_security_capability_idx *idx) |
EXPERIMENTAL: this API may change without prior notice
RTE Security Common Definitions
Definition in file rte_security.h.
#define RTE_SECURITY_TX_OLOAD_NEED_MDATA 0x00000001 |
HW needs metadata update, see rte_security_set_pkt_metadata().
Definition at line 501 of file rte_security.h.
#define RTE_SECURITY_TX_HW_TRAILER_OFFLOAD 0x00000002 |
HW constructs trailer of packets Transmitted packets will have the trailer added to them by hardawre. The next protocol field will be based on the mbuf->inner_esp_next_proto field.
Definition at line 505 of file rte_security.h.
#define RTE_SECURITY_RX_HW_TRAILER_OFFLOAD 0x00010000 |
HW removes trailer of packets Received packets have no trailer, the next protocol field is supplied in the mbuf->inner_esp_next_proto field. Inner packet is not modified.
Definition at line 511 of file rte_security.h.
IPSec protocol mode
RTE_SECURITY_IPSEC_SA_MODE_TRANSPORT |
IPSec Transport mode |
RTE_SECURITY_IPSEC_SA_MODE_TUNNEL |
IPSec Tunnel mode |
Definition at line 63 of file rte_security.h.
IPSec Protocol
Definition at line 71 of file rte_security.h.
IPSEC tunnel type
RTE_SECURITY_IPSEC_TUNNEL_IPV4 |
Outer header is IPv4 |
RTE_SECURITY_IPSEC_TUNNEL_IPV6 |
Outer header is IPv6 |
Definition at line 79 of file rte_security.h.
IPSec security association direction
RTE_SECURITY_IPSEC_SA_DIR_EGRESS |
Encrypt and generate digest |
RTE_SECURITY_IPSEC_SA_DIR_INGRESS |
Verify digest and decrypt |
Definition at line 198 of file rte_security.h.
Security session action type.
Definition at line 238 of file rte_security.h.
Security session protocol definition
Definition at line 256 of file rte_security.h.
|
read |
Create security session as specified by the session configuration
instance | security instance |
conf | session configuration parameters |
mp | mempool to allocate session objects from |
int __rte_experimental rte_security_session_update | ( | struct rte_security_ctx * | instance, |
struct rte_security_session * | sess, | ||
struct rte_security_session_conf * | conf | ||
) |
Update security session as specified by the session configuration
instance | security instance |
sess | session to update parameters |
conf | update configuration parameters |
unsigned int __rte_experimental rte_security_session_get_size | ( | struct rte_security_ctx * | instance | ) |
Get the size of the security session data for a device.
instance | security instance. |
int __rte_experimental rte_security_session_destroy | ( | struct rte_security_ctx * | instance, |
struct rte_security_session * | sess | ||
) |
Free security session header and the session private data and return it to its original mempool.
instance | security instance |
sess | security session to freed |
int __rte_experimental rte_security_set_pkt_metadata | ( | struct rte_security_ctx * | instance, |
struct rte_security_session * | sess, | ||
struct rte_mbuf * | mb, | ||
void * | params | ||
) |
Updates the buffer with device-specific defined metadata
instance | security instance |
sess | security session |
mb | packet mbuf to set metadata on. |
params | device-specific defined parameters required for metadata |
void* __rte_experimental rte_security_get_userdata | ( | struct rte_security_ctx * | instance, |
uint64_t | md | ||
) |
Get userdata associated with the security session which processed the packet. This userdata would be registered while creating the session, and application can use this to identify the SA etc. Device-specific metadata in the mbuf would be used for this.
This is valid only for inline processed ingress packets.
instance | security instance |
md | device-specific metadata set in mbuf |
|
inlinestatic |
Attach a session to a symmetric crypto operation
sym_op | crypto operation |
sess | security session |
Definition at line 389 of file rte_security.h.
|
inlinestatic |
Attach a session to a crypto operation. This API is needed only in case of RTE_SECURITY_SESS_CRYPTO_PROTO_OFFLOAD For other rte_security_session_action_type, ol_flags in rte_mbuf may be defined to perform security operations.
op | crypto operation |
sess | security session |
Definition at line 420 of file rte_security.h.
int __rte_experimental rte_security_session_stats_get | ( | struct rte_security_ctx * | instance, |
struct rte_security_session * | sess, | ||
struct rte_security_stats * | stats | ||
) |
Get security session statistics
instance | security instance |
sess | security session |
stats | statistics |
|
read |
Returns array of security instance capabilities
instance | Security instance. |
|
read |
Query if a specific capability is available on security instance
instance | security instance. |
idx | security capability index to match against |