[dpdk-dev] [PATCH v2 20/22] net/softnic: receive and transmit queue setup
Jasvinder Singh
jasvinder.singh at intel.com
Fri Jun 15 18:52:22 CEST 2018
Implements softnic receive and transmit queues setup using swq object.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu at intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh at intel.com>
---
drivers/net/softnic/rte_eth_softnic.c | 62 ++++++++++++++++++-----------------
1 file changed, 32 insertions(+), 30 deletions(-)
diff --git a/drivers/net/softnic/rte_eth_softnic.c b/drivers/net/softnic/rte_eth_softnic.c
index 0f445a8..1b75708 100644
--- a/drivers/net/softnic/rte_eth_softnic.c
+++ b/drivers/net/softnic/rte_eth_softnic.c
@@ -88,26 +88,27 @@ static int
pmd_rx_queue_setup(struct rte_eth_dev *dev,
uint16_t rx_queue_id,
uint16_t nb_rx_desc,
- unsigned int socket_id,
+ unsigned int socket_id __rte_unused,
const struct rte_eth_rxconf *rx_conf __rte_unused,
struct rte_mempool *mb_pool __rte_unused)
{
- uint32_t size = RTE_ETH_NAME_MAX_LEN + strlen("_rxq") + 4;
- char name[size];
- struct rte_ring *r;
-
- snprintf(name, sizeof(name), "%s_rxq%04x",
- dev->data->name,
- rx_queue_id);
-
- r = rte_ring_create(name,
- nb_rx_desc,
- socket_id,
- RING_F_SP_ENQ | RING_F_SC_DEQ);
- if (r == NULL)
+ char name[NAME_SIZE];
+ struct pmd_internals *p = dev->data->dev_private;
+ struct swq *swq;
+
+ struct swq_params params = {
+ .size = nb_rx_desc,
+ };
+
+ snprintf(name, sizeof(name), "RXQ%u", rx_queue_id);
+
+ swq = swq_create(p,
+ name,
+ ¶ms);
+ if (swq == NULL)
return -1;
- dev->data->rx_queues[rx_queue_id] = r;
+ dev->data->rx_queues[rx_queue_id] = swq->r;
return 0;
}
@@ -115,25 +116,26 @@ static int
pmd_tx_queue_setup(struct rte_eth_dev *dev,
uint16_t tx_queue_id,
uint16_t nb_tx_desc,
- unsigned int socket_id,
+ unsigned int socket_id __rte_unused,
const struct rte_eth_txconf *tx_conf __rte_unused)
{
- uint32_t size = RTE_ETH_NAME_MAX_LEN + strlen("_txq") + 4;
- char name[size];
- struct rte_ring *r;
-
- snprintf(name, sizeof(name), "%s_txq%04x",
- dev->data->name,
- tx_queue_id);
-
- r = rte_ring_create(name,
- nb_tx_desc,
- socket_id,
- RING_F_SP_ENQ | RING_F_SC_DEQ);
- if (r == NULL)
+ char name[NAME_SIZE];
+ struct pmd_internals *p = dev->data->dev_private;
+ struct swq *swq;
+
+ struct swq_params params = {
+ .size = nb_tx_desc,
+ };
+
+ snprintf(name, sizeof(name), "TXQ%u", tx_queue_id);
+
+ swq = swq_create(p,
+ name,
+ ¶ms);
+ if (swq == NULL)
return -1;
- dev->data->tx_queues[tx_queue_id] = r;
+ dev->data->tx_queues[tx_queue_id] = swq->r;
return 0;
}
--
2.9.3
More information about the dev
mailing list