Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Aug 2014 23:31:19 +0000
From:      "Pokala, Ravi" <rpokala@panasas.com>
To:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Common storage of original MAC address
Message-ID:  <D0168955.11C3AD%rpokala@panasas.com>

next in thread | raw e-mail | index | archive | help

Hi folks,

At attach-time, the NIC drivers call ether_ifattach(), which stores the
MAC address in the sockaddr_dl. If the MAC is subsequently changed (like
by adding the interface to a lagg), if_setlladdr() changes the value in
the sockaddr_dl. At least, that's the way I'm reading things - is that
correct?

If so, then we do not keep a copy of the original MAC address. For a
couple of reasons (diagnostics, asset tracking and reporting), it would be
very nice if the original MAC were kept somewhere, even after the working
MAC was changed by if_setlladdr().

Up till now, Panasas has been saving the original MAC in the softc of
specific network drivers that we use, and making it accessible via a
sysctl. That's something we have to do on a per-driver basis, and
something we have to keep track of on our own. We'd like to put that
information in a structure all the NIC drivers already use, and get that
code upstream. Storing it would require a simple change to
ether_ifattach() to stash it in the new location in addition to in the
sockaddr_dl, and adding some standard way (a new ioctl or sysctl?) to
access it. Notably, it would not require changing all the individual
drivers. 

Are there any objections to this idea? Any suggestions as to where we
might stash the original MAC?

Thanks,

Ravi




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D0168955.11C3AD%rpokala>