mac80211, hostapd: always explicitly set beacon interval
One of the latest mac80211 updates added sanity checks, requiring the beacon intervals of all VIFs of the same radio to match. This often broke AP+11s setups, as these modes use different default intervals, at least in some configurations (observed on ath9k). Instead of relying on driver or hostapd defaults, change the scripts to always explicitly set the beacon interval, defaulting to 100. This also applies the beacon interval to 11s interfaces, which had been forgotten before. VIF-specific beacon_int setting is removed from hostapd.sh. Fixes FS#619. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
This commit is contained in:
parent
5e481881d7
commit
1a16cb9c67
4 changed files with 10 additions and 9 deletions
|
@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
|
|||
PKG_NAME:=mac80211
|
||||
|
||||
PKG_VERSION:=2017-01-31
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
|
||||
PKG_BACKPORT_VERSION:=
|
||||
PKG_HASH:=75e6d39e34cf156212a2509172a4a62b673b69eb4a1d9aaa565f7fa719fa2317
|
||||
|
|
|
@ -268,7 +268,7 @@ mac80211_hostapd_setup_base() {
|
|||
vht_max_mpdu_hw=11454
|
||||
[ "$vht_max_mpdu_hw" != 3895 ] && \
|
||||
vht_capab="$vht_capab[MAX-MPDU-$vht_max_mpdu_hw]"
|
||||
|
||||
|
||||
# maximum A-MPDU length exponent
|
||||
vht_max_a_mpdu_len_exp_hw=0
|
||||
[ "$(($vht_cap & 58720256))" -ge 8388608 -a 1 -le "$vht_max_a_mpdu_len_exp" ] && \
|
||||
|
@ -588,7 +588,7 @@ mac80211_setup_adhoc() {
|
|||
[ -n "$mcast_rate" ] && wpa_supplicant_add_rate mcval "$mcast_rate"
|
||||
|
||||
iw dev "$ifname" ibss join "$ssid" $freq $ibss_htmode fixed-freq $bssid \
|
||||
${beacon_int:+beacon-interval $beacon_int} \
|
||||
beacon-interval $beacon_int \
|
||||
${brstr:+basic-rates $brstr} \
|
||||
${mcval:+mcast-rate $mcval} \
|
||||
${keyspec:+keys $keyspec}
|
||||
|
@ -668,7 +668,9 @@ mac80211_setup_vif() {
|
|||
esac
|
||||
|
||||
freq="$(get_freq "$phy" "$channel")"
|
||||
iw dev "$ifname" mesh join "$mesh_id" freq $freq $mesh_htmode ${mcval:+mcast-rate $mcval}
|
||||
iw dev "$ifname" mesh join "$mesh_id" freq $freq $mesh_htmode \
|
||||
${mcval:+mcast-rate $mcval} \
|
||||
beacon-interval $beacon_int
|
||||
fi
|
||||
|
||||
for var in $MP_CONFIG_INT $MP_CONFIG_BOOL $MP_CONFIG_STRING; do
|
||||
|
@ -720,7 +722,7 @@ drv_mac80211_setup() {
|
|||
country chanbw distance \
|
||||
txpower antenna_gain \
|
||||
rxantenna txantenna \
|
||||
frag rts beacon_int htmode
|
||||
frag rts beacon_int:100 htmode
|
||||
json_get_values basic_rate_list basic_rate
|
||||
json_select ..
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=hostapd
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE_URL:=http://w1.fi/hostap.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
|
|
|
@ -76,7 +76,7 @@ hostapd_prepare_device_config() {
|
|||
local base="${config%%.conf}"
|
||||
local base_cfg=
|
||||
|
||||
json_get_vars country country_ie beacon_int doth require_mode legacy_rates
|
||||
json_get_vars country country_ie beacon_int:100 doth require_mode legacy_rates
|
||||
|
||||
hostapd_set_log_options base_cfg
|
||||
|
||||
|
@ -121,7 +121,7 @@ hostapd_prepare_device_config() {
|
|||
|
||||
[ -n "$rlist" ] && append base_cfg "supported_rates=$rlist" "$N"
|
||||
[ -n "$brlist" ] && append base_cfg "basic_rates=$brlist" "$N"
|
||||
[ -n "$beacon_int" ] && append base_cfg "beacon_int=$beacon_int" "$N"
|
||||
append base_cfg "beacon_int=$beacon_int" "$N"
|
||||
|
||||
cat > "$config" <<EOF
|
||||
driver=$driver
|
||||
|
@ -709,7 +709,6 @@ wpa_supplicant_add_network() {
|
|||
esac
|
||||
}
|
||||
[ -n "$bssid" ] && append network_data "bssid=$bssid" "$N$T"
|
||||
[ -n "$beacon_int" ] && append network_data "beacon_int=$beacon_int" "$N$T"
|
||||
|
||||
local bssid_blacklist bssid_whitelist
|
||||
json_get_values bssid_blacklist bssid_blacklist
|
||||
|
|
Loading…
Reference in a new issue