mac80211: fix HT mode selection for ad-hoc

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43769
lede-17.01
Felix Fietkau 2014-12-22 21:46:38 +00:00
parent 93192e65e8
commit ff3464eb30
1 changed files with 32 additions and 3 deletions

View File

@ -88,7 +88,7 @@ mac80211_hostapd_setup_base() {
[ "$auto_channel" -gt 0 ] && channel=acs_survey [ "$auto_channel" -gt 0 ] && channel=acs_survey
json_get_vars noscan htmode json_get_vars noscan
json_get_values ht_capab_list ht_capab json_get_values ht_capab_list ht_capab
ieee80211n=1 ieee80211n=1
@ -523,7 +523,36 @@ mac80211_setup_adhoc() {
mcval= mcval=
[ -n "$mcast_rate" ] && hostapd_add_rate mcval "$mcast_rate" [ -n "$mcast_rate" ] && hostapd_add_rate mcval "$mcast_rate"
iw dev "$ifname" ibss join "$ssid" $freq $htmode fixed-freq $bssid \ case "$htmode" in
VHT20|HT20) ibss_htmode=HT20;;
HT40*|VHT40|VHT80|VHT160)
case "$hwmode" in
a)
case "$(( ($channel / 4) % 2 ))" in
1) ibss_htmode="HT40+" ;;
0) ibss_htmode="HT40-";;
esac
;;
*)
case "$htmode" in
HT40+) ibss_htmode="HT40+";;
HT40-) ibss_htmode="HT40-";;
*)
if [ "$channel" -lt 7 ]; then
ibss_htmode="HT40+"
else
ibss_htmode="HT40-"
fi
;;
esac
;;
esac
[ "$auto_channel" -gt 0 ] && ibss_htmode="HT40+"
;;
*) ibss_htmode="" ;;
esac
iw dev "$ifname" ibss join "$ssid" $freq $ibss_htmode fixed-freq $bssid \
${beacon_int:+beacon-interval $beacon_int} \ ${beacon_int:+beacon-interval $beacon_int} \
${brstr:+basic-rates $brstr} \ ${brstr:+basic-rates $brstr} \
${mcval:+mcast-rate $mcval} \ ${mcval:+mcast-rate $mcval} \
@ -614,7 +643,7 @@ drv_mac80211_setup() {
country chanbw distance \ country chanbw distance \
txpower antenna_gain \ txpower antenna_gain \
rxantenna txantenna \ rxantenna txantenna \
frag rts beacon_int frag rts beacon_int htmode
json_get_values basic_rate_list basic_rate json_get_values basic_rate_list basic_rate
json_select .. json_select ..