From: Bruce Richardson <bruce.richardson@intel.com>
To: dev@dpdk.org
Cc: Bruce Richardson <bruce.richardson@intel.com>,
Ian Stokes <ian.stokes@intel.com>,
David Christensen <drc@linux.ibm.com>,
Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>,
Wathsala Vithanage <wathsala.vithanage@arm.com>,
Anatoly Burakov <anatoly.burakov@intel.com>
Subject: [RFC PATCH 06/21] common/intel_eth: merge ice and i40e Tx queue struct
Date: Fri, 22 Nov 2024 12:53:59 +0000 [thread overview]
Message-ID: <20241122125418.2857301-7-bruce.richardson@intel.com> (raw)
In-Reply-To: <20241122125418.2857301-1-bruce.richardson@intel.com>
The queue structures fo i40e and ice drivers are virtually identical, so
merge them into a common struct. This should allow easier function
merging in future using that common struct.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
drivers/common/intel_eth/ieth_rxtx.h | 54 +++++++++++++++++
drivers/net/i40e/i40e_ethdev.c | 4 +-
drivers/net/i40e/i40e_ethdev.h | 4 +-
drivers/net/i40e/i40e_fdir.c | 4 +-
.../net/i40e/i40e_recycle_mbufs_vec_common.c | 2 +-
drivers/net/i40e/i40e_rxtx.c | 58 +++++++++---------
drivers/net/i40e/i40e_rxtx.h | 50 ++--------------
drivers/net/i40e/i40e_rxtx_vec_altivec.c | 4 +-
drivers/net/i40e/i40e_rxtx_vec_avx2.c | 4 +-
drivers/net/i40e/i40e_rxtx_vec_avx512.c | 6 +-
drivers/net/i40e/i40e_rxtx_vec_common.h | 2 +-
drivers/net/i40e/i40e_rxtx_vec_neon.c | 4 +-
drivers/net/i40e/i40e_rxtx_vec_sse.c | 4 +-
drivers/net/ice/ice_dcf.c | 4 +-
drivers/net/ice/ice_dcf_ethdev.c | 10 ++--
drivers/net/ice/ice_diagnose.c | 2 +-
drivers/net/ice/ice_ethdev.c | 2 +-
drivers/net/ice/ice_ethdev.h | 4 +-
drivers/net/ice/ice_rxtx.c | 60 +++++++++----------
drivers/net/ice/ice_rxtx.h | 41 +------------
drivers/net/ice/ice_rxtx_vec_avx2.c | 4 +-
drivers/net/ice/ice_rxtx_vec_avx512.c | 8 +--
drivers/net/ice/ice_rxtx_vec_common.h | 8 +--
drivers/net/ice/ice_rxtx_vec_sse.c | 6 +-
24 files changed, 164 insertions(+), 185 deletions(-)
diff --git a/drivers/common/intel_eth/ieth_rxtx.h b/drivers/common/intel_eth/ieth_rxtx.h
index 95a3cff048..8b12ff59e4 100644
--- a/drivers/common/intel_eth/ieth_rxtx.h
+++ b/drivers/common/intel_eth/ieth_rxtx.h
@@ -26,4 +26,58 @@ struct ieth_vec_tx_entry
struct rte_mbuf *mbuf; /* mbuf associated with TX desc, if any. */
};
+struct ieth_tx_queue;
+
+typedef void (*ice_tx_release_mbufs_t)(struct ieth_tx_queue *txq);
+
+struct ieth_tx_queue {
+ union { /* TX ring virtual address */
+ volatile struct ice_tx_desc *ice_tx_ring;
+ volatile struct i40e_tx_desc *i40e_tx_ring;
+ };
+ volatile uint8_t *qtx_tail; /* register address of tail */
+ struct ieth_tx_entry *sw_ring; /* virtual address of SW ring */
+ rte_iova_t tx_ring_dma; /* TX ring DMA address */
+ uint16_t nb_tx_desc; /* number of TX descriptors */
+ uint16_t tx_tail; /* current value of tail register */
+ uint16_t nb_tx_used; /* number of TX desc used since RS bit set */
+ /* index to last TX descriptor to have been cleaned */
+ uint16_t last_desc_cleaned;
+ /* Total number of TX descriptors ready to be allocated. */
+ uint16_t nb_tx_free;
+ /* Start freeing TX buffers if there are less free descriptors than
+ * this value.
+ */
+ uint16_t tx_free_thresh;
+ /* Number of TX descriptors to use before RS bit is set. */
+ uint16_t tx_rs_thresh;
+ uint8_t pthresh; /**< Prefetch threshold register. */
+ uint8_t hthresh; /**< Host threshold register. */
+ uint8_t wthresh; /**< Write-back threshold reg. */
+ uint16_t port_id; /* Device port identifier. */
+ uint16_t queue_id; /* TX queue index. */
+ uint16_t reg_idx;
+ uint64_t offloads;
+ uint16_t tx_next_dd;
+ uint16_t tx_next_rs;
+ uint64_t mbuf_errors;
+ _Bool tx_deferred_start; /* don't start this queue in dev start */
+ _Bool q_set; /* indicate if tx queue has been configured */
+ union { /* the VSI this queue belongs to */
+ struct ice_vsi *ice_vsi;
+ struct i40e_vsi *i40e_vsi;
+ };
+ const struct rte_memzone *mz;
+
+ union {
+ struct { /* ICE driver specific values */
+ ice_tx_release_mbufs_t tx_rel_mbufs;
+ uint32_t q_teid; /* TX schedule node id. */
+ };
+ struct { /* I40E driver specific values */
+ uint8_t dcb_tc;
+ };
+ };
+};
+
#endif /* IETH_RXTX_H_ */
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index ca128c7556..4d74513812 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -3685,7 +3685,7 @@ i40e_dev_update_mbuf_stats(struct rte_eth_dev *ethdev,
struct i40e_mbuf_stats *mbuf_stats)
{
uint16_t idx;
- struct i40e_tx_queue *txq;
+ struct ieth_tx_queue *txq;
for (idx = 0; idx < ethdev->data->nb_tx_queues; idx++) {
txq = ethdev->data->tx_queues[idx];
@@ -6585,7 +6585,7 @@ i40e_dev_tx_init(struct i40e_pf *pf)
struct rte_eth_dev_data *data = pf->dev_data;
uint16_t i;
uint32_t ret = I40E_SUCCESS;
- struct i40e_tx_queue *txq;
+ struct ieth_tx_queue *txq;
for (i = 0; i < data->nb_tx_queues; i++) {
txq = data->tx_queues[i];
diff --git a/drivers/net/i40e/i40e_ethdev.h b/drivers/net/i40e/i40e_ethdev.h
index 98213948b4..8c8c0a1bcf 100644
--- a/drivers/net/i40e/i40e_ethdev.h
+++ b/drivers/net/i40e/i40e_ethdev.h
@@ -334,7 +334,7 @@ struct i40e_vsi_list {
};
struct i40e_rx_queue;
-struct i40e_tx_queue;
+struct ieth_tx_queue;
/* Bandwidth limit information */
struct i40e_bw_info {
@@ -738,7 +738,7 @@ TAILQ_HEAD(i40e_fdir_filter_list, i40e_fdir_filter);
struct i40e_fdir_info {
struct i40e_vsi *fdir_vsi; /* pointer to fdir VSI structure */
uint16_t match_counter_index; /* Statistic counter index used for fdir*/
- struct i40e_tx_queue *txq;
+ struct ieth_tx_queue *txq;
struct i40e_rx_queue *rxq;
void *prg_pkt[I40E_FDIR_PRG_PKT_CNT]; /* memory for fdir program packet */
uint64_t dma_addr[I40E_FDIR_PRG_PKT_CNT]; /* physic address of packet memory*/
diff --git a/drivers/net/i40e/i40e_fdir.c b/drivers/net/i40e/i40e_fdir.c
index c600167634..c5298ffae0 100644
--- a/drivers/net/i40e/i40e_fdir.c
+++ b/drivers/net/i40e/i40e_fdir.c
@@ -1372,7 +1372,7 @@ i40e_find_available_buffer(struct rte_eth_dev *dev)
{
struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
struct i40e_fdir_info *fdir_info = &pf->fdir;
- struct i40e_tx_queue *txq = pf->fdir.txq;
+ struct ieth_tx_queue *txq = pf->fdir.txq;
/* no available buffer
* search for more available buffers from the current
@@ -1628,7 +1628,7 @@ i40e_flow_fdir_filter_programming(struct i40e_pf *pf,
const struct i40e_fdir_filter_conf *filter,
bool add, bool wait_status)
{
- struct i40e_tx_queue *txq = pf->fdir.txq;
+ struct ieth_tx_queue *txq = pf->fdir.txq;
struct i40e_rx_queue *rxq = pf->fdir.rxq;
const struct i40e_fdir_action *fdir_action = &filter->action;
volatile struct i40e_tx_desc *txdp;
diff --git a/drivers/net/i40e/i40e_recycle_mbufs_vec_common.c b/drivers/net/i40e/i40e_recycle_mbufs_vec_common.c
index 167ee8d428..39bf59d526 100644
--- a/drivers/net/i40e/i40e_recycle_mbufs_vec_common.c
+++ b/drivers/net/i40e/i40e_recycle_mbufs_vec_common.c
@@ -55,7 +55,7 @@ uint16_t
i40e_recycle_tx_mbufs_reuse_vec(void *tx_queue,
struct rte_eth_recycle_rxq_info *recycle_rxq_info)
{
- struct i40e_tx_queue *txq = tx_queue;
+ struct ieth_tx_queue *txq = tx_queue;
struct ieth_tx_entry *txep;
struct rte_mbuf **rxep;
int i, n;
diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index 5b8edac3b2..fce3f5ec2a 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -376,7 +376,7 @@ i40e_build_ctob(uint32_t td_cmd,
}
static inline int
-i40e_xmit_cleanup(struct i40e_tx_queue *txq)
+i40e_xmit_cleanup(struct ieth_tx_queue *txq)
{
struct ieth_tx_entry *sw_ring = txq->sw_ring;
volatile struct i40e_tx_desc *txd = txq->i40e_tx_ring;
@@ -1080,7 +1080,7 @@ i40e_calc_pkt_desc(struct rte_mbuf *tx_pkt)
uint16_t
i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
{
- struct i40e_tx_queue *txq;
+ struct ieth_tx_queue *txq;
struct ieth_tx_entry *sw_ring;
struct ieth_tx_entry *txe, *txn;
volatile struct i40e_tx_desc *txd;
@@ -1329,7 +1329,7 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
}
static __rte_always_inline int
-i40e_tx_free_bufs(struct i40e_tx_queue *txq)
+i40e_tx_free_bufs(struct ieth_tx_queue *txq)
{
struct ieth_tx_entry *txep;
uint16_t tx_rs_thresh = txq->tx_rs_thresh;
@@ -1413,7 +1413,7 @@ tx1(volatile struct i40e_tx_desc *txdp, struct rte_mbuf **pkts)
/* Fill hardware descriptor ring with mbuf data */
static inline void
-i40e_tx_fill_hw_ring(struct i40e_tx_queue *txq,
+i40e_tx_fill_hw_ring(struct ieth_tx_queue *txq,
struct rte_mbuf **pkts,
uint16_t nb_pkts)
{
@@ -1441,7 +1441,7 @@ i40e_tx_fill_hw_ring(struct i40e_tx_queue *txq,
}
static inline uint16_t
-tx_xmit_pkts(struct i40e_tx_queue *txq,
+tx_xmit_pkts(struct ieth_tx_queue *txq,
struct rte_mbuf **tx_pkts,
uint16_t nb_pkts)
{
@@ -1504,14 +1504,14 @@ i40e_xmit_pkts_simple(void *tx_queue,
uint16_t nb_tx = 0;
if (likely(nb_pkts <= I40E_TX_MAX_BURST))
- return tx_xmit_pkts((struct i40e_tx_queue *)tx_queue,
+ return tx_xmit_pkts((struct ieth_tx_queue *)tx_queue,
tx_pkts, nb_pkts);
while (nb_pkts) {
uint16_t ret, num = (uint16_t)RTE_MIN(nb_pkts,
I40E_TX_MAX_BURST);
- ret = tx_xmit_pkts((struct i40e_tx_queue *)tx_queue,
+ ret = tx_xmit_pkts((struct ieth_tx_queue *)tx_queue,
&tx_pkts[nb_tx], num);
nb_tx = (uint16_t)(nb_tx + ret);
nb_pkts = (uint16_t)(nb_pkts - ret);
@@ -1527,7 +1527,7 @@ i40e_xmit_pkts_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts)
{
uint16_t nb_tx = 0;
- struct i40e_tx_queue *txq = (struct i40e_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
while (nb_pkts) {
uint16_t ret, num;
@@ -1549,7 +1549,7 @@ i40e_xmit_pkts_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
static uint16_t
i40e_xmit_pkts_check(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
{
- struct i40e_tx_queue *txq = tx_queue;
+ struct ieth_tx_queue *txq = tx_queue;
uint16_t idx;
uint64_t ol_flags;
struct rte_mbuf *mb;
@@ -1611,7 +1611,7 @@ i40e_xmit_pkts_check(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts
pkt_error = true;
break;
}
- if (mb->nb_segs > ((struct i40e_tx_queue *)tx_queue)->nb_tx_desc) {
+ if (mb->nb_segs > ((struct ieth_tx_queue *)tx_queue)->nb_tx_desc) {
PMD_TX_LOG(ERR, "INVALID mbuf: nb_segs out of ring length");
pkt_error = true;
break;
@@ -1873,7 +1873,7 @@ int
i40e_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
{
int err;
- struct i40e_tx_queue *txq;
+ struct ieth_tx_queue *txq;
struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
PMD_INIT_FUNC_TRACE();
@@ -1907,7 +1907,7 @@ i40e_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
int
i40e_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id)
{
- struct i40e_tx_queue *txq;
+ struct ieth_tx_queue *txq;
int err;
struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -2311,7 +2311,7 @@ i40e_dev_rx_descriptor_status(void *rx_queue, uint16_t offset)
int
i40e_dev_tx_descriptor_status(void *tx_queue, uint16_t offset)
{
- struct i40e_tx_queue *txq = tx_queue;
+ struct ieth_tx_queue *txq = tx_queue;
volatile uint64_t *status;
uint64_t mask, expect;
uint32_t desc;
@@ -2341,7 +2341,7 @@ i40e_dev_tx_descriptor_status(void *tx_queue, uint16_t offset)
static int
i40e_dev_tx_queue_setup_runtime(struct rte_eth_dev *dev,
- struct i40e_tx_queue *txq)
+ struct ieth_tx_queue *txq)
{
struct i40e_adapter *ad =
I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
@@ -2394,7 +2394,7 @@ i40e_dev_tx_queue_setup(struct rte_eth_dev *dev,
{
struct i40e_vsi *vsi;
struct i40e_pf *pf = NULL;
- struct i40e_tx_queue *txq;
+ struct ieth_tx_queue *txq;
const struct rte_memzone *tz;
uint32_t ring_size;
uint16_t tx_rs_thresh, tx_free_thresh;
@@ -2515,7 +2515,7 @@ i40e_dev_tx_queue_setup(struct rte_eth_dev *dev,
/* Allocate the TX queue data structure. */
txq = rte_zmalloc_socket("i40e tx queue",
- sizeof(struct i40e_tx_queue),
+ sizeof(struct ieth_tx_queue),
RTE_CACHE_LINE_SIZE,
socket_id);
if (!txq) {
@@ -2600,7 +2600,7 @@ i40e_dev_tx_queue_setup(struct rte_eth_dev *dev,
void
i40e_tx_queue_release(void *txq)
{
- struct i40e_tx_queue *q = (struct i40e_tx_queue *)txq;
+ struct ieth_tx_queue *q = (struct ieth_tx_queue *)txq;
if (!q) {
PMD_DRV_LOG(DEBUG, "Pointer to TX queue is NULL");
@@ -2705,7 +2705,7 @@ i40e_reset_rx_queue(struct i40e_rx_queue *rxq)
}
void
-i40e_tx_queue_release_mbufs(struct i40e_tx_queue *txq)
+i40e_tx_queue_release_mbufs(struct ieth_tx_queue *txq)
{
struct rte_eth_dev *dev;
uint16_t i;
@@ -2765,7 +2765,7 @@ i40e_tx_queue_release_mbufs(struct i40e_tx_queue *txq)
}
static int
-i40e_tx_done_cleanup_full(struct i40e_tx_queue *txq,
+i40e_tx_done_cleanup_full(struct ieth_tx_queue *txq,
uint32_t free_cnt)
{
struct ieth_tx_entry *swr_ring = txq->sw_ring;
@@ -2824,7 +2824,7 @@ i40e_tx_done_cleanup_full(struct i40e_tx_queue *txq,
}
static int
-i40e_tx_done_cleanup_simple(struct i40e_tx_queue *txq,
+i40e_tx_done_cleanup_simple(struct ieth_tx_queue *txq,
uint32_t free_cnt)
{
int i, n, cnt;
@@ -2848,7 +2848,7 @@ i40e_tx_done_cleanup_simple(struct i40e_tx_queue *txq,
}
static int
-i40e_tx_done_cleanup_vec(struct i40e_tx_queue *txq __rte_unused,
+i40e_tx_done_cleanup_vec(struct ieth_tx_queue *txq __rte_unused,
uint32_t free_cnt __rte_unused)
{
return -ENOTSUP;
@@ -2856,7 +2856,7 @@ i40e_tx_done_cleanup_vec(struct i40e_tx_queue *txq __rte_unused,
int
i40e_tx_done_cleanup(void *txq, uint32_t free_cnt)
{
- struct i40e_tx_queue *q = (struct i40e_tx_queue *)txq;
+ struct ieth_tx_queue *q = (struct ieth_tx_queue *)txq;
struct rte_eth_dev *dev = &rte_eth_devices[q->port_id];
struct i40e_adapter *ad =
I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
@@ -2872,7 +2872,7 @@ i40e_tx_done_cleanup(void *txq, uint32_t free_cnt)
}
void
-i40e_reset_tx_queue(struct i40e_tx_queue *txq)
+i40e_reset_tx_queue(struct ieth_tx_queue *txq)
{
struct ieth_tx_entry *txe;
uint16_t i, prev, size;
@@ -2911,7 +2911,7 @@ i40e_reset_tx_queue(struct i40e_tx_queue *txq)
/* Init the TX queue in hardware */
int
-i40e_tx_queue_init(struct i40e_tx_queue *txq)
+i40e_tx_queue_init(struct ieth_tx_queue *txq)
{
enum i40e_status_code err = I40E_SUCCESS;
struct i40e_vsi *vsi = txq->i40e_vsi;
@@ -3167,7 +3167,7 @@ i40e_dev_free_queues(struct rte_eth_dev *dev)
enum i40e_status_code
i40e_fdir_setup_tx_resources(struct i40e_pf *pf)
{
- struct i40e_tx_queue *txq;
+ struct ieth_tx_queue *txq;
const struct rte_memzone *tz = NULL;
struct rte_eth_dev *dev;
uint32_t ring_size;
@@ -3181,7 +3181,7 @@ i40e_fdir_setup_tx_resources(struct i40e_pf *pf)
/* Allocate the TX queue data structure. */
txq = rte_zmalloc_socket("i40e fdir tx queue",
- sizeof(struct i40e_tx_queue),
+ sizeof(struct ieth_tx_queue),
RTE_CACHE_LINE_SIZE,
SOCKET_ID_ANY);
if (!txq) {
@@ -3304,7 +3304,7 @@ void
i40e_txq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
struct rte_eth_txq_info *qinfo)
{
- struct i40e_tx_queue *txq;
+ struct ieth_tx_queue *txq;
txq = dev->data->tx_queues[queue_id];
@@ -3552,7 +3552,7 @@ i40e_rx_burst_mode_get(struct rte_eth_dev *dev, __rte_unused uint16_t queue_id,
}
void __rte_cold
-i40e_set_tx_function_flag(struct rte_eth_dev *dev, struct i40e_tx_queue *txq)
+i40e_set_tx_function_flag(struct rte_eth_dev *dev, struct ieth_tx_queue *txq)
{
struct i40e_adapter *ad =
I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
@@ -3592,7 +3592,7 @@ i40e_set_tx_function(struct rte_eth_dev *dev)
#endif
if (ad->tx_vec_allowed) {
for (i = 0; i < dev->data->nb_tx_queues; i++) {
- struct i40e_tx_queue *txq =
+ struct ieth_tx_queue *txq =
dev->data->tx_queues[i];
if (txq && i40e_txq_vec_setup(txq)) {
diff --git a/drivers/net/i40e/i40e_rxtx.h b/drivers/net/i40e/i40e_rxtx.h
index 030c381e0c..e6e36d8e69 100644
--- a/drivers/net/i40e/i40e_rxtx.h
+++ b/drivers/net/i40e/i40e_rxtx.h
@@ -124,44 +124,6 @@ struct i40e_rx_queue {
const struct rte_memzone *mz;
};
-/*
- * Structure associated with each TX queue.
- */
-struct i40e_tx_queue {
- uint16_t nb_tx_desc; /**< number of TX descriptors */
- rte_iova_t tx_ring_dma; /**< TX ring DMA address */
- volatile struct i40e_tx_desc *i40e_tx_ring; /**< TX ring virtual address */
- struct ieth_tx_entry *sw_ring; /**< virtual address of SW ring */
- uint16_t tx_tail; /**< current value of tail register */
- volatile uint8_t *qtx_tail; /**< register address of tail */
- uint16_t nb_tx_used; /**< number of TX desc used since RS bit set */
- /**< index to last TX descriptor to have been cleaned */
- uint16_t last_desc_cleaned;
- /**< Total number of TX descriptors ready to be allocated. */
- uint16_t nb_tx_free;
- /**< Start freeing TX buffers if there are less free descriptors than
- this value. */
- uint16_t tx_free_thresh;
- /** Number of TX descriptors to use before RS bit is set. */
- uint16_t tx_rs_thresh;
- uint8_t pthresh; /**< Prefetch threshold register. */
- uint8_t hthresh; /**< Host threshold register. */
- uint8_t wthresh; /**< Write-back threshold reg. */
- uint16_t port_id; /**< Device port identifier. */
- uint16_t queue_id; /**< TX queue index. */
- uint16_t reg_idx;
- struct i40e_vsi *i40e_vsi; /**< the VSI this queue belongs to */
- uint16_t tx_next_dd;
- uint16_t tx_next_rs;
- bool q_set; /**< indicate if tx queue has been configured */
- uint64_t mbuf_errors;
-
- bool tx_deferred_start; /**< don't start this queue in dev start */
- uint8_t dcb_tc; /**< Traffic class of tx queue */
- uint64_t offloads; /**< Tx offload flags of RTE_ETH_TX_OFFLOAD_* */
- const struct rte_memzone *mz;
-};
-
/** Offload features */
union i40e_tx_offload {
uint64_t data;
@@ -209,15 +171,15 @@ uint16_t i40e_simple_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts);
uint16_t i40e_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts);
-int i40e_tx_queue_init(struct i40e_tx_queue *txq);
+int i40e_tx_queue_init(struct ieth_tx_queue *txq);
int i40e_rx_queue_init(struct i40e_rx_queue *rxq);
-void i40e_free_tx_resources(struct i40e_tx_queue *txq);
+void i40e_free_tx_resources(struct ieth_tx_queue *txq);
void i40e_free_rx_resources(struct i40e_rx_queue *rxq);
void i40e_dev_clear_queues(struct rte_eth_dev *dev);
void i40e_dev_free_queues(struct rte_eth_dev *dev);
void i40e_reset_rx_queue(struct i40e_rx_queue *rxq);
-void i40e_reset_tx_queue(struct i40e_tx_queue *txq);
-void i40e_tx_queue_release_mbufs(struct i40e_tx_queue *txq);
+void i40e_reset_tx_queue(struct ieth_tx_queue *txq);
+void i40e_tx_queue_release_mbufs(struct ieth_tx_queue *txq);
int i40e_tx_done_cleanup(void *txq, uint32_t free_cnt);
int i40e_alloc_rx_queue_mbufs(struct i40e_rx_queue *rxq);
void i40e_rx_queue_release_mbufs(struct i40e_rx_queue *rxq);
@@ -237,13 +199,13 @@ uint16_t i40e_recv_scattered_pkts_vec(void *rx_queue,
uint16_t nb_pkts);
int i40e_rx_vec_dev_conf_condition_check(struct rte_eth_dev *dev);
int i40e_rxq_vec_setup(struct i40e_rx_queue *rxq);
-int i40e_txq_vec_setup(struct i40e_tx_queue *txq);
+int i40e_txq_vec_setup(struct ieth_tx_queue *txq);
void i40e_rx_queue_release_mbufs_vec(struct i40e_rx_queue *rxq);
uint16_t i40e_xmit_fixed_burst_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts);
void i40e_set_rx_function(struct rte_eth_dev *dev);
void i40e_set_tx_function_flag(struct rte_eth_dev *dev,
- struct i40e_tx_queue *txq);
+ struct ieth_tx_queue *txq);
void i40e_set_tx_function(struct rte_eth_dev *dev);
void i40e_set_default_ptype_table(struct rte_eth_dev *dev);
void i40e_set_default_pctype_table(struct rte_eth_dev *dev);
diff --git a/drivers/net/i40e/i40e_rxtx_vec_altivec.c b/drivers/net/i40e/i40e_rxtx_vec_altivec.c
index aed78e4a1a..2ab09eb167 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_altivec.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_altivec.c
@@ -551,7 +551,7 @@ uint16_t
i40e_xmit_fixed_burst_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts)
{
- struct i40e_tx_queue *txq = (struct i40e_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
volatile struct i40e_tx_desc *txdp;
struct ieth_tx_entry *txep;
uint16_t n, nb_commit, tx_id;
@@ -625,7 +625,7 @@ i40e_rxq_vec_setup(struct i40e_rx_queue *rxq)
}
int __rte_cold
-i40e_txq_vec_setup(struct i40e_tx_queue __rte_unused * txq)
+i40e_txq_vec_setup(struct ieth_tx_queue __rte_unused * txq)
{
return 0;
}
diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
index 6b7c96c683..e32fa160bf 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
@@ -743,7 +743,7 @@ static inline uint16_t
i40e_xmit_fixed_burst_vec_avx2(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts)
{
- struct i40e_tx_queue *txq = (struct i40e_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
volatile struct i40e_tx_desc *txdp;
struct ieth_tx_entry *txep;
uint16_t n, nb_commit, tx_id;
@@ -808,7 +808,7 @@ i40e_xmit_pkts_vec_avx2(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts)
{
uint16_t nb_tx = 0;
- struct i40e_tx_queue *txq = (struct i40e_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
while (nb_pkts) {
uint16_t ret, num;
diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx512.c b/drivers/net/i40e/i40e_rxtx_vec_avx512.c
index 33c1655c9a..b4b38d7db6 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_avx512.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_avx512.c
@@ -755,7 +755,7 @@ i40e_recv_scattered_pkts_vec_avx512(void *rx_queue,
}
static __rte_always_inline int
-i40e_tx_free_bufs_avx512(struct i40e_tx_queue *txq)
+i40e_tx_free_bufs_avx512(struct ieth_tx_queue *txq)
{
struct ieth_vec_tx_entry *txep;
uint32_t n;
@@ -933,7 +933,7 @@ static inline uint16_t
i40e_xmit_fixed_burst_vec_avx512(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts)
{
- struct i40e_tx_queue *txq = (struct i40e_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
volatile struct i40e_tx_desc *txdp;
struct ieth_vec_tx_entry *txep;
uint16_t n, nb_commit, tx_id;
@@ -999,7 +999,7 @@ i40e_xmit_pkts_vec_avx512(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts)
{
uint16_t nb_tx = 0;
- struct i40e_tx_queue *txq = (struct i40e_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
while (nb_pkts) {
uint16_t ret, num;
diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h b/drivers/net/i40e/i40e_rxtx_vec_common.h
index a70d9fce78..66e38994a5 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_common.h
+++ b/drivers/net/i40e/i40e_rxtx_vec_common.h
@@ -17,7 +17,7 @@
#endif
static __rte_always_inline int
-i40e_tx_free_bufs(struct i40e_tx_queue *txq)
+i40e_tx_free_bufs(struct ieth_tx_queue *txq)
{
struct ieth_tx_entry *txep;
uint32_t n;
diff --git a/drivers/net/i40e/i40e_rxtx_vec_neon.c b/drivers/net/i40e/i40e_rxtx_vec_neon.c
index 23aaf3a739..b30da1a78c 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_neon.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_neon.c
@@ -679,7 +679,7 @@ uint16_t
i40e_xmit_fixed_burst_vec(void *__rte_restrict tx_queue,
struct rte_mbuf **__rte_restrict tx_pkts, uint16_t nb_pkts)
{
- struct i40e_tx_queue *txq = (struct i40e_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
volatile struct i40e_tx_desc *txdp;
struct ieth_tx_entry *txep;
uint16_t n, nb_commit, tx_id;
@@ -753,7 +753,7 @@ i40e_rxq_vec_setup(struct i40e_rx_queue *rxq)
}
int __rte_cold
-i40e_txq_vec_setup(struct i40e_tx_queue __rte_unused *txq)
+i40e_txq_vec_setup(struct ieth_tx_queue __rte_unused *txq)
{
return 0;
}
diff --git a/drivers/net/i40e/i40e_rxtx_vec_sse.c b/drivers/net/i40e/i40e_rxtx_vec_sse.c
index 499b6e6ff7..5107cb9f01 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_sse.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_sse.c
@@ -698,7 +698,7 @@ uint16_t
i40e_xmit_fixed_burst_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts)
{
- struct i40e_tx_queue *txq = (struct i40e_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
volatile struct i40e_tx_desc *txdp;
struct ieth_tx_entry *txep;
uint16_t n, nb_commit, tx_id;
@@ -771,7 +771,7 @@ i40e_rxq_vec_setup(struct i40e_rx_queue *rxq)
}
int __rte_cold
-i40e_txq_vec_setup(struct i40e_tx_queue __rte_unused *txq)
+i40e_txq_vec_setup(struct ieth_tx_queue __rte_unused *txq)
{
return 0;
}
diff --git a/drivers/net/ice/ice_dcf.c b/drivers/net/ice/ice_dcf.c
index 204d4eadbb..0b262d34c6 100644
--- a/drivers/net/ice/ice_dcf.c
+++ b/drivers/net/ice/ice_dcf.c
@@ -1177,8 +1177,8 @@ ice_dcf_configure_queues(struct ice_dcf_hw *hw)
{
struct ice_rx_queue **rxq =
(struct ice_rx_queue **)hw->eth_dev->data->rx_queues;
- struct ice_tx_queue **txq =
- (struct ice_tx_queue **)hw->eth_dev->data->tx_queues;
+ struct ieth_tx_queue **txq =
+ (struct ieth_tx_queue **)hw->eth_dev->data->tx_queues;
struct virtchnl_vsi_queue_config_info *vc_config;
struct virtchnl_queue_pair_info *vc_qp;
struct dcf_virtchnl_cmd args;
diff --git a/drivers/net/ice/ice_dcf_ethdev.c b/drivers/net/ice/ice_dcf_ethdev.c
index 9485494f86..b5bab35d77 100644
--- a/drivers/net/ice/ice_dcf_ethdev.c
+++ b/drivers/net/ice/ice_dcf_ethdev.c
@@ -387,7 +387,7 @@ reset_rx_queue(struct ice_rx_queue *rxq)
}
static inline void
-reset_tx_queue(struct ice_tx_queue *txq)
+reset_tx_queue(struct ieth_tx_queue *txq)
{
struct ieth_tx_entry *txe;
uint32_t i, size;
@@ -454,7 +454,7 @@ ice_dcf_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
{
struct ice_dcf_adapter *ad = dev->data->dev_private;
struct iavf_hw *hw = &ad->real_hw.avf;
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
int err = 0;
if (tx_queue_id >= dev->data->nb_tx_queues)
@@ -486,7 +486,7 @@ ice_dcf_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id)
{
struct ice_dcf_adapter *ad = dev->data->dev_private;
struct ice_dcf_hw *hw = &ad->real_hw;
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
int err;
if (tx_queue_id >= dev->data->nb_tx_queues)
@@ -511,7 +511,7 @@ static int
ice_dcf_start_queues(struct rte_eth_dev *dev)
{
struct ice_rx_queue *rxq;
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
int nb_rxq = 0;
int nb_txq, i;
@@ -638,7 +638,7 @@ ice_dcf_stop_queues(struct rte_eth_dev *dev)
struct ice_dcf_adapter *ad = dev->data->dev_private;
struct ice_dcf_hw *hw = &ad->real_hw;
struct ice_rx_queue *rxq;
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
int ret, i;
/* Stop All queues */
diff --git a/drivers/net/ice/ice_diagnose.c b/drivers/net/ice/ice_diagnose.c
index 5bec9d00ad..2d0e8e66ce 100644
--- a/drivers/net/ice/ice_diagnose.c
+++ b/drivers/net/ice/ice_diagnose.c
@@ -605,7 +605,7 @@ void print_node(const struct rte_eth_dev_data *ethdata,
get_elem_type(data->data.elem_type));
if (data->data.elem_type == ICE_AQC_ELEM_TYPE_LEAF) {
for (uint16_t i = 0; i < ethdata->nb_tx_queues; i++) {
- struct ice_tx_queue *q = ethdata->tx_queues[i];
+ struct ieth_tx_queue *q = ethdata->tx_queues[i];
if (q->q_teid == data->node_teid) {
fprintf(stream, "\t\t\t\t<tr><td>TXQ</td><td>%u</td></tr>\n", i);
break;
diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 93a6308a86..378979b858 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -6448,7 +6448,7 @@ ice_update_mbuf_stats(struct rte_eth_dev *ethdev,
struct ice_mbuf_stats *mbuf_stats)
{
uint16_t idx;
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
for (idx = 0; idx < ethdev->data->nb_tx_queues; idx++) {
txq = ethdev->data->tx_queues[idx];
diff --git a/drivers/net/ice/ice_ethdev.h b/drivers/net/ice/ice_ethdev.h
index a5b27fabd2..b5d39b3fc6 100644
--- a/drivers/net/ice/ice_ethdev.h
+++ b/drivers/net/ice/ice_ethdev.h
@@ -258,7 +258,7 @@ struct ice_vsi_list {
};
struct ice_rx_queue;
-struct ice_tx_queue;
+struct ieth_tx_queue;
/**
* Structure that defines a VSI, associated with a adapter.
@@ -408,7 +408,7 @@ struct ice_fdir_counter_pool_container {
*/
struct ice_fdir_info {
struct ice_vsi *fdir_vsi; /* pointer to fdir VSI structure */
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
struct ice_rx_queue *rxq;
void *prg_pkt; /* memory for fdir program packet */
uint64_t dma_addr; /* physic address of packet memory*/
diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index df9b09ae0c..20ebda68c7 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -743,7 +743,7 @@ ice_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id)
int
ice_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
{
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
int err;
struct ice_vsi *vsi;
struct ice_hw *hw;
@@ -944,7 +944,7 @@ int
ice_fdir_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
{
struct ice_pf *pf = ICE_DEV_PRIVATE_TO_PF(dev->data->dev_private);
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
int err;
struct ice_vsi *vsi;
struct ice_hw *hw;
@@ -1008,7 +1008,7 @@ ice_fdir_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
/* Free all mbufs for descriptors in tx queue */
static void
-_ice_tx_queue_release_mbufs(struct ice_tx_queue *txq)
+_ice_tx_queue_release_mbufs(struct ieth_tx_queue *txq)
{
uint16_t i;
@@ -1026,7 +1026,7 @@ _ice_tx_queue_release_mbufs(struct ice_tx_queue *txq)
}
static void
-ice_reset_tx_queue(struct ice_tx_queue *txq)
+ice_reset_tx_queue(struct ieth_tx_queue *txq)
{
struct ieth_tx_entry *txe;
uint16_t i, prev, size;
@@ -1066,7 +1066,7 @@ ice_reset_tx_queue(struct ice_tx_queue *txq)
int
ice_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id)
{
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
struct ice_pf *pf = ICE_DEV_PRIVATE_TO_PF(dev->data->dev_private);
struct ice_vsi *vsi = pf->main_vsi;
@@ -1134,7 +1134,7 @@ ice_fdir_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id)
int
ice_fdir_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id)
{
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
struct ice_pf *pf = ICE_DEV_PRIVATE_TO_PF(dev->data->dev_private);
struct ice_vsi *vsi = pf->main_vsi;
@@ -1354,7 +1354,7 @@ ice_tx_queue_setup(struct rte_eth_dev *dev,
{
struct ice_pf *pf = ICE_DEV_PRIVATE_TO_PF(dev->data->dev_private);
struct ice_vsi *vsi = pf->main_vsi;
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
const struct rte_memzone *tz;
uint32_t ring_size;
uint16_t tx_rs_thresh, tx_free_thresh;
@@ -1467,7 +1467,7 @@ ice_tx_queue_setup(struct rte_eth_dev *dev,
/* Allocate the TX queue data structure. */
txq = rte_zmalloc_socket(NULL,
- sizeof(struct ice_tx_queue),
+ sizeof(struct ieth_tx_queue),
RTE_CACHE_LINE_SIZE,
socket_id);
if (!txq) {
@@ -1542,7 +1542,7 @@ ice_dev_tx_queue_release(struct rte_eth_dev *dev, uint16_t qid)
void
ice_tx_queue_release(void *txq)
{
- struct ice_tx_queue *q = (struct ice_tx_queue *)txq;
+ struct ieth_tx_queue *q = (struct ieth_tx_queue *)txq;
if (!q) {
PMD_DRV_LOG(DEBUG, "Pointer to TX queue is NULL");
@@ -1577,7 +1577,7 @@ void
ice_txq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
struct rte_eth_txq_info *qinfo)
{
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
txq = dev->data->tx_queues[queue_id];
@@ -2354,7 +2354,7 @@ ice_rx_descriptor_status(void *rx_queue, uint16_t offset)
int
ice_tx_descriptor_status(void *tx_queue, uint16_t offset)
{
- struct ice_tx_queue *txq = tx_queue;
+ struct ieth_tx_queue *txq = tx_queue;
volatile uint64_t *status;
uint64_t mask, expect;
uint32_t desc;
@@ -2412,7 +2412,7 @@ ice_free_queues(struct rte_eth_dev *dev)
int
ice_fdir_setup_tx_resources(struct ice_pf *pf)
{
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
const struct rte_memzone *tz = NULL;
uint32_t ring_size;
struct rte_eth_dev *dev;
@@ -2426,7 +2426,7 @@ ice_fdir_setup_tx_resources(struct ice_pf *pf)
/* Allocate the TX queue data structure. */
txq = rte_zmalloc_socket("ice fdir tx queue",
- sizeof(struct ice_tx_queue),
+ sizeof(struct ieth_tx_queue),
RTE_CACHE_LINE_SIZE,
SOCKET_ID_ANY);
if (!txq) {
@@ -2835,7 +2835,7 @@ ice_txd_enable_checksum(uint64_t ol_flags,
}
static inline int
-ice_xmit_cleanup(struct ice_tx_queue *txq)
+ice_xmit_cleanup(struct ieth_tx_queue *txq)
{
struct ieth_tx_entry *sw_ring = txq->sw_ring;
volatile struct ice_tx_desc *txd = txq->ice_tx_ring;
@@ -2958,7 +2958,7 @@ ice_calc_pkt_desc(struct rte_mbuf *tx_pkt)
uint16_t
ice_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
{
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
volatile struct ice_tx_desc *ice_tx_ring;
volatile struct ice_tx_desc *txd;
struct ieth_tx_entry *sw_ring;
@@ -3182,7 +3182,7 @@ ice_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
}
static __rte_always_inline int
-ice_tx_free_bufs(struct ice_tx_queue *txq)
+ice_tx_free_bufs(struct ieth_tx_queue *txq)
{
struct ieth_tx_entry *txep;
uint16_t i;
@@ -3218,7 +3218,7 @@ ice_tx_free_bufs(struct ice_tx_queue *txq)
}
static int
-ice_tx_done_cleanup_full(struct ice_tx_queue *txq,
+ice_tx_done_cleanup_full(struct ieth_tx_queue *txq,
uint32_t free_cnt)
{
struct ieth_tx_entry *swr_ring = txq->sw_ring;
@@ -3278,7 +3278,7 @@ ice_tx_done_cleanup_full(struct ice_tx_queue *txq,
#ifdef RTE_ARCH_X86
static int
-ice_tx_done_cleanup_vec(struct ice_tx_queue *txq __rte_unused,
+ice_tx_done_cleanup_vec(struct ieth_tx_queue *txq __rte_unused,
uint32_t free_cnt __rte_unused)
{
return -ENOTSUP;
@@ -3286,7 +3286,7 @@ ice_tx_done_cleanup_vec(struct ice_tx_queue *txq __rte_unused,
#endif
static int
-ice_tx_done_cleanup_simple(struct ice_tx_queue *txq,
+ice_tx_done_cleanup_simple(struct ieth_tx_queue *txq,
uint32_t free_cnt)
{
int i, n, cnt;
@@ -3312,7 +3312,7 @@ ice_tx_done_cleanup_simple(struct ice_tx_queue *txq,
int
ice_tx_done_cleanup(void *txq, uint32_t free_cnt)
{
- struct ice_tx_queue *q = (struct ice_tx_queue *)txq;
+ struct ieth_tx_queue *q = (struct ieth_tx_queue *)txq;
struct rte_eth_dev *dev = &rte_eth_devices[q->port_id];
struct ice_adapter *ad =
ICE_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
@@ -3357,7 +3357,7 @@ tx1(volatile struct ice_tx_desc *txdp, struct rte_mbuf **pkts)
}
static inline void
-ice_tx_fill_hw_ring(struct ice_tx_queue *txq, struct rte_mbuf **pkts,
+ice_tx_fill_hw_ring(struct ieth_tx_queue *txq, struct rte_mbuf **pkts,
uint16_t nb_pkts)
{
volatile struct ice_tx_desc *txdp = &txq->ice_tx_ring[txq->tx_tail];
@@ -3389,7 +3389,7 @@ ice_tx_fill_hw_ring(struct ice_tx_queue *txq, struct rte_mbuf **pkts,
}
static inline uint16_t
-tx_xmit_pkts(struct ice_tx_queue *txq,
+tx_xmit_pkts(struct ieth_tx_queue *txq,
struct rte_mbuf **tx_pkts,
uint16_t nb_pkts)
{
@@ -3452,14 +3452,14 @@ ice_xmit_pkts_simple(void *tx_queue,
uint16_t nb_tx = 0;
if (likely(nb_pkts <= ICE_TX_MAX_BURST))
- return tx_xmit_pkts((struct ice_tx_queue *)tx_queue,
+ return tx_xmit_pkts((struct ieth_tx_queue *)tx_queue,
tx_pkts, nb_pkts);
while (nb_pkts) {
uint16_t ret, num = (uint16_t)RTE_MIN(nb_pkts,
ICE_TX_MAX_BURST);
- ret = tx_xmit_pkts((struct ice_tx_queue *)tx_queue,
+ ret = tx_xmit_pkts((struct ieth_tx_queue *)tx_queue,
&tx_pkts[nb_tx], num);
nb_tx = (uint16_t)(nb_tx + ret);
nb_pkts = (uint16_t)(nb_pkts - ret);
@@ -3667,7 +3667,7 @@ ice_rx_burst_mode_get(struct rte_eth_dev *dev, __rte_unused uint16_t queue_id,
}
void __rte_cold
-ice_set_tx_function_flag(struct rte_eth_dev *dev, struct ice_tx_queue *txq)
+ice_set_tx_function_flag(struct rte_eth_dev *dev, struct ieth_tx_queue *txq)
{
struct ice_adapter *ad =
ICE_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
@@ -3716,7 +3716,7 @@ ice_check_empty_mbuf(struct rte_mbuf *tx_pkt)
static uint16_t
ice_xmit_pkts_check(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
{
- struct ice_tx_queue *txq = tx_queue;
+ struct ieth_tx_queue *txq = tx_queue;
uint16_t idx;
struct rte_mbuf *mb;
bool pkt_error = false;
@@ -3778,7 +3778,7 @@ ice_xmit_pkts_check(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
pkt_error = true;
break;
}
- if (mb->nb_segs > ((struct ice_tx_queue *)tx_queue)->nb_tx_desc) {
+ if (mb->nb_segs > ((struct ieth_tx_queue *)tx_queue)->nb_tx_desc) {
PMD_TX_LOG(ERR, "INVALID mbuf: nb_segs out of ring length");
pkt_error = true;
break;
@@ -3839,7 +3839,7 @@ ice_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
(m->tso_segsz < ICE_MIN_TSO_MSS ||
m->tso_segsz > ICE_MAX_TSO_MSS ||
m->nb_segs >
- ((struct ice_tx_queue *)tx_queue)->nb_tx_desc ||
+ ((struct ieth_tx_queue *)tx_queue)->nb_tx_desc ||
m->pkt_len > ICE_MAX_TSO_FRAME_SIZE)) {
/**
* MSS outside the range are considered malicious
@@ -3881,7 +3881,7 @@ ice_set_tx_function(struct rte_eth_dev *dev)
ICE_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
int mbuf_check = ad->devargs.mbuf_check;
#ifdef RTE_ARCH_X86
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
int i;
int tx_check_ret = -1;
@@ -4693,7 +4693,7 @@ ice_check_fdir_programming_status(struct ice_rx_queue *rxq)
int
ice_fdir_programming(struct ice_pf *pf, struct ice_fltr_desc *fdir_desc)
{
- struct ice_tx_queue *txq = pf->fdir.txq;
+ struct ieth_tx_queue *txq = pf->fdir.txq;
struct ice_rx_queue *rxq = pf->fdir.rxq;
volatile struct ice_fltr_desc *fdirdp;
volatile struct ice_tx_desc *txdp;
diff --git a/drivers/net/ice/ice_rxtx.h b/drivers/net/ice/ice_rxtx.h
index 91f8ed2036..9c8022d1be 100644
--- a/drivers/net/ice/ice_rxtx.h
+++ b/drivers/net/ice/ice_rxtx.h
@@ -79,7 +79,6 @@ extern int ice_timestamp_dynfield_offset;
#define ICE_TX_MTU_SEG_MAX 8
typedef void (*ice_rx_release_mbufs_t)(struct ice_rx_queue *rxq);
-typedef void (*ice_tx_release_mbufs_t)(struct ice_tx_queue *txq);
typedef void (*ice_rxd_to_pkt_fields_t)(struct ice_rx_queue *rxq,
struct rte_mbuf *mb,
volatile union ice_rx_flex_desc *rxdp);
@@ -145,42 +144,6 @@ struct ice_rx_queue {
bool ts_enable; /* if rxq timestamp is enabled */
};
-struct ice_tx_queue {
- uint16_t nb_tx_desc; /* number of TX descriptors */
- rte_iova_t tx_ring_dma; /* TX ring DMA address */
- volatile struct ice_tx_desc *ice_tx_ring; /* TX ring virtual address */
- struct ieth_tx_entry *sw_ring; /* virtual address of SW ring */
- uint16_t tx_tail; /* current value of tail register */
- volatile uint8_t *qtx_tail; /* register address of tail */
- uint16_t nb_tx_used; /* number of TX desc used since RS bit set */
- /* index to last TX descriptor to have been cleaned */
- uint16_t last_desc_cleaned;
- /* Total number of TX descriptors ready to be allocated. */
- uint16_t nb_tx_free;
- /* Start freeing TX buffers if there are less free descriptors than
- * this value.
- */
- uint16_t tx_free_thresh;
- /* Number of TX descriptors to use before RS bit is set. */
- uint16_t tx_rs_thresh;
- uint8_t pthresh; /**< Prefetch threshold register. */
- uint8_t hthresh; /**< Host threshold register. */
- uint8_t wthresh; /**< Write-back threshold reg. */
- uint16_t port_id; /* Device port identifier. */
- uint16_t queue_id; /* TX queue index. */
- uint32_t q_teid; /* TX schedule node id. */
- uint16_t reg_idx;
- uint64_t offloads;
- struct ice_vsi *ice_vsi; /* the VSI this queue belongs to */
- uint16_t tx_next_dd;
- uint16_t tx_next_rs;
- uint64_t mbuf_errors;
- bool tx_deferred_start; /* don't start this queue in dev start */
- bool q_set; /* indicate if tx queue has been configured */
- ice_tx_release_mbufs_t tx_rel_mbufs;
- const struct rte_memzone *mz;
-};
-
/* Offload features */
union ice_tx_offload {
uint64_t data;
@@ -268,7 +231,7 @@ void ice_set_rx_function(struct rte_eth_dev *dev);
uint16_t ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts);
void ice_set_tx_function_flag(struct rte_eth_dev *dev,
- struct ice_tx_queue *txq);
+ struct ieth_tx_queue *txq);
void ice_set_tx_function(struct rte_eth_dev *dev);
uint32_t ice_rx_queue_count(void *rx_queue);
void ice_rxq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
@@ -290,7 +253,7 @@ void ice_select_rxd_to_pkt_fields_handler(struct ice_rx_queue *rxq,
int ice_rx_vec_dev_check(struct rte_eth_dev *dev);
int ice_tx_vec_dev_check(struct rte_eth_dev *dev);
int ice_rxq_vec_setup(struct ice_rx_queue *rxq);
-int ice_txq_vec_setup(struct ice_tx_queue *txq);
+int ice_txq_vec_setup(struct ieth_tx_queue *txq);
uint16_t ice_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
uint16_t nb_pkts);
uint16_t ice_recv_scattered_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
diff --git a/drivers/net/ice/ice_rxtx_vec_avx2.c b/drivers/net/ice/ice_rxtx_vec_avx2.c
index d4c76686f7..370871c320 100644
--- a/drivers/net/ice/ice_rxtx_vec_avx2.c
+++ b/drivers/net/ice/ice_rxtx_vec_avx2.c
@@ -856,7 +856,7 @@ static __rte_always_inline uint16_t
ice_xmit_fixed_burst_vec_avx2(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts, bool offload)
{
- struct ice_tx_queue *txq = (struct ice_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
volatile struct ice_tx_desc *txdp;
struct ieth_tx_entry *txep;
uint16_t n, nb_commit, tx_id;
@@ -924,7 +924,7 @@ ice_xmit_pkts_vec_avx2_common(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts, bool offload)
{
uint16_t nb_tx = 0;
- struct ice_tx_queue *txq = (struct ice_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
while (nb_pkts) {
uint16_t ret, num;
diff --git a/drivers/net/ice/ice_rxtx_vec_avx512.c b/drivers/net/ice/ice_rxtx_vec_avx512.c
index 1126a30bf8..4d95561f8c 100644
--- a/drivers/net/ice/ice_rxtx_vec_avx512.c
+++ b/drivers/net/ice/ice_rxtx_vec_avx512.c
@@ -860,7 +860,7 @@ ice_recv_scattered_pkts_vec_avx512_offload(void *rx_queue,
}
static __rte_always_inline int
-ice_tx_free_bufs_avx512(struct ice_tx_queue *txq)
+ice_tx_free_bufs_avx512(struct ieth_tx_queue *txq)
{
struct ieth_vec_tx_entry *txep;
uint32_t n;
@@ -1053,7 +1053,7 @@ static __rte_always_inline uint16_t
ice_xmit_fixed_burst_vec_avx512(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts, bool do_offload)
{
- struct ice_tx_queue *txq = (struct ice_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
volatile struct ice_tx_desc *txdp;
struct ieth_vec_tx_entry *txep;
uint16_t n, nb_commit, tx_id;
@@ -1122,7 +1122,7 @@ ice_xmit_pkts_vec_avx512(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts)
{
uint16_t nb_tx = 0;
- struct ice_tx_queue *txq = (struct ice_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
while (nb_pkts) {
uint16_t ret, num;
@@ -1144,7 +1144,7 @@ ice_xmit_pkts_vec_avx512_offload(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts)
{
uint16_t nb_tx = 0;
- struct ice_tx_queue *txq = (struct ice_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
while (nb_pkts) {
uint16_t ret, num;
diff --git a/drivers/net/ice/ice_rxtx_vec_common.h b/drivers/net/ice/ice_rxtx_vec_common.h
index b2e3c0f6b7..b8e69f3c12 100644
--- a/drivers/net/ice/ice_rxtx_vec_common.h
+++ b/drivers/net/ice/ice_rxtx_vec_common.h
@@ -13,7 +13,7 @@
#endif
static __rte_always_inline int
-ice_tx_free_bufs_vec(struct ice_tx_queue *txq)
+ice_tx_free_bufs_vec(struct ieth_tx_queue *txq)
{
struct ieth_tx_entry *txep;
uint32_t n;
@@ -105,7 +105,7 @@ _ice_rx_queue_release_mbufs_vec(struct ice_rx_queue *rxq)
}
static inline void
-_ice_tx_queue_release_mbufs_vec(struct ice_tx_queue *txq)
+_ice_tx_queue_release_mbufs_vec(struct ieth_tx_queue *txq)
{
uint16_t i;
@@ -231,7 +231,7 @@ ice_rx_vec_queue_default(struct ice_rx_queue *rxq)
}
static inline int
-ice_tx_vec_queue_default(struct ice_tx_queue *txq)
+ice_tx_vec_queue_default(struct ieth_tx_queue *txq)
{
if (!txq)
return -1;
@@ -273,7 +273,7 @@ static inline int
ice_tx_vec_dev_check_default(struct rte_eth_dev *dev)
{
int i;
- struct ice_tx_queue *txq;
+ struct ieth_tx_queue *txq;
int ret = 0;
int result = 0;
diff --git a/drivers/net/ice/ice_rxtx_vec_sse.c b/drivers/net/ice/ice_rxtx_vec_sse.c
index 5db66f3c6a..b951d85cfd 100644
--- a/drivers/net/ice/ice_rxtx_vec_sse.c
+++ b/drivers/net/ice/ice_rxtx_vec_sse.c
@@ -697,7 +697,7 @@ static uint16_t
ice_xmit_fixed_burst_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts)
{
- struct ice_tx_queue *txq = (struct ice_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
volatile struct ice_tx_desc *txdp;
struct ieth_tx_entry *txep;
uint16_t n, nb_commit, tx_id;
@@ -766,7 +766,7 @@ ice_xmit_pkts_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts)
{
uint16_t nb_tx = 0;
- struct ice_tx_queue *txq = (struct ice_tx_queue *)tx_queue;
+ struct ieth_tx_queue *txq = (struct ieth_tx_queue *)tx_queue;
while (nb_pkts) {
uint16_t ret, num;
@@ -793,7 +793,7 @@ ice_rxq_vec_setup(struct ice_rx_queue *rxq)
}
int __rte_cold
-ice_txq_vec_setup(struct ice_tx_queue __rte_unused *txq)
+ice_txq_vec_setup(struct ieth_tx_queue __rte_unused *txq)
{
if (!txq)
return -1;
--
2.43.0
next prev parent reply other threads:[~2024-11-22 12:55 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-22 12:53 [RFC PATCH 00/21] Reduce code duplication across Intel NIC drivers Bruce Richardson
2024-11-22 12:53 ` [RFC PATCH 01/21] common/intel_eth: add pkt reassembly fn for intel drivers Bruce Richardson
2024-11-22 12:53 ` [RFC PATCH 02/21] common/intel_eth: provide common Tx entry structures Bruce Richardson
2024-11-22 12:53 ` [RFC PATCH 03/21] common/intel_eth: add Tx mbuf ring replenish fn Bruce Richardson
2024-11-22 12:53 ` [RFC PATCH 04/21] drivers/net: align Tx queue struct field names Bruce Richardson
2024-11-22 12:53 ` [RFC PATCH 05/21] drivers/net: add prefix for driver-specific structs Bruce Richardson
2024-11-22 12:53 ` Bruce Richardson [this message]
2024-11-22 12:54 ` [RFC PATCH 07/21] net/iavf: use common Tx queue structure Bruce Richardson
2024-11-22 12:54 ` [RFC PATCH 08/21] net/ixgbe: convert Tx queue context cache field to ptr Bruce Richardson
2024-11-22 12:54 ` [RFC PATCH 09/21] net/ixgbe: use common Tx queue structure Bruce Richardson
2024-11-22 12:54 ` [RFC PATCH 10/21] common/intel_eth: pack " Bruce Richardson
2024-11-22 12:54 ` [RFC PATCH 11/21] common/intel_eth: add post-Tx buffer free function Bruce Richardson
2024-11-22 12:54 ` [RFC PATCH 12/21] common/intel_eth: add Tx buffer free fn for AVX-512 Bruce Richardson
2024-11-22 12:54 ` [RFC PATCH 13/21] net/iavf: use common Tx " Bruce Richardson
2024-11-22 12:54 ` [RFC PATCH 14/21] net/ice: move Tx queue mbuf cleanup fn to common Bruce Richardson
2024-11-22 12:54 ` [RFC PATCH 15/21] net/i40e: use common Tx queue mbuf cleanup fn Bruce Richardson
2024-11-22 12:54 ` [RFC PATCH 16/21] net/ixgbe: " Bruce Richardson
2024-11-22 12:54 ` [RFC PATCH 17/21] net/iavf: " Bruce Richardson
2024-11-22 12:54 ` [RFC PATCH 18/21] net/ice: use vector SW ring for all vector paths Bruce Richardson
2024-11-22 12:54 ` [RFC PATCH 19/21] net/i40e: " Bruce Richardson
2024-11-22 12:54 ` [RFC PATCH 20/21] net/iavf: " Bruce Richardson
2024-11-22 12:54 ` [RFC PATCH 21/21] net/ixgbe: use common Tx backlog entry fn Bruce Richardson
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=20241122125418.2857301-7-bruce.richardson@intel.com \
--to=bruce.richardson@intel.com \
--cc=anatoly.burakov@intel.com \
--cc=dev@dpdk.org \
--cc=drc@linux.ibm.com \
--cc=ian.stokes@intel.com \
--cc=konstantin.v.ananyev@yandex.ru \
--cc=wathsala.vithanage@arm.com \
/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;
as well as URLs for NNTP newsgroup(s).