Avoid "ifconfig down" if the macaddr is not going to change. For wireless interfaces, downing the interface after hostapd has been started is unsupported and not guaranteed to work at all, but that is exactly was OpenWRT does right now (maybe not for netifd).
And in this case it was alrady set by enable_mac80211 before hostapd was started, so it's not going to change in prepare_interface. Quoting Johannes Berg: "Wow, ok, setting the interface down while the AP is up really isn't a valid use of it. I'm actually amazed that it ever works at all when you do this. Either this should be done the other way around, or hostapd needs to get some smarts about it. For example, with the start-AP function transition, I'm not sure even *beacon* after you do this..." Signed-off-by: Tobias Diedrich <ranma+open...@tdiedrich.de> Index: package/base-files-network/files/lib/network/config.sh =================================================================== --- package/base-files-network/files/lib/network/config.sh (revision 31774) +++ package/base-files-network/files/lib/network/config.sh (working copy) @@ -184,7 +184,11 @@ config_get mtu "$config" mtu [ -n "$macaddr" ] || config_get macaddr "$config" macaddr config_get txqueuelen "$config" txqueuelen - [ -n "$macaddr" ] && $DEBUG ifconfig "$iface" down + local oldmacaddr + local uppermacaddr + oldmacaddr=`ifconfig "$iface" | head -1 | sed -e 's@.*HWaddr \([0-9A-F:]*\).*@\1@'` + uppermacaddr=`echo -n "$macaddr" | tr a-f A-F` + [ -n "$macaddr" -a "$uppermacaddr" != "$oldmacaddr" ] && $DEBUG ifconfig "$iface" down $DEBUG ifconfig "$iface" ${macaddr:+hw ether "$macaddr"} ${mtu:+mtu $mtu} ${txqueuelen:+txqueuelen $txqueuelen} up [ "$proto" = none ] || ifconfig "$iface" 0.0.0.0 -- Tobias PGP: http://8ef7ddba.uguu.de _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel