[dpdk-dev] [PATCH 1/2] net/bnxt: fix drop en in rxq get information

Ajit Khaparde ajit.khaparde at broadcom.com
Thu Sep 24 02:54:45 CEST 2020


On Tue, Sep 22, 2020 at 7:04 AM Lance Richardson
<lance.richardson at broadcom.com> wrote:
>
> 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 at dpdk.org
>
> Signed-off-by: Lance Richardson <lance.richardson at broadcom.com>
> Reviewed-by: Somnath Kotur <somnath.kotur at broadcom.com>
> Reviewed-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
Patch applied to  dpdk-next-net-brcm.

> ---
>  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 05e9a6abbf..61684e0291 100644
> --- a/drivers/net/bnxt/bnxt_ethdev.c
> +++ b/drivers/net/bnxt/bnxt_ethdev.c
> @@ -887,8 +887,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) {
> @@ -2600,7 +2599,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.25.1
>


More information about the dev mailing list