[v2,4/7] drivers/net: update Rx RSS hash offload capabilities

Message ID 20190821204755.1990-5-pbhagavatula@marvell.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers
Series ethdev: add new Rx offload flags |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Pavan Nikhilesh Bhagavatula Aug. 21, 2019, 8:47 p.m. UTC
  From: Pavan Nikhilesh <pbhagavatula@marvell.com>

Add DEV_RX_OFFLOAD_RSS_HASH flag for all PMDs that support RSS hash
delivery.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
 drivers/net/bnxt/bnxt_ethdev.c       |  3 ++-
 drivers/net/cxgbe/cxgbe.h            |  3 ++-
 drivers/net/dpaa/dpaa_ethdev.c       |  3 ++-
 drivers/net/dpaa2/dpaa2_ethdev.c     |  3 ++-
 drivers/net/e1000/igb_rxtx.c         |  3 ++-
 drivers/net/enic/enic_res.c          |  3 ++-
 drivers/net/fm10k/fm10k_ethdev.c     |  3 ++-
 drivers/net/hinic/hinic_pmd_ethdev.c |  3 ++-
 drivers/net/i40e/i40e_ethdev.c       |  3 ++-
 drivers/net/iavf/iavf_ethdev.c       |  3 ++-
 drivers/net/ice/ice_ethdev.c         |  3 ++-
 drivers/net/ixgbe/ixgbe_rxtx.c       |  3 ++-
 drivers/net/liquidio/lio_ethdev.c    |  3 ++-
 drivers/net/mlx4/mlx4_rxq.c          |  3 ++-
 drivers/net/mlx5/mlx5_rxq.c          |  3 ++-
 drivers/net/netvsc/hn_rndis.c        |  3 ++-
 drivers/net/nfp/nfp_net.c            |  3 ++-
 drivers/net/octeontx2/otx2_ethdev.c  |  3 ++-
 drivers/net/octeontx2/otx2_ethdev.h  | 15 ++++++++-------
 drivers/net/qede/qede_ethdev.c       |  3 ++-
 drivers/net/sfc/sfc_ef10_essb_rx.c   |  2 +-
 drivers/net/sfc/sfc_ef10_rx.c        |  3 ++-
 drivers/net/sfc/sfc_rx.c             |  3 ++-
 drivers/net/thunderx/nicvf_ethdev.h  |  3 ++-
 drivers/net/vmxnet3/vmxnet3_ethdev.c |  3 ++-
 25 files changed, 55 insertions(+), 31 deletions(-)
  

Comments

Jerin Jacob Oct. 1, 2019, 2:43 p.m. UTC | #1
On Thu, Aug 22, 2019 at 2:18 AM <pbhagavatula@marvell.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> Add DEV_RX_OFFLOAD_RSS_HASH flag for all PMDs that support RSS hash
> delivery.
>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>

For net/octeontx2:

Acked-by: Jerin Jacob <jerinj@marvell.com>
  
Ajit Khaparde Oct. 1, 2019, 3:40 p.m. UTC | #2
On Wed, Aug 21, 2019 at 1:48 PM <pbhagavatula@marvell.com> wrote:

> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> Add DEV_RX_OFFLOAD_RSS_HASH flag for all PMDs that support RSS hash
> delivery.
>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
For net/bnxt:

Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>

