[PATCH 1/7] net/nfb: use MAC address assigned to card

spinler at cesnet.cz spinler at cesnet.cz
Fri Feb 6 18:04:29 CET 2026


From: Martin Spinler <spinler at cesnet.cz>

Check for a specific MAC address assigned to a card.
If there is no assigned MAC address, then use a random MAC as fallback.

Signed-off-by: Martin Spinler <spinler at cesnet.cz>
---
 drivers/net/nfb/nfb_ethdev.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/net/nfb/nfb_ethdev.c b/drivers/net/nfb/nfb_ethdev.c
index 157f04a891..ca3dbad879 100644
--- a/drivers/net/nfb/nfb_ethdev.c
+++ b/drivers/net/nfb/nfb_ethdev.c
@@ -11,6 +11,7 @@
 
 #include <nfb/nfb.h>
 #include <nfb/ndp.h>
+#include <netcope/eth.h>
 #include <netcope/rxmac.h>
 #include <netcope/txmac.h>
 
@@ -639,10 +640,14 @@ nfb_eth_dev_init(struct rte_eth_dev *dev, void *init_data)
 			goto err_malloc_mac_addrs;
 		}
 
-		rte_eth_random_addr(eth_addr_init.addr_bytes);
-		eth_addr_init.addr_bytes[0] = eth_addr.addr_bytes[0];
-		eth_addr_init.addr_bytes[1] = eth_addr.addr_bytes[1];
-		eth_addr_init.addr_bytes[2] = eth_addr.addr_bytes[2];
+		ret = nc_ifc_get_default_mac(internals->nfb, ifc->id, eth_addr_init.addr_bytes,
+			sizeof(eth_addr_init.addr_bytes));
+		if (ret != 0) {
+			rte_eth_random_addr(eth_addr_init.addr_bytes);
+			eth_addr_init.addr_bytes[0] = eth_addr.addr_bytes[0];
+			eth_addr_init.addr_bytes[1] = eth_addr.addr_bytes[1];
+			eth_addr_init.addr_bytes[2] = eth_addr.addr_bytes[2];
+		}
 
 		nfb_eth_mac_addr_set(dev, &eth_addr_init);
 		rte_ether_addr_copy(&eth_addr_init, &data->mac_addrs[0]);
-- 
2.53.0



More information about the dev mailing list