117 lines
4.6 KiB
Diff
117 lines
4.6 KiB
Diff
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
|
Date: Sat, 13 May 2017 16:17:44 +0200
|
|
Subject: 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>
|
|
|
|
diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile
|
|
index 7d7065d4ecaa4bd9eec8fedfd8f16f27d826e8aa..a326965016f35d2a7fcc061eb5dc4fd2060a3261 100644
|
|
--- a/package/kernel/mac80211/Makefile
|
|
+++ b/package/kernel/mac80211/Makefile
|
|
@@ -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
|
|
diff --git a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
|
|
index baa023ecf63ba3515e1458064e1b14bc5c74a8bc..82c374353ec98259e57c2568843ca9ef6b3a4ca2 100644
|
|
--- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
|
|
+++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
|
|
@@ -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" ] && \
|
|
@@ -566,7 +566,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}
|
|
@@ -646,7 +646,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
|
|
@@ -698,7 +700,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 ..
|
|
|
|
diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile
|
|
index f3aa94b6eaf1d3370f69b21e8e4bd22dfc1f5931..b7cc6b9c34f67685b92c89de310aedbf8462cb62 100644
|
|
--- a/package/network/services/hostapd/Makefile
|
|
+++ b/package/network/services/hostapd/Makefile
|
|
@@ -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
|
|
diff --git a/package/network/services/hostapd/files/hostapd.sh b/package/network/services/hostapd/files/hostapd.sh
|
|
index 195b6ec45ac4def6484b322703be04433b209c7b..a937baa4d8442acc292ced3c1a3c896dba2c813e 100644
|
|
--- a/package/network/services/hostapd/files/hostapd.sh
|
|
+++ b/package/network/services/hostapd/files/hostapd.sh
|
|
@@ -75,7 +75,7 @@ hostapd_prepare_device_config() {
|
|
local base="${config%%.conf}"
|
|
local base_cfg=
|
|
|
|
- json_get_vars country country_ie beacon_int doth require_mode
|
|
+ json_get_vars country country_ie beacon_int:100 doth require_mode
|
|
|
|
hostapd_set_log_options base_cfg
|
|
|
|
@@ -109,7 +109,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
|
|
@@ -697,7 +697,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
|