> ---
>  drivers/net/bnxt/bnxt_ethdev.c       |  3 ++-
>  drivers/net/cxgbe/cxgbe.h            |  3 ++-
>  drivers/net/dpaa/dpaa_ethdev.c       |  3 ++-
>  drivers/net/dpaa2/dpaa2_ethdev.c     |  3 ++-
>  drivers/net/e1000/igb_rxtx.c         |  3 ++-
>  drivers/net/enic/enic_res.c          |  3 ++-
>  drivers/net/fm10k/fm10k_ethdev.c     |  3 ++-
>  drivers/net/hinic/hinic_pmd_ethdev.c |  3 ++-
>  drivers/net/i40e/i40e_ethdev.c       |  3 ++-
>  drivers/net/iavf/iavf_ethdev.c       |  3 ++-
>  drivers/net/ice/ice_ethdev.c         |  3 ++-
>  drivers/net/ixgbe/ixgbe_rxtx.c       |  3 ++-
>  drivers/net/liquidio/lio_ethdev.c    |  3 ++-
>  drivers/net/mlx4/mlx4_rxq.c          |  3 ++-
>  drivers/net/mlx5/mlx5_rxq.c          |  3 ++-
>  drivers/net/netvsc/hn_rndis.c        |  3 ++-
>  drivers/net/nfp/nfp_net.c            |  3 ++-
>  drivers/net/octeontx2/otx2_ethdev.c  |  3 ++-
>  drivers/net/octeontx2/otx2_ethdev.h  | 15 ++++++++-------
>  drivers/net/qede/qede_ethdev.c       |  3 ++-
>  drivers/net/sfc/sfc_ef10_essb_rx.c   |  2 +-
>  drivers/net/sfc/sfc_ef10_rx.c        |  3 ++-
>  drivers/net/sfc/sfc_rx.c             |  3 ++-
>  drivers/net/thunderx/nicvf_ethdev.h  |  3 ++-
>  drivers/net/vmxnet3/vmxnet3_ethdev.c |  3 ++-
>  25 files changed, 55 insertions(+), 31 deletions(-)
>
> diff --git a/drivers/net/bnxt/bnxt_ethdev.c
> b/drivers/net/bnxt/bnxt_ethdev.c
> index 6685ee7d9..6c106baf7 100644
> --- a/drivers/net/bnxt/bnxt_ethdev.c
> +++ b/drivers/net/bnxt/bnxt_ethdev.c
> @@ -160,7 +160,8 @@ static const struct rte_pci_id bnxt_pci_id_map[] = {
>                                      DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | \
>                                      DEV_RX_OFFLOAD_JUMBO_FRAME | \
>                                      DEV_RX_OFFLOAD_KEEP_CRC | \
> -                                    DEV_RX_OFFLOAD_TCP_LRO)
> +                                    DEV_RX_OFFLOAD_TCP_LRO | \
> +                                    DEV_RX_OFFLOAD_RSS_HASH)
>
>  static int bnxt_vlan_offload_set_op(struct rte_eth_dev *dev, int mask);
>  static void bnxt_print_link_info(struct rte_eth_dev *eth_dev);
> diff --git a/drivers/net/cxgbe/cxgbe.h b/drivers/net/cxgbe/cxgbe.h
> index 3f97fa58b..22e61a55c 100644
> --- a/drivers/net/cxgbe/cxgbe.h
> +++ b/drivers/net/cxgbe/cxgbe.h
> @@ -47,7 +47,8 @@
>                            DEV_RX_OFFLOAD_UDP_CKSUM | \
>                            DEV_RX_OFFLOAD_TCP_CKSUM | \
>                            DEV_RX_OFFLOAD_JUMBO_FRAME | \
> -                          DEV_RX_OFFLOAD_SCATTER)
> +                          DEV_RX_OFFLOAD_SCATTER | \
> +                          DEV_RX_OFFLOAD_RSS_HASH)
>
>
>  #define CXGBE_DEVARG_KEEP_OVLAN "keep_ovlan"
> diff --git a/drivers/net/dpaa/dpaa_ethdev.c
> b/drivers/net/dpaa/dpaa_ethdev.c
> index 7154fb9b4..18c7bd0d5 100644
> --- a/drivers/net/dpaa/dpaa_ethdev.c
> +++ b/drivers/net/dpaa/dpaa_ethdev.c
> @@ -49,7 +49,8 @@
>  /* Supported Rx offloads */
>  static uint64_t dev_rx_offloads_sup =
>                 DEV_RX_OFFLOAD_JUMBO_FRAME |
> -               DEV_RX_OFFLOAD_SCATTER;
> +               DEV_RX_OFFLOAD_SCATTER |
> +               DEV_RX_OFFLOAD_RSS_HASH;
>
>  /* Rx offloads which cannot be disabled */
>  static uint64_t dev_rx_offloads_nodis =
> diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c
> b/drivers/net/dpaa2/dpaa2_ethdev.c
> index dd6a78f9f..55a1c4455 100644
> --- a/drivers/net/dpaa2/dpaa2_ethdev.c
> +++ b/drivers/net/dpaa2/dpaa2_ethdev.c
> @@ -38,7 +38,8 @@ static uint64_t dev_rx_offloads_sup =
>                 DEV_RX_OFFLOAD_TCP_CKSUM |
>                 DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
>                 DEV_RX_OFFLOAD_VLAN_FILTER |
> -               DEV_RX_OFFLOAD_JUMBO_FRAME;
> +               DEV_RX_OFFLOAD_JUMBO_FRAME |
> +               DEV_RX_OFFLOAD_RSS_HASH;
>
>  /* Rx offloads which cannot be disabled */
>  static uint64_t dev_rx_offloads_nodis =
> diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c
> index c5606de5d..684fa4ad8 100644
> --- a/drivers/net/e1000/igb_rxtx.c
> +++ b/drivers/net/e1000/igb_rxtx.c
> @@ -1646,7 +1646,8 @@ igb_get_rx_port_offloads_capa(struct rte_eth_dev
> *dev)
>                           DEV_RX_OFFLOAD_TCP_CKSUM   |
>                           DEV_RX_OFFLOAD_JUMBO_FRAME |
>                           DEV_RX_OFFLOAD_KEEP_CRC    |
> -                         DEV_RX_OFFLOAD_SCATTER;
> +                         DEV_RX_OFFLOAD_SCATTER     |
> +                         DEV_RX_OFFLOAD_RSS_HASH;
>
>         return rx_offload_capa;
>  }
> diff --git a/drivers/net/enic/enic_res.c b/drivers/net/enic/enic_res.c
> index 9405e1933..607a085f8 100644
> --- a/drivers/net/enic/enic_res.c
> +++ b/drivers/net/enic/enic_res.c
> @@ -198,7 +198,8 @@ int enic_get_vnic_config(struct enic *enic)
>                 DEV_RX_OFFLOAD_VLAN_STRIP |
>                 DEV_RX_OFFLOAD_IPV4_CKSUM |
>                 DEV_RX_OFFLOAD_UDP_CKSUM |
> -               DEV_RX_OFFLOAD_TCP_CKSUM;
> +               DEV_RX_OFFLOAD_TCP_CKSUM |
> +               DEV_RX_OFFLOAD_RSS_HASH;
>         enic->tx_offload_mask =
>                 PKT_TX_IPV6 |
>                 PKT_TX_IPV4 |
> diff --git a/drivers/net/fm10k/fm10k_ethdev.c
> b/drivers/net/fm10k/fm10k_ethdev.c
> index db4d72129..ba9b174cf 100644
> --- a/drivers/net/fm10k/fm10k_ethdev.c
> +++ b/drivers/net/fm10k/fm10k_ethdev.c
> @@ -1797,7 +1797,8 @@ static uint64_t
> fm10k_get_rx_port_offloads_capa(struct rte_eth_dev *dev)
>                            DEV_RX_OFFLOAD_UDP_CKSUM   |
>                            DEV_RX_OFFLOAD_TCP_CKSUM   |
>                            DEV_RX_OFFLOAD_JUMBO_FRAME |
> -                          DEV_RX_OFFLOAD_HEADER_SPLIT);
> +                          DEV_RX_OFFLOAD_HEADER_SPLIT |
> +                          DEV_RX_OFFLOAD_RSS_HASH);
>  }
>
>  static int
> diff --git a/drivers/net/hinic/hinic_pmd_ethdev.c
> b/drivers/net/hinic/hinic_pmd_ethdev.c
> index 044af9053..53bd2b9ae 100644
> --- a/drivers/net/hinic/hinic_pmd_ethdev.c
> +++ b/drivers/net/hinic/hinic_pmd_ethdev.c
> @@ -680,7 +680,8 @@ hinic_dev_infos_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *info)
>         info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP |
>                                 DEV_RX_OFFLOAD_IPV4_CKSUM |
>                                 DEV_RX_OFFLOAD_UDP_CKSUM |
> -                               DEV_RX_OFFLOAD_TCP_CKSUM;
> +                               DEV_RX_OFFLOAD_TCP_CKSUM |
> +                               DEV_RX_OFFLOAD_RSS_HASH;
>
>         info->tx_queue_offload_capa = 0;
>         info->tx_offload_capa = DEV_TX_OFFLOAD_VLAN_INSERT |
> diff --git a/drivers/net/i40e/i40e_ethdev.c
> b/drivers/net/i40e/i40e_ethdev.c
> index 4e40b7ab5..7058e0213 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -3511,7 +3511,8 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
>                 DEV_RX_OFFLOAD_SCATTER |
>                 DEV_RX_OFFLOAD_VLAN_EXTEND |
>                 DEV_RX_OFFLOAD_VLAN_FILTER |
> -               DEV_RX_OFFLOAD_JUMBO_FRAME;
> +               DEV_RX_OFFLOAD_JUMBO_FRAME |
> +               DEV_RX_OFFLOAD_RSS_HASH;
>
>         dev_info->tx_queue_offload_capa = DEV_TX_OFFLOAD_MBUF_FAST_FREE;
>         dev_info->tx_offload_capa =
> diff --git a/drivers/net/iavf/iavf_ethdev.c
> b/drivers/net/iavf/iavf_ethdev.c
> index 8f3907378..aef91a79b 100644
> --- a/drivers/net/iavf/iavf_ethdev.c
> +++ b/drivers/net/iavf/iavf_ethdev.c
> @@ -517,7 +517,8 @@ iavf_dev_info_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
>                 DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
>                 DEV_RX_OFFLOAD_SCATTER |
>                 DEV_RX_OFFLOAD_JUMBO_FRAME |
> -               DEV_RX_OFFLOAD_VLAN_FILTER;
> +               DEV_RX_OFFLOAD_VLAN_FILTER |
> +               DEV_RX_OFFLOAD_RSS_HASH;
>         dev_info->tx_offload_capa =
>                 DEV_TX_OFFLOAD_VLAN_INSERT |
>                 DEV_TX_OFFLOAD_QINQ_INSERT |
> diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
> index 44a14cb8a..fc0f0003f 100644
> --- a/drivers/net/ice/ice_ethdev.c
> +++ b/drivers/net/ice/ice_ethdev.c
> @@ -2133,7 +2133,8 @@ ice_dev_info_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
>                         DEV_RX_OFFLOAD_TCP_CKSUM |
>                         DEV_RX_OFFLOAD_QINQ_STRIP |
>                         DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
> -                       DEV_RX_OFFLOAD_VLAN_EXTEND;
> +                       DEV_RX_OFFLOAD_VLAN_EXTEND |
> +                       DEV_RX_OFFLOAD_RSS_HASH;
>                 dev_info->tx_offload_capa |=
>                         DEV_TX_OFFLOAD_QINQ_INSERT |
>                         DEV_TX_OFFLOAD_IPV4_CKSUM |
> diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> b/drivers/net/ixgbe/ixgbe_rxtx.c
> index edcfa60ce..fa572d184 100644
> --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> @@ -2872,7 +2872,8 @@ ixgbe_get_rx_port_offloads(struct rte_eth_dev *dev)
>                    DEV_RX_OFFLOAD_KEEP_CRC    |
>                    DEV_RX_OFFLOAD_JUMBO_FRAME |
>                    DEV_RX_OFFLOAD_VLAN_FILTER |
> -                  DEV_RX_OFFLOAD_SCATTER;
> +                  DEV_RX_OFFLOAD_SCATTER |
> +                  DEV_RX_OFFLOAD_RSS_HASH;
>
>         if (hw->mac.type == ixgbe_mac_82598EB)
>                 offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
> diff --git a/drivers/net/liquidio/lio_ethdev.c
> b/drivers/net/liquidio/lio_ethdev.c
> index c25dab00c..ff118586e 100644
> --- a/drivers/net/liquidio/lio_ethdev.c
> +++ b/drivers/net/liquidio/lio_ethdev.c
> @@ -406,7 +406,8 @@ lio_dev_info_get(struct rte_eth_dev *eth_dev,
>         devinfo->rx_offload_capa = (DEV_RX_OFFLOAD_IPV4_CKSUM           |
>                                     DEV_RX_OFFLOAD_UDP_CKSUM            |
>                                     DEV_RX_OFFLOAD_TCP_CKSUM            |
> -                                   DEV_RX_OFFLOAD_VLAN_STRIP);
> +                                   DEV_RX_OFFLOAD_VLAN_STRIP           |
> +                                   DEV_RX_OFFLOAD_RSS_HASH);
>         devinfo->tx_offload_capa = (DEV_TX_OFFLOAD_IPV4_CKSUM           |
>                                     DEV_TX_OFFLOAD_UDP_CKSUM            |
>                                     DEV_TX_OFFLOAD_TCP_CKSUM            |
> diff --git a/drivers/net/mlx4/mlx4_rxq.c b/drivers/net/mlx4/mlx4_rxq.c
> index f45c1ff85..4a6fbd922 100644
> --- a/drivers/net/mlx4/mlx4_rxq.c
> +++ b/drivers/net/mlx4/mlx4_rxq.c
> @@ -685,7 +685,8 @@ mlx4_get_rx_queue_offloads(struct mlx4_priv *priv)
>  {
>         uint64_t offloads = DEV_RX_OFFLOAD_SCATTER |
>                             DEV_RX_OFFLOAD_KEEP_CRC |
> -                           DEV_RX_OFFLOAD_JUMBO_FRAME;
> +                           DEV_RX_OFFLOAD_JUMBO_FRAME |
> +                           DEV_RX_OFFLOAD_RSS_HASH;
>
>         if (priv->hw_csum)
>                 offloads |= DEV_RX_OFFLOAD_CHECKSUM;
> diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
> index a1fdeef2a..b5fd57693 100644
> --- a/drivers/net/mlx5/mlx5_rxq.c
> +++ b/drivers/net/mlx5/mlx5_rxq.c
> @@ -368,7 +368,8 @@ mlx5_get_rx_queue_offloads(struct rte_eth_dev *dev)
>         struct mlx5_dev_config *config = &priv->config;
>         uint64_t offloads = (DEV_RX_OFFLOAD_SCATTER |
>                              DEV_RX_OFFLOAD_TIMESTAMP |
> -                            DEV_RX_OFFLOAD_JUMBO_FRAME);
> +                            DEV_RX_OFFLOAD_JUMBO_FRAME |
> +                            DEV_RX_OFFLOAD_RSS_HASH);
>
>         if (config->hw_fcs_strip)
>                 offloads |= DEV_RX_OFFLOAD_KEEP_CRC;
> diff --git a/drivers/net/netvsc/hn_rndis.c b/drivers/net/netvsc/hn_rndis.c
> index a67bc7a79..2b4714042 100644
> --- a/drivers/net/netvsc/hn_rndis.c
> +++ b/drivers/net/netvsc/hn_rndis.c
> @@ -897,7 +897,8 @@ int hn_rndis_get_offload(struct hn_data *hv,
>             == HN_NDIS_LSOV2_CAP_IP6)
>                 dev_info->tx_offload_capa |= DEV_TX_OFFLOAD_TCP_TSO;
>
> -       dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP;
> +       dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP |
> +                                   DEV_RX_OFFLOAD_RSS_HASH;
>
>         if (hwcaps.ndis_csum.ndis_ip4_rxcsum & NDIS_RXCSUM_CAP_IP4)
>                 dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_IPV4_CKSUM;
> diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
> index f1a3ef2f9..230d64c8a 100644
> --- a/drivers/net/nfp/nfp_net.c
> +++ b/drivers/net/nfp/nfp_net.c
> @@ -1226,7 +1226,8 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
>                                              DEV_RX_OFFLOAD_UDP_CKSUM |
>                                              DEV_RX_OFFLOAD_TCP_CKSUM;
>
> -       dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME;
> +       dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME |
> +                                    DEV_RX_OFFLOAD_RSS_HASH;
>
>         if (hw->cap & NFP_NET_CFG_CTRL_TXVLAN)
>                 dev_info->tx_offload_capa = DEV_TX_OFFLOAD_VLAN_INSERT;
> diff --git a/drivers/net/octeontx2/otx2_ethdev.c
> b/drivers/net/octeontx2/otx2_ethdev.c
> index b84128fef..2e88d1844 100644
> --- a/drivers/net/octeontx2/otx2_ethdev.c
> +++ b/drivers/net/octeontx2/otx2_ethdev.c
> @@ -569,7 +569,8 @@ nix_rx_offload_flags(struct rte_eth_dev *eth_dev)
>         struct rte_eth_rxmode *rxmode = &conf->rxmode;
>         uint16_t flags = 0;
>
> -       if (rxmode->mq_mode == ETH_MQ_RX_RSS)
> +       if (rxmode->mq_mode == ETH_MQ_RX_RSS &&
> +                       (dev->rx_offloads & DEV_RX_OFFLOAD_RSS_HASH))
>                 flags |= NIX_RX_OFFLOAD_RSS_F;
>
>         if (dev->rx_offloads & (DEV_RX_OFFLOAD_TCP_CKSUM |
> diff --git a/drivers/net/octeontx2/otx2_ethdev.h
> b/drivers/net/octeontx2/otx2_ethdev.h
> index 7b15d6bc8..0cca6746d 100644
> --- a/drivers/net/octeontx2/otx2_ethdev.h
> +++ b/drivers/net/octeontx2/otx2_ethdev.h
> @@ -122,8 +122,8 @@
>         DEV_TX_OFFLOAD_MT_LOCKFREE      | \
>         DEV_TX_OFFLOAD_VLAN_INSERT      | \
>         DEV_TX_OFFLOAD_QINQ_INSERT      | \
> -       DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM | \
> -       DEV_TX_OFFLOAD_OUTER_UDP_CKSUM  | \
> +       DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM | \
> +       DEV_TX_OFFLOAD_OUTER_UDP_CKSUM  | \
>         DEV_TX_OFFLOAD_TCP_CKSUM        | \
>         DEV_TX_OFFLOAD_UDP_CKSUM        | \
>         DEV_TX_OFFLOAD_SCTP_CKSUM       | \
> @@ -136,11 +136,12 @@
>         DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | \
>         DEV_RX_OFFLOAD_SCATTER          | \
>         DEV_RX_OFFLOAD_JUMBO_FRAME      | \
> -       DEV_RX_OFFLOAD_OUTER_UDP_CKSUM | \
> -       DEV_RX_OFFLOAD_VLAN_STRIP | \
> -       DEV_RX_OFFLOAD_VLAN_FILTER | \
> -       DEV_RX_OFFLOAD_QINQ_STRIP | \
> -       DEV_RX_OFFLOAD_TIMESTAMP)
> +       DEV_RX_OFFLOAD_OUTER_UDP_CKSUM  | \
> +       DEV_RX_OFFLOAD_VLAN_STRIP       | \
> +       DEV_RX_OFFLOAD_VLAN_FILTER      | \
> +       DEV_RX_OFFLOAD_QINQ_STRIP       | \
> +       DEV_RX_OFFLOAD_TIMESTAMP        | \
> +       DEV_RX_OFFLOAD_RSS_HASH)
>
>  #define NIX_DEFAULT_RSS_CTX_GROUP  0
>  #define NIX_DEFAULT_RSS_MCAM_IDX  -1
> diff --git a/drivers/net/qede/qede_ethdev.c
> b/drivers/net/qede/qede_ethdev.c
> index 528b33e8c..da25b26df 100644
> --- a/drivers/net/qede/qede_ethdev.c
> +++ b/drivers/net/qede/qede_ethdev.c
> @@ -1291,7 +1291,8 @@ qede_dev_info_get(struct rte_eth_dev *eth_dev,
>                                      DEV_RX_OFFLOAD_SCATTER     |
>                                      DEV_RX_OFFLOAD_JUMBO_FRAME |
>                                      DEV_RX_OFFLOAD_VLAN_FILTER |
> -                                    DEV_RX_OFFLOAD_VLAN_STRIP);
> +                                    DEV_RX_OFFLOAD_VLAN_STRIP  |
> +                                    DEV_RX_OFFLOAD_RSS_HASH);
>         dev_info->rx_queue_offload_capa = 0;
>
>         /* TX offloads are on a per-packet basis, so it is applicable
> diff --git a/drivers/net/sfc/sfc_ef10_essb_rx.c
> b/drivers/net/sfc/sfc_ef10_essb_rx.c
> index 63da807ea..220ef0e47 100644
> --- a/drivers/net/sfc/sfc_ef10_essb_rx.c
> +++ b/drivers/net/sfc/sfc_ef10_essb_rx.c
> @@ -716,7 +716,7 @@ struct sfc_dp_rx sfc_ef10_essb_rx = {
>         .features               = SFC_DP_RX_FEAT_FLOW_FLAG |
>                                   SFC_DP_RX_FEAT_FLOW_MARK,
>         .dev_offload_capa       = DEV_RX_OFFLOAD_CHECKSUM,
> -       .queue_offload_capa     = 0,
> +       .queue_offload_capa     = DEV_RX_OFFLOAD_RSS_HASH,
>         .get_dev_info           = sfc_ef10_essb_rx_get_dev_info,
>         .pool_ops_supported     = sfc_ef10_essb_rx_pool_ops_supported,
>         .qsize_up_rings         = sfc_ef10_essb_rx_qsize_up_rings,
> diff --git a/drivers/net/sfc/sfc_ef10_rx.c b/drivers/net/sfc/sfc_ef10_rx.c
> index f2fc6e70a..85b5df466 100644
> --- a/drivers/net/sfc/sfc_ef10_rx.c
> +++ b/drivers/net/sfc/sfc_ef10_rx.c
> @@ -797,7 +797,8 @@ struct sfc_dp_rx sfc_ef10_rx = {
>                                   SFC_DP_RX_FEAT_INTR,
>         .dev_offload_capa       = DEV_RX_OFFLOAD_CHECKSUM |
>                                   DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM,
> -       .queue_offload_capa     = DEV_RX_OFFLOAD_SCATTER,
> +       .queue_offload_capa     = DEV_RX_OFFLOAD_SCATTER |
> +                                 DEV_RX_OFFLOAD_RSS_HASH,
>         .get_dev_info           = sfc_ef10_rx_get_dev_info,
>         .qsize_up_rings         = sfc_ef10_rx_qsize_up_rings,
>         .qcreate                = sfc_ef10_rx_qcreate,
> diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
> index e6809bb64..695580b22 100644
> --- a/drivers/net/sfc/sfc_rx.c
> +++ b/drivers/net/sfc/sfc_rx.c
> @@ -618,7 +618,8 @@ struct sfc_dp_rx sfc_efx_rx = {
>         },
>         .features               = SFC_DP_RX_FEAT_INTR,
>         .dev_offload_capa       = DEV_RX_OFFLOAD_CHECKSUM,
> -       .queue_offload_capa     = DEV_RX_OFFLOAD_SCATTER,
> +       .queue_offload_capa     = DEV_RX_OFFLOAD_SCATTER |
> +                                 DEV_RX_OFFLOAD_RSS_HASH,
>         .qsize_up_rings         = sfc_efx_rx_qsize_up_rings,
>         .qcreate                = sfc_efx_rx_qcreate,
>         .qdestroy               = sfc_efx_rx_qdestroy,
> diff --git a/drivers/net/thunderx/nicvf_ethdev.h
> b/drivers/net/thunderx/nicvf_ethdev.h
> index c0bfbf848..391411799 100644
> --- a/drivers/net/thunderx/nicvf_ethdev.h
> +++ b/drivers/net/thunderx/nicvf_ethdev.h
> @@ -41,7 +41,8 @@
>         DEV_RX_OFFLOAD_CHECKSUM    | \
>         DEV_RX_OFFLOAD_VLAN_STRIP  | \
>         DEV_RX_OFFLOAD_JUMBO_FRAME | \
> -       DEV_RX_OFFLOAD_SCATTER)
> +       DEV_RX_OFFLOAD_SCATTER     | \
> +       DEV_RX_OFFLOAD_RSS_HASH)
>
>  #define NICVF_DEFAULT_RX_FREE_THRESH    224
>  #define NICVF_DEFAULT_TX_FREE_THRESH    224
> diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c
> b/drivers/net/vmxnet3/vmxnet3_ethdev.c
> index 57feb3773..a1bdf3482 100644
> --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
> +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
> @@ -58,7 +58,8 @@
>          DEV_RX_OFFLOAD_UDP_CKSUM |     \
>          DEV_RX_OFFLOAD_TCP_CKSUM |     \
>          DEV_RX_OFFLOAD_TCP_LRO |       \
> -        DEV_RX_OFFLOAD_JUMBO_FRAME)
> +        DEV_RX_OFFLOAD_JUMBO_FRAME |   \
> +        DEV_RX_OFFLOAD_RSS_HASH)
>
>  static int eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev);
>  static int eth_vmxnet3_dev_uninit(struct rte_eth_dev *eth_dev);
> --
> 2.22.0
>
>
  

Patch

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 6685ee7d9..6c106baf7 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -160,7 +160,8 @@  static const struct rte_pci_id bnxt_pci_id_map[] = {
 				     DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | \
 				     DEV_RX_OFFLOAD_JUMBO_FRAME | \
 				     DEV_RX_OFFLOAD_KEEP_CRC | \
-				     DEV_RX_OFFLOAD_TCP_LRO)
+				     DEV_RX_OFFLOAD_TCP_LRO | \
+				     DEV_RX_OFFLOAD_RSS_HASH)
 
 static int bnxt_vlan_offload_set_op(struct rte_eth_dev *dev, int mask);
 static void bnxt_print_link_info(struct rte_eth_dev *eth_dev);
diff --git a/drivers/net/cxgbe/cxgbe.h b/drivers/net/cxgbe/cxgbe.h
index 3f97fa58b..22e61a55c 100644
--- a/drivers/net/cxgbe/cxgbe.h
+++ b/drivers/net/cxgbe/cxgbe.h
@@ -47,7 +47,8 @@ 
 			   DEV_RX_OFFLOAD_UDP_CKSUM | \
 			   DEV_RX_OFFLOAD_TCP_CKSUM | \
 			   DEV_RX_OFFLOAD_JUMBO_FRAME | \
-			   DEV_RX_OFFLOAD_SCATTER)
+			   DEV_RX_OFFLOAD_SCATTER | \
+			   DEV_RX_OFFLOAD_RSS_HASH)
 
 
 #define CXGBE_DEVARG_KEEP_OVLAN "keep_ovlan"
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index 7154fb9b4..18c7bd0d5 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -49,7 +49,8 @@ 
 /* Supported Rx offloads */
 static uint64_t dev_rx_offloads_sup =
 		DEV_RX_OFFLOAD_JUMBO_FRAME |
