From: Bruce Richardson <bruce.richardson@intel.com>
To: David Marchand <david.marchand@redhat.com>
Cc: <dev@dpdk.org>, <thomas@monjalon.net>,
Gaetan Rivet <grive@u256.net>, Rosen Xu <rosen.xu@altera.com>,
Hemant Agrawal <hemant.agrawal@nxp.com>,
Sachin Saxena <sachin.saxena@nxp.com>,
Anatoly Burakov <anatoly.burakov@intel.com>,
Vladimir Medvedkin <vladimir.medvedkin@intel.com>,
Jiawen Wu <jiawenwu@trustnetic.com>,
"Zaiyu Wang" <zaiyuwang@trustnetic.com>,
Jeff Shaw <jeffrey.b.shaw@intel.com>,
"Jing Chen" <jing.d.chen@intel.com>,
Shreyansh Jain <shreyansh.jain@nxp.com>,
"Dan Wei" <dan.wei@intel.com>, Andy Pei <andy.pei@intel.com>
Subject: Re: [PATCH v2 05/12] drivers/net: fix reported VMDq capability
Date: Wed, 21 Oct 2026 11:53:51 +0100 [thread overview]
Message-ID: <atiZv8jUN3iOBpFi@bricha3-mobl1.ger.corp.intel.com> (raw)
In-Reply-To: <20261021103027.2050351-6-david.marchand@redhat.com>
On Wed, Oct 21, 2026 at 12:30:19PM +0200, David Marchand wrote:
> Some PF drivers (dpaa, dpaa2) and VF drivers (ixgbe, ngbe, txgbe)
> are announcing some VMDq capability though this support is not documented,
> and no action is taken if the feature is requested.
>
> fm10k announces capability for VF device, but rejects it at configure
> time.
>
> failsafe may support VMDq, as it only passes the requests to the ports
> attached to it, hence mark it as partial support.
>
> Fixes: fe3a45fd4104 ("ixgbe: add VMDq support")
> Fixes: 7e72cbfa320b ("fm10k: add reta query/update")
> Fixes: 799db4568c76 ("net/dpaa: support device info and speed capability")
> Fixes: 762b275f20f8 ("net/dpaa2: add missing device info fields")
> Fixes: c01c748e4ae6 ("net/ipn3ke: add new driver")
> Fixes: 5dec0169554b ("net/txgbe: support VF get information")
> Fixes: 66070ca419c1 ("net/ngbe: add hardware configuration for VF device")
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
> Changes since v1:
> - moved net/atlantic and net/cxgbe changes where needed (later in this
> series),
> - added comment on failsafe in commitlog,
> - fixed ipn3ke,
>
> ---
For the intel driver changes:
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> doc/guides/nics/features/failsafe.ini | 1 +
> doc/guides/nics/features/ipn3ke.ini | 1 -
> drivers/net/dpaa/dpaa_ethdev.c | 1 -
> drivers/net/dpaa2/dpaa2_ethdev.c | 1 -
> drivers/net/intel/fm10k/fm10k_ethdev.c | 9 ++-------
> drivers/net/intel/ixgbe/ixgbe_ethdev.c | 4 ----
> drivers/net/ngbe/ngbe_ethdev_vf.c | 1 -
> drivers/net/txgbe/txgbe_ethdev_vf.c | 1 -
> 8 files changed, 3 insertions(+), 16 deletions(-)
>
> diff --git a/doc/guides/nics/features/failsafe.ini b/doc/guides/nics/features/failsafe.ini
> index c7c696fbbd..09afdc1963 100644
> --- a/doc/guides/nics/features/failsafe.ini
> +++ b/doc/guides/nics/features/failsafe.ini
> @@ -13,6 +13,7 @@ MTU update = Y
> Promiscuous mode = Y
> Allmulticast mode = Y
> Unicast MAC filter = Y
> +VMDq = P
> Multicast MAC filter = Y
> VLAN filter = Y
> Flow control = Y
> diff --git a/doc/guides/nics/features/ipn3ke.ini b/doc/guides/nics/features/ipn3ke.ini
> index 29f40a5b11..ba43b9d91c 100644
> --- a/doc/guides/nics/features/ipn3ke.ini
> +++ b/doc/guides/nics/features/ipn3ke.ini
> @@ -18,7 +18,6 @@ Multicast MAC filter = Y
> RSS hash = Y
> RSS key update = Y
> RSS reta update = Y
> -VMDq = Y
> SR-IOV = Y
> DCB = Y
> VLAN filter = Y
> diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
> index 1aaf97f175..7d45386a9d 100644
> --- a/drivers/net/dpaa/dpaa_ethdev.c
> +++ b/drivers/net/dpaa/dpaa_ethdev.c
> @@ -662,7 +662,6 @@ static int dpaa_eth_dev_info(struct rte_eth_dev *dev,
> dev_info->max_mac_addrs = DPAA_MAX_MAC_FILTER;
> dev_info->max_hash_mac_addrs = 0;
> dev_info->max_vfs = 0;
> - dev_info->max_vmdq_pools = RTE_ETH_16_POOLS;
> dev_info->flow_type_rss_offloads = DPAA_RSS_OFFLOAD_ALL;
>
> if (fif->mac_type == fman_mac_1g) {
> diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
> index 8ae4fd89c5..07e89d5c39 100644
> --- a/drivers/net/dpaa2/dpaa2_ethdev.c
> +++ b/drivers/net/dpaa2/dpaa2_ethdev.c
> @@ -452,7 +452,6 @@ dpaa2_dev_info_get(struct rte_eth_dev *dev,
>
> dev_info->max_hash_mac_addrs = 0;
> dev_info->max_vfs = 0;
> - dev_info->max_vmdq_pools = RTE_ETH_16_POOLS;
> dev_info->flow_type_rss_offloads = DPAA2_RSS_OFFLOAD_ALL;
> /* DPAA2 has no software-visible indirection table: incoming packets are
> * dispatched to FQs via 'queue_id = hash % dist_size'. We expose the
> diff --git a/drivers/net/intel/fm10k/fm10k_ethdev.c b/drivers/net/intel/fm10k/fm10k_ethdev.c
> index 3b2daba79e..9b123c0b2c 100644
> --- a/drivers/net/intel/fm10k/fm10k_ethdev.c
> +++ b/drivers/net/intel/fm10k/fm10k_ethdev.c
> @@ -411,7 +411,6 @@ static int
> fm10k_check_mq_mode(struct rte_eth_dev *dev)
> {
> enum rte_eth_rx_mq_mode rx_mq_mode = dev->data->dev_conf.rxmode.mq_mode;
> - struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> struct rte_eth_vmdq_rx_conf *vmdq_conf;
> uint16_t nb_rx_q = dev->data->nb_rx_queues;
>
> @@ -425,11 +424,6 @@ fm10k_check_mq_mode(struct rte_eth_dev *dev)
> if (!(rx_mq_mode & RTE_ETH_MQ_RX_VMDQ_FLAG))
> return 0;
>
> - if (hw->mac.type == fm10k_mac_vf) {
> - PMD_INIT_LOG(ERR, "VMDQ mode is not supported in VF.");
> - return -EINVAL;
> - }
> -
> /* Check VMDQ queue pool number */
> if (vmdq_conf->nb_queue_pools >
> sizeof(vmdq_conf->pool_map[0].pools) * CHAR_BIT ||
> @@ -1386,7 +1380,8 @@ fm10k_dev_infos_get(struct rte_eth_dev *dev,
> dev_info->max_vfs = pdev->max_vfs;
> dev_info->vmdq_pool_base = 0;
> dev_info->vmdq_queue_base = 0;
> - dev_info->max_vmdq_pools = RTE_ETH_32_POOLS;
> + if (hw->mac.type != fm10k_mac_vf)
> + dev_info->max_vmdq_pools = RTE_ETH_32_POOLS;
> dev_info->vmdq_queue_num = FM10K_MAX_QUEUES_PF;
> dev_info->rx_queue_offload_capa = fm10k_get_rx_queue_offloads_capa(dev);
> dev_info->rx_offload_capa = fm10k_get_rx_port_offloads_capa(dev) |
> diff --git a/drivers/net/intel/ixgbe/ixgbe_ethdev.c b/drivers/net/intel/ixgbe/ixgbe_ethdev.c
> index 44eb932058..50e44484b1 100644
> --- a/drivers/net/intel/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/intel/ixgbe/ixgbe_ethdev.c
> @@ -4076,10 +4076,6 @@ ixgbevf_dev_info_get(struct rte_eth_dev *dev,
> dev_info->max_mac_addrs = hw->mac.num_rar_entries;
> dev_info->max_hash_mac_addrs = IXGBE_VMDQ_NUM_UC_MAC;
> dev_info->max_vfs = pci_dev->max_vfs;
> - if (hw->mac.type == ixgbe_mac_82598EB)
> - dev_info->max_vmdq_pools = RTE_ETH_16_POOLS;
> - else
> - dev_info->max_vmdq_pools = RTE_ETH_64_POOLS;
> dev_info->rx_queue_offload_capa = ixgbe_get_rx_queue_offloads(dev);
> dev_info->rx_offload_capa = (ixgbe_get_rx_port_offloads(dev) |
> dev_info->rx_queue_offload_capa);
> diff --git a/drivers/net/ngbe/ngbe_ethdev_vf.c b/drivers/net/ngbe/ngbe_ethdev_vf.c
> index c440e02369..55cbffaf2c 100644
> --- a/drivers/net/ngbe/ngbe_ethdev_vf.c
> +++ b/drivers/net/ngbe/ngbe_ethdev_vf.c
> @@ -475,7 +475,6 @@ ngbevf_dev_info_get(struct rte_eth_dev *dev,
> dev_info->max_mac_addrs = hw->mac.num_rar_entries;
> dev_info->max_hash_mac_addrs = NGBE_VMDQ_NUM_UC_MAC;
> dev_info->max_vfs = pci_dev->max_vfs;
> - dev_info->max_vmdq_pools = RTE_ETH_64_POOLS;
> dev_info->rx_queue_offload_capa = ngbe_get_rx_queue_offloads(dev);
> dev_info->rx_offload_capa = (ngbe_get_rx_port_offloads(dev) |
> dev_info->rx_queue_offload_capa);
> diff --git a/drivers/net/txgbe/txgbe_ethdev_vf.c b/drivers/net/txgbe/txgbe_ethdev_vf.c
> index 341f62bc75..3cf33a8bd6 100644
> --- a/drivers/net/txgbe/txgbe_ethdev_vf.c
> +++ b/drivers/net/txgbe/txgbe_ethdev_vf.c
> @@ -575,7 +575,6 @@ txgbevf_dev_info_get(struct rte_eth_dev *dev,
> dev_info->max_mac_addrs = hw->mac.num_rar_entries;
> dev_info->max_hash_mac_addrs = TXGBE_VMDQ_NUM_UC_MAC;
> dev_info->max_vfs = pci_dev->max_vfs;
> - dev_info->max_vmdq_pools = RTE_ETH_64_POOLS;
> dev_info->dev_capa &= ~RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP;
> dev_info->rx_queue_offload_capa = txgbe_get_rx_queue_offloads(dev);
> dev_info->rx_offload_capa = (txgbe_get_rx_port_offloads(dev) |
> --
> 2.54.0
>
next prev parent reply other threads:[~2026-10-21 10:54 UTC|newest]
Thread overview: 54+ 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 ` [PATCH 6/8] drivers/net: fix reported RSS capability David Marchand
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
2026-10-19 6:41 ` Renyong Wan
2026-10-21 10:30 ` [PATCH v2 00/12] " David Marchand
2026-10-21 10:30 ` [PATCH v2 01/12] devtools: fix matching in doc check David Marchand
2026-10-21 10:42 ` Thomas Monjalon
2026-10-21 10:30 ` [PATCH v2 02/12] doc: fix L2TPv2 and PPP matching support for ICE David Marchand
2026-10-21 10:30 ` [PATCH v2 03/12] devtools: handle multiple drivers in doc check David Marchand
2026-10-22 9:39 ` Thomas Monjalon
2026-10-21 10:30 ` [PATCH v2 04/12] net/bnxt: remove leftover VMDq code in MAC helpers David Marchand
2026-10-21 10:30 ` [PATCH v2 05/12] drivers/net: fix reported VMDq capability David Marchand
2026-10-21 10:53 ` Bruce Richardson [this message]
2026-10-21 10:30 ` [PATCH v2 06/12] drivers/net: remove check on VMDq modes David Marchand
2026-10-21 10:55 ` Bruce Richardson
2026-10-21 10:30 ` [PATCH v2 07/12] devtools: check VMDq capability David Marchand
2026-10-22 9:44 ` Thomas Monjalon
2026-10-21 10:30 ` [PATCH v2 08/12] doc: fix DCB capability for some Intel drivers David Marchand
2026-10-21 11:04 ` Bruce Richardson
2026-10-21 10:30 ` [PATCH v2 09/12] ethdev: check DCB availability David Marchand
2026-10-21 11:07 ` Bruce Richardson
2026-10-21 10:30 ` [PATCH v2 10/12] drivers/net: fix reported RSS capability David Marchand
2026-10-22 6:17 ` Renyong Wan
2026-10-21 10:30 ` [PATCH v2 11/12] ethdev: check RSS availability David Marchand
2026-10-21 10:30 ` [PATCH v2 12/12] ethdev: check unknown Rx/Tx multi-queue modes David Marchand
2026-10-21 17:42 ` [PATCH v2 00/12] Validate multiqueue configuration in ethdev Stephen Hemminger
2026-10-22 17:44 ` [PATCH v3 00/13] " David Marchand
2026-10-22 17:44 ` [PATCH v3 01/13] devtools: fix matching in doc check David Marchand
2026-10-22 17:44 ` [PATCH v3 02/13] doc: fix L2TPv2 and PPP matching support for ICE David Marchand
2026-10-22 17:44 ` [PATCH v3 03/13] devtools: support Intel drivers in doc check David Marchand
2026-10-23 10:11 ` Thomas Monjalon
2026-10-22 17:44 ` [PATCH v3 04/13] devtools: handle multiple " David Marchand
2026-10-23 10:13 ` Thomas Monjalon
2026-10-23 15:08 ` David Marchand
2026-10-22 17:44 ` [PATCH v3 05/13] net/bnxt: remove leftover VMDq code in MAC helpers David Marchand
2026-10-22 17:44 ` [PATCH v3 06/13] drivers/net: fix reported VMDq capability David Marchand
2026-10-22 17:44 ` [PATCH v3 07/13] drivers/net: remove check on VMDq modes David Marchand
2026-10-27 2:38 ` fengchengwen
2026-10-22 17:44 ` [PATCH v3 08/13] devtools: check VMDq capability David Marchand
2026-10-22 17:44 ` [PATCH v3 09/13] doc: fix DCB capability for some Intel drivers David Marchand
2026-10-22 17:44 ` [PATCH v3 10/13] ethdev: check DCB availability David Marchand
2026-10-27 2:39 ` fengchengwen
2026-10-22 17:44 ` [PATCH v3 11/13] drivers/net: fix reported RSS capability David Marchand
2026-10-22 17:44 ` [PATCH v3 12/13] ethdev: check RSS availability David Marchand
2026-10-27 2:41 ` fengchengwen
2026-10-22 17:44 ` [PATCH v3 13/13] ethdev: check unknown Rx/Tx multi-queue modes David Marchand
2026-10-26 18:11 ` [PATCH v3 00/13] 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=atiZv8jUN3iOBpFi@bricha3-mobl1.ger.corp.intel.com \
--to=bruce.richardson@intel.com \
--cc=anatoly.burakov@intel.com \
--cc=andy.pei@intel.com \
--cc=dan.wei@intel.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=grive@u256.net \
--cc=hemant.agrawal@nxp.com \
--cc=jeffrey.b.shaw@intel.com \
--cc=jiawenwu@trustnetic.com \
--cc=jing.d.chen@intel.com \
--cc=rosen.xu@altera.com \
--cc=sachin.saxena@nxp.com \
--cc=shreyansh.jain@nxp.com \
--cc=thomas@monjalon.net \
--cc=vladimir.medvedkin@intel.com \
--cc=zaiyuwang@trustnetic.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