[dpdk-stable] [PATCH 18.11 4/5] net/bnxt: fix drop enable in get Rx queue info
Kalesh A P
kalesh-anakkur.purayil at broadcom.com
Tue Dec 1 04:39:29 CET 2020
From: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
[ upstream commit bd881e8d2a075b2dd69362176e2f8c76c88187ec ]
Return correct value for rx_drop_en. Add per-queue field to
track rx_drop_en configuration.
Fixes: 2fc201884be8 ("net/bnxt: support rxq/txq get information")
Signed-off-by: Lance Richardson <lance.richardson at broadcom.com>
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur at broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
---
drivers/net/bnxt/bnxt_ethdev.c | 5 ++---
drivers/net/bnxt/bnxt_rxq.c | 5 +++++
drivers/net/bnxt/bnxt_rxq.h | 4 ++++
3 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index a8123d8..7fd2e3b 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -445,8 +445,7 @@ static void bnxt_dev_info_get_op(struct rte_eth_dev *eth_dev,
.wthresh = 0,
},
.rx_free_thresh = 32,
- /* If no descriptors available, pkts are dropped by default */
- .rx_drop_en = 1,
+ .rx_drop_en = BNXT_DEFAULT_RX_DROP_EN,
};
dev_info->default_txconf = (struct rte_eth_txconf) {
@@ -1569,7 +1568,7 @@ bnxt_rxq_info_get_op(struct rte_eth_dev *dev, uint16_t queue_id,
qinfo->nb_desc = rxq->nb_rx_desc;
qinfo->conf.rx_free_thresh = rxq->rx_free_thresh;
- qinfo->conf.rx_drop_en = 0;
+ qinfo->conf.rx_drop_en = rxq->drop_en;
qinfo->conf.rx_deferred_start = rxq->rx_deferred_start;
qinfo->conf.offloads = dev->data->dev_conf.rxmode.offloads;
}
diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c
index d1664db..7d896dd 100644
--- a/drivers/net/bnxt/bnxt_rxq.c
+++ b/drivers/net/bnxt/bnxt_rxq.c
@@ -323,6 +323,11 @@ int bnxt_rx_queue_setup_op(struct rte_eth_dev *eth_dev,
rxq->nb_rx_desc = nb_desc;
rxq->rx_free_thresh = rx_conf->rx_free_thresh;
+ if (rx_conf->rx_drop_en != BNXT_DEFAULT_RX_DROP_EN)
+ PMD_DRV_LOG(NOTICE,
+ "Per-queue config of drop-en is not supported.\n");
+ rxq->drop_en = BNXT_DEFAULT_RX_DROP_EN;
+
PMD_DRV_LOG(DEBUG, "RX Buf MTU %d\n", eth_dev->data->mtu);
rc = bnxt_init_rx_ring_struct(rxq, socket_id);
diff --git a/drivers/net/bnxt/bnxt_rxq.h b/drivers/net/bnxt/bnxt_rxq.h
index 00570b8..0eb350e 100644
--- a/drivers/net/bnxt/bnxt_rxq.h
+++ b/drivers/net/bnxt/bnxt_rxq.h
@@ -6,6 +6,9 @@
#ifndef _BNXT_RQX_H_
#define _BNXT_RQX_H_
+/* Drop by default when receive desc is not available. */
+#define BNXT_DEFAULT_RX_DROP_EN 1
+
struct bnxt;
struct bnxt_rx_ring_info;
struct bnxt_cp_ring_info;
@@ -27,6 +30,7 @@ struct bnxt_rx_queue {
uint8_t crc_len; /* 0 if CRC stripped, 4 otherwise */
uint8_t rx_deferred_start; /* not in global dev start */
uint8_t rx_started; /* RX queue is started */
+ uint8_t drop_en; /* Drop when rx desc not available. */
struct bnxt *bp;
int index;
--
2.10.1
More information about the stable
mailing list