-		DEV_RX_OFFLOAD_SCATTER;
+		DEV_RX_OFFLOAD_SCATTER |
+		DEV_RX_OFFLOAD_RSS_HASH;
 
 /* Rx offloads which cannot be disabled */
 static uint64_t dev_rx_offloads_nodis =
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index dd6a78f9f..55a1c4455 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -38,7 +38,8 @@  static uint64_t dev_rx_offloads_sup =
 		DEV_RX_OFFLOAD_TCP_CKSUM |
 		DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
 		DEV_RX_OFFLOAD_VLAN_FILTER |
-		DEV_RX_OFFLOAD_JUMBO_FRAME;
+		DEV_RX_OFFLOAD_JUMBO_FRAME |
+		DEV_RX_OFFLOAD_RSS_HASH;
 
 /* Rx offloads which cannot be disabled */
 static uint64_t dev_rx_offloads_nodis =
diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c
index c5606de5d..684fa4ad8 100644
--- a/drivers/net/e1000/igb_rxtx.c
+++ b/drivers/net/e1000/igb_rxtx.c
@@ -1646,7 +1646,8 @@  igb_get_rx_port_offloads_capa(struct rte_eth_dev *dev)
 			  DEV_RX_OFFLOAD_TCP_CKSUM   |
 			  DEV_RX_OFFLOAD_JUMBO_FRAME |
 			  DEV_RX_OFFLOAD_KEEP_CRC    |
