From 2eb1c2d1df2f93d1722ddee225a21561c689f689 Mon Sep 17 00:00:00 2001 From: nbd Date: Wed, 20 Jan 2010 02:26:05 +0000 Subject: mac80211: restructure /lib/wifi/mac80211.sh use the new multi-bss single instance hostapd mode move mac80211 specific bits out of /lib/wifi/hostapd.sh add a new option 'htmode' for switching between HT20 and HT40+,HT40- git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19235 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/mac80211/files/lib/wifi/mac80211.sh | 195 +++++++++++++++++++++++----- 1 file changed, 164 insertions(+), 31 deletions(-) (limited to 'package/mac80211/files/lib/wifi/mac80211.sh') diff --git a/package/mac80211/files/lib/wifi/mac80211.sh b/package/mac80211/files/lib/wifi/mac80211.sh index dea57223bc..b3072b79b3 100644 --- a/package/mac80211/files/lib/wifi/mac80211.sh +++ b/package/mac80211/files/lib/wifi/mac80211.sh @@ -1,8 +1,129 @@ #!/bin/sh append DRIVERS "mac80211" +mac80211_hostapd_setup_base() { + local phy="$1" + local ifname="$2" + + cfgfile="/var/run/hostapd-$phy.conf" + config_get device "$vif" device + config_get country "$device" country + config_get hwmode "$device" hwmode + config_get channel "$device" channel + [ -n "$channel" -a -z "$hwmode" ] && wifi_fixup_hwmode "$device" + [ "$channel" = auto ] && channel= + [ -n "$hwmode" ] && { + config_get hwmode_11n "$device" hwmode_11n + [ -n "$hwmode_11n" ] && { + hwmode="$hwmode_11n" + append base_cfg "ieee80211n=1" "$N" + config_get htmode "$device" htmode + config_get ht_capab_list "$device" ht_capab + case "$htmode" in + HT20|HT40+|HT40-) ht_capab="[$htmode]";; + *)ht_capab=;; + esac + for cap in $ht_capab_list; do + ht_capab="$ht_capab[$cap]" + done + [ -n "$ht_capab" ] && append base_cfg "ht_capab=$ht_capab" "$N" + } + } + cat > "$cfgfile" <