Sfoglia il codice sorgente

mac80211: change wireless ifname numbering schema Instead of simply counting up until we hit a free iface, group ifnames by wiphy so that the first wlanX on a phy gets the phy number and following ifaces an index-suffix, e.g. wlan0 for network 1 on phy 1 and wlan0-1 for network 2 on phy 1. This fixes state var confusion when operating multiple radios and allows to reliably take down and restart one radio only, even if the number of networks changes in between. This should, along with other changes in LuCI, fix #10335.

SVN-Revision: 28784
Jo-Philipp Wich 14 anni fa
parent
commit
d7205a9021
1 ha cambiato i file con 3 aggiunte e 6 eliminazioni
  1. 3 6
      package/mac80211/files/lib/wifi/mac80211.sh

+ 3 - 6
package/mac80211/files/lib/wifi/mac80211.sh

@@ -329,13 +329,9 @@ enable_mac80211() {
 
 	wifi_fixup_hwmode "$device" "g"
 	for vif in $vifs; do
-		while [ -d "/sys/class/net/wlan$i" ]; do
-			i=$(($i + 1))
-		done
-
 		config_get ifname "$vif" ifname
 		[ -n "$ifname" ] || {
-			ifname="wlan$i"
+			[ $i -gt 0 ] && ifname="wlan${phy#phy}-$i" || ifname="wlan${phy#phy}"
 		}
 		config_set "$vif" ifname "$ifname"
 
@@ -351,7 +347,6 @@ enable_mac80211() {
 				# Hostapd will handle recreating the interface and
 				# it's accompanying monitor
 				apidx="$(($apidx + 1))"
-				i=$(($i + 1))
 				[ "$apidx" -gt 1 ] || iw phy "$phy" interface add "$ifname" type managed
 			;;
 			mesh)
@@ -404,6 +399,8 @@ enable_mac80211() {
 		# wifi-device) if the latter doesn't exist
 		txpower="${txpower:-$vif_txpower}"
 		[ -z "$txpower" ] || iw dev "$ifname" set txpower fixed "${txpower%%.*}00"
+
+		i=$(($i + 1))
 	done
 
 	local start_hostapd=