-			  DEV_RX_OFFLOAD_SCATTER;
+			  DEV_RX_OFFLOAD_SCATTER     |
+			  DEV_RX_OFFLOAD_RSS_HASH;
 
 	return rx_offload_capa;
 }
diff --git a/drivers/net/enic/enic_res.c b/drivers/net/enic/enic_res.c
index 9405e1933..607a085f8 100644
--- a/drivers/net/enic/enic_res.c
+++ b/drivers/net/enic/enic_res.c
@@ -198,7 +198,8 @@  int enic_get_vnic_config(struct enic *enic)
 		DEV_RX_OFFLOAD_VLAN_STRIP |
 		DEV_RX_OFFLOAD_IPV4_CKSUM |
 		DEV_RX_OFFLOAD_UDP_CKSUM |
-		DEV_RX_OFFLOAD_TCP_CKSUM;
+		DEV_RX_OFFLOAD_TCP_CKSUM |
+		DEV_RX_OFFLOAD_RSS_HASH;
 	enic->tx_offload_mask =
 		PKT_TX_IPV6 |
 		PKT_TX_IPV4 |
diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
index db4d72129..ba9b174cf 100644
--- a/drivers/net/fm10k/fm10k_ethdev.c
+++ b/drivers/net/fm10k/fm10k_ethdev.c
@@ -1797,7 +1797,8 @@  static uint64_t fm10k_get_rx_port_offloads_capa(struct rte_eth_dev *dev)
 			   DEV_RX_OFFLOAD_UDP_CKSUM   |
 			   DEV_RX_OFFLOAD_TCP_CKSUM   |
 			   DEV_RX_OFFLOAD_JUMBO_FRAME |
