#include <rte_common.h>
#include <rte_crypto.h>
#include <rte_crypto_asym.h>
#include <dao_virtio.h>
Go to the source code of this file.
|
int | dao_virtio_cryptodev_init (uint16_t devid, struct dao_virtio_cryptodev_conf *conf) |
|
int | dao_virtio_cryptodev_fini (uint16_t devid) |
|
void | dao_virtio_cryptodev_cb_register (struct dao_virtio_cryptodev_cbs *cbs) |
|
void | dao_virtio_cryptodev_cb_unregister (void) |
|
uint16_t | dao_virtio_cryptodev_data_queue_cnt_get (uint16_t dev_id) |
|
uint16_t | dao_virtio_cryptodev_max_dataqueue_cnt_get (uint16_t dev_id) |
|
void | dao_virtio_cryptodev_common_cfg_init (void) |
|
int | dao_virtio_cryptodev_cdev_add (uint16_t dev_id, uint16_t qp_count, struct rte_mempool *mempool[]) |
|
int | dao_virtio_cryptodev_cdev_remove (uint16_t dev_id) |
|
int | dao_virtio_cryptodev_cdev_queue_assign (uint16_t virt_dev_id, uint16_t virt_queue_id) |
|
int | dao_virtio_cryptodev_cdev_queue_release (uint16_t virt_dev_id, uint16_t virt_queue_id) |
|
int | dao_virtio_cryptodev_cdev_map_queue_get (uint16_t virt_dev_id, uint16_t virt_queue_id, uint16_t *cdev_id, uint16_t *cdev_qp_id, struct rte_mempool **mempool) |
|
int | dao_virtio_cryptodev_virt_dev_map_queue_get (uint16_t cdev_id, uint16_t cdev_qp_id, uint16_t *virt_dev_id, uint16_t *virt_queue_id) |
|
const struct dao_virtio_cryptodev_vdev_q * | dao_virtio_cryptodev_cdev_map_all_queues_get (uint16_t cdev_id) |
|
static __rte_always_inline int | dao_virtio_crypto_desc_manage (uint16_t devid, uint16_t qp_count) |
|
static __rte_always_inline uint16_t | dao_virtio_crypto_host_rx (uint16_t devid, uint16_t qid, struct rte_crypto_op **cops, uint16_t nb_cops) |
|
static __rte_always_inline uint16_t | dao_virtio_crypto_host_tx (uint16_t devid, uint16_t qid, struct rte_crypto_op **cops, uint16_t nb_cops) |
|
static __rte_always_inline uint16_t | dao_virtio_cdev_id_get (uint16_t virt_dev_id) |
|
static __rte_always_inline uint16_t | dao_virtio_cdev_qp_id_get (uint16_t virt_dev_id, uint16_t virt_q_id) |
|
void | dao_virtio_crypto_tx_desc_dma_completion (uint16_t devid, uint16_t qid) |
|
DAO virtio crypto library
Definition in file dao_virtio_cryptodev.h.
◆ dao_virtio_crypto_deq_fn_t
typedef uint16_t(* dao_virtio_crypto_deq_fn_t) (void *q, struct rte_crypto_op **cops, uint16_t nb_cops) |
◆ dao_virtio_crypto_enq_fn_t
typedef uint16_t(* dao_virtio_crypto_enq_fn_t) (void *q, struct rte_crypto_op **cops, uint16_t nb_cops) |
◆ dao_crypto_desc_manage_fn_t
typedef int(* dao_crypto_desc_manage_fn_t) (uint16_t devid, uint16_t qp_count) |
◆ dao_virtio_cryptodev_status_cb_t
typedef int(* dao_virtio_cryptodev_status_cb_t) (uint16_t devid, uint8_t status) |
◆ dao_virtio_cryptodev_sym_sess_create_cb_t
typedef uint64_t(* dao_virtio_cryptodev_sym_sess_create_cb_t) (uint16_t dev_id, struct rte_crypto_sym_xform *x) |
◆ dao_virtio_cryptodev_asym_sess_create_cb_t
typedef uint64_t(* dao_virtio_cryptodev_asym_sess_create_cb_t) (uint16_t dev_id, struct rte_crypto_asym_xform *x) |
◆ dao_virtio_cryptodev_session_destroy_cb_t
typedef void(* dao_virtio_cryptodev_session_destroy_cb_t) (uint16_t dev_id, uint64_t session_id) |
◆ dao_virtio_cryptodev_init()
Virtio crypto device initialize.
- Parameters
-
devid | Virtio crypto device ID |
conf | Virtio crypto device config. |
- Returns
- Zero on success.
◆ dao_virtio_cryptodev_fini()
int dao_virtio_cryptodev_fini |
( |
uint16_t |
devid | ) |
|
Virtio crypto device cleanup.
- Parameters
-
devid | Virtio crypto device ID |
- Returns
- Zero on success.
◆ dao_virtio_cryptodev_cb_register()
Virtio crypto device callback register
- Parameters
-
cbs | Application callbacks for virtio crypto devices |
◆ dao_virtio_cryptodev_cb_unregister()
void dao_virtio_cryptodev_cb_unregister |
( |
void |
| ) |
|
Virtio crypto device callback unregister
◆ dao_virtio_cryptodev_data_queue_cnt_get()
uint16_t dao_virtio_cryptodev_data_queue_cnt_get |
( |
uint16_t |
dev_id | ) |
|
Get number of data queues for a virtio crypto device
- Parameters
-
dev_id | Virtio crypto device ID |
- Returns
- Number of data queues
◆ dao_virtio_cryptodev_max_dataqueue_cnt_get()
uint16_t dao_virtio_cryptodev_max_dataqueue_cnt_get |
( |
uint16_t |
dev_id | ) |
|
Get max number of data queues for a virtio crypto device
- Parameters
-
dev_id | Virtio crypto device ID |
- Returns
- Max number of data queues
◆ dao_virtio_cryptodev_common_cfg_init()
void dao_virtio_cryptodev_common_cfg_init |
( |
void |
| ) |
|
Initialize common configuration for virtio crypto devices.
◆ dao_virtio_cryptodev_cdev_add()
int dao_virtio_cryptodev_cdev_add |
( |
uint16_t |
dev_id, |
|
|
uint16_t |
qp_count, |
|
|
struct rte_mempool * |
mempool[] |
|
) |
| |
Add crypto device to the map.
- Parameters
-
dev_id | Virtio crypto device ID. |
qp_count | Number of queue pairs. |
mempool | Array of mempools for each queue pair. |
- Returns
- Zero on success.
◆ dao_virtio_cryptodev_cdev_remove()
int dao_virtio_cryptodev_cdev_remove |
( |
uint16_t |
dev_id | ) |
|
Remove crypto device from the map.
- Parameters
-
dev_id | Virtio crypto device ID. |
- Returns
- Zero on success.
◆ dao_virtio_cryptodev_cdev_queue_assign()
int dao_virtio_cryptodev_cdev_queue_assign |
( |
uint16_t |
virt_dev_id, |
|
|
uint16_t |
virt_queue_id |
|
) |
| |
Assign a crypto queue for a virtio device ID and queue ID.
- Parameters
-
virt_dev_id | Virtio device ID. |
virt_queue_id | Virtio queue ID. |
- Returns
- Zero on success.
◆ dao_virtio_cryptodev_cdev_queue_release()
int dao_virtio_cryptodev_cdev_queue_release |
( |
uint16_t |
virt_dev_id, |
|
|
uint16_t |
virt_queue_id |
|
) |
| |
Release a crypto queue for a virtio device ID and queue ID.
- Parameters
-
virt_dev_id | Virtio device ID. |
virt_queue_id | Virtio queue ID. |
- Returns
- Zero on success.
◆ dao_virtio_cryptodev_cdev_map_queue_get()
int dao_virtio_cryptodev_cdev_map_queue_get |
( |
uint16_t |
virt_dev_id, |
|
|
uint16_t |
virt_queue_id, |
|
|
uint16_t * |
cdev_id, |
|
|
uint16_t * |
cdev_qp_id, |
|
|
struct rte_mempool ** |
mempool |
|
) |
| |
Get crypto device ID and queue ID from virtio device ID and queue ID.
- Parameters
-
virt_dev_id | Virtio device ID. |
virt_queue_id | Virtio queue ID. |
cdev_id | [out] Crypto device ID. |
cdev_qp_id | [out] Crypto queue ID. |
mempool | [out] Mempool for the queue. |
- Returns
- Zero on success.
◆ dao_virtio_cryptodev_virt_dev_map_queue_get()
int dao_virtio_cryptodev_virt_dev_map_queue_get |
( |
uint16_t |
cdev_id, |
|
|
uint16_t |
cdev_qp_id, |
|
|
uint16_t * |
virt_dev_id, |
|
|
uint16_t * |
virt_queue_id |
|
) |
| |
Get virtio device ID and queue ID from crypto device ID and queue ID.
- Parameters
-
cdev_id | Crypto device ID. |
cdev_qp_id | Crypto queue ID. |
virt_dev_id | [out] Virtio device ID. |
virt_queue_id | [out] Virtio queue ID. |
- Returns
- Zero on success.
◆ dao_virtio_cryptodev_cdev_map_all_queues_get()
Get all queues for a crypto device. This is used to get all the virtio queues mapped to a cryptodev.
- Parameters
-
- Returns
- Array of virtio queues mapped to the cryptodev.
◆ dao_virtio_crypto_desc_manage()
static __rte_always_inline int dao_virtio_crypto_desc_manage |
( |
uint16_t |
devid, |
|
|
uint16_t |
qp_count |
|
) |
| |
|
static |
Fetch virtio cryptodev descriptors and acknowledge completions.
To be called from service core as frequently as possible to shadow descriptors between Host and Octeon memory.
- Parameters
-
devid | Virtio crypto device ID. |
qp_count | Number of queue pairs to manage. |
- Returns
- Zero on success.
Definition at line 322 of file dao_virtio_cryptodev.h.
◆ dao_virtio_crypto_host_rx()
static __rte_always_inline uint16_t dao_virtio_crypto_host_rx |
( |
uint16_t |
devid, |
|
|
uint16_t |
qid, |
|
|
struct rte_crypto_op ** |
cops, |
|
|
uint16_t |
nb_cops |
|
) |
| |
|
static |
Virtio cryptodev receive from host
- Parameters
-
devid | Virtio crypto device ID. |
qid | Virtio queue id. |
cops | Array to store cops pointers of received crypto ops. |
nb_cops | Size of cop array. |
- Returns
- Number of cops received from host.
Definition at line 347 of file dao_virtio_cryptodev.h.
◆ dao_virtio_crypto_host_tx()
static __rte_always_inline uint16_t dao_virtio_crypto_host_tx |
( |
uint16_t |
devid, |
|
|
uint16_t |
qid, |
|
|
struct rte_crypto_op ** |
cops, |
|
|
uint16_t |
nb_cops |
|
) |
| |
|
static |
Virtio cryptodev transmit to host
- Parameters
-
devid | Virtio crypto device ID. |
qid | Virtio queue id. |
cops | Array of cop pointers of crypto operation to send to host. |
nb_cops | Number of cops to send. |
- Returns
- Number of cops sent to host.
Definition at line 377 of file dao_virtio_cryptodev.h.
◆ dao_virtio_cdev_id_get()
static __rte_always_inline uint16_t dao_virtio_cdev_id_get |
( |
uint16_t |
virt_dev_id | ) |
|
|
static |
Get crypto device ID from virtio device ID. This is used to get the cryptodev ID for a virtio device.
- Parameters
-
virt_dev_id | Virtio device ID. |
- Returns
- Crypto device ID.
Definition at line 403 of file dao_virtio_cryptodev.h.
◆ dao_virtio_cdev_qp_id_get()
static __rte_always_inline uint16_t dao_virtio_cdev_qp_id_get |
( |
uint16_t |
virt_dev_id, |
|
|
uint16_t |
virt_q_id |
|
) |
| |
|
static |
Get crypto device queue pair ID from virtio device ID and queue ID. This is used to get the cryptodev queue pair ID for a virtio queue.
- Parameters
-
virt_dev_id | Virtio device ID. |
virt_q_id | Virtio queue ID. |
- Returns
- Crypto device queue pair ID.
Definition at line 423 of file dao_virtio_cryptodev.h.
◆ dao_virtio_crypto_tx_desc_dma_completion()
void dao_virtio_crypto_tx_desc_dma_completion |
( |
uint16_t |
devid, |
|
|
uint16_t |
qid |
|
) |
| |
Checks for DMA completion of previous TX packets and notifies the service core about the DMA completion status.
- Parameters
-
devid | The device ID associated with the virtio crypto device. |
qid | The virtio queue ID for which the DMA completion is being checked. |
◆ dao_virtio_cryptodevs
◆ dao_virtio_crypto_deq_fns
Array of dequeue functions
◆ dao_virtio_crypto_enq_fns
Array of enqueue functions
◆ dao_crypto_desc_manage_fns
Array of management functions