From: spinler@cesnet.cz
To: dev@dpdk.org
Cc: Martin Spinler <spinler@cesnet.cz>
Subject: [PATCH v4 1/8] net/nfb: prepare for indirect queue mapping scheme
Date: Thu, 22 Jan 2026 08:27:12 +0100 [thread overview]
Message-ID: <20260122072719.505185-2-spinler@cesnet.cz> (raw)
In-Reply-To: <20260122072719.505185-1-spinler@cesnet.cz>
From: Martin Spinler <spinler@cesnet.cz>
This prepares queue mapping for port-aware driver implementation.
Signed-off-by: Martin Spinler <spinler@cesnet.cz>
---
drivers/net/nfb/nfb.h | 3 +++
drivers/net/nfb/nfb_ethdev.c | 21 +++++++++++++++++++++
drivers/net/nfb/nfb_rx.c | 30 +++++++++++++++---------------
drivers/net/nfb/nfb_rx.h | 9 ++++-----
drivers/net/nfb/nfb_tx.c | 27 +++++++++++++++------------
drivers/net/nfb/nfb_tx.h | 7 +++----
6 files changed, 61 insertions(+), 36 deletions(-)
diff --git a/drivers/net/nfb/nfb.h b/drivers/net/nfb/nfb.h
index 90b04c6151..3821732c37 100644
--- a/drivers/net/nfb/nfb.h
+++ b/drivers/net/nfb/nfb.h
@@ -60,6 +60,9 @@ struct pmd_internals {
struct pmd_priv {
uint16_t max_rx_queues;
uint16_t max_tx_queues;
+
+ int *queue_map_rx;
+ int *queue_map_tx;
};
#endif /* _NFB_H_ */
diff --git a/drivers/net/nfb/nfb_ethdev.c b/drivers/net/nfb/nfb_ethdev.c
index 947ee9e21d..803815138c 100644
--- a/drivers/net/nfb/nfb_ethdev.c
+++ b/drivers/net/nfb/nfb_ethdev.c
@@ -509,6 +509,7 @@ static const struct eth_dev_ops ops = {
static int
nfb_eth_dev_init(struct rte_eth_dev *dev)
{
+ int i;
int ret;
uint32_t mac_count;
struct rte_eth_dev_data *data = dev->data;
@@ -577,6 +578,20 @@ nfb_eth_dev_init(struct rte_eth_dev *dev)
priv->max_rx_queues = max_rx_queues;
priv->max_tx_queues = max_tx_queues;
+ priv->queue_map_rx = rte_calloc("NFB queue map", (max_rx_queues + max_tx_queues),
+ sizeof(*priv->queue_map_rx), 0);
+ if (priv->queue_map_rx == NULL) {
+ ret = -ENOMEM;
+ goto err_alloc_queue_map;
+ }
+ priv->queue_map_tx = priv->queue_map_rx + max_rx_queues;
+
+ /* default queue mapping is 1:1 */
+ for (i = 0; i < max_rx_queues; i++)
+ priv->queue_map_rx[i] = i;
+ for (i = 0; i < max_tx_queues; i++)
+ priv->queue_map_tx[i] = i;
+
/* Allocate space for MAC addresses */
mac_count = nfb_eth_get_max_mac_address_count(dev);
data->mac_addrs = rte_zmalloc(data->name,
@@ -608,6 +623,8 @@ nfb_eth_dev_init(struct rte_eth_dev *dev)
return 0;
err_malloc_mac_addrs:
+ rte_free(priv->queue_map_rx);
+err_alloc_queue_map:
nfb_nc_rxmac_deinit(internals->rxmac, internals->max_rxmac);
nfb_nc_txmac_deinit(internals->txmac, internals->max_txmac);
nfb_close(internals->nfb);
@@ -633,6 +650,10 @@ nfb_eth_dev_uninit(struct rte_eth_dev *dev)
struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
struct rte_pci_addr *pci_addr = &pci_dev->addr;
struct pmd_internals *internals = dev->process_private;
+ struct pmd_priv *priv = dev->data->dev_private;
+
+ if (rte_eal_process_type() == RTE_PROC_PRIMARY)
+ rte_free(priv->queue_map_rx);
nfb_nc_rxmac_deinit(internals->rxmac, internals->max_rxmac);
nfb_nc_txmac_deinit(internals->txmac, internals->max_txmac);
diff --git a/drivers/net/nfb/nfb_rx.c b/drivers/net/nfb/nfb_rx.c
index 413d275853..ff630f32f4 100644
--- a/drivers/net/nfb/nfb_rx.c
+++ b/drivers/net/nfb/nfb_rx.c
@@ -61,12 +61,13 @@ nfb_eth_rx_queue_setup(struct rte_eth_dev *dev,
struct rte_mempool *mb_pool)
{
struct pmd_internals *internals = dev->process_private;
+ struct pmd_priv *priv = dev->data->dev_private;
- struct ndp_rx_queue *rxq;
int ret;
+ int qid;
+ struct ndp_rx_queue *rxq;
- rxq = rte_zmalloc_socket("ndp rx queue",
- sizeof(struct ndp_rx_queue),
+ rxq = rte_zmalloc_socket("ndp rx queue", sizeof(struct ndp_rx_queue),
RTE_CACHE_LINE_SIZE, socket_id);
if (rxq == NULL) {
@@ -77,23 +78,23 @@ nfb_eth_rx_queue_setup(struct rte_eth_dev *dev,
rxq->flags = 0;
- ret = nfb_eth_rx_queue_init(internals->nfb,
- rx_queue_id,
- dev->data->port_id,
- mb_pool,
- rxq);
+ qid = priv->queue_map_rx[rx_queue_id];
- if (ret == 0)
- dev->data->rx_queues[rx_queue_id] = rxq;
- else
- rte_free(rxq);
+ ret = nfb_eth_rx_queue_init(internals->nfb, qid, dev->data->port_id, mb_pool, rxq);
+ if (ret)
+ goto err_queue_init;
+ dev->data->rx_queues[rx_queue_id] = rxq;
+ return 0;
+
+err_queue_init:
+ rte_free(rxq);
return ret;
}
int
nfb_eth_rx_queue_init(struct nfb_device *nfb,
- uint16_t rx_queue_id,
+ int qid,
uint16_t port_id,
struct rte_mempool *mb_pool,
struct ndp_rx_queue *rxq)
@@ -104,12 +105,11 @@ nfb_eth_rx_queue_init(struct nfb_device *nfb,
if (nfb == NULL)
return -EINVAL;
- rxq->queue = ndp_open_rx_queue(nfb, rx_queue_id);
+ rxq->queue = ndp_open_rx_queue(nfb, qid);
if (rxq->queue == NULL)
return -EINVAL;
rxq->nfb = nfb;
- rxq->rx_queue_id = rx_queue_id;
rxq->in_port = port_id;
rxq->mb_pool = mb_pool;
rxq->buf_size = (uint16_t)(mbp_priv->mbuf_data_room_size -
diff --git a/drivers/net/nfb/nfb_rx.h b/drivers/net/nfb/nfb_rx.h
index 67b3b00e2a..831945c577 100644
--- a/drivers/net/nfb/nfb_rx.h
+++ b/drivers/net/nfb/nfb_rx.h
@@ -30,7 +30,6 @@ nfb_timestamp_dynfield(struct rte_mbuf *mbuf)
struct ndp_rx_queue {
struct nfb_device *nfb; /* nfb dev structure */
struct ndp_queue *queue; /* rx queue */
- uint16_t rx_queue_id; /* index */
uint8_t in_port; /* port */
uint8_t flags; /* setup flags */
@@ -47,8 +46,8 @@ struct ndp_rx_queue {
*
* @param nfb
* Pointer to nfb device structure.
- * @param rx_queue_id
- * RX queue index.
+ * @param qid
+ * RX queue ID.
* @param port_id
* Device [external] port identifier.
* @param mb_pool
@@ -60,7 +59,7 @@ struct ndp_rx_queue {
*/
int
nfb_eth_rx_queue_init(struct nfb_device *nfb,
- uint16_t rx_queue_id,
+ int qid,
uint16_t port_id,
struct rte_mempool *mb_pool,
struct ndp_rx_queue *rxq);
@@ -70,7 +69,7 @@ nfb_eth_rx_queue_init(struct nfb_device *nfb,
*
* @param dev
* Pointer to Ethernet device structure.
- * @param idx
+ * @param rx_queue_id
* RX queue index.
* @param desc
* Number of descriptors to configure in queue.
diff --git a/drivers/net/nfb/nfb_tx.c b/drivers/net/nfb/nfb_tx.c
index 1f997ce22f..b5cbedeaf6 100644
--- a/drivers/net/nfb/nfb_tx.c
+++ b/drivers/net/nfb/nfb_tx.c
@@ -54,11 +54,13 @@ nfb_eth_tx_queue_setup(struct rte_eth_dev *dev,
const struct rte_eth_txconf *tx_conf __rte_unused)
{
struct pmd_internals *internals = dev->process_private;
+ struct pmd_priv *priv = dev->data->dev_private;
+
int ret;
+ int qid;
struct ndp_tx_queue *txq;
- txq = rte_zmalloc_socket("ndp tx queue",
- sizeof(struct ndp_tx_queue),
+ txq = rte_zmalloc_socket("ndp tx queue", sizeof(struct ndp_tx_queue),
RTE_CACHE_LINE_SIZE, socket_id);
if (txq == NULL) {
@@ -67,32 +69,33 @@ nfb_eth_tx_queue_setup(struct rte_eth_dev *dev,
return -ENOMEM;
}
- ret = nfb_eth_tx_queue_init(internals->nfb,
- tx_queue_id,
- txq);
+ qid = priv->queue_map_tx[tx_queue_id];
- if (ret == 0)
- dev->data->tx_queues[tx_queue_id] = txq;
- else
- rte_free(txq);
+ ret = nfb_eth_tx_queue_init(internals->nfb, qid, txq);
+ if (ret)
+ goto err_queue_init;
+ dev->data->tx_queues[tx_queue_id] = txq;
+ return 0;
+
+err_queue_init:
+ rte_free(txq);
return ret;
}
int
nfb_eth_tx_queue_init(struct nfb_device *nfb,
- uint16_t tx_queue_id,
+ int qid,
struct ndp_tx_queue *txq)
{
if (nfb == NULL)
return -EINVAL;
- txq->queue = ndp_open_tx_queue(nfb, tx_queue_id);
+ txq->queue = ndp_open_tx_queue(nfb, qid);
if (txq->queue == NULL)
return -EINVAL;
txq->nfb = nfb;
- txq->tx_queue_id = tx_queue_id;
txq->tx_pkts = 0;
txq->tx_bytes = 0;
diff --git a/drivers/net/nfb/nfb_tx.h b/drivers/net/nfb/nfb_tx.h
index f107cf914b..c253af1a86 100644
--- a/drivers/net/nfb/nfb_tx.h
+++ b/drivers/net/nfb/nfb_tx.h
@@ -17,7 +17,6 @@
struct ndp_tx_queue {
struct nfb_device *nfb; /* nfb dev structure */
struct ndp_queue *queue; /* tx queue */
- uint16_t tx_queue_id; /* index */
volatile uint64_t tx_pkts; /* packets transmitted */
volatile uint64_t tx_bytes; /* bytes transmitted */
volatile uint64_t err_pkts; /* erroneous packets */
@@ -54,8 +53,8 @@ nfb_eth_tx_queue_setup(struct rte_eth_dev *dev,
*
* @param nfb
* Pointer to nfb device structure.
- * @param tx_queue_id
- * TX queue index.
+ * @param qid
+ * TX queue ID.
* @param[out] txq
* Pointer to ndp_tx_queue output structure
*
@@ -64,7 +63,7 @@ nfb_eth_tx_queue_setup(struct rte_eth_dev *dev,
*/
int
nfb_eth_tx_queue_init(struct nfb_device *nfb,
- uint16_t tx_queue_id,
+ int qid,
struct ndp_tx_queue *txq);
/**
--
2.52.0
next prev parent reply other threads:[~2026-01-22 7:27 UTC|newest]
Thread overview: 131+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-15 15:16 [PATCH 0/8] net/nfb: rework to real multiport spinler
2026-01-15 15:16 ` [PATCH 1/8] net/nfb: prepare for indirect queue mapping scheme spinler
2026-01-16 17:34 ` Stephen Hemminger
2026-01-20 15:16 ` Martin Spinler
2026-01-15 15:16 ` [PATCH 2/8] net/nfb: create ethdev for every eth port/channel spinler
2026-01-15 15:16 ` [PATCH 3/8] net/nfb: add vdev as alternative device probe method spinler
2026-01-15 15:16 ` [PATCH 4/8] net/nfb: add device argument "port" to limit used ports spinler
2026-01-16 17:36 ` Stephen Hemminger
2026-01-20 15:16 ` Martin Spinler
2026-01-16 17:36 ` Stephen Hemminger
2026-01-16 17:37 ` Stephen Hemminger
2026-01-15 15:16 ` [PATCH 5/8] net/nfb: init only MACs associated with device spinler
2026-01-15 15:16 ` [PATCH 6/8] net/nfb: add compatible cards to driver PCI ID table spinler
2026-01-15 15:16 ` [PATCH 7/8] net/nfb: report firmware version spinler
2026-01-15 15:16 ` [PATCH 8/8] doc/nfb: cleanup and update guide spinler
2026-01-16 5:50 ` [PATCH 0/8] net/nfb: rework to real multiport Stephen Hemminger
2026-01-16 16:44 ` [PATCH v2 " spinler
2026-01-16 16:44 ` [PATCH v2 1/8] net/nfb: prepare for indirect queue mapping scheme spinler
2026-01-16 16:44 ` [PATCH v2 2/8] net/nfb: create ethdev for every eth port/channel spinler
2026-01-16 16:44 ` [PATCH v2 3/8] net/nfb: add vdev as alternative device probe method spinler
2026-01-16 16:44 ` [PATCH v2 4/8] net/nfb: add device argument "port" to limit used ports spinler
2026-01-16 16:44 ` [PATCH v2 5/8] net/nfb: init only MACs associated with device spinler
2026-01-16 16:44 ` [PATCH v2 6/8] net/nfb: add compatible cards to driver PCI ID table spinler
2026-01-16 16:44 ` [PATCH v2 7/8] net/nfb: report firmware version spinler
2026-01-16 16:44 ` [PATCH v2 8/8] doc/nfb: cleanup and update guide spinler
2026-01-20 2:25 ` [PATCH v2 0/8] net/nfb: rework to real multiport Stephen Hemminger
2026-01-20 15:16 ` Martin Spinler
2026-01-21 17:03 ` [PATCH v3 " spinler
2026-01-21 17:03 ` [PATCH v3 1/8] net/nfb: prepare for indirect queue mapping scheme spinler
2026-01-21 17:03 ` [PATCH v3 2/8] net/nfb: create ethdev for every eth port/channel spinler
2026-01-21 17:03 ` [PATCH v3 3/8] net/nfb: add vdev as alternative device probe method spinler
2026-01-21 17:40 ` Stephen Hemminger
2026-01-21 17:03 ` [PATCH v3 4/8] net/nfb: add device argument "port" to limit used ports spinler
2026-01-21 17:03 ` [PATCH v3 5/8] net/nfb: init only MACs associated with device spinler
2026-01-21 17:03 ` [PATCH v3 6/8] net/nfb: add compatible cards to driver PCI ID table spinler
2026-01-21 17:03 ` [PATCH v3 7/8] net/nfb: report firmware version spinler
2026-01-21 17:03 ` [PATCH v3 8/8] doc/nfb: cleanup and update guide spinler
2026-01-21 17:41 ` Stephen Hemminger
2026-01-21 17:42 ` [PATCH v3 0/8] net/nfb: rework to real multiport Stephen Hemminger
2026-01-22 7:27 ` [PATCH v4 " spinler
2026-01-22 7:27 ` spinler [this message]
2026-01-22 7:27 ` [PATCH v4 2/8] net/nfb: create ethdev for every eth port/channel spinler
2026-01-22 7:27 ` [PATCH v4 3/8] net/nfb: add vdev as alternative device probe method spinler
2026-01-22 7:27 ` [PATCH v4 4/8] net/nfb: add device argument "port" to limit used ports spinler
2026-01-22 7:27 ` [PATCH v4 5/8] net/nfb: init only MACs associated with device spinler
2026-01-22 7:27 ` [PATCH v4 6/8] net/nfb: add compatible cards to driver PCI ID table spinler
2026-01-22 7:27 ` [PATCH v4 7/8] net/nfb: report firmware version spinler
2026-01-22 7:27 ` [PATCH v4 8/8] doc/nfb: cleanup and update guide spinler
2026-01-23 1:00 ` [PATCH v4 0/8] net/nfb: rework to real multiport Stephen Hemminger
2026-01-23 1:01 ` Stephen Hemminger
2026-01-23 1:14 ` Stephen Hemminger
2026-01-23 17:34 ` Martin Spinler
2026-01-23 17:22 ` [PATCH v5 " spinler
2026-01-23 17:22 ` [PATCH v5 1/8] net/nfb: prepare for indirect queue mapping scheme spinler
2026-01-23 17:22 ` [PATCH v5 2/8] net/nfb: create one ethdev per ethernet port spinler
2026-01-27 0:37 ` Stephen Hemminger
2026-01-27 8:12 ` Martin Spinler
2026-01-27 14:09 ` Stephen Hemminger
2026-01-23 17:22 ` [PATCH v5 3/8] net/nfb: add vdev as alternative device probe method spinler
2026-01-23 17:22 ` [PATCH v5 4/8] net/nfb: add device argument "port" to limit used ports spinler
2026-01-23 17:22 ` [PATCH v5 5/8] net/nfb: init only MACs associated with device spinler
2026-01-23 17:22 ` [PATCH v5 6/8] net/nfb: add compatible cards to driver PCI ID table spinler
2026-01-23 17:22 ` [PATCH v5 7/8] net/nfb: report firmware version spinler
2026-01-23 17:22 ` [PATCH v5 8/8] doc/nfb: cleanup and update guide spinler
2026-01-24 19:10 ` [REVIEW] " Stephen Hemminger
2026-01-24 19:19 ` [PATCH v5 0/8] net/nfb: rework to real multiport Stephen Hemminger
2026-02-02 15:34 ` [PATCH v6 " spinler
2026-02-02 15:34 ` [PATCH v6 1/8] net/nfb: prepare for indirect queue mapping scheme spinler
2026-02-02 17:50 ` Stephen Hemminger
2026-02-02 15:34 ` [PATCH v6 2/8] net/nfb: create one ethdev per ethernet port spinler
2026-02-02 15:34 ` [PATCH v6 3/8] net/nfb: add vdev as alternative device probe method spinler
2026-02-02 15:34 ` [PATCH v6 4/8] net/nfb: add device argument "port" to limit used ports spinler
2026-02-02 15:34 ` [PATCH v6 5/8] net/nfb: init only MACs associated with device spinler
2026-02-02 15:34 ` [PATCH v6 6/8] net/nfb: add compatible cards to driver PCI ID table spinler
2026-02-02 15:34 ` [PATCH v6 7/8] net/nfb: report firmware version spinler
2026-02-02 15:34 ` [PATCH v6 8/8] doc/nfb: cleanup and update guide spinler
2026-02-02 17:42 ` [REVIEW] " Stephen Hemminger
2026-02-02 17:51 ` Stephen Hemminger
2026-02-02 17:52 ` Stephen Hemminger
2026-02-02 17:54 ` Stephen Hemminger
2026-02-02 17:54 ` Stephen Hemminger
2026-02-04 12:31 ` [PATCH v7 0/8] net/nfb: rework to real multiport spinler
2026-02-04 12:31 ` [PATCH v7 1/8] net/nfb: prepare for indirect queue mapping scheme spinler
2026-02-04 12:31 ` [PATCH v7 2/8] net/nfb: create one ethdev per ethernet port spinler
2026-02-04 12:31 ` [PATCH v7 3/8] net/nfb: add vdev as alternative device probe method spinler
2026-02-04 12:31 ` [PATCH v7 4/8] net/nfb: add device argument "port" to limit used ports spinler
2026-02-04 12:31 ` [PATCH v7 5/8] net/nfb: init only MACs associated with device spinler
2026-02-04 12:31 ` [PATCH v7 6/8] net/nfb: add compatible cards to driver PCI ID table spinler
2026-02-04 12:31 ` [PATCH v7 7/8] net/nfb: report firmware version spinler
2026-02-04 12:31 ` [PATCH v7 8/8] doc/nfb: cleanup and update guide spinler
2026-02-10 0:35 ` [PATCH v7 0/8] net/nfb: rework to real multiport Stephen Hemminger
2026-02-13 18:53 ` Martin Špinler
2026-02-12 18:35 ` Stephen Hemminger
2026-02-13 18:53 ` Martin Špinler
2026-02-13 18:53 ` [PATCH v8 " spinler
2026-02-13 18:53 ` [PATCH v8 1/8] net/nfb: prepare for indirect queue mapping scheme spinler
2026-02-13 18:53 ` [PATCH v8 2/8] net/nfb: create one ethdev per ethernet port spinler
2026-02-13 19:33 ` Stephen Hemminger
2026-02-13 18:53 ` [PATCH v8 3/8] net/nfb: add vdev as alternative device probe method spinler
2026-02-13 18:53 ` [PATCH v8 4/8] net/nfb: add device argument "port" to limit used ports spinler
2026-02-13 18:53 ` [PATCH v8 5/8] net/nfb: init only MACs associated with device spinler
2026-02-13 18:53 ` [PATCH v8 6/8] net/nfb: add compatible cards to driver PCI ID table spinler
2026-02-13 18:53 ` [PATCH v8 7/8] net/nfb: report firmware version spinler
2026-02-13 18:53 ` [PATCH v8 8/8] doc/nfb: cleanup and update guide spinler
2026-02-13 19:39 ` [PATCH v8 0/8] net/nfb: rework to real multiport Stephen Hemminger
2026-02-13 20:13 ` Martin Špinler
2026-02-16 16:24 ` [PATCH v9 " spinler
2026-02-16 16:24 ` [PATCH v9 1/8] net/nfb: prepare for indirect queue mapping scheme spinler
2026-02-16 16:25 ` [PATCH v9 2/8] net/nfb: create one ethdev per ethernet port spinler
2026-02-16 16:25 ` [PATCH v9 3/8] net/nfb: add vdev as alternative device probe method spinler
2026-02-16 16:25 ` [PATCH v9 4/8] net/nfb: add device argument "port" to limit used ports spinler
2026-02-16 16:25 ` [PATCH v9 5/8] net/nfb: init only MACs associated with device spinler
2026-02-16 16:25 ` [PATCH v9 6/8] net/nfb: add compatible cards to driver PCI ID table spinler
2026-02-16 16:25 ` [PATCH v9 7/8] net/nfb: report firmware version spinler
2026-02-16 16:25 ` [PATCH v9 8/8] doc/nfb: cleanup and update guide spinler
2026-02-16 22:11 ` [PATCH v9 0/8] net/nfb: rework to real multiport Stephen Hemminger
2026-02-17 7:09 ` Martin Spinler
2026-02-17 7:10 ` [PATCH v10 " spinler
2026-02-17 7:10 ` [PATCH v10 1/8] net/nfb: prepare for indirect queue mapping scheme spinler
2026-02-17 7:10 ` [PATCH v10 2/8] net/nfb: create one ethdev per ethernet port spinler
2026-02-17 7:10 ` [PATCH v10 3/8] net/nfb: add vdev as alternative device probe method spinler
2026-02-17 7:10 ` [PATCH v10 4/8] net/nfb: add device argument "port" to limit used ports spinler
2026-02-17 7:10 ` [PATCH v10 5/8] net/nfb: init only MACs associated with device spinler
2026-02-17 7:10 ` [PATCH v10 6/8] net/nfb: add compatible cards to driver PCI ID table spinler
2026-02-17 7:10 ` [PATCH v10 7/8] net/nfb: report firmware version spinler
2026-02-17 7:10 ` [PATCH v10 8/8] doc/nfb: cleanup and update guide spinler
2026-03-13 16:48 ` Thomas Monjalon
2026-02-17 14:58 ` [PATCH v10 0/8] net/nfb: rework to real multiport Stephen Hemminger
2026-02-17 15:05 ` Martin Spinler
2026-02-17 15:22 ` Martin Spinler
2026-02-19 0:12 ` Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260122072719.505185-2-spinler@cesnet.cz \
--to=spinler@cesnet.cz \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox