[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, ð_addr_init);
rte_ether_addr_copy(ð_addr_init, &data->mac_addrs[0]);
--
2.53.0
More information about the dev
mailing list