-			   DEV_RX_OFFLOAD_HEADER_SPLIT);
+			   DEV_RX_OFFLOAD_HEADER_SPLIT |
+			   DEV_RX_OFFLOAD_RSS_HASH);
 }
 
 static int
diff --git a/drivers/net/hinic/hinic_pmd_ethdev.c b/drivers/net/hinic/hinic_pmd_ethdev.c
index 044af9053..53bd2b9ae 100644
--- a/drivers/net/hinic/hinic_pmd_ethdev.c
+++ b/drivers/net/hinic/hinic_pmd_ethdev.c
@@ -680,7 +680,8 @@  hinic_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
 	info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP |
 				DEV_RX_OFFLOAD_IPV4_CKSUM |
 				DEV_RX_OFFLOAD_UDP_CKSUM |
-				DEV_RX_OFFLOAD_TCP_CKSUM;
+				DEV_RX_OFFLOAD_TCP_CKSUM |
+				DEV_RX_OFFLOAD_RSS_HASH;
 
 	info->tx_queue_offload_capa = 0;
 	info->tx_offload_capa = DEV_TX_OFFLOAD_VLAN_INSERT |
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 4e40b7ab5..7058e0213 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -3511,7 +3511,8 @@  i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		DEV_RX_OFFLOAD_SCATTER |
 		DEV_RX_OFFLOAD_VLAN_EXTEND |
 		DEV_RX_OFFLOAD_VLAN_FILTER |
