Requires backport of upstream patches:
Notes for QA:
When NM now changes the MAC address, it first tries to do so without taking the interface down. That is preferred, because taking an interface down causes kernel to drop IPv4 routes and IPv6 addresses and routes. In particular, that is bad if the user added them externally (e.g. with a dispatcher scripts).
So, NM tries to avoid taking it down, except:
- not for Wi-Fi devices (see bug 1656157)
- if changing the MAC address fails, NM assumes it was because the driver didn't allow to change the MAC address while being up. In that case, NM takes the interface down, tries again to set the MAC address, and takes the interface up again.