1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-12-24 14:55:32 +02:00

[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
This commit is contained in:
jow 2011-11-06 19:57:07 +00:00
parent fcb4e88f44
commit ab435ac770

View File

@ -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