On Thu, 2019-08-15 at 11:57 -0700, James Prestwood wrote: > This is an example of how a devices MAC address could be changed while > the interface is up. Currently RTNL and mac80211 both require the > interface be down before changing the MAC. > > After poking around a bit I found that some drivers can actually > change the MAC while the iface is up. Allowing user space to do this > while the iface is up would elminate a few potential race conditions > that arise when changing the MAC from user space. > > This commit does a few things: > - Adds an EXT_FEATURE that user space can check to see if the driver > allows this MAC changing. > - Adds a new NL80211_ATTR for including a "random mac" to > CMD_CONNECT. This MAC is passed down the stack and gets set to > the net_device's address. > - Set this wiphy extended feature in iwlwifi (just as an example) > - Relax checks in mac80211 which check if the interface is running > - Set IFF_LIVE_ADDR_CHANGE on net_device. Note: I know setting this > where I did is likely not the right way to do it, but for this > proof-of-concept it works. With guidance I can move this around > to a proper place. It actually seems wrong to set IFF_LIVE_ADDR_CHANGE at all, because you don't actually support that - you only support setting it while not connected? johannes