done
config_set "$device" vifs "${adhoc_if:-$sta_if $ap_if $mon_if}"
- ifdown="down"
- for vif in 0 1 2 3; do
- append ifdown "vif $vif" "$N"
- append ifdown "enabled 0" "$N"
- done
-
ap=1
infra=1
if [ "$_c" -gt 1 ]; then
disable_broadcom() {
local device="$1"
set_wifi_down "$device"
- wlc ifname "$device" down
(
include /lib/network
[ -e $pid_file ] && start-stop-daemon -K -q -s SIGKILL -p $pid_file && rm $pid_file
# make sure the interfaces are down and removed from all bridges
- local dev
- for dev in $device ${device}-1 ${device}-2 ${device}-3; do
- ifconfig "$dev" down 2>/dev/null >/dev/null && {
- unbridge "$dev"
- }
+ local dev ifname
+ for dev in /sys/class/net/wds${device##wl}-* /sys/class/net/${device}-* /sys/class/net/${device}; do
+ if [ -e "$dev" ]; then
+ ifname=${dev##/sys/class/net/}
+ ifconfig "$ifname" down
+ unbridge "$ifname"
+ fi
done
+
+ # make sure all of the devices are disabled in the driver
+ local ifdown=
+ local bssmax=$(wlc ifname "$device" bssmax)
+ local vif=$((${bssmax:-4} - 1))
+ append ifdown "down" "$N"
+ append ifdown "wds none" "$N"
+ while [ $vif -ge 0 ]; do
+ append ifdown "vif $vif" "$N"
+ append ifdown "enabled 0" "$N"
+ vif=$(($vif - 1))
+ done
+
+ wlc ifname "$device" stdin <<EOF
+$ifdown
+leddc 0xffff
+EOF
)
true
}
esac
}
+ local leddc = $(wlc ifname "$device" leddc)
+ if [ "$leddc" -eq 0xffff ]; then
+ leddc = 0x0;
+ fi
+
local _c=0
local nas="$(which nas)"
local if_pre_up if_up nas_cmd
local vif vif_pre_up vif_post_up vif_do_up vif_txpower
+ local bssmax=$(wlc ifname "$device" bssmax)
+ bssmax=${bssmax:-4}
for vif in $vifs; do
+ [ $_c -ge $bssmax ] && break
+
config_get vif_txpower "$vif" txpower
local mode
[ "$ifname" != "${ifname##${device}-}" ] && if_cmd="if_up"
append $if_cmd "macaddr=\$(wlc ifname '$ifname' cur_etheraddr)" ";$N"
append $if_cmd "ifconfig '$ifname' \${macaddr:+hw ether \$macaddr}" ";$N"
+ append if_up "ifconfig '$ifname' up" ";$N"
local net_cfg="$(find_net_config "$vif")"
[ -z "$net_cfg" ] || {
_c=$(($_c + 1))
done
wlc ifname "$device" stdin <<EOF
-$ifdown
-
${macaddr:+bssid $macaddr}
${macaddr:+cur_etheraddr $macaddr}
band ${band:-0}
${nmode:+nmode $nmode}
${nmode:+${nreqd:+nreqd $nreqd}}
${gmode:+gmode $gmode}
+leddc $leddc
apsta $apsta
ap $ap
${mssid:+mssid $mssid}
radio ${radio:-1}
macfilter ${macfilter:-0}
maclist ${maclist:-none}
-wds none
${wds:+wds $wds}
country ${country:-US}
${channel:+channel $channel}