From bd881e8d2a075b2dd69362176e2f8c76c88187ec Mon Sep 17 00:00:00 2001 From: Lance Richardson Date: Tue, 22 Sep 2020 13:30:34 -0400 Subject: [PATCH] net/bnxt: fix drop enable in get Rx queue info 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") Cc: stable@dpdk.org Signed-off-by: Lance Richardson Reviewed-by: Somnath Kotur Reviewed-by: Ajit Khaparde --- 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 5fc8d1ccb5..d0d11a6d0e 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -929,8 +929,7 @@ static int 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) { @@ -2644,7 +2643,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; } diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c index 793a47d112..8cc77f7f9e 100644 --- a/drivers/net/bnxt/bnxt_rxq.c +++ b/drivers/net/bnxt/bnxt_rxq.c @@ -330,6 +330,11 @@ int bnxt_rx_queue_setup_op(struct rte_eth_dev *eth_dev, rxq->rx_free_thresh = RTE_MIN(rte_align32pow2(nb_desc) / 4, RTE_BNXT_MAX_RX_BURST); + 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 fae92ea45c..f70cb04373 100644 --- a/drivers/net/bnxt/bnxt_rxq.h +++ b/drivers/net/bnxt/bnxt_rxq.h @@ -9,6 +9,9 @@ /* Maximum receive burst supported in vector mode. */ #define RTE_BNXT_MAX_RX_BURST 64U +/* 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; @@ -34,6 +37,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.20.1