svn commit: r358515 - head/sys/net
Kyle Evans
kevans at FreeBSD.org
Mon Mar 2 02:45:58 UTC 2020
Author: kevans
Date: Mon Mar 2 02:45:57 2020
New Revision: 358515
URL: https://svnweb.freebsd.org/changeset/base/358515
Log:
if_edsc: generate an arbitrary MAC address
When generating an cloned interface instance in edsc_clone_create(),
generate a MAC address from the FF OUI with ether_gen_addr(). This allows us
to have unique local-link addresses. Previously, the MAC address was zero.
Submitted by: Neel Chauhan <neel AT neelc DOT org>
Differential Revision: https://reviews.freebsd.org/D23842
Modified:
head/sys/net/if_edsc.c
Modified: head/sys/net/if_edsc.c
==============================================================================
--- head/sys/net/if_edsc.c Mon Mar 2 02:45:52 2020 (r358514)
+++ head/sys/net/if_edsc.c Mon Mar 2 02:45:57 2020 (r358515)
@@ -98,7 +98,7 @@ edsc_clone_create(struct if_clone *ifc, int unit, cadd
{
struct edsc_softc *sc;
struct ifnet *ifp;
- static u_char eaddr[ETHER_ADDR_LEN]; /* 0:0:0:0:0:0 */
+ struct ether_addr eaddr;
/*
* Allocate soft and ifnet structures. Link each to the other.
@@ -149,11 +149,15 @@ edsc_clone_create(struct if_clone *ifc, int unit, cadd
ifp->if_snd.ifq_maxlen = ifqmaxlen;
/*
+ * Generate an arbitrary MAC address for the cloned interface.
+ */
+ ether_gen_addr(ifp, &eaddr);
+
+ /*
* Do ifnet initializations common to all Ethernet drivers
* and attach to the network interface framework.
- * TODO: Pick a non-zero link level address.
*/
- ether_ifattach(ifp, eaddr);
+ ether_ifattach(ifp, eaddr.octet);
/*
* Now we can mark the interface as running, i.e., ready
More information about the svn-src-head
mailing list