diff options
Diffstat (limited to 'package/mac80211/files/lib/wifi')
| -rw-r--r-- | package/mac80211/files/lib/wifi/mac80211.sh | 37 | 
1 files changed, 33 insertions, 4 deletions
diff --git a/package/mac80211/files/lib/wifi/mac80211.sh b/package/mac80211/files/lib/wifi/mac80211.sh index ac1562fb2..386bda8e5 100644 --- a/package/mac80211/files/lib/wifi/mac80211.sh +++ b/package/mac80211/files/lib/wifi/mac80211.sh @@ -13,6 +13,8 @@ mac80211_hostapd_setup_base() {  	config_get country "$device" country  	config_get hwmode "$device" hwmode  	config_get channel "$device" channel +	config_get beacon_int "$device" beacon_int +	config_get basic_rate_list "$device" basic_rate  	config_get_bool noscan "$device" noscan  	[ -n "$channel" -a -z "$hwmode" ] && wifi_fixup_hwmode "$device"  	[ "$channel" = auto ] && channel= @@ -51,6 +53,16 @@ mac80211_hostapd_setup_base() {  			echo "$mac" >> $macfile  		done  	} + +	local br brval brstr +	[ -n "$basic_rate_list" ] && { +		for br in $basic_rate_list; do +			brval="$(($br / 100))" +			[ -n "$brstr" ] && brstr="$brstr " +			brstr="$brstr$brval" +		done +	} +	  	cat >> "$cfgfile" <<EOF  ctrl_interface=/var/run/hostapd-$phy  driver=nl80211 @@ -92,8 +104,10 @@ tx_queue_data0_cwmax=7  tx_queue_data0_burst=1.5  ${hwmode:+hw_mode=$hwmode}  ${channel:+channel=$channel} +${beacon_int:+beacon_int=$beacon_int}  ${country:+country_code=$country}  ${noscan:+noscan=$noscan} +${brstr:+basic_rates=$brstr}  $base_cfg  EOF @@ -127,6 +141,8 @@ mac80211_hostapd_setup_bss() {  	local macaddr hidden maxassoc wmm  	config_get macaddr "$vif" macaddr  	config_get maxassoc "$vif" maxassoc +	config_get dtim_period "$vif" dtim_period +	config_get max_listen_int "$vif" max_listen_int  	config_get_bool hidden "$vif" hidden 0  	config_get_bool wmm "$vif" wmm 1  	cat >> /var/run/hostapd-$phy.conf <<EOF @@ -134,6 +150,8 @@ $hostapd_cfg  wmm_enabled=$wmm  bssid=$macaddr  ignore_broadcast_ssid=$hidden +${dtim_period:+dtim_period=$dtim_period} +${max_listen_int:+max_listen_interval=$max_listen_int}  ${maxassoc:+max_num_sta=$maxassoc}  EOF  } @@ -390,8 +408,8 @@ enable_mac80211() {  				adhoc)  					config_get bssid "$vif" bssid  					config_get ssid "$vif" ssid -					config_get bintval "$vif" bintval -					config_get basicrates "$vif" basicrates +					config_get beacon_int "$device" beacon_int +					config_get basic_rate_list "$device" basic_rate  					config_get encryption "$vif" encryption  					config_get key "$vif" key 1  					config_get mcast_rate "$vif" mcast_rate @@ -416,6 +434,17 @@ enable_mac80211() {  						esac  					} +					local br brval brsub brstr +					[ -n "$basic_rate_list" ] && { +						for br in $basic_rate_list; do +							brval="$(($br / 1000))" +							brsub="$((($br / 100) % 10))" +							[ "$brsub" -gt 0 ] && brval="$brval.$brsub" +							[ -n "$brstr" ] && brstr="$brstr," +							brstr="$brstr$brval" +						done +					} +  					local mcval=""  					[ -n "$mcast_rate" ] && {  						mcval="$(($mcast_rate / 1000))" @@ -425,8 +454,8 @@ enable_mac80211() {  					iw dev "$ifname" ibss join "$ssid" $freq \  						${fixed:+fixed-freq} $bssid \ -						${bintval:+beacon-interval $bintval} \ -						${basicrates:+basic-rates $basicrates} \ +						${beacon_int:+beacon-interval $beacon_int} \ +						${brstr:+basic-rates $brstr} \  						${mcval:+mcast-rate $mcval} \  						${keyspec:+keys $keyspec}  				;;  | 
