From: "Burakov, Anatoly" <anatoly.burakov@intel.com>
To: David Marchand <david.marchand@redhat.com>
Cc: <dev@dpdk.org>, <bruce.richardson@intel.com>,
Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Subject: Re: [PATCH v6 1/2] net/iavf: accept up to 32k unicast MAC addresses
Date: Thu, 10 Sep 2026 14:38:24 +0200 [thread overview]
Message-ID: <b0990db2-3429-4b0c-bd77-3daea494ff83@intel.com> (raw)
In-Reply-To: <CAJFAV8z2SwkPkn=nL7CFa4SW4P5ghbVGz6P=J2=xtFJMogUTAw@mail.gmail.com>
On 9/10/2026 2:30 PM, David Marchand wrote:
> On Thu, 10 Sept 2026 at 14:20, Burakov, Anatoly
> <anatoly.burakov@intel.com> wrote:
>>
>> On 9/10/2026 2:13 PM, Burakov, Anatoly wrote:
>>> On 9/4/2026 2:28 PM, David Marchand wrote:
>>>> E810 hardware provides 32k switch lookups.
>>>> Thanks to this, it is possible to allow a lot more secondary mac
>>>> addresses than what is possible today.
>>>>
>>>> In practice, the maximum number of macs available per port may be lower
>>>> and depends on usage by other (trusted?) VFs on the same PF.
>>>> There is no way to figure out this limit but to try adding a mac address
>>>> and get an error from the PF driver.
>>>>
>>>> Mailbox exchanges are limited to IAVF_AQ_BUF_SZ, segment messages
>>>> accordingly.
>>>>
>>>> Signed-off-by: David Marchand <david.marchand@redhat.com>
>>>> ---
>>>
>>> On another note, I don't think this is even compatible with ethdev API.
>>>
>>> In `ethdev_driver.h`:
>>>
>>> struct __rte_cache_aligned rte_eth_dev_data {
>>> ...
>>> /**
>>> * Device Ethernet link addresses.
>>> * All entries are unique.
>>> * The first entry (index zero) is the default address.
>>> */
>>> struct rte_ether_addr *mac_addrs;
>>> /** Bitmap associating MAC addresses to pools */
>>> uint64_t mac_pool_sel[RTE_ETH_NUM_RECEIVE_MAC_ADDR];
>>> ...
>>> }
>>>
>>> example of this bitmap in rte_eth_dev_mac_addr_remove:
>>>
>>> /* Update NIC */
>>> dev->dev_ops->mac_addr_remove(dev, index);
>>>
>>> /* Update address in NIC data structure */
>>> rte_ether_addr_copy(&null_mac_addr, &dev->data->mac_addrs[index]);
>>>
>>> /* reset pool bitmap */
>>> dev->data->mac_pool_sel[index] = 0;
>>>
>>> rte_ethdev_trace_mac_addr_remove(port_id, addr);
>>>
>>> meaning, the mac_addrs array and the mac_pool_sel have the same
>>> limitation because they are indexed by the same index.
>>>
>>> RTE_ETH_NUM_RECEIVE_MAC_ADDR is defined as 128, so correct me if I'm
>>> wrong here, but according to ethdev API one cannot have more than 128
>>> MAC addresses?
>>>
>>
>> I would even go as far as to suggest that ethdev API should probably
>> check max MAC addrs number to make sure it doesn't exceed the size of
>> RTE_ETH_NUM_RECEIVE_MAC_ADDR, because otherwise that's a latent
>> potential buffer overrun?
>
> This limit is something that was put in place for VMDq.
>
> I removed it in next-net (it did not hit main yet).
> https://git.dpdk.org/next/dpdk-next-net/commit?id=f9ddb36e00655e38c115502d5ee180d4fda633c0
> https://git.dpdk.org/next/dpdk-next-net/commit?id=31ea14ef354c8664482af27039ecd3c6130254b1
>
> There may be some check missing in case a driver announces a
> max_mac_addrs larger than RTE_ETH_NUM_RECEIVE_MAC_ADDR with VMDq
> enabled.
>
>
OK, in that case I'll send AI to dig around ixgbe and see if we can
tighten enforcement of this limit :)
--
Thanks,
Anatoly
next prev parent reply other threads:[~2026-09-10 12:38 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-03 9:18 [PATCH 0/4] Remove limitations coming from legacy VMDq David Marchand
2026-04-03 9:18 ` [PATCH 1/4] ethdev: skip VMDq pools unless configured David Marchand
2026-06-01 9:30 ` Andrew Rybchenko
2026-04-03 9:18 ` [PATCH 2/4] ethdev: announce VMDq capability David Marchand
2026-04-06 22:22 ` Kishore Padmanabha
2026-04-29 14:18 ` David Marchand
2026-05-18 22:12 ` Kishore Padmanabha
2026-06-01 9:32 ` Andrew Rybchenko
2026-04-03 9:18 ` [PATCH 3/4] ethdev: hide VMDq internal sizes David Marchand
2026-06-01 9:34 ` Andrew Rybchenko
2026-04-03 9:18 ` [PATCH 4/4] net/iavf: accept up to 32k unicast MAC addresses David Marchand
2026-04-05 18:47 ` [PATCH 0/4] Remove limitations coming from legacy VMDq Stephen Hemminger
2026-04-29 14:22 ` David Marchand
2026-05-06 12:35 ` [PATCH v2 0/5] " David Marchand
2026-05-06 12:35 ` [PATCH v2 1/5] ethdev: skip VMDq pools unless configured David Marchand
2026-06-01 9:35 ` Andrew Rybchenko
2026-05-06 12:35 ` [PATCH v2 2/5] ethdev: announce VMDq capability David Marchand
2026-06-01 9:36 ` Andrew Rybchenko
2026-05-06 12:35 ` [PATCH v2 3/5] ethdev: hide VMDq internal sizes David Marchand
2026-05-06 12:35 ` [PATCH v2 4/5] net/iavf: accept up to 32k unicast MAC addresses David Marchand
2026-05-06 12:35 ` [PATCH v2 5/5] net/iavf: fix duplicate MAC addresses install David Marchand
2026-05-07 2:51 ` [PATCH v2 0/5] Remove limitations coming from legacy VMDq Stephen Hemminger
2026-05-10 15:03 ` David Marchand
2026-05-10 17:03 ` [PATCH v3 " David Marchand
2026-05-10 17:03 ` [PATCH v3 1/5] ethdev: check VMDq availability David Marchand
2026-06-01 9:38 ` Andrew Rybchenko
2026-05-10 17:03 ` [PATCH v3 2/5] ethdev: skip VMDq pools unless configured David Marchand
2026-06-01 9:38 ` Andrew Rybchenko
2026-05-10 17:03 ` [PATCH v3 3/5] ethdev: hide VMDq internal sizes David Marchand
2026-06-01 9:39 ` Andrew Rybchenko
2026-05-10 17:03 ` [PATCH v3 4/5] net/iavf: accept up to 32k unicast MAC addresses David Marchand
2026-05-12 14:41 ` Stephen Hemminger
2026-05-27 13:25 ` David Marchand
2026-05-10 17:03 ` [PATCH v3 5/5] net/iavf: fix duplicate MAC addresses install David Marchand
2026-07-09 16:02 ` [PATCH v4 00/10] Remove limitations coming from legacy VMDq David Marchand
2026-07-09 16:02 ` [PATCH v4 01/10] ethdev: check VMDq availability David Marchand
2026-07-09 16:02 ` [PATCH v4 02/10] ethdev: skip VMDq pools unless configured David Marchand
2026-07-09 16:02 ` [PATCH v4 03/10] ethdev: hide VMDq internal sizes David Marchand
2026-07-09 16:02 ` [PATCH v4 04/10] net/iavf: accept up to 32k unicast MAC addresses David Marchand
2026-07-09 16:02 ` [PATCH v4 05/10] net/iavf: fix duplicate MAC addresses install David Marchand
2026-07-13 13:12 ` Loftus, Ciara
2026-07-13 14:10 ` David Marchand
2026-07-14 9:23 ` Loftus, Ciara
2026-07-09 16:02 ` [PATCH v4 06/10] net/mlx5: remove MAC addresses flush helper on Linux David Marchand
2026-07-09 16:02 ` [PATCH v4 07/10] net/mlx5: remove redundant MAC address index checks David Marchand
2026-07-09 16:02 ` [PATCH v4 08/10] net/mlx5: pass maximum number of unicast MAC to common code David Marchand
2026-07-09 16:02 ` [PATCH v4 09/10] net/mlx5: use bitset for tracking MAC addresses David Marchand
2026-07-09 16:02 ` [PATCH v4 10/10] net/mlx5: accept more unicast " David Marchand
2026-07-10 6:44 ` David Marchand
2026-07-10 7:48 ` David Marchand
2026-07-23 12:41 ` [PATCH v5 00/10] Remove limitations coming from legacy VMDq David Marchand
2026-07-23 12:41 ` [PATCH v5 01/10] ethdev: check VMDq availability David Marchand
2026-07-23 12:41 ` [PATCH v5 02/10] ethdev: skip VMDq pools unless configured David Marchand
2026-07-23 12:41 ` [PATCH v5 03/10] ethdev: hide VMDq internal sizes David Marchand
2026-07-23 12:41 ` [PATCH v5 04/10] net/iavf: accept up to 32k unicast MAC addresses David Marchand
2026-07-23 12:41 ` [PATCH v5 05/10] net/iavf: fix duplicate MAC addresses install David Marchand
2026-07-23 12:41 ` [PATCH v5 06/10] net/mlx5: remove MAC addresses flush helper on Linux David Marchand
2026-07-23 12:41 ` [PATCH v5 07/10] net/mlx5: remove redundant MAC address index checks David Marchand
2026-07-23 12:41 ` [PATCH v5 08/10] net/mlx5: pass maximum number of unicast MAC to common code David Marchand
2026-07-23 17:35 ` Stephen Hemminger
2026-07-23 12:41 ` [PATCH v5 09/10] net/mlx5: use bitset for tracking MAC addresses David Marchand
2026-07-23 12:41 ` [PATCH v5 10/10] net/mlx5: accept more unicast " David Marchand
2026-07-27 7:20 ` [PATCH v5 00/10] Remove limitations coming from legacy VMDq David Marchand
2026-08-24 11:42 ` [PATCH v6 0/3] " David Marchand
2026-08-24 11:42 ` [PATCH v6 1/3] ethdev: check VMDq availability David Marchand
2026-08-24 11:42 ` [PATCH v6 2/3] ethdev: skip VMDq pools unless configured David Marchand
2026-08-24 16:21 ` Stephen Hemminger
2026-08-24 16:24 ` David Marchand
2026-08-24 16:39 ` Stephen Hemminger
2026-08-24 11:42 ` [PATCH v6 3/3] ethdev: hide VMDq internal sizes David Marchand
2026-08-24 17:01 ` [PATCH v6 0/3] Remove limitations coming from legacy VMDq Stephen Hemminger
2026-09-04 12:28 ` [PATCH v6 1/2] net/iavf: accept up to 32k unicast MAC addresses David Marchand
2026-09-04 12:28 ` [PATCH v6 2/2] net/iavf: fix duplicate MAC addresses install David Marchand
2026-09-09 9:39 ` Loftus, Ciara
2026-09-10 10:24 ` [PATCH v6 1/2] net/iavf: accept up to 32k unicast MAC addresses Burakov, Anatoly
2026-09-10 12:13 ` Burakov, Anatoly
2026-09-10 12:20 ` Burakov, Anatoly
2026-09-10 12:30 ` David Marchand
2026-09-10 12:38 ` Burakov, Anatoly [this message]
2026-09-08 9:27 ` [PATCH v6 1/5] net/mlx5: remove MAC addresses flush helper on Linux David Marchand
2026-09-08 9:27 ` [PATCH v6 2/5] net/mlx5: remove redundant MAC address index checks David Marchand
2026-09-08 9:27 ` [PATCH v6 3/5] net/mlx5: pass maximum number of unicast MAC to common code David Marchand
2026-09-08 9:27 ` [PATCH v6 4/5] net/mlx5: use bitset for tracking MAC addresses David Marchand
2026-09-08 9:27 ` [PATCH v6 5/5] net/mlx5: accept more unicast " David Marchand
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=b0990db2-3429-4b0c-bd77-3daea494ff83@intel.com \
--to=anatoly.burakov@intel.com \
--cc=bruce.richardson@intel.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=vladimir.medvedkin@intel.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;
as well as URLs for NNTP newsgroup(s).