[package] mac80211: change wireless ifname numbering schema
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 6 Nov 2011 18:49:17 +0000 (18:49 +0000)
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 6 Nov 2011 18:49:17 +0000 (18:49 +0000)
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.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28784 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/mac80211/files/lib/wifi/mac80211.sh

index 1ae0c20..738c2aa 100644 (file)
@@ -329,13 +329,9 @@ enable_mac80211() {
 
        wifi_fixup_hwmode "$device" "g"
        for vif in $vifs; do
 
        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" ] || {
                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"
 
                }
                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))"
                                # 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)
                                [ "$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"
                # 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=
        done
 
        local start_hostapd=
This page took 0.030602 seconds and 4 git commands to generate.