DPDK
16.11.11
|
#include <string.h>
#include <rte_dev.h>
#include <rte_pci.h>
#include <rte_malloc.h>
#include <rte_mbuf.h>
#include <rte_mempool.h>
#include <rte_log.h>
#include <rte_common.h>
#include "rte_crypto.h"
#include "rte_cryptodev.h"
Go to the source code of this file.
Data Structures | |
struct | rte_cryptodev_driver |
struct | rte_cryptodev_global |
struct | rte_cryptodev_ops |
Typedefs | |
typedef int(* | cryptodev_init_t) (struct rte_cryptodev_driver *drv, struct rte_cryptodev *dev) |
typedef int(* | cryptodev_uninit_t) (const struct rte_cryptodev_driver *drv, struct rte_cryptodev *dev) |
typedef int(* | cryptodev_configure_t) (struct rte_cryptodev *dev) |
typedef int(* | cryptodev_start_t) (struct rte_cryptodev *dev) |
typedef void(* | cryptodev_stop_t) (struct rte_cryptodev *dev) |
typedef int(* | cryptodev_close_t) (struct rte_cryptodev *dev) |
typedef void(* | cryptodev_stats_get_t) (struct rte_cryptodev *dev, struct rte_cryptodev_stats *stats) |
typedef void(* | cryptodev_stats_reset_t) (struct rte_cryptodev *dev) |
typedef void(* | cryptodev_info_get_t) (struct rte_cryptodev *dev, struct rte_cryptodev_info *dev_info) |
typedef int(* | cryptodev_queue_pair_start_t) (struct rte_cryptodev *dev, uint16_t qp_id) |
typedef int(* | cryptodev_queue_pair_stop_t) (struct rte_cryptodev *dev, uint16_t qp_id) |
typedef int(* | cryptodev_queue_pair_setup_t) (struct rte_cryptodev *dev, uint16_t qp_id, const struct rte_cryptodev_qp_conf *qp_conf, int socket_id) |
typedef int(* | cryptodev_queue_pair_release_t) (struct rte_cryptodev *dev, uint16_t qp_id) |
typedef uint32_t(* | cryptodev_queue_pair_count_t) (struct rte_cryptodev *dev) |
typedef int(* | cryptodev_sym_create_session_pool_t) (struct rte_cryptodev *dev, unsigned nb_objs, unsigned obj_cache_size, int socket_id) |
typedef unsigned(* | cryptodev_sym_get_session_private_size_t) (struct rte_cryptodev *dev) |
typedef void(* | cryptodev_sym_initialize_session_t) (struct rte_mempool *mempool, void *session_private) |
typedef void *(* | cryptodev_sym_configure_session_t) (struct rte_cryptodev *dev, struct rte_crypto_sym_xform *xform, void *session_private) |
typedef void(* | cryptodev_sym_free_session_t) (struct rte_cryptodev *dev, void *session_private) |
Functions | |
static struct rte_cryptodev * | rte_cryptodev_pmd_get_dev (uint8_t dev_id) |
static struct rte_cryptodev * | rte_cryptodev_pmd_get_named_dev (const char *name) |
static unsigned | rte_cryptodev_pmd_is_valid_dev (uint8_t dev_id) |
struct rte_cryptodev * | rte_cryptodev_pmd_allocate (const char *name, int socket_id) |
struct rte_cryptodev * | rte_cryptodev_pmd_virtual_dev_init (const char *name, size_t dev_private_size, int socket_id) |
int | rte_cryptodev_pmd_release_device (struct rte_cryptodev *cryptodev) |
void | rte_cryptodev_pmd_callback_process (struct rte_cryptodev *dev, enum rte_cryptodev_event_type event) |
int | rte_cryptodev_pci_probe (struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) |
int | rte_cryptodev_pci_remove (struct rte_pci_device *pci_dev) |
Variables | |
struct rte_cryptodev_global * | rte_cryptodev_globals |
struct rte_cryptodev * | rte_cryptodevs |
RTE Crypto PMD APIs
Definition in file rte_cryptodev_pmd.h.
typedef int(* cryptodev_init_t) (struct rte_cryptodev_driver *drv, struct rte_cryptodev *dev) |
Initialisation function of a crypto driver invoked for each matching crypto PCI device detected during the PCI probing phase.
drv | The pointer to the [matching] crypto driver structure supplied by the PMD when it registered itself. |
dev | The dev pointer is the address of the rte_cryptodev structure associated with the matching device and which has been [automatically] allocated in the rte_crypto_devices array. |
Definition at line 90 of file rte_cryptodev_pmd.h.
typedef int(* cryptodev_uninit_t) (const struct rte_cryptodev_driver *drv, struct rte_cryptodev *dev) |
Finalisation function of a driver invoked for each matching PCI device detected during the PCI closing phase.
drv | The pointer to the [matching] driver structure supplied by the PMD when it registered itself. |
dev | The dev pointer is the address of the rte_cryptodev structure associated with the matching device and which has been [automatically] allocated in the rte_crypto_devices array. |
Definition at line 110 of file rte_cryptodev_pmd.h.
typedef int(* cryptodev_configure_t) (struct rte_cryptodev *dev) |
Definitions of all functions exported by a driver through the the generic structure of type crypto_dev_ops supplied in the rte_cryptodev structure associated with a device. Function used to configure device.
dev | Crypto device pointer |
Definition at line 231 of file rte_cryptodev_pmd.h.
typedef int(* cryptodev_start_t) (struct rte_cryptodev *dev) |
Function used to start a configured device.
dev | Crypto device pointer |
Definition at line 240 of file rte_cryptodev_pmd.h.
typedef void(* cryptodev_stop_t) (struct rte_cryptodev *dev) |
Function used to stop a configured device.
dev | Crypto device pointer |
Definition at line 247 of file rte_cryptodev_pmd.h.
typedef int(* cryptodev_close_t) (struct rte_cryptodev *dev) |
Function used to close a configured device.
dev | Crypto device pointer |
Definition at line 257 of file rte_cryptodev_pmd.h.
typedef void(* cryptodev_stats_get_t) (struct rte_cryptodev *dev, struct rte_cryptodev_stats *stats) |
Function used to get statistics of a device.
dev | Crypto device pointer |
stats | Pointer to crypto device stats structure to populate |
Definition at line 266 of file rte_cryptodev_pmd.h.
typedef void(* cryptodev_stats_reset_t) (struct rte_cryptodev *dev) |
Function used to reset statistics of a device.
dev | Crypto device pointer |
Definition at line 275 of file rte_cryptodev_pmd.h.
typedef void(* cryptodev_info_get_t) (struct rte_cryptodev *dev, struct rte_cryptodev_info *dev_info) |
Function used to get specific information of a device.
dev | Crypto device pointer |
Definition at line 283 of file rte_cryptodev_pmd.h.
typedef int(* cryptodev_queue_pair_start_t) (struct rte_cryptodev *dev, uint16_t qp_id) |
Start queue pair of a device.
dev | Crypto device pointer |
qp_id | Queue Pair Index |
Definition at line 294 of file rte_cryptodev_pmd.h.
typedef int(* cryptodev_queue_pair_stop_t) (struct rte_cryptodev *dev, uint16_t qp_id) |
Stop queue pair of a device.
dev | Crypto device pointer |
qp_id | Queue Pair Index |
Definition at line 305 of file rte_cryptodev_pmd.h.
typedef int(* cryptodev_queue_pair_setup_t) (struct rte_cryptodev *dev, uint16_t qp_id, const struct rte_cryptodev_qp_conf *qp_conf, int socket_id) |
Setup a queue pair for a device.
dev | Crypto device pointer |
qp_id | Queue Pair Index |
qp_conf | Queue configuration structure |
socket_id | Socket Index |
Definition at line 318 of file rte_cryptodev_pmd.h.
typedef int(* cryptodev_queue_pair_release_t) (struct rte_cryptodev *dev, uint16_t qp_id) |
Release memory resources allocated by given queue pair.
dev | Crypto device pointer |
qp_id | Queue Pair Index |
Definition at line 332 of file rte_cryptodev_pmd.h.
typedef uint32_t(* cryptodev_queue_pair_count_t) (struct rte_cryptodev *dev) |
Get number of available queue pairs of a device.
dev | Crypto device pointer |
Definition at line 342 of file rte_cryptodev_pmd.h.
typedef int(* cryptodev_sym_create_session_pool_t) (struct rte_cryptodev *dev, unsigned nb_objs, unsigned obj_cache_size, int socket_id) |
Create a session mempool to allocate sessions from
dev | Crypto device pointer |
nb_objs | number of sessions objects in mempool |
obj_cache | l-core object cache size, see rte_ring_create |
socket_id | Socket Id to allocate mempool on. |
Definition at line 356 of file rte_cryptodev_pmd.h.
typedef unsigned(* cryptodev_sym_get_session_private_size_t) (struct rte_cryptodev *dev) |
Get the size of a cryptodev session
dev | Crypto device pointer |
Definition at line 370 of file rte_cryptodev_pmd.h.
typedef void(* cryptodev_sym_initialize_session_t) (struct rte_mempool *mempool, void *session_private) |
Initialize a Crypto session on a device.
dev | Crypto device pointer |
xform | Single or chain of crypto xforms |
priv_sess | Pointer to cryptodev's private session structure |
Definition at line 384 of file rte_cryptodev_pmd.h.
typedef void*(* cryptodev_sym_configure_session_t) (struct rte_cryptodev *dev, struct rte_crypto_sym_xform *xform, void *session_private) |
Configure a Crypto session on a device.
dev | Crypto device pointer |
xform | Single or chain of crypto xforms |
priv_sess | Pointer to cryptodev's private session structure |
Definition at line 398 of file rte_cryptodev_pmd.h.
typedef void(* cryptodev_sym_free_session_t) (struct rte_cryptodev *dev, void *session_private) |
Free Crypto session.
session | Cryptodev session structure to free |
Definition at line 405 of file rte_cryptodev_pmd.h.
|
static |
Get the rte_cryptodev structure device pointer for the device. Assumes a valid device index.
dev_id | Device ID value to select the device structure. |
Definition at line 156 of file rte_cryptodev_pmd.h.
|
static |
Get the rte_cryptodev structure device pointer for the named device.
name | device name to select the device structure. |
Definition at line 170 of file rte_cryptodev_pmd.h.
|
inlinestatic |
Validate if the crypto device index is valid attached crypto device.
dev_id | Crypto device index. |
Definition at line 198 of file rte_cryptodev_pmd.h.
struct rte_cryptodev* rte_cryptodev_pmd_allocate | ( | const char * | name, |
int | socket_id | ||
) |
Function for internal use by dummy drivers primarily, e.g. ring-based driver. Allocates a new cryptodev slot for an crypto device and returns the pointer to that slot for the driver to use.
name | Unique identifier name for each device |
socket_id | Socket to allocate resources on. |
struct rte_cryptodev* rte_cryptodev_pmd_virtual_dev_init | ( | const char * | name, |
size_t | dev_private_size, | ||
int | socket_id | ||
) |
Creates a new virtual crypto device and returns the pointer to that device.
name | PMD type name |
dev_private_size | Size of crypto PMDs private data |
socket_id | Socket to allocate resources on. |
int rte_cryptodev_pmd_release_device | ( | struct rte_cryptodev * | cryptodev | ) |
Function for internal use by dummy drivers primarily, e.g. ring-based driver. Release the specified cryptodev device.
cryptodev | The cryptodev pointer is the address of the rte_cryptodev structure. |
void rte_cryptodev_pmd_callback_process | ( | struct rte_cryptodev * | dev, |
enum rte_cryptodev_event_type | event | ||
) |
Executes all the user application registered callbacks for the specific device.
dev | Pointer to cryptodev struct |
event | Crypto device interrupt event type. |
int rte_cryptodev_pci_probe | ( | struct rte_pci_driver * | pci_drv, |
struct rte_pci_device * | pci_dev | ||
) |
Wrapper for use by pci drivers as a .probe function to attach to a crypto interface.
int rte_cryptodev_pci_remove | ( | struct rte_pci_device * | pci_dev | ) |
Wrapper for use by pci drivers as a .remove function to detach a crypto interface.
struct rte_cryptodev_global* rte_cryptodev_globals |
pointer to global crypto devices data structure.
struct rte_cryptodev* rte_cryptodevs |
The pool of rte_cryptodev structures.