DPDK-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
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
> 

  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