aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2011-11-06 19:57:07 +0000
committerJo-Philipp Wich <jow@openwrt.org>2011-11-06 19:57:07 +0000
commitf0eb2383b89fe0a7f4c4ca627b65d7ccc9c153c7 (patch)
tree2335a51c29a0f47f4161d878c94fc451df78d148
parentbeaaca872bba5ecd33c002d424214d10ae773f84 (diff)
downloadmaster-187ad058-f0eb2383b89fe0a7f4c4ca627b65d7ccc9c153c7.tar.gz
master-187ad058-f0eb2383b89fe0a7f4c4ca627b65d7ccc9c153c7.tar.bz2
master-187ad058-f0eb2383b89fe0a7f4c4ca627b65d7ccc9c153c7.zip
[package] madwifi: 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. ath0 for network 1 on phy 1 and ath0-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@28785 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rwxr-xr-xpackage/madwifi/files/lib/wifi/madwifi.sh11
1 files changed, 9 insertions, 2 deletions
diff --git a/package/madwifi/files/lib/wifi/madwifi.sh b/package/madwifi/files/lib/wifi/madwifi.sh
index 93e68f51e8..8a4572db60 100755
--- a/package/madwifi/files/lib/wifi/madwifi.sh
+++ b/package/madwifi/files/lib/wifi/madwifi.sh
@@ -31,14 +31,19 @@ scan_atheros() {
local adhoc ahdemo sta ap monitor disabled
[ ${device%[0-9]} = "wifi" ] && config_set "$device" phy "$device"
+
+ local ifidx=0
config_get vifs "$device" vifs
for vif in $vifs; do
config_get_bool disabled "$vif" disabled 0
[ $disabled = 0 ] || continue
+ local vifname
+ [ $ifidx -gt 0 ] && vifname="ath${device#radio}-$ifidx" || vifname="ath${device#radio}"
+
config_get ifname "$vif" ifname
- config_set "$vif" ifname "${ifname:-ath}"
+ config_set "$vif" ifname "${ifname:-$vifname}"
config_get mode "$vif" mode
case "$mode" in
@@ -57,6 +62,8 @@ scan_atheros() {
;;
*) echo "$device($vif): Invalid mode, ignored."; continue;;
esac
+
+ ifidx=$(($ifidx + 1))
done
case "${adhoc:+1}:${sta:+1}:${ap:+1}" in
@@ -205,7 +212,7 @@ enable_atheros() {
esac
[ "$nosbeacon" = 1 ] || nosbeacon=""
- ifname=$(wlanconfig "$ifname" create wlandev "$phy" wlanmode "$mode" ${nosbeacon:+nosbeacon})
+ ifname=$(wlanconfig "$ifname" create nounit wlandev "$phy" wlanmode "$mode" ${nosbeacon:+nosbeacon})
[ $? -ne 0 ] && {
echo "enable_atheros($device): Failed to set up $mode vif $ifname" >&2
continue