[PATCH v4 03/10] ethdev: hide VMDq internal sizes
David Marchand
david.marchand at redhat.com
Thu Jul 9 18:02:39 CEST 2026
Hide RTE_ETH_NUM_RECEIVE_MAC_ADDR and RTE_ETH_VMDQ_NUM_UC_HASH_ARRAY
in the driver API as those (ambiguous) macros are only a driver concern.
In practice, this is only used by the bnxt and ixgbe (+ clones) drivers.
Signed-off-by: David Marchand <david.marchand at redhat.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>
---
Changes since v2:
- added an entry in release notes,
---
doc/guides/rel_notes/release_26_07.rst | 3 +++
lib/ethdev/ethdev_driver.h | 8 +++++++-
lib/ethdev/rte_ethdev.h | 6 ------
3 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/doc/guides/rel_notes/release_26_07.rst b/doc/guides/rel_notes/release_26_07.rst
index 8e4e02e587..6b6fbe0b1a 100644
--- a/doc/guides/rel_notes/release_26_07.rst
+++ b/doc/guides/rel_notes/release_26_07.rst
@@ -321,6 +321,9 @@ API Changes
``RTE_ETH_MQ_TX_VMDQ_ONLY``).
* A check was added in ``rte_eth_dev_mac_addr_add`` to validate that the ``pool`` parameter is 0
when VMDq is not configured.
+ * The ``RTE_ETH_NUM_RECEIVE_MAC_ADDR`` and ``RTE_ETH_VMDQ_NUM_UC_HASH_ARRAY`` macros are VMDq
+ related and are sizes of internal arrays in ethdev that only drivers need to care about.
+ Those macros are moved to the driver only ethdev API.
* **mlx5: promoted driver event and steering management APIs from experimental to stable.**
diff --git a/lib/ethdev/ethdev_driver.h b/lib/ethdev/ethdev_driver.h
index 0f336f9567..294f68504b 100644
--- a/lib/ethdev/ethdev_driver.h
+++ b/lib/ethdev/ethdev_driver.h
@@ -119,6 +119,12 @@ struct __rte_cache_aligned rte_eth_dev {
struct rte_eth_dev_sriov;
struct rte_eth_dev_owner;
+/* Definitions used for receive MAC address */
+#define RTE_ETH_NUM_RECEIVE_MAC_ADDR 128 /**< Maximum nb. of receive mac addr. */
+
+/* Definitions used for unicast hash */
+#define RTE_ETH_VMDQ_NUM_UC_HASH_ARRAY 128 /**< Maximum nb. of UC hash array. */
+
/**
* @internal
* The data part, with no function pointers, associated with each Ethernet
@@ -153,7 +159,7 @@ struct __rte_cache_aligned rte_eth_dev_data {
* The first entry (index zero) is the default address.
*/
struct rte_ether_addr *mac_addrs;
- /** Bitmap associating MAC addresses to pools */
+ /** Bitmap associating MAC addresses to VMDq pools */
uint64_t mac_pool_sel[RTE_ETH_NUM_RECEIVE_MAC_ADDR];
/**
* Device Ethernet MAC addresses of hash filtering.
diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
index e2a5ba1549..bee47549cb 100644
--- a/lib/ethdev/rte_ethdev.h
+++ b/lib/ethdev/rte_ethdev.h
@@ -903,12 +903,6 @@ rte_eth_rss_hf_refine(uint64_t rss_hf)
#define RTE_ETH_VLAN_ID_MAX 0x0FFF /**< VLAN ID is in lower 12 bits*/
/**@}*/
-/* Definitions used for receive MAC address */
-#define RTE_ETH_NUM_RECEIVE_MAC_ADDR 128 /**< Maximum nb. of receive mac addr. */
-
-/* Definitions used for unicast hash */
-#define RTE_ETH_VMDQ_NUM_UC_HASH_ARRAY 128 /**< Maximum nb. of UC hash array. */
-
/**@{@name VMDq Rx mode
* @see rte_eth_vmdq_rx_conf.rx_mode
*/
--
2.54.0
More information about the dev
mailing list