path: root/drivers/net/mlx5/mlx5_rxtx.h
diff options
authorMatan Azrad <>2019-05-30 10:20:31 +0000
committerFerruh Yigit <>2019-06-14 00:01:06 +0900
commit1c191691a635c6ecf7959a1221584e353cdad228 (patch)
tree907bf4597c83f4c3bedc0cf6e610b5b670dc091e /drivers/net/mlx5/mlx5_rxtx.h
parentbd282035b37e6477805dd26d891ffedaeb9870a5 (diff)
net/mlx5: remove Rx queues indexes correlation
There is a full correlation between the CQE indexes to the WQE indexes in the vectorized Rx queues management. When the RQ is inserted to the reset state, the correlation may break because the HW starts the RQ polling from index 0 while the CQ polling continues regularly. As an arrangement to CQE errors handling, when the RQ can be reset, the correlation dependence should be removed from all the Rx queues index managements. Remove the aforementioned dependence from the vectorized Rx burst functions. Cc: Signed-off-by: Matan Azrad <> Acked-by: Shahaf Shuler <>
Diffstat (limited to 'drivers/net/mlx5/mlx5_rxtx.h')
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h
index a200392..e5f4d4a 100644
--- a/drivers/net/mlx5/mlx5_rxtx.h
+++ b/drivers/net/mlx5/mlx5_rxtx.h
@@ -101,11 +101,15 @@ struct mlx5_rxq_data {
uint32_t rq_pi;
uint32_t cq_ci;
uint16_t rq_repl_thresh; /* Threshold for buffer replenishment. */
+ union {
+ struct rxq_zip zip; /* Compressed context. */
+ uint16_t decompressed;
+ /* Number of ready mbufs decompressed from the CQ. */
+ };
struct mlx5_mr_ctrl mr_ctrl; /* MR control descriptor. */
uint16_t mprq_max_memcpy_len; /* Maximum size of packet to memcpy. */
volatile void *wqes;
volatile struct mlx5_cqe(*cqes)[];
- struct rxq_zip zip; /* Compressed context. */
union {
struct rte_mbuf *(*elts)[];