DPDK  24.03.0
Data Structures | Macros | Typedefs
rte_security_driver.h File Reference
#include <rte_compat.h>
#include "rte_security.h"

Go to the source code of this file.

Data Structures

struct  rte_security_ctx
 
struct  rte_security_ops
 

Macros

#define SECURITY_GET_SESS_PRIV(s)   ((void *)(((struct rte_security_session *)s)->driver_priv_data))
 

Typedefs

typedef int(* security_session_create_t) (void *device, struct rte_security_session_conf *conf, struct rte_security_session *sess)
 
typedef int(* security_session_destroy_t) (void *device, struct rte_security_session *sess)
 
typedef int(* security_session_update_t) (void *device, struct rte_security_session *sess, struct rte_security_session_conf *conf)
 
typedef int(* security_macsec_sc_create_t) (void *device, struct rte_security_macsec_sc *conf)
 
typedef int(* security_macsec_sc_destroy_t) (void *device, uint16_t sc_id, enum rte_security_macsec_direction dir)
 
typedef int(* security_macsec_sa_create_t) (void *device, struct rte_security_macsec_sa *conf)
 
typedef int(* security_macsec_sa_destroy_t) (void *device, uint16_t sa_id, enum rte_security_macsec_direction dir)
 
typedef unsigned int(* security_session_get_size) (void *device)
 
typedef int(* security_session_stats_get_t) (void *device, struct rte_security_session *sess, struct rte_security_stats *stats)
 
typedef int(* security_macsec_sc_stats_get_t) (void *device, uint16_t sc_id, enum rte_security_macsec_direction dir, struct rte_security_macsec_sc_stats *stats)
 
typedef int(* security_macsec_sa_stats_get_t) (void *device, uint16_t sa_id, enum rte_security_macsec_direction dir, struct rte_security_macsec_sa_stats *stats)
 
typedef int(* security_set_pkt_metadata_t) (void *device, struct rte_security_session *sess, struct rte_mbuf *mb, void *params)
 
typedef const struct rte_security_capability *(* security_capabilities_get_t) (void *device)
 
typedef int(* security_rx_inject_configure) (void *device, uint16_t port_id, bool enable)
 
typedef uint16_t(* security_inb_pkt_rx_inject) (void *device, struct rte_mbuf **pkts, struct rte_security_session **sess, uint16_t nb_pkts)
 

Detailed Description

RTE Security Common Definitions

Definition in file rte_security_driver.h.

Macro Definition Documentation

◆ SECURITY_GET_SESS_PRIV

#define SECURITY_GET_SESS_PRIV (   s)    ((void *)(((struct rte_security_session *)s)->driver_priv_data))

Helper macro to get driver private data

Definition at line 67 of file rte_security_driver.h.

Typedef Documentation

◆ security_session_create_t

typedef int(* security_session_create_t) (void *device, struct rte_security_session_conf *conf, struct rte_security_session *sess)

Configure a security session on a device.

Parameters
deviceCrypto/eth device pointer
confSecurity session configuration
sessPointer to Security private session structure
Returns
  • Returns 0 if private session structure have been created successfully.
  • Returns -EINVAL if input parameters are invalid.
  • Returns -ENOTSUP if crypto device does not support the crypto transform.

Definition at line 84 of file rte_security_driver.h.

◆ security_session_destroy_t

typedef int(* security_session_destroy_t) (void *device, struct rte_security_session *sess)

Free driver private session data.

Parameters
deviceCrypto/eth device pointer
sessSecurity session structure

Definition at line 94 of file rte_security_driver.h.

◆ security_session_update_t

typedef int(* security_session_update_t) (void *device, struct rte_security_session *sess, struct rte_security_session_conf *conf)

Update driver private session data.

Parameters
deviceCrypto/eth device pointer
sessPointer to Security private session structure
confSecurity session configuration
Returns
  • Returns 0 if private session structure have been updated successfully.
  • Returns -EINVAL if input parameters are invalid.
  • Returns -ENOTSUP if crypto device does not support the crypto transform.

Definition at line 109 of file rte_security_driver.h.

◆ security_macsec_sc_create_t

typedef int(* security_macsec_sc_create_t) (void *device, struct rte_security_macsec_sc *conf)

Configure a MACsec secure channel (SC) on a device.

Parameters
deviceCrypto/eth device pointer
confMACsec SC configuration params
Returns
  • positive sc_id if SC is created successfully.
  • -EINVAL if input parameters are invalid.
  • -ENOTSUP if device does not support MACsec.
  • -ENOMEM if the SC cannot be created.

Definition at line 125 of file rte_security_driver.h.

◆ security_macsec_sc_destroy_t

typedef int(* security_macsec_sc_destroy_t) (void *device, uint16_t sc_id, enum rte_security_macsec_direction dir)

Free MACsec secure channel (SC).

Parameters
deviceCrypto/eth device pointer
sc_idMACsec SC ID
dirDirection of SC

Definition at line 134 of file rte_security_driver.h.

◆ security_macsec_sa_create_t

