[PATCH v3 3/5] ethdev: hide VMDq internal sizes
David Marchand
david.marchand at redhat.com
Sun May 10 19:03:03 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>
---
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 3d2e71102b..b425e6f8cd 100644
--- a/doc/guides/rel_notes/release_26_07.rst
+++ b/doc/guides/rel_notes/release_26_07.rst
@@ -99,6 +99,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.
ABI Changes
diff --git a/lib/ethdev/ethdev_driver.h b/lib/ethdev/ethdev_driver.h
index 1255cd6f2c..a4e9cf5b90 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 0d8e2d0236..27d2ddc0c1 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.53.0
More information about the dev
mailing list