-		DEV_RX_OFFLOAD_JUMBO_FRAME;
+		DEV_RX_OFFLOAD_JUMBO_FRAME |
+		DEV_RX_OFFLOAD_RSS_HASH;
 
 	dev_info->tx_queue_offload_capa = DEV_TX_OFFLOAD_MBUF_FAST_FREE;
 	dev_info->tx_offload_capa =
diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index 8f3907378..aef91a79b 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -517,7 +517,8 @@  iavf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
 		DEV_RX_OFFLOAD_SCATTER |
 		DEV_RX_OFFLOAD_JUMBO_FRAME |
-		DEV_RX_OFFLOAD_VLAN_FILTER;
+		DEV_RX_OFFLOAD_VLAN_FILTER |
+		DEV_RX_OFFLOAD_RSS_HASH;
 	dev_info->tx_offload_capa =
 		DEV_TX_OFFLOAD_VLAN_INSERT |
 		DEV_TX_OFFLOAD_QINQ_INSERT |
diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 44a14cb8a..fc0f0003f 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -2133,7 +2133,8 @@  ice_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 			DEV_RX_OFFLOAD_TCP_CKSUM |
 			DEV_RX_OFFLOAD_QINQ_STRIP |
 			DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
-			DEV_RX_OFFLOAD_VLAN_EXTEND;
+			DEV_RX_OFFLOAD_VLAN_EXTEND |
+			DEV_RX_OFFLOAD_RSS_HASH;
 		dev_info->tx_offload_capa |=
 			DEV_TX_OFFLOAD_QINQ_INSERT |
 			DEV_TX_OFFLOAD_IPV4_CKSUM |
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index edcfa60ce..fa572d184 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -2872,7 +2872,8 @@  ixgbe_get_rx_port_offloads(struct rte_eth_dev *dev)
 		   DEV_RX_OFFLOAD_KEEP_CRC    |
 		   DEV_RX_OFFLOAD_JUMBO_FRAME |
 		   DEV_RX_OFFLOAD_VLAN_FILTER |
-		   DEV_RX_OFFLOAD_SCATTER;
+		   DEV_RX_OFFLOAD_SCATTER |
+		   DEV_RX_OFFLOAD_RSS_HASH;
 
 	if (hw->mac.type == ixgbe_mac_82598EB)
 		offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
