DPDK-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: David Marchand <david.marchand@redhat.com>
To: dev@dpdk.org
Cc: thomas@monjalon.net, Gaetan Rivet <grive@u256.net>,
	Dimon Zhao <dimon.zhao@nebula-matrix.com>,
	Leon Yu <leon.yu@nebula-matrix.com>,
	Sam Chen <sam.chen@nebula-matrix.com>, Wei Hu <weh@microsoft.com>,
	Praveen Shetty <praveen.shetty@intel.com>,
	Jingjing Wu <jingjing.wu@intel.com>,
	Renyong Wan <wanry@yunsilicon.com>, Na Na <nana@yunsilicon.com>,
	Rong Qian <qianr@yunsilicon.com>,
	Xiaoxiong Zhang <zhangxx@yunsilicon.com>,
	Dongwei Xu <xudw@yunsilicon.com>,
	Beilei Xing <beilei.xing@intel.com>,
	Xiaoyun Li <xiaoyun.li@intel.com>,
	Junfeng Guo <junfengg@nvidia.com>,
	Mingxia Liu <mingxia.liu@intel.com>
Subject: [PATCH 6/8] drivers/net: fix reported RSS capability
Date: Fri, 16 Oct 2026 15:05:52 +0200	[thread overview]
Message-ID: <20261016130555.1685102-7-david.marchand@redhat.com> (raw)
In-Reply-To: <20261016130555.1685102-1-david.marchand@redhat.com>

Some drivers (idpf, cpfl) report RSS support even if lacking HW support.
On the other hand, some driver do have support but do not advertise it
(either in dev_info, or in the documentation).

Fixes: 70675bcc3a57 ("net/idpf: support RSS")
Fixes: cfbc66551a14 ("net/cpfl: support RSS")
Fixes: 5fb899f4b225 ("net/xsc: support RSS configuration")
Fixes: ff8db3711b29 ("net/nbl: support infos query")

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 doc/guides/nics/features/failsafe.ini     | 1 +
 doc/guides/nics/features/nbl.ini          | 1 +
 doc/guides/nics/features/netvsc.ini       | 1 +
 drivers/net/intel/cpfl/cpfl_ethdev.c      | 3 ++-
 drivers/net/intel/cpfl/cpfl_representor.c | 4 +++-
 drivers/net/intel/idpf/idpf_ethdev.c      | 3 ++-
 drivers/net/xsc/xsc_ethdev.c              | 2 ++
 7 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/doc/guides/nics/features/failsafe.ini b/doc/guides/nics/features/failsafe.ini
index 09afdc1963..b778a40be6 100644
--- a/doc/guides/nics/features/failsafe.ini
+++ b/doc/guides/nics/features/failsafe.ini
@@ -18,6 +18,7 @@ Multicast MAC filter = Y
 VLAN filter          = Y
 Flow control         = Y
 Packet type parsing  = Y
+RSS hash             = P
 Stats per queue      = Y
 ARMv7                = Y
 ARMv8                = Y
diff --git a/doc/guides/nics/features/nbl.ini b/doc/guides/nics/features/nbl.ini
index 5935092a49..e799840e40 100644
--- a/doc/guides/nics/features/nbl.ini
+++ b/doc/guides/nics/features/nbl.ini
@@ -9,6 +9,7 @@ MTU update           = Y
 Scattered Rx         = Y
 Promiscuous mode     = Y
 Unicast MAC filter   = Y
+RSS hash             = Y
 VLAN offload         = P
 Extended stats       = Y
 Stats per queue      = Y
diff --git a/doc/guides/nics/features/netvsc.ini b/doc/guides/nics/features/netvsc.ini
index fa8c2ac132..7bc7148f95 100644
--- a/doc/guides/nics/features/netvsc.ini
+++ b/doc/guides/nics/features/netvsc.ini
@@ -8,6 +8,7 @@ Speed capabilities   = P
 Free Tx mbuf on demand = Y
 Scattered Rx         = Y
 Promiscuous mode     = Y
+RSS hash             = Y
 Allmulticast mode    = Y
 Stats per queue      = Y
 Extended stats       = Y
diff --git a/drivers/net/intel/cpfl/cpfl_ethdev.c b/drivers/net/intel/cpfl/cpfl_ethdev.c
index 32e0f81d99..0863043a2e 100644
--- a/drivers/net/intel/cpfl/cpfl_ethdev.c
+++ b/drivers/net/intel/cpfl/cpfl_ethdev.c
@@ -212,7 +212,8 @@ cpfl_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	dev_info->hash_key_size = vport->rss_key_size;
 	dev_info->reta_size = vport->rss_lut_size;
 
-	dev_info->flow_type_rss_offloads = CPFL_RSS_OFFLOAD_ALL;
+	if (base->caps.rss_caps != 0)
+		dev_info->flow_type_rss_offloads = CPFL_RSS_OFFLOAD_ALL;
 
 	dev_info->rx_offload_capa =
 		RTE_ETH_RX_OFFLOAD_IPV4_CKSUM           |
