DPDK
19.11.3
|
Go to the source code of this file.
Data Structures | |
struct | rte_qdma_attr |
struct | rte_qdma_config |
struct | rte_qdma_vq_stats |
struct | rte_qdma_job |
Macros | |
#define | RTE_QDMA_BURST_NB_MAX 256 |
#define | RTE_QDMA_VQ_EXCLUSIVE_PQ (1ULL) |
#define | RTE_QDMA_JOB_SRC_PHY (1ULL) |
#define | RTE_QDMA_JOB_DEST_PHY (1ULL << 1) |
Enumerations | |
enum | { , RTE_QDMA_MODE_HW, RTE_QDMA_MODE_VIRTUAL , RTE_MIN_ERRNO = __ELASTERROR, E_RTE_SECONDARY, E_RTE_NO_CONFIG, RTE_MAX_ERRNO , CFG_FLAG_GLOBAL_SECTION = 1, CFG_FLAG_EMPTY_VALUES = 2, IP_LAST_FRAG_IDX, IP_FIRST_FRAG_IDX, IP_MIN_FRAG_NUM, IP_MAX_FRAG_NUM = RTE_LIBRTE_IP_FRAG_MAX_FRAG , RTE_RIB_GET_NXT_ALL, RTE_RIB_GET_NXT_COVER, RTE_RIB6_GET_NXT_ALL, RTE_RIB6_GET_NXT_COVER } |
enum | |
Functions | |
int | rte_qdma_init (void) |
void | rte_qdma_attr_get (struct rte_qdma_attr *qdma_attr) |
int | rte_qdma_reset (void) |
int | rte_qdma_configure (struct rte_qdma_config *qdma_config) |
int | rte_qdma_start (void) |
int | rte_qdma_vq_create (uint32_t lcore_id, uint32_t flags) |
int | rte_qdma_vq_enqueue_multi (uint16_t vq_id, struct rte_qdma_job **job, uint16_t nb_jobs) |
int | rte_qdma_vq_enqueue (uint16_t vq_id, struct rte_qdma_job *job) |
int | rte_qdma_vq_dequeue_multi (uint16_t vq_id, struct rte_qdma_job **job, uint16_t nb_jobs) |
struct rte_qdma_job * | rte_qdma_vq_dequeue (uint16_t vq_id) |
void | rte_qdma_vq_stats (uint16_t vq_id, struct rte_qdma_vq_stats *vq_stats) |
int | rte_qdma_vq_destroy (uint16_t vq_id) |
int | rte_qdma_vq_destroy_rbp (uint16_t vq_id) |
void | rte_qdma_stop (void) |
void | rte_qdma_destroy (void) |
NXP dpaa2 QDMA specific structures.
Definition in file rte_pmd_dpaa2_qdma.h.
#define RTE_QDMA_BURST_NB_MAX 256 |
Maximum qdma burst size
Definition at line 16 of file rte_pmd_dpaa2_qdma.h.
#define RTE_QDMA_VQ_EXCLUSIVE_PQ (1ULL) |
If user has configured a Virtual Queue mode, but for some particular VQ user needs an exclusive H/W queue associated (for better performance on that particular VQ), then user can pass this flag while creating the Virtual Queue. A H/W queue will be allocated corresponding to VQ which uses this flag.
Definition at line 49 of file rte_pmd_dpaa2_qdma.h.
#define RTE_QDMA_JOB_SRC_PHY (1ULL) |
States if the source addresses is physical.
Definition at line 52 of file rte_pmd_dpaa2_qdma.h.
#define RTE_QDMA_JOB_DEST_PHY (1ULL << 1) |
States if the destination addresses is physical.
Definition at line 55 of file rte_pmd_dpaa2_qdma.h.
anonymous enum |
Determines the mode of operation
Definition at line 19 of file rte_pmd_dpaa2_qdma.h.
anonymous enum |
Determines the format of FD
Definition at line 37 of file rte_pmd_dpaa2_qdma.h.
int rte_qdma_init | ( | void | ) |
Initialize the QDMA device.
void rte_qdma_attr_get | ( | struct rte_qdma_attr * | qdma_attr | ) |
Get the QDMA attributes.
qdma_attr | QDMA attributes providing total number of hw queues etc. |
int rte_qdma_reset | ( | void | ) |
Reset the QDMA device. This API will completely reset the QDMA device, bringing it to original state as if only rte_qdma_init() API has been called.
int rte_qdma_configure | ( | struct rte_qdma_config * | qdma_config | ) |
Configure the QDMA device.
int rte_qdma_start | ( | void | ) |
Start the QDMA device.
int rte_qdma_vq_create | ( | uint32_t | lcore_id, |
uint32_t | flags | ||
) |
Create a Virtual Queue on a particular lcore id. This API can be called from any thread/core. User can create/destroy VQ's at runtime.
lcore_id | LCORE ID on which this particular queue would be associated with. |
flags | RTE_QDMA_VQ_ flags. See macro definitions. |
int rte_qdma_vq_enqueue_multi | ( | uint16_t | vq_id, |
struct rte_qdma_job ** | job, | ||
uint16_t | nb_jobs | ||
) |
Enqueue multiple jobs to a Virtual Queue. If the enqueue is successful, the H/W will perform DMA operations on the basis of the QDMA jobs provided.
vq_id | Virtual Queue ID. |
job | List of QDMA Jobs containing relevant information related to DMA. |
nb_jobs | Number of QDMA jobs provided by the user. |
int rte_qdma_vq_enqueue | ( | uint16_t | vq_id, |
struct rte_qdma_job * | job | ||
) |
Enqueue a single job to a Virtual Queue. If the enqueue is successful, the H/W will perform DMA operations on the basis of the QDMA job provided.
vq_id | Virtual Queue ID. |
job | A QDMA Job containing relevant information related to DMA. |
int rte_qdma_vq_dequeue_multi | ( | uint16_t | vq_id, |
struct rte_qdma_job ** | job, | ||
uint16_t | nb_jobs | ||
) |
Dequeue multiple completed jobs from a Virtual Queue. Provides the list of completed jobs capped by nb_jobs.
vq_id | Virtual Queue ID. |
job | List of QDMA Jobs returned from the API. |
nb_jobs | Number of QDMA jobs requested for dequeue by the user. |
struct rte_qdma_job* rte_qdma_vq_dequeue | ( | uint16_t | vq_id | ) |
Dequeue a single completed jobs from a Virtual Queue.
vq_id | Virtual Queue ID. |
void rte_qdma_vq_stats | ( | uint16_t | vq_id, |
struct rte_qdma_vq_stats * | vq_stats | ||
) |
Get a Virtual Queue statistics.
vq_id | Virtual Queue ID. |
vq_stats | VQ statistics structure which will be filled in by the driver. |
int rte_qdma_vq_destroy | ( | uint16_t | vq_id | ) |
Destroy the Virtual Queue specified by vq_id. This API can be called from any thread/core. User can create/destroy VQ's at runtime.
vq_id | Virtual Queue ID which needs to be uninitialized. |
int rte_qdma_vq_destroy_rbp | ( | uint16_t | vq_id | ) |
Destroy the RBP specific Virtual Queue specified by vq_id. This API can be called from any thread/core. User can create/destroy VQ's at runtime.
vq_id | RBP based Virtual Queue ID which needs to be uninitialized. |
void rte_qdma_stop | ( | void | ) |
Stop QDMA device.
void rte_qdma_destroy | ( | void | ) |
Destroy the QDMA device.