|
|
@ -131,6 +131,7 @@ enable_broadcom() { |
|
|
|
config_get frag "$device" frag |
|
|
|
config_get frag "$device" frag |
|
|
|
config_get rts "$device" rts |
|
|
|
config_get rts "$device" rts |
|
|
|
config_get hwmode "$device" hwmode |
|
|
|
config_get hwmode "$device" hwmode |
|
|
|
|
|
|
|
config_get htmode "$device" htmode |
|
|
|
local vif_pre_up vif_post_up vif_do_up vif_txpower |
|
|
|
local vif_pre_up vif_post_up vif_do_up vif_txpower |
|
|
|
local doth=0 |
|
|
|
local doth=0 |
|
|
|
local wmm=1 |
|
|
|
local wmm=1 |
|
|
@ -161,15 +162,40 @@ enable_broadcom() { |
|
|
|
;; |
|
|
|
;; |
|
|
|
esac |
|
|
|
esac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[ ${channel:-0} -ge 1 -a ${channel:-0} -le 14 ] && band=2 |
|
|
|
|
|
|
|
[ ${channel:-0} -ge 36 ] && band=1 |
|
|
|
|
|
|
|
|
|
|
|
case "$hwmode" in |
|
|
|
case "$hwmode" in |
|
|
|
*b) hwmode=0;; |
|
|
|
*na) nmode=1; nreqd=0;; |
|
|
|
*bg) hwmode=1;; |
|
|
|
*a) nmode=0;; |
|
|
|
*g) hwmode=2;; |
|
|
|
*ng) gmode=1; nmode=1; nreqd=0;; |
|
|
|
*gst) hwmode=4;; |
|
|
|
*n) nmode=1; nreqd=1;; |
|
|
|
*lrs) hwmode=5;; |
|
|
|
*b) gmode=0; nmode=0;; |
|
|
|
*) hwmode=1;; |
|
|
|
*bg) gmode=1; nmode=0;; |
|
|
|
|
|
|
|
*g) gmode=2; nmode=0;; |
|
|
|
|
|
|
|
*gst) gmode=4; nmode=0;; |
|
|
|
|
|
|
|
*lrs) gmode=5; nmode=0;; |
|
|
|
|
|
|
|
*) case "$band" in |
|
|
|
|
|
|
|
2) gmode=1; nmode=1; nreqd=0;; |
|
|
|
|
|
|
|
1) nmode=1; nreqd=0;; |
|
|
|
|
|
|
|
*) gmode=1; nmode=1; nreqd=0;; |
|
|
|
|
|
|
|
esac |
|
|
|
|
|
|
|
;; |
|
|
|
esac |
|
|
|
esac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Use 'nmode' for N-Phy only |
|
|
|
|
|
|
|
[ "$(wlc ifname $device phytype)" = 4 ] || nmode= |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Use 'chanspec' instead of 'channel' for 'N' modes (See bcmwifi.h) |
|
|
|
|
|
|
|
[ ${nmode:-0} -ne 0 -a -n "$band" ] && { |
|
|
|
|
|
|
|
case "$htmode" in |
|
|
|
|
|
|
|
HT40-) chanspec=$(printf 0x%x%x%02x $band 0xe $(($channel - 2))); channel=;; |
|
|
|
|
|
|
|
HT40+) chanspec=$(printf 0x%x%x%02x $band 0xd $(($channel + 2))); channel=;; |
|
|
|
|
|
|
|
HT20) chanspec=$(printf 0x%x%x%02x $band 0xb $channel); channel=;; |
|
|
|
|
|
|
|
*) ;; |
|
|
|
|
|
|
|
esac |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for vif in $vifs; do |
|
|
|
for vif in $vifs; do |
|
|
|
config_get vif_txpower "$vif" txpower |
|
|
|
config_get vif_txpower "$vif" txpower |
|
|
|
|
|
|
|
|
|
|
@ -322,7 +348,10 @@ enable_broadcom() { |
|
|
|
wlc ifname "$device" stdin <<EOF |
|
|
|
wlc ifname "$device" stdin <<EOF |
|
|
|
$ifdown |
|
|
|
$ifdown |
|
|
|
|
|
|
|
|
|
|
|
gmode ${hwmode:-1} |
|
|
|
${nmode:+band ${band:-0}} |
|
|
|
|
|
|
|
${nmode:+nmode $nmode} |
|
|
|
|
|
|
|
${nmode:+${nreqd:+nreqd $nreqd}} |
|
|
|
|
|
|
|
${gmode:+gmode $gmode} |
|
|
|
apsta $apsta |
|
|
|
apsta $apsta |
|
|
|
ap $ap |
|
|
|
ap $ap |
|
|
|
${mssid:+mssid $mssid} |
|
|
|
${mssid:+mssid $mssid} |
|
|
@ -344,6 +373,7 @@ wds none |
|
|
|
${wds:+wds $wds} |
|
|
|
${wds:+wds $wds} |
|
|
|
country ${country:-US} |
|
|
|
country ${country:-US} |
|
|
|
${channel:+channel $channel} |
|
|
|
${channel:+channel $channel} |
|
|
|
|
|
|
|
${chanspec:+chanspec $chanspec} |
|
|
|
maxassoc ${maxassoc:-128} |
|
|
|
maxassoc ${maxassoc:-128} |
|
|
|
slottime ${slottime:--1} |
|
|
|
slottime ${slottime:--1} |
|
|
|
${frameburst:+frameburst $frameburst} |
|
|
|
${frameburst:+frameburst $frameburst} |
|
|
|