diff --git a/drivers/net/intel/cpfl/cpfl_representor.c b/drivers/net/intel/cpfl/cpfl_representor.c
index 60b72b5ec1..bb28c0b989 100644
--- a/drivers/net/intel/cpfl/cpfl_representor.c
+++ b/drivers/net/intel/cpfl/cpfl_representor.c
@@ -195,6 +195,7 @@ cpfl_repr_dev_info_get(struct rte_eth_dev *ethdev,
 		       struct rte_eth_dev_info *dev_info)
 {
 	struct cpfl_repr *repr = CPFL_DEV_TO_REPR(ethdev);
+	struct cpfl_adapter_ext *adapter = repr->itf.adapter;
 
 	dev_info->device = ethdev->device;
 	dev_info->max_mac_addrs = 1;
@@ -203,7 +204,8 @@ cpfl_repr_dev_info_get(struct rte_eth_dev *ethdev,
 	dev_info->min_rx_bufsize = CPFL_MIN_BUF_SIZE;
 	dev_info->max_rx_pktlen = CPFL_MAX_FRAME_SIZE;
 
-	dev_info->flow_type_rss_offloads = CPFL_RSS_OFFLOAD_ALL;
+	if (adapter->base.caps.rss_caps != 0)
+		dev_info->flow_type_rss_offloads = CPFL_RSS_OFFLOAD_ALL;
 
 	dev_info->rx_offload_capa =
 		RTE_ETH_RX_OFFLOAD_VLAN_STRIP		|
diff --git a/drivers/net/intel/idpf/idpf_ethdev.c b/drivers/net/intel/idpf/idpf_ethdev.c
index e9e9781fdd..5a8c783013 100644
--- a/drivers/net/intel/idpf/idpf_ethdev.c
+++ b/drivers/net/intel/idpf/idpf_ethdev.c
@@ -169,7 +169,8 @@ idpf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	dev_info->hash_key_size = vport->rss_key_size;
 	dev_info->reta_size = vport->rss_lut_size;
 
-	dev_info->flow_type_rss_offloads = IDPF_RSS_OFFLOAD_ALL;
+	if (adapter->caps.rss_caps != 0)
+		dev_info->flow_type_rss_offloads = IDPF_RSS_OFFLOAD_ALL;
 
 	dev_info->rx_offload_capa =
 		RTE_ETH_RX_OFFLOAD_IPV4_CKSUM           |
diff --git a/drivers/net/xsc/xsc_ethdev.c b/drivers/net/xsc/xsc_ethdev.c
index 5fbe68782e..8ac7fecd3a 100644
--- a/drivers/net/xsc/xsc_ethdev.c
+++ b/drivers/net/xsc/xsc_ethdev.c
@@ -469,6 +469,8 @@ xsc_ethdev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
 	info->if_index = priv->ifindex;
 	info->speed_capa = priv->xdev->link_speed_capa;
 	info->hash_key_size = XSC_RSS_HASH_KEY_LEN;
+	info->flow_type_rss_offloads = RTE_ETH_RSS_IP | RTE_ETH_RSS_UDP |
+		RTE_ETH_RSS_TCP;
 	info->tx_desc_lim.nb_seg_max = 8;
 	info->tx_desc_lim.nb_mtu_seg_max = 8;
 	info->switch_info.name = dev->data->name;
-- 
2.54.0


  parent reply	other threads:[~2026-10-16 13:07 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-16 13:05 [PATCH 0/8] Validate multiqueue configuration in ethdev David Marchand
2026-10-16 13:05 ` [PATCH 1/8] net/bnxt: remove leftover VMDq code in MAC helpers David Marchand
2026-10-16 13:05 ` [PATCH 2/8] drivers/net: fix reported VMDq capability David Marchand
2026-10-16 13:05 ` [PATCH 3/8] drivers/net: remove check on VMDq modes David Marchand
2026-10-16 13:05 ` [PATCH 4/8] devtools: check VMDq capability David Marchand
2026-10-16 13:05 ` [PATCH 5/8] ethdev: check DCB availability David Marchand
2026-10-16 13:05 ` David Marchand [this message]
2026-10-16 13:05 ` [PATCH 7/8] ethdev: check RSS availability David Marchand
2026-10-16 13:05 ` [PATCH 8/8] ethdev: check unknown Rx/Tx multi-queue modes David Marchand
2026-10-16 16:44 ` [PATCH 0/8] Validate multiqueue configuration in ethdev Stephen Hemminger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261016130555.1685102-7-david.marchand@redhat.com \
    --to=david.marchand@redhat.com \
    --cc=beilei.xing@intel.com \
    --cc=dev@dpdk.org \
    --cc=dimon.zhao@nebula-matrix.com \
    --cc=grive@u256.net \
    --cc=jingjing.wu@intel.com \
    --cc=junfengg@nvidia.com \
    --cc=leon.yu@nebula-matrix.com \
    --cc=mingxia.liu@intel.com \
    --cc=nana@yunsilicon.com \
    --cc=praveen.shetty@intel.com \
    --cc=qianr@yunsilicon.com \
    --cc=sam.chen@nebula-matrix.com \
    --cc=thomas@monjalon.net \
    --cc=wanry@yunsilicon.com \
    --cc=weh@microsoft.com \
    --cc=xiaoyun.li@intel.com \
    --cc=xudw@yunsilicon.com \
    --cc=zhangxx@yunsilicon.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox