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>
