summaryrefslogtreecommitdiffstats
path: root/sys/dev/netfpga10g
diff options
context:
space:
mode:
authorbz <bz@FreeBSD.org>2014-04-18 14:21:10 +0000
committerbz <bz@FreeBSD.org>2014-04-18 14:21:10 +0000
commit0cd6870500947ef766e04e48ebae89e91cf375c6 (patch)
tree7a32e27f5f854c71eccb54b749f8d2f4e9ded23c /sys/dev/netfpga10g
parent9267b14be4c866d748483f9e923dc334b6170d21 (diff)
downloadFreeBSD-src-0cd6870500947ef766e04e48ebae89e91cf375c6.zip
FreeBSD-src-0cd6870500947ef766e04e48ebae89e91cf375c6.tar.gz
Now that I figured out where the ethernet addresses come from
on NetFPGA-10G, assign one to the interface by default in a very similar way. MFC after: 6 days X-Easter-Egg-Hunt: yes
Diffstat (limited to 'sys/dev/netfpga10g')
-rw-r--r--sys/dev/netfpga10g/nf10bmac/if_nf10bmac.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/sys/dev/netfpga10g/nf10bmac/if_nf10bmac.c b/sys/dev/netfpga10g/nf10bmac/if_nf10bmac.c
index 9eef549..f6130b7 100644
--- a/sys/dev/netfpga10g/nf10bmac/if_nf10bmac.c
+++ b/sys/dev/netfpga10g/nf10bmac/if_nf10bmac.c
@@ -446,7 +446,25 @@ static int
nf10bmac_reset(struct nf10bmac_softc *sc)
{
- /* Currently we cannot do anything. */
+ /*
+ * If we do not have an ether address set, initialize to the same
+ * OUI as NetFPGA-10G Linux driver does (which luckily seems
+ * unallocated). We just change the NIC specific part from
+ * the slightly long "\0NF10C0" to "\0NFBSD".
+ * Oh and we keep the way of setting it from a string as they do.
+ * It's an amazing way to hide it.
+ * XXX-BZ If NetFPGA gets their own OUI we should fix this.
+ */
+ if (sc->nf10bmac_eth_addr[0] == 0x00 &&
+ sc->nf10bmac_eth_addr[1] == 0x00 &&
+ sc->nf10bmac_eth_addr[2] == 0x00 &&
+ sc->nf10bmac_eth_addr[3] == 0x00 &&
+ sc->nf10bmac_eth_addr[4] == 0x00 &&
+ sc->nf10bmac_eth_addr[5] == 0x00) {
+ memcpy(&sc->nf10bmac_eth_addr, "\0NFBSD", ETHER_ADDR_LEN);
+ sc->nf10bmac_eth_addr[5] += sc->nf10bmac_unit;
+ }
+
return (0);
}
OpenPOWER on IntegriCloud