DPDK
20.11.0
drivers
raw
dpaa2_qdma
rte_pmd_dpaa2_qdma.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-3-Clause
2
* Copyright 2018-2020 NXP
3
*/
4
5
#ifndef __RTE_PMD_DPAA2_QDMA_H__
6
#define __RTE_PMD_DPAA2_QDMA_H__
7
8
#include <
rte_rawdev.h
>
9
18
#define RTE_QDMA_BURST_NB_MAX 256
19
21
enum
{
26
RTE_QDMA_MODE_HW
,
35
RTE_QDMA_MODE_VIRTUAL
36
};
37
39
enum
{
40
RTE_QDMA_LONG_FORMAT,
41
RTE_QDMA_ULTRASHORT_FORMAT,
42
};
43
51
#define RTE_QDMA_VQ_EXCLUSIVE_PQ (1ULL)
52
53
#define RTE_QDMA_VQ_FD_LONG_FORMAT (1ULL << 1)
54
55
#define RTE_QDMA_VQ_FD_SG_FORMAT (1ULL << 2)
56
57
#define RTE_QDMA_VQ_NO_RESPONSE (1ULL << 3)
58
60
#define RTE_QDMA_JOB_SRC_PHY (1ULL)
61
63
#define RTE_QDMA_JOB_DEST_PHY (1ULL << 1)
64
66
struct
rte_qdma_attr
{
68
uint16_t
num_hw_queues
;
69
};
70
72
struct
rte_qdma_config
{
74
uint16_t
max_hw_queues_per_core
;
76
uint16_t
max_vqs
;
85
int
fle_queue_pool_cnt
;
86
};
87
88
struct
rte_qdma_rbp {
89
uint32_t use_ultrashort:1;
90
uint32_t enable:1;
100
uint32_t dportid:4;
101
uint32_t dpfid:2;
102
uint32_t dvfid:6;
103
/*using route by port for destination */
104
uint32_t drbp:1;
114
uint32_t sportid:4;
115
uint32_t spfid:2;
116
uint32_t svfid:6;
117
/* using route by port for source */
118
uint32_t srbp:1;
119
uint32_t rsv:4;
120
};
121
123
struct
rte_qdma_vq_stats
{
125
uint8_t
exclusive_hw_queue
;
127
uint32_t
lcore_id
;
128
/* Total number of enqueues on this VQ */
129
uint64_t num_enqueues;
130
/* Total number of dequeues from this VQ */
131
uint64_t num_dequeues;
132
/* total number of pending jobs in this VQ */
133
uint64_t num_pending_jobs;
134
};
135
137
struct
rte_qdma_job
{
139
uint64_t
src
;
141
uint64_t
dest
;
143
uint32_t
len
;
145
uint32_t
flags
;
150
uint64_t
cnxt
;
157
uint16_t
status
;
158
uint16_t vq_id;
163
void
*
usr_elem
;
164
};
165
166
struct
rte_qdma_enqdeq {
167
uint16_t vq_id;
168
struct
rte_qdma_job
**job;
169
};
170
171
struct
rte_qdma_queue_config {
172
uint32_t lcore_id;
173
uint32_t flags;
174
struct
rte_qdma_rbp *rbp;
175
};
176
177
#define rte_qdma_info rte_rawdev_info
178
#define rte_qdma_start(id) rte_rawdev_start(id)
179
#define rte_qdma_reset(id) rte_rawdev_reset(id)
180
#define rte_qdma_configure(id, cf) rte_rawdev_configure(id, cf)
181
#define rte_qdma_dequeue_buffers(id, buf, num, ctxt) \
182
rte_rawdev_dequeue_buffers(id, buf, num, ctxt)
183
#define rte_qdma_enqueue_buffers(id, buf, num, ctxt) \
184
rte_rawdev_enqueue_buffers(id, buf, num, ctxt)
185
#define rte_qdma_queue_setup(id, qid, cfg) \
186
rte_rawdev_queue_setup(id, qid, cfg)
187
188
/*TODO introduce per queue stats API in rawdew */
199
void
200
rte_qdma_vq_stats
(
struct
rte_rawdev *rawdev,
201
uint16_t vq_id,
202
struct
rte_qdma_vq_stats
*vq_stats);
203
204
#endif
/* __RTE_PMD_DPAA2_QDMA_H__*/
rte_qdma_vq_stats
Definition:
rte_pmd_dpaa2_qdma.h:123
rte_qdma_job::status
uint16_t status
Definition:
rte_pmd_dpaa2_qdma.h:157
rte_qdma_config::max_hw_queues_per_core
uint16_t max_hw_queues_per_core
Definition:
rte_pmd_dpaa2_qdma.h:74
RTE_QDMA_MODE_VIRTUAL
@ RTE_QDMA_MODE_VIRTUAL
Definition:
rte_pmd_dpaa2_qdma.h:35
rte_qdma_job::usr_elem
void * usr_elem
Definition:
rte_pmd_dpaa2_qdma.h:163
rte_qdma_job::dest
uint64_t dest
Definition:
rte_pmd_dpaa2_qdma.h:141
rte_qdma_job::flags
uint32_t flags
Definition:
rte_pmd_dpaa2_qdma.h:145
rte_qdma_attr
Definition:
rte_pmd_dpaa2_qdma.h:66
rte_qdma_job::cnxt
uint64_t cnxt
Definition:
rte_pmd_dpaa2_qdma.h:150
RTE_QDMA_MODE_HW
@ RTE_QDMA_MODE_HW
Definition:
rte_pmd_dpaa2_qdma.h:26
rte_qdma_config::max_vqs
uint16_t max_vqs
Definition:
rte_pmd_dpaa2_qdma.h:76
rte_qdma_vq_stats::exclusive_hw_queue
uint8_t exclusive_hw_queue
Definition:
rte_pmd_dpaa2_qdma.h:125
rte_qdma_job
Definition:
rte_pmd_dpaa2_qdma.h:137
rte_qdma_config
Definition:
rte_pmd_dpaa2_qdma.h:72
rte_qdma_vq_stats
void rte_qdma_vq_stats(struct rte_rawdev *rawdev, uint16_t vq_id, struct rte_qdma_vq_stats *vq_stats)
rte_qdma_vq_stats::lcore_id
uint32_t lcore_id
Definition:
rte_pmd_dpaa2_qdma.h:127
rte_qdma_job::src
uint64_t src
Definition:
rte_pmd_dpaa2_qdma.h:139
rte_rawdev.h
rte_qdma_config::fle_queue_pool_cnt
int fle_queue_pool_cnt
Definition:
rte_pmd_dpaa2_qdma.h:85
rte_qdma_attr::num_hw_queues
uint16_t num_hw_queues
Definition:
rte_pmd_dpaa2_qdma.h:68
rte_qdma_job::len
uint32_t len
Definition:
rte_pmd_dpaa2_qdma.h:143
Generated by
1.8.20