typedef int(* security_macsec_sa_create_t) (void *device, struct rte_security_macsec_sa *conf)

Configure a MACsec security Association (SA) on a device.

Parameters
deviceCrypto/eth device pointer
confMACsec SA configuration params
Returns
  • positive sa_id if SA is created successfully.
  • -EINVAL if input parameters are invalid.
  • -ENOTSUP if device does not support MACsec.
  • -ENOMEM if the SA cannot be created.

Definition at line 149 of file rte_security_driver.h.

◆ security_macsec_sa_destroy_t

typedef int(* security_macsec_sa_destroy_t) (void *device, uint16_t sa_id, enum rte_security_macsec_direction dir)

Free MACsec security association (SA).

Parameters
deviceCrypto/eth device pointer
sa_idMACsec SA ID
dirDirection of SA

Definition at line 158 of file rte_security_driver.h.

◆ security_session_get_size

typedef unsigned int(* security_session_get_size) (void *device)

Get the size of a security session

Parameters
deviceCrypto/eth device pointer
Returns
  • On success returns the size of the session structure for device
  • On failure returns 0

Definition at line 170 of file rte_security_driver.h.

◆ security_session_stats_get_t

typedef int(* security_session_stats_get_t) (void *device, struct rte_security_session *sess, struct rte_security_stats *stats)

Get stats from the PMD.

Parameters
deviceCrypto/eth device pointer
sessPointer to Security private session structure
statsSecurity stats of the driver
Returns
  • Returns 0 if private session structure have been updated successfully.
  • Returns -EINVAL if session parameters are invalid.

Definition at line 183 of file rte_security_driver.h.

◆ security_macsec_sc_stats_get_t

typedef int(* security_macsec_sc_stats_get_t) (void *device, uint16_t sc_id, enum rte_security_macsec_direction dir, struct rte_security_macsec_sc_stats *stats)

Get MACsec secure channel stats from the PMD.

Parameters
deviceCrypto/eth device pointer
sc_idsecure channel ID created by rte_security_macsec_sc_create()
dirdirection of SC
statsSC stats of the driver
Returns
  • 0 if success.
  • -EINVAL if sc_id or device is invalid.

Definition at line 199 of file rte_security_driver.h.

◆ security_macsec_sa_stats_get_t

typedef int(* security_macsec_sa_stats_get_t) (void *device, uint16_t sa_id, enum rte_security_macsec_direction dir, struct rte_security_macsec_sa_stats *stats)

Get MACsec SA stats from the PMD.

Parameters
deviceCrypto/eth device pointer
sa_idsecure channel ID created by rte_security_macsec_sc_create()
dirdirection of SA
statsSC stats of the driver
Returns
  • 0 if success.
  • -EINVAL if sa_id or device is invalid.

Definition at line 215 of file rte_security_driver.h.

◆ security_set_pkt_metadata_t

typedef int(* security_set_pkt_metadata_t) (void *device, struct rte_security_session *sess, struct rte_mbuf *mb, void *params)

Update the mbuf with provided metadata.

Parameters
deviceCrypto/eth device pointer
sessSecurity session structure
mbPacket buffer
paramsMetadata
Returns
  • Returns 0 if metadata updated successfully.
  • Returns -ve value for errors.

Definition at line 244 of file rte_security_driver.h.

◆ security_capabilities_get_t

typedef const struct rte_security_capability*(* security_capabilities_get_t) (void *device)

Get security capabilities of the device.

Parameters
devicecrypto/eth device pointer
Returns

Definition at line 257 of file rte_security_driver.h.

◆ security_rx_inject_configure

typedef int(* security_rx_inject_configure) (void *device, uint16_t port_id, bool enable)

Configure security device to inject packets to an ethdev port.

Parameters
deviceCrypto/eth device pointer
port_idPort identifier of the ethernet device to which packets need to be injected.
enableFlag to enable and disable connection between a security device and an ethdev port.
Returns
  • 0 if successful.
  • -EINVAL if context NULL or port_id is invalid.
  • -EBUSY if devices are not in stopped state.
  • -ENOTSUP if security device does not support injecting to the ethdev port.

Definition at line 274 of file rte_security_driver.h.

◆ security_inb_pkt_rx_inject

typedef uint16_t(* security_inb_pkt_rx_inject) (void *device, struct rte_mbuf **pkts, struct rte_security_session **sess, uint16_t nb_pkts)

Perform security processing of packets and inject the processed packet to ethdev Rx.

Rx inject would behave similarly to ethdev loopback but with the additional security processing.

Parameters
deviceCrypto/eth device pointer
pktsThe address of an array of nb_pkts pointers to rte_mbuf structures which contain the packets.
sessThe address of an array of nb_pkts pointers to rte_security_session structures corresponding to each packet.
nb_pktsThe maximum number of packets to process.
Returns
The number of packets successfully injected to ethdev Rx. The return value can be less than the value of the nb_pkts parameter when the PMD internal queues have been filled up.

Definition at line 296 of file rte_security_driver.h.