diff --git a/drivers/net/liquidio/lio_ethdev.c b/drivers/net/liquidio/lio_ethdev.c
index c25dab00c..ff118586e 100644
--- a/drivers/net/liquidio/lio_ethdev.c
+++ b/drivers/net/liquidio/lio_ethdev.c
@@ -406,7 +406,8 @@  lio_dev_info_get(struct rte_eth_dev *eth_dev,
 	devinfo->rx_offload_capa = (DEV_RX_OFFLOAD_IPV4_CKSUM		|
 				    DEV_RX_OFFLOAD_UDP_CKSUM		|
 				    DEV_RX_OFFLOAD_TCP_CKSUM		|
-				    DEV_RX_OFFLOAD_VLAN_STRIP);
+				    DEV_RX_OFFLOAD_VLAN_STRIP		|
+				    DEV_RX_OFFLOAD_RSS_HASH);
 	devinfo->tx_offload_capa = (DEV_TX_OFFLOAD_IPV4_CKSUM		|
 				    DEV_TX_OFFLOAD_UDP_CKSUM		|
 				    DEV_TX_OFFLOAD_TCP_CKSUM		|
diff --git a/drivers/net/mlx4/mlx4_rxq.c b/drivers/net/mlx4/mlx4_rxq.c
index f45c1ff85..4a6fbd922 100644
--- a/drivers/net/mlx4/mlx4_rxq.c
+++ b/drivers/net/mlx4/mlx4_rxq.c
@@ -685,7 +685,8 @@  mlx4_get_rx_queue_offloads(struct mlx4_priv *priv)
 {
 	uint64_t offloads = DEV_RX_OFFLOAD_SCATTER |
 			    DEV_RX_OFFLOAD_KEEP_CRC |
-			    DEV_RX_OFFLOAD_JUMBO_FRAME;
+			    DEV_RX_OFFLOAD_JUMBO_FRAME |
+			    DEV_RX_OFFLOAD_RSS_HASH;
 
 	if (priv->hw_csum)
 		offloads |= DEV_RX_OFFLOAD_CHECKSUM;
diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
index a1fdeef2a..b5fd57693 100644
--- a/drivers/net/mlx5/mlx5_rxq.c
+++ b/drivers/net/mlx5/mlx5_rxq.c
@@ -368,7 +368,8 @@  mlx5_get_rx_queue_offloads(struct rte_eth_dev *dev)
 	struct mlx5_dev_config *config = &priv->config;
 	uint64_t offloads = (DEV_RX_OFFLOAD_SCATTER |
 			     DEV_RX_OFFLOAD_TIMESTAMP |
-			     DEV_RX_OFFLOAD_JUMBO_FRAME);
+			     DEV_RX_OFFLOAD_JUMBO_FRAME |
+			     DEV_RX_OFFLOAD_RSS_HASH);
 
 	if (config->hw_fcs_strip)
 		offloads |= DEV_RX_OFFLOAD_KEEP_CRC;
diff --git a/drivers/net/netvsc/hn_rndis.c b/drivers/net/netvsc/hn_rndis.c
index a67bc7a79..2b4714042 100644
--- a/drivers/net/netvsc/hn_rndis.c
+++ b/drivers/net/netvsc/hn_rndis.c
@@ -897,7 +897,8 @@  int hn_rndis_get_offload(struct hn_data *hv,
 	    == HN_NDIS_LSOV2_CAP_IP6)
 		dev_info->tx_offload_capa |= DEV_TX_OFFLOAD_TCP_TSO;
 
-	dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP;
+	dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP |
+				    DEV_RX_OFFLOAD_RSS_HASH;
 
 	if (hwcaps.ndis_csum.ndis_ip4_rxcsum & NDIS_RXCSUM_CAP_IP4)
 		dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_IPV4_CKSUM;
diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index f1a3ef2f9..230d64c8a 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -1226,7 +1226,8 @@  nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 					     DEV_RX_OFFLOAD_UDP_CKSUM |
 					     DEV_RX_OFFLOAD_TCP_CKSUM;
 
-	dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME;
+	dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME |
+				     DEV_RX_OFFLOAD_RSS_HASH;
 
 	if (hw->cap & NFP_NET_CFG_CTRL_TXVLAN)
 		dev_info->tx_offload_capa = DEV_TX_OFFLOAD_VLAN_INSERT;
diff --git a/drivers/net/octeontx2/otx2_ethdev.c b/drivers/net/octeontx2/otx2_ethdev.c
index b84128fef..2e88d1844 100644
--- a/drivers/net/octeontx2/otx2_ethdev.c
+++ b/drivers/net/octeontx2/otx2_ethdev.c
@@ -569,7 +569,8 @@  nix_rx_offload_flags(struct rte_eth_dev *eth_dev)
 	struct rte_eth_rxmode *rxmode = &conf->rxmode;
 	uint16_t flags = 0;
 
-	if (rxmode->mq_mode == ETH_MQ_RX_RSS)
+	if (rxmode->mq_mode == ETH_MQ_RX_RSS &&
+			(dev->rx_offloads & DEV_RX_OFFLOAD_RSS_HASH))
 		flags |= NIX_RX_OFFLOAD_RSS_F;
 
 	if (dev->rx_offloads & (DEV_RX_OFFLOAD_TCP_CKSUM |
diff --git a/drivers/net/octeontx2/otx2_ethdev.h b/drivers/net/octeontx2/otx2_ethdev.h
index 7b15d6bc8..0cca6746d 100644
--- a/drivers/net/octeontx2/otx2_ethdev.h
+++ b/drivers/net/octeontx2/otx2_ethdev.h
@@ -122,8 +122,8 @@ 
 	DEV_TX_OFFLOAD_MT_LOCKFREE	| \
 	DEV_TX_OFFLOAD_VLAN_INSERT	| \
 	DEV_TX_OFFLOAD_QINQ_INSERT	| \
-	DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM | \
-	DEV_TX_OFFLOAD_OUTER_UDP_CKSUM  | \
+	DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM	| \
+	DEV_TX_OFFLOAD_OUTER_UDP_CKSUM	| \
 	DEV_TX_OFFLOAD_TCP_CKSUM	| \
 	DEV_TX_OFFLOAD_UDP_CKSUM	| \
 	DEV_TX_OFFLOAD_SCTP_CKSUM	| \
@@ -136,11 +136,12 @@ 
 	DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | \
 	DEV_RX_OFFLOAD_SCATTER		| \
 	DEV_RX_OFFLOAD_JUMBO_FRAME	| \
-	DEV_RX_OFFLOAD_OUTER_UDP_CKSUM | \
-	DEV_RX_OFFLOAD_VLAN_STRIP | \
-	DEV_RX_OFFLOAD_VLAN_FILTER | \
-	DEV_RX_OFFLOAD_QINQ_STRIP | \
-	DEV_RX_OFFLOAD_TIMESTAMP)
+	DEV_RX_OFFLOAD_OUTER_UDP_CKSUM	| \
+	DEV_RX_OFFLOAD_VLAN_STRIP	| \
+	DEV_RX_OFFLOAD_VLAN_FILTER	| \
+	DEV_RX_OFFLOAD_QINQ_STRIP	| \
+	DEV_RX_OFFLOAD_TIMESTAMP	| \
+	DEV_RX_OFFLOAD_RSS_HASH)
 
 #define NIX_DEFAULT_RSS_CTX_GROUP  0
 #define NIX_DEFAULT_RSS_MCAM_IDX  -1
diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index 528b33e8c..da25b26df 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -1291,7 +1291,8 @@  qede_dev_info_get(struct rte_eth_dev *eth_dev,
 				     DEV_RX_OFFLOAD_SCATTER	|
 				     DEV_RX_OFFLOAD_JUMBO_FRAME |
 				     DEV_RX_OFFLOAD_VLAN_FILTER |
-				     DEV_RX_OFFLOAD_VLAN_STRIP);
+				     DEV_RX_OFFLOAD_VLAN_STRIP  |
+				     DEV_RX_OFFLOAD_RSS_HASH);
 	dev_info->rx_queue_offload_capa = 0;
 
 	/* TX offloads are on a per-packet basis, so it is applicable
diff --git a/drivers/net/sfc/sfc_ef10_essb_rx.c b/drivers/net/sfc/sfc_ef10_essb_rx.c
index 63da807ea..220ef0e47 100644
--- a/drivers/net/sfc/sfc_ef10_essb_rx.c
+++ b/drivers/net/sfc/sfc_ef10_essb_rx.c
@@ -716,7 +716,7 @@  struct sfc_dp_rx sfc_ef10_essb_rx = {
 	.features		= SFC_DP_RX_FEAT_FLOW_FLAG |
 				  SFC_DP_RX_FEAT_FLOW_MARK,
 	.dev_offload_capa	= DEV_RX_OFFLOAD_CHECKSUM,
-	.queue_offload_capa	= 0,
+	.queue_offload_capa	= DEV_RX_OFFLOAD_RSS_HASH,
 	.get_dev_info		= sfc_ef10_essb_rx_get_dev_info,
 	.pool_ops_supported	= sfc_ef10_essb_rx_pool_ops_supported,
 	.qsize_up_rings		= sfc_ef10_essb_rx_qsize_up_rings,
diff --git a/drivers/net/sfc/sfc_ef10_rx.c b/drivers/net/sfc/sfc_ef10_rx.c
index f2fc6e70a..85b5df466 100644
--- a/drivers/net/sfc/sfc_ef10_rx.c
+++ b/drivers/net/sfc/sfc_ef10_rx.c
@@ -797,7 +797,8 @@  struct sfc_dp_rx sfc_ef10_rx = {
 				  SFC_DP_RX_FEAT_INTR,
 	.dev_offload_capa	= DEV_RX_OFFLOAD_CHECKSUM |
 				  DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM,
-	.queue_offload_capa	= DEV_RX_OFFLOAD_SCATTER,
+	.queue_offload_capa	= DEV_RX_OFFLOAD_SCATTER |
+				  DEV_RX_OFFLOAD_RSS_HASH,
 	.get_dev_info		= sfc_ef10_rx_get_dev_info,
 	.qsize_up_rings		= sfc_ef10_rx_qsize_up_rings,
 	.qcreate		= sfc_ef10_rx_qcreate,
diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
index e6809bb64..695580b22 100644
--- a/drivers/net/sfc/sfc_rx.c
+++ b/drivers/net/sfc/sfc_rx.c
@@ -618,7 +618,8 @@  struct sfc_dp_rx sfc_efx_rx = {
 	},
 	.features		= SFC_DP_RX_FEAT_INTR,
 	.dev_offload_capa	= DEV_RX_OFFLOAD_CHECKSUM,
-	.queue_offload_capa	= DEV_RX_OFFLOAD_SCATTER,
+	.queue_offload_capa	= DEV_RX_OFFLOAD_SCATTER |
+				  DEV_RX_OFFLOAD_RSS_HASH,
 	.qsize_up_rings		= sfc_efx_rx_qsize_up_rings,
 	.qcreate		= sfc_efx_rx_qcreate,
 	.qdestroy		= sfc_efx_rx_qdestroy,
diff --git a/drivers/net/thunderx/nicvf_ethdev.h b/drivers/net/thunderx/nicvf_ethdev.h
index c0bfbf848..391411799 100644
--- a/drivers/net/thunderx/nicvf_ethdev.h
+++ b/drivers/net/thunderx/nicvf_ethdev.h
@@ -41,7 +41,8 @@ 
 	DEV_RX_OFFLOAD_CHECKSUM    | \
 	DEV_RX_OFFLOAD_VLAN_STRIP  | \
 	DEV_RX_OFFLOAD_JUMBO_FRAME | \
-	DEV_RX_OFFLOAD_SCATTER)
+	DEV_RX_OFFLOAD_SCATTER     | \
+	DEV_RX_OFFLOAD_RSS_HASH)
 
 #define NICVF_DEFAULT_RX_FREE_THRESH    224
 #define NICVF_DEFAULT_TX_FREE_THRESH    224
diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
index 57feb3773..a1bdf3482 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
@@ -58,7 +58,8 @@ 
 	 DEV_RX_OFFLOAD_UDP_CKSUM |	\
 	 DEV_RX_OFFLOAD_TCP_CKSUM |	\
 	 DEV_RX_OFFLOAD_TCP_LRO |	\
-	 DEV_RX_OFFLOAD_JUMBO_FRAME)
+	 DEV_RX_OFFLOAD_JUMBO_FRAME |   \
+	 DEV_RX_OFFLOAD_RSS_HASH)
 
 static int eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev);
 static int eth_vmxnet3_dev_uninit(struct rte_eth_dev *eth_dev);