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
next prev 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