From 69f46989e2f6ca9615836a29225caa298c4839a2 Mon Sep 17 00:00:00 2001 From: AmadeusGhost <42570690+AmadeusGhost@users.noreply.github.com> Date: Mon, 18 Jan 2021 13:06:03 +0800 Subject: [PATCH] mac80211: update to 5.8.18-1 (#6200) ath10k-ct-firmware: update to 2020-11-08 ath10k-ct: update to 2020-12-24 mt76: update to 2020-12-18 wireless-regdb: update to version 2020.11.20 --- package/firmware/ath10k-ct-firmware/Makefile | 68 +++++----- package/firmware/linux-firmware/qca.mk | 8 ++ package/firmware/wireless-regdb/Makefile | 4 +- ...h => 600-custom-fix-txpower-and-dfs.patch} | 4 +- package/kernel/ath10k-ct/Makefile | 8 +- ...64-ath10k-commit-rates-from-mac80211.patch | 6 +- ...rolling-support-for-various-chipsets.patch | 8 +- ...02-ath10k-use-tpt-trigger-by-default.patch | 4 +- package/kernel/mac80211/Makefile | 8 +- package/kernel/mac80211/ath.mk | 19 ++- .../files/lib/netifd/wireless/mac80211.sh | 9 +- .../mac80211/files/lib/wifi/mac80211.sh | 6 + .../patches/ath/404-regd_no_assoc_hints.patch | 4 +- ...und-bug-with-some-inconsistent-BSSes.patch | 2 +- ...62-brcmfmac-Disable-power-management.patch | 2 +- .../mac80211/patches/brcm/998-survey.patch | 8 +- .../patches/build/050-lib80211_option.patch | 3 +- .../110-mac80211_keep_keys_on_stop_ap.patch | 2 +- .../mac80211/patches/subsys/210-ap_scan.patch | 2 +- .../300-mac80211-optimize-skb-resizing.patch | 2 +- ...unction-for-running-rx-without-passi.patch | 14 +-- ...ce-packet-loss-event-false-positives.patch | 116 ------------------ ...-AQL-aggregation-estimation-for-low-.patch | 6 +- ...e-duplication-in-tx-status-functions.patch | 6 +- ...-optimize-station-connection-monitor.patch | 6 +- ...ED_TXPROCESSING-and-HW_80211_ENCAP-t.patch | 2 +- ...the-driver-when-a-sta-uses-4-address.patch | 2 +- ...allow-bigger-VHT-MPDUs-than-the-hard.patch | 34 ----- ...drop-tx-nulldata-packets-on-encrypte.patch | 25 ++++ ...11-fix-misplaced-while-instead-of-if.patch | 31 ----- .../500-mac80211_configure_antenna_gain.patch | 6 +- package/kernel/mt76/Makefile | 8 +- ...et-mode-for-new-file-tmp-mt76-test-s.patch | 25 ++++ package/network/services/hostapd/Makefile | 2 +- .../network/services/hostapd/files/hostapd.sh | 98 +++++++++++---- .../network/services/hostapd/files/wpad.init | 4 +- .../services/hostapd/src/src/ap/ubus.c | 4 + .../hostapd/src/wpa_supplicant/ubus.c | 4 + 38 files changed, 263 insertions(+), 307 deletions(-) rename package/firmware/wireless-regdb/patches/{600-custom-change-txpower-and-dfs.patch => 600-custom-fix-txpower-and-dfs.patch} (92%) delete mode 100644 package/kernel/mac80211/patches/subsys/310-mac80211-reduce-packet-loss-event-false-positives.patch delete mode 100644 package/kernel/mac80211/patches/subsys/331-mac80211-do-not-allow-bigger-VHT-MPDUs-than-the-hard.patch create mode 100644 package/kernel/mac80211/patches/subsys/336-mac80211-do-not-drop-tx-nulldata-packets-on-encrypte.patch delete mode 100644 package/kernel/mac80211/patches/subsys/370-mac80211-fix-misplaced-while-instead-of-if.patch create mode 100644 package/kernel/mt76/patches/100-tools-Set-mode-for-new-file-tmp-mt76-test-s.patch diff --git a/package/firmware/ath10k-ct-firmware/Makefile b/package/firmware/ath10k-ct-firmware/Makefile index 83e5563e6..4fd7266f2 100644 --- a/package/firmware/ath10k-ct-firmware/Makefile +++ b/package/firmware/ath10k-ct-firmware/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ath10k-ct-firmware -PKG_VERSION:=2020-07-02 -PKG_RELEASE:=3 +PKG_VERSION:=2020-11-08 +PKG_RELEASE:=1 include $(INCLUDE_DIR)/package.mk @@ -28,120 +28,120 @@ define Download/ct-firmware-htt URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT) endef -QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.019 +QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.022 define Download/ath10k-firmware-qca988x-ct $(call Download/ct-firmware,QCA988X,) - HASH:=8b4c99253aa309d35f2e060c190091b8db1b84dbda06a6a15c83ac0f9a938126 + HASH:=398e4380e7e55105f3da0f78af29d1e437404ed3a82597aa4b6daaa7dce1a38e endef $(eval $(call Download,ath10k-firmware-qca988x-ct)) -QCA988X_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.019 +QCA988X_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.022 define Download/ath10k-firmware-qca988x-ct-full-htt $(call Download/ct-firmware-full-htt,QCA988X,) - HASH:=a7168916d6aa5e4d7858f8b620c0c980c76d03f390929db6f4077685ce2051e7 + HASH:=990d9cbf79dd81f141257a289f89808bd7726406c9ed845a7e49e5167002ffde endef $(eval $(call Download,ath10k-firmware-qca988x-ct-full-htt)) -QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.019 +QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.022 define Download/ath10k-firmware-qca9887-ct $(call Download/ct-firmware,QCA9887,ath10k-9887) - HASH:=459692deb186a63ab8eeddb7ad5d54779266e68ca686e7c46062554db6dca12b + HASH:=a526cb44560da569781e10bf608194b1eff29b250e9887dba6d4d9a15c921c1e endef $(eval $(call Download,ath10k-firmware-qca9887-ct)) -QCA9887_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.019 +QCA9887_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.022 define Download/ath10k-firmware-qca9887-ct-full-htt $(call Download/ct-firmware-full-htt,QCA9887,ath10k-9887) - HASH:=fd126a457d0927d0c8ea10d66ef5b67d5e1e0741f8692bb3016bb602d0af3098 + HASH:=0b60fc558b773e9cbd5c2df903c894a030872fdb96390b0cca4b23b7fc7b881f endef $(eval $(call Download,ath10k-firmware-qca9887-ct-full-htt)) -QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.019 +QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.022 define Download/ath10k-firmware-qca99x0-ct $(call Download/ct-firmware,QCA99X0,ath10k-10-4b) - HASH:=7dc934f934bc4973c9273a4f22cfead8e26ec6f579647af31b718a860eca0a4b + HASH:=578ad67976b61a393eb820a05e8eae70ec95f6b803bedbe952b8ff573eb09abe endef $(eval $(call Download,ath10k-firmware-qca99x0-ct)) -QCA99X0_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.019 +QCA99X0_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.022 define Download/ath10k-firmware-qca99x0-ct-full-htt $(call Download/ct-firmware-full-htt,QCA99X0,ath10k-10-4b) - HASH:=71a27b245a382fe009938d2826d5c97a90dceb10ddf638325268df91837ea302 + HASH:=8ea5c9f27c048796d406706a9c8471cd070f5aeb768622bb334a04853d557a4d endef $(eval $(call Download,ath10k-firmware-qca99x0-ct-full-htt)) -QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.019 +QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.022 define Download/ath10k-firmware-qca99x0-ct-htt $(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b) - HASH:=9ed4fe41e5b0f30172f71ae0fe382dc0aab8aa4f8a898417af4f7ee936575ef6 + HASH:=7b0b7545114e8dc0f2c70dc8a43a5a48d84d37f2a4673977a692c5f3361445c6 endef $(eval $(call Download,ath10k-firmware-qca99x0-ct-htt)) -QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.019 +QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.022 define Download/ath10k-firmware-qca9984-ct $(call Download/ct-firmware,QCA9984,ath10k-9984-10-4b) - HASH:=32d13f432691fe759ded7d027052e925233adb436cd8f729f85ec3d19ccd1dfd + HASH:=7bfe5bf7c38532fa57db62ebc56ec625583928d5d4736475d5dec4d4ae031154 endef $(eval $(call Download,ath10k-firmware-qca9984-ct)) -QCA9984_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.019 +QCA9984_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.022 define Download/ath10k-firmware-qca9984-ct-full-htt $(call Download/ct-firmware-full-htt,QCA9984,ath10k-9984-10-4b) - HASH:=e8ab69777bd00b5fc6b1b7acccb55b903553a99932a5b0351602b5f690106588 + HASH:=672be40c4d987d7e8e309341262a37cda7baf925416d1dc651284b6d2bd30969 endef $(eval $(call Download,ath10k-firmware-qca9984-ct-full-htt)) -QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.019 +QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.022 define Download/ath10k-firmware-qca9984-ct-htt $(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b) - HASH:=74449b303b626e0713b3fd4f2d6103d65859403b2dd7bdd8882aa772b69b59c7 + HASH:=a24e887f13aca4358ab2b6a42a7212d066e4d19e29b00bb26f9681b1dc8d0eb0 endef $(eval $(call Download,ath10k-firmware-qca9984-ct-htt)) -QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.019 +QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.022 define Download/ath10k-firmware-qca4019-ct $(call Download/ct-firmware,QCA4019,ath10k-4019-10-4b) - HASH:=4b89763087c7ed9b56046c4e621b7f045e452436d8d9b430a5d171179e313592 + HASH:=503956d9bf09d603e4cf36ac080fa5b5a22032166204e3c15ae898647bc50df3 endef $(eval $(call Download,ath10k-firmware-qca4019-ct)) -QCA4019_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.019 +QCA4019_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.022 define Download/ath10k-firmware-qca4019-ct-full-htt $(call Download/ct-firmware-full-htt,QCA4019,ath10k-4019-10-4b) - HASH:=fba591e5777c53b82542ba16cae69d9bb4684837f2fa4cee1b9b26f648096748 + HASH:=591bf9ed00fb540d7ba034453f17696e8dd91a4b7d81f7cc1ec41f447fa74831 endef $(eval $(call Download,ath10k-firmware-qca4019-ct-full-htt)) -QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.019 +QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.022 define Download/ath10k-firmware-qca4019-ct-htt $(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b) - HASH:=0d534c3c424184b8ec2773f15c8933bdab0d39b6f664d2578c6602b0eb7035d1 + HASH:=06e58a283ff90d021ff7cb58684cbf39750bd71cf91c56b32add64253133929c endef $(eval $(call Download,ath10k-firmware-qca4019-ct-htt)) -QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.019 +QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.022 define Download/ath10k-firmware-qca9888-ct $(call Download/ct-firmware,QCA9888,ath10k-9888-10-4b) - HASH:=048f4300725e6ebbf94a6bf4f3f4e4592c446fcdbe1d801aaac024b15e89e0c9 + HASH:=82ff5afcf0c9dcdb03b0b40c6eddc81e11b18e4f522f681935b5ec42537972ee endef $(eval $(call Download,ath10k-firmware-qca9888-ct)) -QCA9888_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.019 +QCA9888_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.022 define Download/ath10k-firmware-qca9888-ct-full-htt $(call Download/ct-firmware-full-htt,QCA9888,ath10k-9888-10-4b) - HASH:=d2a7e9fea6bd854721b3fc03a3a00d379d303b2bce339377ee87a1c14a60312d + HASH:=1a741f2cf43fbea24ed831b4e76cbb114b525d1ee9b917ce0000916cbcc42f92 endef $(eval $(call Download,ath10k-firmware-qca9888-ct-full-htt)) -QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.019 +QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.022 define Download/ath10k-firmware-qca9888-ct-htt $(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b) - HASH:=e52a6db33347c641ee791fd9a3a57a2503cdda1adc6b8d943e336431528b9d2a + HASH:=34bf07912a2f3fce4a5887c690848bb06d339bd1c86541b0b57b9c45eccc88e4 endef $(eval $(call Download,ath10k-firmware-qca9888-ct-htt)) diff --git a/package/firmware/linux-firmware/qca.mk b/package/firmware/linux-firmware/qca.mk index 23fcc0905..71b484d5c 100644 --- a/package/firmware/linux-firmware/qca.mk +++ b/package/firmware/linux-firmware/qca.mk @@ -37,3 +37,11 @@ define Package/carl9170-firmware/install $(INSTALL_DATA) $(PKG_BUILD_DIR)/carl9170-1.fw $(1)/lib/firmware endef $(eval $(call BuildPackage,carl9170-firmware)) + +Package/wil6210-firmware = $(call Package/firmware-default,wil6210 firmware) +define Package/wil6210-firmware/install + $(INSTALL_DIR) $(1)/lib/firmware + $(INSTALL_DATA) $(PKG_BUILD_DIR)/wil6210.fw $(1)/lib/firmware + $(INSTALL_DATA) $(PKG_BUILD_DIR)/wil6210.brd $(1)/lib/firmware +endef +$(eval $(call BuildPackage,wil6210-firmware)) diff --git a/package/firmware/wireless-regdb/Makefile b/package/firmware/wireless-regdb/Makefile index fc18d159b..308ca40e2 100644 --- a/package/firmware/wireless-regdb/Makefile +++ b/package/firmware/wireless-regdb/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=wireless-regdb -PKG_VERSION:=2020.04.29 +PKG_VERSION:=2020.11.20 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/ -PKG_HASH:=89fd031aed5977c219a71501e144375a10e7c90d1005d5d086ea7972886a2c7a +PKG_HASH:=b4164490d82ff7b0086e812ac42ab27baf57be24324d4c0ee1c5dd6ba27f2a52 PKG_MAINTAINER:=Felix Fietkau diff --git a/package/firmware/wireless-regdb/patches/600-custom-change-txpower-and-dfs.patch b/package/firmware/wireless-regdb/patches/600-custom-fix-txpower-and-dfs.patch similarity index 92% rename from package/firmware/wireless-regdb/patches/600-custom-change-txpower-and-dfs.patch rename to package/firmware/wireless-regdb/patches/600-custom-fix-txpower-and-dfs.patch index 0435d4e75..959b69a00 100644 --- a/package/firmware/wireless-regdb/patches/600-custom-change-txpower-and-dfs.patch +++ b/package/firmware/wireless-regdb/patches/600-custom-fix-txpower-and-dfs.patch @@ -1,5 +1,3 @@ -diff --git a/db.txt b/db.txt -index 90d3bc9..cc2a595 100644 --- a/db.txt +++ b/db.txt @@ -347,9 +347,9 @@ country CL: DFS-JP @@ -15,7 +13,7 @@ index 90d3bc9..cc2a595 100644 (5735 - 5835 @ 80), (30) # 60 GHz band channels 1,4: 28dBm, channels 2,3: 44dBm # ref: http://www.miit.gov.cn/n11293472/n11505629/n11506593/n11960250/n11960606/n11960700/n12330791.files/n12330790.pdf -@@ -1571,13 +1571,13 @@ country UG: DFS-FCC +@@ -1580,13 +1580,13 @@ country UG: DFS-FCC country US: DFS-FCC (2400 - 2483.5 @ 40), (30) # 5.15 ~ 5.25 GHz: 30 dBm for master mode, 23 dBm for clients diff --git a/package/kernel/ath10k-ct/Makefile b/package/kernel/ath10k-ct/Makefile index e38c7e0b1..f29e69de9 100644 --- a/package/kernel/ath10k-ct/Makefile +++ b/package/kernel/ath10k-ct/Makefile @@ -1,16 +1,16 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ath10k-ct -PKG_RELEASE=2 +PKG_RELEASE=1 PKG_LICENSE:=GPLv2 PKG_LICENSE_FILES:= PKG_SOURCE_URL:=https://github.com/greearb/ath10k-ct.git PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2020-10-08 -PKG_SOURCE_VERSION:=1d28d176e5b6e63a6583f497adf68e1d9c1dc962 -PKG_MIRROR_HASH:=f611762647822742f7c8f9da242e33d9bf6da0a14976b87408af28f280802ae0 +PKG_SOURCE_DATE:=2020-12-24 +PKG_SOURCE_VERSION:=b753e8bf22b94297acbaa370b4cb0be87e3da4b8 +PKG_MIRROR_HASH:=e026296208e0c20fd0775704c2167da5a447aef4080cedc5fba0797f0e180d8d # Build the 5.8 ath10k-ct driver version. # Probably this should match as closely as diff --git a/package/kernel/ath10k-ct/patches/164-ath10k-commit-rates-from-mac80211.patch b/package/kernel/ath10k-ct/patches/164-ath10k-commit-rates-from-mac80211.patch index 51cca227d..1fe52b96b 100644 --- a/package/kernel/ath10k-ct/patches/164-ath10k-commit-rates-from-mac80211.patch +++ b/package/kernel/ath10k-ct/patches/164-ath10k-commit-rates-from-mac80211.patch @@ -11,7 +11,7 @@ Signed-off-by: Sven Eckelmann --- a/ath10k-5.8/mac.c +++ b/ath10k-5.8/mac.c -@@ -6653,6 +6653,7 @@ static void ath10k_recalculate_mgmt_rate +@@ -6691,6 +6691,7 @@ static void ath10k_recalculate_mgmt_rate return; } @@ -19,7 +19,7 @@ Signed-off-by: Sven Eckelmann vdev_param = ar->wmi.vdev_param->mgmt_rate; ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, hw_rate_code); -@@ -6879,6 +6880,7 @@ static void ath10k_bss_info_changed(stru +@@ -6917,6 +6918,7 @@ static void ath10k_bss_info_changed(stru "mac vdev %d mcast_rate %x\n", arvif->vdev_id, rate); @@ -27,7 +27,7 @@ Signed-off-by: Sven Eckelmann vdev_param = ar->wmi.vdev_param->mcast_data_rate; ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, rate); -@@ -6887,6 +6889,7 @@ static void ath10k_bss_info_changed(stru +@@ -6925,6 +6927,7 @@ static void ath10k_bss_info_changed(stru "failed to set mcast rate on vdev %i: %d\n", arvif->vdev_id, ret); diff --git a/package/kernel/ath10k-ct/patches/201-ath10k-add-LED-and-GPIO-controlling-support-for-various-chipsets.patch b/package/kernel/ath10k-ct/patches/201-ath10k-add-LED-and-GPIO-controlling-support-for-various-chipsets.patch index 92f20cb4c..e5a83ccb9 100644 --- a/package/kernel/ath10k-ct/patches/201-ath10k-add-LED-and-GPIO-controlling-support-for-various-chipsets.patch +++ b/package/kernel/ath10k-ct/patches/201-ath10k-add-LED-and-GPIO-controlling-support-for-various-chipsets.patch @@ -161,7 +161,7 @@ v13: .patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR, .uart_pin = 7, .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, -@@ -3675,6 +3681,10 @@ int ath10k_core_start(struct ath10k *ar, +@@ -3688,6 +3694,10 @@ int ath10k_core_start(struct ath10k *ar, ath10k_wmi_check_apply_board_power_ctl_table(ar); } @@ -172,7 +172,7 @@ v13: return 0; err_hif_stop: -@@ -3933,9 +3943,18 @@ static void ath10k_core_register_work(st +@@ -3946,9 +3956,18 @@ static void ath10k_core_register_work(st goto err_spectral_destroy; } @@ -191,7 +191,7 @@ v13: err_spectral_destroy: ath10k_spectral_destroy(ar); err_debug_destroy: -@@ -3995,6 +4014,8 @@ void ath10k_core_unregister(struct ath10 +@@ -4008,6 +4027,8 @@ void ath10k_core_unregister(struct ath10 if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags)) return; @@ -210,7 +210,7 @@ v13: #include "htt.h" #include "htc.h" -@@ -1523,6 +1524,13 @@ struct ath10k { +@@ -1530,6 +1531,13 @@ struct ath10k { } testmode; struct { diff --git a/package/kernel/ath10k-ct/patches/202-ath10k-use-tpt-trigger-by-default.patch b/package/kernel/ath10k-ct/patches/202-ath10k-use-tpt-trigger-by-default.patch index cd3b7c5e6..3f7c405ef 100644 --- a/package/kernel/ath10k-ct/patches/202-ath10k-use-tpt-trigger-by-default.patch +++ b/package/kernel/ath10k-ct/patches/202-ath10k-use-tpt-trigger-by-default.patch @@ -16,7 +16,7 @@ Signed-off-by: Mathias Kresin --- a/ath10k-5.8/core.h +++ b/ath10k-5.8/core.h -@@ -1631,6 +1631,10 @@ struct ath10k { +@@ -1638,6 +1638,10 @@ struct ath10k { u8 csi_data[4096]; u16 csi_data_len; @@ -42,7 +42,7 @@ Signed-off-by: Mathias Kresin if (ret) --- a/ath10k-5.8/mac.c +++ b/ath10k-5.8/mac.c -@@ -10680,7 +10680,7 @@ int ath10k_mac_register(struct ath10k *a +@@ -10718,7 +10718,7 @@ int ath10k_mac_register(struct ath10k *a ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; #ifdef CPTCFG_MAC80211_LEDS diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile index 8448350ac..bbd17d1cb 100644 --- a/package/kernel/mac80211/Makefile +++ b/package/kernel/mac80211/Makefile @@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=mac80211 -PKG_VERSION:=5.8-1 -PKG_RELEASE:=2 -PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.8/ -PKG_HASH:=19b4174d89bf11ee221458e11f1e8dace26558498774b823051156f522d2036b +PKG_VERSION:=5.8.18-1 +PKG_RELEASE:=3 +PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.8.18/ +PKG_HASH:=f04a8172423c6a945fc7d9844b04f33fda9ae574e552f8f18ee3bdfcfb494563 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION) diff --git a/package/kernel/mac80211/ath.mk b/package/kernel/mac80211/ath.mk index 48baa12eb..27ad0290d 100644 --- a/package/kernel/mac80211/ath.mk +++ b/package/kernel/mac80211/ath.mk @@ -1,6 +1,6 @@ PKG_DRIVERS += \ ath ath5k ath6kl ath6kl-sdio ath6kl-usb ath9k ath9k-common ath9k-htc ath10k \ - ath11k ar5523 carl9170 owl-loader + ath11k ar5523 carl9170 owl-loader wil6210 PKG_CONFIG_DEPENDS += \ CONFIG_PACKAGE_ATH_DEBUG \ @@ -22,7 +22,8 @@ ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS ATH11K_DEBUGFS \ CARL9170_DEBUGFS \ ATH5K_DEBUG \ - ATH6KL_DEBUG + ATH6KL_DEBUG \ + WIL6210_DEBUGFS endif ifdef CONFIG_PACKAGE_MAC80211_TRACING @@ -31,7 +32,8 @@ ifdef CONFIG_PACKAGE_MAC80211_TRACING ATH11K_TRACING \ ATH6KL_TRACING \ ATH_TRACEPOINTS \ - ATH5K_TRACER + ATH5K_TRACER \ + WIL6210_TRACING endif config-$(call config_package,ath) += ATH_CARDS ATH_COMMON ATH_REG_DYNAMIC_USER_REG_HINTS @@ -72,6 +74,8 @@ config-$(call config_package,ath6kl-usb) += ATH6KL_USB config-$(call config_package,carl9170) += CARL9170 config-$(call config_package,ar5523) += AR5523 +config-$(call config_package,wil6210) += WIL6210 + define KernelPackage/ath/config if PACKAGE_kmod-ath config ATH_USER_REGD @@ -222,6 +226,7 @@ define KernelPackage/ath9k/config config ATH9K_SUPPORT_PCOEM bool "Support chips used in PC OEM cards" depends on PACKAGE_kmod-ath9k + default y if (x86_64 || i386) config ATH9K_TX99 bool "Enable TX99 support (WARNING: testing only, breaks normal operation!)" @@ -327,3 +332,11 @@ define KernelPackage/ar5523 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ar5523/ar5523.ko AUTOLOAD:=$(call AutoProbe,ar5523) endef + +define KernelPackage/wil6210 + $(call KernelPackage/mac80211/Default) + TITLE:=QCA/Wilocity 60g WiFi card wil6210 support + DEPENDS+= @PCI_SUPPORT +kmod-mac80211 +wil6210-firmware + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/wil6210/wil6210.ko + AUTOLOAD:=$(call AutoProbe,wil6210) +endef diff --git a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh index 3f7896ca8..1f273ba51 100644 --- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh +++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh @@ -409,7 +409,7 @@ mac80211_generate_mac() { [ "$mask" = "00:00:00:00:00:00" ] && { mask="ff:ff:ff:ff:ff:ff"; - [ "$(wc -l < /sys/class/ieee80211/${phy}/addresses)" -gt 1 ] && { + [ "$(wc -l < /sys/class/ieee80211/${phy}/addresses)" -gt $id ] && { addr="$(mac80211_get_addr "$phy" "$id")" [ -n "$addr" ] && { echo "$addr" @@ -429,7 +429,7 @@ mac80211_generate_mac() { [ "$((0x$mask1))" -gt 0 ] && { b1="0x$1" [ "$id" -gt 0 ] && \ - b1=$(($b1 ^ ((($id - !($b1 & 2)) << 2) | 0x2))) + b1=$(($b1 ^ ((($id - !($b1 & 2)) << 2)) | 0x2)) printf "%02x:%s:%s:%s:%s:%s" $b1 $2 $3 $4 $5 $6 return } @@ -1019,9 +1019,8 @@ drv_mac80211_setup() { if [ "$no_reload" != "0" ]; then add_ap=1 ubus wait_for hostapd - ubus call hostapd config_add "{\"iface\":\"$primary_ap\", \"config\":\"${hostapd_conf_file}\"}" - local hostapd_pid=$(ubus call service list '{"name": "wpad"}' | jsonfilter -l 1 -e "@['wpad'].instances['hostapd'].pid") - wireless_add_process "$hostapd_pid" "/usr/sbin/hostapd" 1 + local hostapd_pid=$(ubus call hostapd config_add "{\"iface\":\"$primary_ap\", \"config\":\"${hostapd_conf_file}\"}" | jsonfilter -l 1 -e @.pid) + wireless_add_process "$hostapd_pid" "/usr/sbin/hostapd" 1 1 fi ret="$?" [ "$ret" != 0 ] && { diff --git a/package/kernel/mac80211/files/lib/wifi/mac80211.sh b/package/kernel/mac80211/files/lib/wifi/mac80211.sh index c650ffcd8..4424f90de 100644 --- a/package/kernel/mac80211/files/lib/wifi/mac80211.sh +++ b/package/kernel/mac80211/files/lib/wifi/mac80211.sh @@ -88,6 +88,12 @@ detect_mac80211() { iw phy "$dev" info | grep -q 'VHT Capabilities' && htmode="VHT80" } + iw phy "$dev" info | grep -q '\* 5.... MHz \[' && { + mode_band="ad" + channel=$(iw phy "$dev" info | grep '\* 5.... MHz \[' | grep '(disabled)' -v -m 1 | sed 's/[^[]*\[\|\|\].*//g') + iw phy "$dev" info | grep -q 'Capabilities:' && htmode="HT20" + } + [ -n "$htmode" ] && ht_capab="set wireless.radio${devidx}.htmode=$htmode" path="$(mac80211_phy_to_path "$dev")" diff --git a/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch b/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch index 89e26af76..020e2bbab 100644 --- a/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch +++ b/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch @@ -1,6 +1,6 @@ --- a/net/wireless/reg.c +++ b/net/wireless/reg.c -@@ -3042,6 +3042,8 @@ void regulatory_hint_country_ie(struct w +@@ -3045,6 +3045,8 @@ void regulatory_hint_country_ie(struct w enum environment_cap env = ENVIRON_ANY; struct regulatory_request *request = NULL, *lr; @@ -9,7 +9,7 @@ /* IE len must be evenly divisible by 2 */ if (country_ie_len & 0x01) return; -@@ -3293,6 +3295,7 @@ static bool is_wiphy_all_set_reg_flag(en +@@ -3296,6 +3298,7 @@ static bool is_wiphy_all_set_reg_flag(en void regulatory_hint_disconnect(void) { diff --git a/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch b/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch index 069aab824..4e7911137 100644 --- a/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch +++ b/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch @@ -10,7 +10,7 @@ Signed-off-by: Rafał Miłecki --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -712,8 +712,36 @@ static struct wireless_dev *brcmf_cfg802 +@@ -714,8 +714,36 @@ static struct wireless_dev *brcmf_cfg802 struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy); struct brcmf_pub *drvr = cfg->pub; struct wireless_dev *wdev; diff --git a/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch b/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch index 8a20ae133..91bf464ed 100644 --- a/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch +++ b/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch @@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -2953,6 +2953,10 @@ brcmf_cfg80211_set_power_mgmt(struct wip +@@ -2955,6 +2955,10 @@ brcmf_cfg80211_set_power_mgmt(struct wip * preference in cfg struct to apply this to * FW later while initializing the dongle */ diff --git a/package/kernel/mac80211/patches/brcm/998-survey.patch b/package/kernel/mac80211/patches/brcm/998-survey.patch index bcab2e3f3..7feca97e9 100644 --- a/package/kernel/mac80211/patches/brcm/998-survey.patch +++ b/package/kernel/mac80211/patches/brcm/998-survey.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -2905,6 +2905,63 @@ done: +@@ -2907,6 +2907,63 @@ done: } static int @@ -64,7 +64,7 @@ brcmf_cfg80211_dump_station(struct wiphy *wiphy, struct net_device *ndev, int idx, u8 *mac, struct station_info *sinfo) { -@@ -2994,6 +3051,7 @@ static s32 brcmf_inform_single_bss(struc +@@ -3002,6 +3059,7 @@ static s32 brcmf_inform_single_bss(struc struct brcmu_chan ch; u16 channel; u32 freq; @@ -72,7 +72,7 @@ u16 notify_capability; u16 notify_interval; u8 *notify_ie; -@@ -3018,6 +3076,17 @@ static s32 brcmf_inform_single_bss(struc +@@ -3026,6 +3084,17 @@ static s32 brcmf_inform_single_bss(struc band = NL80211_BAND_5GHZ; freq = ieee80211_channel_to_frequency(channel, band); @@ -90,7 +90,7 @@ bss_data.chan = ieee80211_get_channel(wiphy, freq); bss_data.scan_width = NL80211_BSS_CHAN_WIDTH_20; bss_data.boottime_ns = ktime_to_ns(ktime_get_boottime()); -@@ -5470,6 +5539,7 @@ static struct cfg80211_ops brcmf_cfg8021 +@@ -5478,6 +5547,7 @@ static struct cfg80211_ops brcmf_cfg8021 .leave_ibss = brcmf_cfg80211_leave_ibss, .get_station = brcmf_cfg80211_get_station, .dump_station = brcmf_cfg80211_dump_station, diff --git a/package/kernel/mac80211/patches/build/050-lib80211_option.patch b/package/kernel/mac80211/patches/build/050-lib80211_option.patch index c6174449c..b2465b0d7 100644 --- a/package/kernel/mac80211/patches/build/050-lib80211_option.patch +++ b/package/kernel/mac80211/patches/build/050-lib80211_option.patch @@ -9,7 +9,7 @@ depends on m default n help -@@ -197,18 +197,18 @@ config LIB80211 +@@ -197,19 +197,19 @@ config LIB80211 Drivers should select this themselves if needed. config LIB80211_CRYPT_WEP @@ -22,6 +22,7 @@ - tristate + tristate "lib80211 CCMP support" depends on m + depends on CRYPTO depends on CRYPTO_AES depends on CRYPTO_CCM diff --git a/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch b/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch index e56055caf..2333ca2da 100644 --- a/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch +++ b/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch @@ -2,7 +2,7 @@ Used for AP+STA support in OpenWrt - preserve AP mode keys across STA reconnects --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -1197,7 +1197,6 @@ static int ieee80211_stop_ap(struct wiph +@@ -1198,7 +1198,6 @@ static int ieee80211_stop_ap(struct wiph sdata->vif.bss_conf.ftmr_params = NULL; __sta_info_flush(sdata, true); diff --git a/package/kernel/mac80211/patches/subsys/210-ap_scan.patch b/package/kernel/mac80211/patches/subsys/210-ap_scan.patch index 8ccab8cf6..fccb1ebff 100644 --- a/package/kernel/mac80211/patches/subsys/210-ap_scan.patch +++ b/package/kernel/mac80211/patches/subsys/210-ap_scan.patch @@ -1,6 +1,6 @@ --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -2345,7 +2345,7 @@ static int ieee80211_scan(struct wiphy * +@@ -2346,7 +2346,7 @@ static int ieee80211_scan(struct wiphy * * the frames sent while scanning on other channel will be * lost) */ diff --git a/package/kernel/mac80211/patches/subsys/300-mac80211-optimize-skb-resizing.patch b/package/kernel/mac80211/patches/subsys/300-mac80211-optimize-skb-resizing.patch index bcdfa22ff..cb70670e5 100644 --- a/package/kernel/mac80211/patches/subsys/300-mac80211-optimize-skb-resizing.patch +++ b/package/kernel/mac80211/patches/subsys/300-mac80211-optimize-skb-resizing.patch @@ -36,7 +36,7 @@ Signed-off-by: Felix Fietkau void ieee80211_apply_htcap_overrides(struct ieee80211_sub_if_data *sdata, --- a/net/mac80211/status.c +++ b/net/mac80211/status.c -@@ -843,6 +843,11 @@ void ieee80211_tx_monitor(struct ieee802 +@@ -846,6 +846,11 @@ void ieee80211_tx_monitor(struct ieee802 struct net_device *prev_dev = NULL; int rtap_len; diff --git a/package/kernel/mac80211/patches/subsys/307-mac80211-add-a-function-for-running-rx-without-passi.patch b/package/kernel/mac80211/patches/subsys/307-mac80211-add-a-function-for-running-rx-without-passi.patch index 1bcb41461..802d57497 100644 --- a/package/kernel/mac80211/patches/subsys/307-mac80211-add-a-function-for-running-rx-without-passi.patch +++ b/package/kernel/mac80211/patches/subsys/307-mac80211-add-a-function-for-running-rx-without-passi.patch @@ -58,7 +58,7 @@ Signed-off-by: Felix Fietkau struct ieee80211_sub_if_data *sdata; --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c -@@ -2578,8 +2578,8 @@ static void ieee80211_deliver_skb_to_loc +@@ -2579,8 +2579,8 @@ static void ieee80211_deliver_skb_to_loc memset(skb->cb, 0, sizeof(skb->cb)); /* deliver to local stack */ @@ -69,7 +69,7 @@ Signed-off-by: Felix Fietkau else netif_receive_skb(skb); } -@@ -3869,7 +3869,6 @@ void ieee80211_release_reorder_timeout(s +@@ -3870,7 +3870,6 @@ void ieee80211_release_reorder_timeout(s /* This is OK -- must be QoS data frame */ .security_idx = tid, .seqno_idx = tid, @@ -77,7 +77,7 @@ Signed-off-by: Felix Fietkau }; struct tid_ampdu_rx *tid_agg_rx; -@@ -4479,8 +4478,8 @@ static bool ieee80211_invoke_fast_rx(str +@@ -4480,8 +4479,8 @@ static bool ieee80211_invoke_fast_rx(str /* deliver to local stack */ skb->protocol = eth_type_trans(skb, fast_rx->dev); memset(skb->cb, 0, sizeof(skb->cb)); @@ -88,7 +88,7 @@ Signed-off-by: Felix Fietkau else netif_receive_skb(skb); -@@ -4547,7 +4546,7 @@ static bool ieee80211_prepare_and_rx_han +@@ -4548,7 +4547,7 @@ static bool ieee80211_prepare_and_rx_han static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta, struct sk_buff *skb, @@ -97,7 +97,7 @@ Signed-off-by: Felix Fietkau { struct ieee80211_local *local = hw_to_local(hw); struct ieee80211_sub_if_data *sdata; -@@ -4562,7 +4561,7 @@ static void __ieee80211_rx_handle_packet +@@ -4563,7 +4562,7 @@ static void __ieee80211_rx_handle_packet memset(&rx, 0, sizeof(rx)); rx.skb = skb; rx.local = local; @@ -106,7 +106,7 @@ Signed-off-by: Felix Fietkau if (ieee80211_is_data(fc) || ieee80211_is_mgmt(fc)) I802_DEBUG_INC(local->dot11ReceivedFragmentCount); -@@ -4670,8 +4669,8 @@ static void __ieee80211_rx_handle_packet +@@ -4671,8 +4670,8 @@ static void __ieee80211_rx_handle_packet * This is the receive path handler. It is called by a low level driver when an * 802.11 MPDU is received from the hardware. */ @@ -117,7 +117,7 @@ Signed-off-by: Felix Fietkau { struct ieee80211_local *local = hw_to_local(hw); struct ieee80211_rate *rate = NULL; -@@ -4763,36 +4762,53 @@ void ieee80211_rx_napi(struct ieee80211_ +@@ -4764,36 +4763,53 @@ void ieee80211_rx_napi(struct ieee80211_ status->rx_flags = 0; /* diff --git a/package/kernel/mac80211/patches/subsys/310-mac80211-reduce-packet-loss-event-false-positives.patch b/package/kernel/mac80211/patches/subsys/310-mac80211-reduce-packet-loss-event-false-positives.patch deleted file mode 100644 index 62f2419dd..000000000 --- a/package/kernel/mac80211/patches/subsys/310-mac80211-reduce-packet-loss-event-false-positives.patch +++ /dev/null @@ -1,116 +0,0 @@ -From: Felix Fietkau -Date: Sat, 8 Aug 2020 19:20:02 +0200 -Subject: [PATCH] mac80211: reduce packet loss event false positives - -When running a large number of packets per second with a high data rate -and long A-MPDUs, the packet loss threshold can be reached very quickly -when the link conditions change. This frequently shows up as spurious -disconnects. -Mitigate false positives by using a similar logic for regular stations -as the one being used for TDLS, though with a more aggressive timeout. -Packet loss events are only reported if no ACK was received for a second. - -Signed-off-by: Felix Fietkau ---- - ---- a/net/mac80211/sta_info.h -+++ b/net/mac80211/sta_info.h -@@ -522,7 +522,7 @@ struct ieee80211_sta_rx_stats { - * @status_stats.retry_failed: # of frames that failed after retry - * @status_stats.retry_count: # of retries attempted - * @status_stats.lost_packets: # of lost packets -- * @status_stats.last_tdls_pkt_time: timestamp of last TDLS packet -+ * @status_stats.last_pkt_time: timestamp of last ACKed packet - * @status_stats.msdu_retries: # of MSDU retries - * @status_stats.msdu_failed: # of failed MSDUs - * @status_stats.last_ack: last ack timestamp (jiffies) -@@ -595,7 +595,7 @@ struct sta_info { - unsigned long filtered; - unsigned long retry_failed, retry_count; - unsigned int lost_packets; -- unsigned long last_tdls_pkt_time; -+ unsigned long last_pkt_time; - u64 msdu_retries[IEEE80211_NUM_TIDS + 1]; - u64 msdu_failed[IEEE80211_NUM_TIDS + 1]; - unsigned long last_ack; ---- a/net/mac80211/status.c -+++ b/net/mac80211/status.c -@@ -757,12 +757,16 @@ static void ieee80211_report_used_skb(st - * - current throughput (higher value for higher tpt)? - */ - #define STA_LOST_PKT_THRESHOLD 50 -+#define STA_LOST_PKT_TIME HZ /* 1 sec since last ACK */ - #define STA_LOST_TDLS_PKT_THRESHOLD 10 - #define STA_LOST_TDLS_PKT_TIME (10*HZ) /* 10secs since last ACK */ - - static void ieee80211_lost_packet(struct sta_info *sta, - struct ieee80211_tx_info *info) - { -+ unsigned long pkt_time = STA_LOST_PKT_TIME; -+ unsigned int pkt_thr = STA_LOST_PKT_THRESHOLD; -+ - /* If driver relies on its own algorithm for station kickout, skip - * mac80211 packet loss mechanism. - */ -@@ -775,21 +779,20 @@ static void ieee80211_lost_packet(struct - return; - - sta->status_stats.lost_packets++; -- if (!sta->sta.tdls && -- sta->status_stats.lost_packets < STA_LOST_PKT_THRESHOLD) -- return; -+ if (sta->sta.tdls) { -+ pkt_time = STA_LOST_TDLS_PKT_TIME; -+ pkt_thr = STA_LOST_PKT_THRESHOLD; -+ } - - /* - * If we're in TDLS mode, make sure that all STA_LOST_TDLS_PKT_THRESHOLD - * of the last packets were lost, and that no ACK was received in the - * last STA_LOST_TDLS_PKT_TIME ms, before triggering the CQM packet-loss - * mechanism. -+ * For non-TDLS, use STA_LOST_PKT_THRESHOLD and STA_LOST_PKT_TIME - */ -- if (sta->sta.tdls && -- (sta->status_stats.lost_packets < STA_LOST_TDLS_PKT_THRESHOLD || -- time_before(jiffies, -- sta->status_stats.last_tdls_pkt_time + -- STA_LOST_TDLS_PKT_TIME))) -+ if (sta->status_stats.lost_packets < pkt_thr || -+ !time_after(jiffies, sta->status_stats.last_pkt_time + pkt_time)) - return; - - cfg80211_cqm_pktloss_notify(sta->sdata->dev, sta->sta.addr, -@@ -1042,9 +1045,7 @@ static void __ieee80211_tx_status(struct - sta->status_stats.lost_packets = 0; - - /* Track when last TDLS packet was ACKed */ -- if (test_sta_flag(sta, WLAN_STA_TDLS_PEER_AUTH)) -- sta->status_stats.last_tdls_pkt_time = -- jiffies; -+ sta->status_stats.last_pkt_time = jiffies; - } else if (noack_success) { - /* nothing to do here, do not account as lost */ - } else { -@@ -1177,9 +1178,8 @@ void ieee80211_tx_status_ext(struct ieee - if (sta->status_stats.lost_packets) - sta->status_stats.lost_packets = 0; - -- /* Track when last TDLS packet was ACKed */ -- if (test_sta_flag(sta, WLAN_STA_TDLS_PEER_AUTH)) -- sta->status_stats.last_tdls_pkt_time = jiffies; -+ /* Track when last packet was ACKed */ -+ sta->status_stats.last_pkt_time = jiffies; - } else if (test_sta_flag(sta, WLAN_STA_PS_STA)) { - return; - } else if (noack_success) { -@@ -1268,8 +1268,7 @@ void ieee80211_tx_status_8023(struct iee - if (sta->status_stats.lost_packets) - sta->status_stats.lost_packets = 0; - -- if (test_sta_flag(sta, WLAN_STA_TDLS_PEER_AUTH)) -- sta->status_stats.last_tdls_pkt_time = jiffies; -+ sta->status_stats.last_pkt_time = jiffies; - } else { - ieee80211_lost_packet(sta, info); - } diff --git a/package/kernel/mac80211/patches/subsys/313-mac80211-improve-AQL-aggregation-estimation-for-low-.patch b/package/kernel/mac80211/patches/subsys/313-mac80211-improve-AQL-aggregation-estimation-for-low-.patch index 7f7c75db5..a5df07e58 100644 --- a/package/kernel/mac80211/patches/subsys/313-mac80211-improve-AQL-aggregation-estimation-for-low-.patch +++ b/package/kernel/mac80211/patches/subsys/313-mac80211-improve-AQL-aggregation-estimation-for-low-.patch @@ -55,12 +55,12 @@ Signed-off-by: Felix Fietkau + agg_shift = 3; + else + agg_shift = 4; - -- return airtime; ++ + duration *= len; + duration /= AVG_PKT_SIZE; + duration /= 1024; -+ + +- return airtime; + return duration + (overhead >> agg_shift); } diff --git a/package/kernel/mac80211/patches/subsys/319-mac80211-reduce-duplication-in-tx-status-functions.patch b/package/kernel/mac80211/patches/subsys/319-mac80211-reduce-duplication-in-tx-status-functions.patch index 8b664d689..e13723b16 100644 --- a/package/kernel/mac80211/patches/subsys/319-mac80211-reduce-duplication-in-tx-status-functions.patch +++ b/package/kernel/mac80211/patches/subsys/319-mac80211-reduce-duplication-in-tx-status-functions.patch @@ -67,12 +67,12 @@ Signed-off-by: Felix Fietkau if (!acked && !noack_success) - sta->status_stats.retry_failed++; - sta->status_stats.retry_count += retry_count; -- ++ sta->status_stats.msdu_failed[tid]++; + - if (ieee80211_is_data_present(fc)) { - if (!acked && !noack_success) - sta->status_stats.msdu_failed[tid]++; -+ sta->status_stats.msdu_failed[tid]++; - +- - sta->status_stats.msdu_retries[tid] += - retry_count; - } diff --git a/package/kernel/mac80211/patches/subsys/321-mac80211-optimize-station-connection-monitor.patch b/package/kernel/mac80211/patches/subsys/321-mac80211-optimize-station-connection-monitor.patch index ed9efb2b0..f8287c53a 100644 --- a/package/kernel/mac80211/patches/subsys/321-mac80211-optimize-station-connection-monitor.patch +++ b/package/kernel/mac80211/patches/subsys/321-mac80211-optimize-station-connection-monitor.patch @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c -@@ -1811,9 +1811,6 @@ ieee80211_rx_h_sta_process(struct ieee80 +@@ -1812,9 +1812,6 @@ ieee80211_rx_h_sta_process(struct ieee80 sta->rx_stats.last_rate = sta_stats_encode_rate(status); } @@ -122,7 +122,7 @@ Signed-off-by: Felix Fietkau sta->rx_stats.fragments++; u64_stats_update_begin(&rx->sta->rx_stats.syncp); -@@ -4148,7 +4145,6 @@ void ieee80211_check_fast_rx(struct sta_ +@@ -4149,7 +4146,6 @@ void ieee80211_check_fast_rx(struct sta_ fastrx.sa_offs = offsetof(struct ieee80211_hdr, addr2); fastrx.expected_ds_bits = 0; } else { @@ -130,7 +130,7 @@ Signed-off-by: Felix Fietkau fastrx.da_offs = offsetof(struct ieee80211_hdr, addr1); fastrx.sa_offs = offsetof(struct ieee80211_hdr, addr3); fastrx.expected_ds_bits = -@@ -4378,11 +4374,6 @@ static bool ieee80211_invoke_fast_rx(str +@@ -4379,11 +4375,6 @@ static bool ieee80211_invoke_fast_rx(str pskb_trim(skb, skb->len - fast_rx->icv_len)) goto drop; diff --git a/package/kernel/mac80211/patches/subsys/322-mac80211-swap-NEED_TXPROCESSING-and-HW_80211_ENCAP-t.patch b/package/kernel/mac80211/patches/subsys/322-mac80211-swap-NEED_TXPROCESSING-and-HW_80211_ENCAP-t.patch index b9069ef9b..8505ce56f 100644 --- a/package/kernel/mac80211/patches/subsys/322-mac80211-swap-NEED_TXPROCESSING-and-HW_80211_ENCAP-t.patch +++ b/package/kernel/mac80211/patches/subsys/322-mac80211-swap-NEED_TXPROCESSING-and-HW_80211_ENCAP-t.patch @@ -129,7 +129,7 @@ Signed-off-by: Felix Fietkau } --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c -@@ -2896,7 +2896,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80 +@@ -2897,7 +2897,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80 fwd_hdr->frame_control &= ~cpu_to_le16(IEEE80211_FCTL_RETRY); info = IEEE80211_SKB_CB(fwd_skb); memset(info, 0, sizeof(*info)); diff --git a/package/kernel/mac80211/patches/subsys/326-mac80211-notify-the-driver-when-a-sta-uses-4-address.patch b/package/kernel/mac80211/patches/subsys/326-mac80211-notify-the-driver-when-a-sta-uses-4-address.patch index 5ad5ac6a7..aa166c643 100644 --- a/package/kernel/mac80211/patches/subsys/326-mac80211-notify-the-driver-when-a-sta-uses-4-address.patch +++ b/package/kernel/mac80211/patches/subsys/326-mac80211-notify-the-driver-when-a-sta-uses-4-address.patch @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau /** --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -1693,6 +1693,7 @@ static int ieee80211_change_station(stru +@@ -1694,6 +1694,7 @@ static int ieee80211_change_station(stru rcu_assign_pointer(vlansdata->u.vlan.sta, sta); __ieee80211_check_fast_rx_iface(vlansdata); diff --git a/package/kernel/mac80211/patches/subsys/331-mac80211-do-not-allow-bigger-VHT-MPDUs-than-the-hard.patch b/package/kernel/mac80211/patches/subsys/331-mac80211-do-not-allow-bigger-VHT-MPDUs-than-the-hard.patch deleted file mode 100644 index a799d9625..000000000 --- a/package/kernel/mac80211/patches/subsys/331-mac80211-do-not-allow-bigger-VHT-MPDUs-than-the-hard.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Felix Fietkau -Date: Thu, 17 Sep 2020 12:07:19 +0200 -Subject: [PATCH] mac80211: do not allow bigger VHT MPDUs than the hardware - supports - -Limit maximum VHT MPDU size by local capability - -Signed-off-by: Felix Fietkau ---- - ---- a/net/mac80211/vht.c -+++ b/net/mac80211/vht.c -@@ -168,10 +168,7 @@ ieee80211_vht_cap_ie_to_sta_vht_cap(stru - /* take some capabilities as-is */ - cap_info = le32_to_cpu(vht_cap_ie->vht_cap_info); - vht_cap->cap = cap_info; -- vht_cap->cap &= IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_3895 | -- IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_7991 | -- IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454 | -- IEEE80211_VHT_CAP_RXLDPC | -+ vht_cap->cap &= IEEE80211_VHT_CAP_RXLDPC | - IEEE80211_VHT_CAP_VHT_TXOP_PS | - IEEE80211_VHT_CAP_HTC_VHT | - IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK | -@@ -180,6 +177,9 @@ ieee80211_vht_cap_ie_to_sta_vht_cap(stru - IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN | - IEEE80211_VHT_CAP_TX_ANTENNA_PATTERN; - -+ vht_cap->cap |= min_t(u32, cap_info & IEEE80211_VHT_CAP_MAX_MPDU_MASK, -+ own_cap.cap & IEEE80211_VHT_CAP_MAX_MPDU_MASK); -+ - /* and some based on our own capabilities */ - switch (own_cap.cap & IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK) { - case IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ: diff --git a/package/kernel/mac80211/patches/subsys/336-mac80211-do-not-drop-tx-nulldata-packets-on-encrypte.patch b/package/kernel/mac80211/patches/subsys/336-mac80211-do-not-drop-tx-nulldata-packets-on-encrypte.patch new file mode 100644 index 000000000..378c37455 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/336-mac80211-do-not-drop-tx-nulldata-packets-on-encrypte.patch @@ -0,0 +1,25 @@ +From: Felix Fietkau +Date: Fri, 18 Dec 2020 20:08:06 +0100 +Subject: [PATCH] mac80211: do not drop tx nulldata packets on encrypted links + +ieee80211_tx_h_select_key drops any non-mgmt packets without a key when +encryption is used. This is wrong for nulldata packets that can't be +encrypted and are sent out for probing clients and indicating 4-address +mode. + +Reported-by: Sebastian Gottschall +Fixes: a0761a301746 ("mac80211: drop data frames without key on encrypted links") +Signed-off-by: Felix Fietkau +--- + +--- a/net/mac80211/tx.c ++++ b/net/mac80211/tx.c +@@ -657,7 +657,7 @@ ieee80211_tx_h_select_key(struct ieee802 + if (!skip_hw && tx->key && + tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) + info->control.hw_key = &tx->key->conf; +- } else if (!ieee80211_is_mgmt(hdr->frame_control) && tx->sta && ++ } else if (ieee80211_is_data_present(hdr->frame_control) && tx->sta && + test_sta_flag(tx->sta, WLAN_STA_USES_ENCRYPTION)) { + return TX_DROP; + } diff --git a/package/kernel/mac80211/patches/subsys/370-mac80211-fix-misplaced-while-instead-of-if.patch b/package/kernel/mac80211/patches/subsys/370-mac80211-fix-misplaced-while-instead-of-if.patch deleted file mode 100644 index 38144013f..000000000 --- a/package/kernel/mac80211/patches/subsys/370-mac80211-fix-misplaced-while-instead-of-if.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 5981fe5b0529ba25d95f37d7faa434183ad618c5 Mon Sep 17 00:00:00 2001 -From: Johannes Berg -Date: Mon, 3 Aug 2020 11:02:10 +0200 -Subject: [PATCH] mac80211: fix misplaced while instead of if - -This never was intended to be a 'while' loop, it should've -just been an 'if' instead of 'while'. Fix this. - -I noticed this while applying another patch from Ben that -intended to fix a busy loop at this spot. - -Cc: stable@vger.kernel.org -Fixes: b16798f5b907 ("mac80211: mark station unauthorized before key removal") -Reported-by: Ben Greear -Link: https://lore.kernel.org/r/20200803110209.253009ae41ff.I3522aad099392b31d5cf2dcca34cbac7e5832dde@changeid -Signed-off-by: Johannes Berg ---- - net/mac80211/sta_info.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/net/mac80211/sta_info.c -+++ b/net/mac80211/sta_info.c -@@ -1051,7 +1051,7 @@ static void __sta_info_destroy_part2(str - might_sleep(); - lockdep_assert_held(&local->sta_mtx); - -- while (sta->sta_state == IEEE80211_STA_AUTHORIZED) { -+ if (sta->sta_state == IEEE80211_STA_AUTHORIZED) { - ret = sta_info_move_state(sta, IEEE80211_STA_ASSOC); - WARN_ON_ONCE(ret); - } diff --git a/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch b/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch index 8db3a758a..6abf3a126 100644 --- a/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch +++ b/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch @@ -57,7 +57,7 @@ __NL80211_ATTR_AFTER_LAST, --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -2611,6 +2611,19 @@ static int ieee80211_get_tx_power(struct +@@ -2612,6 +2612,19 @@ static int ieee80211_get_tx_power(struct return 0; } @@ -77,7 +77,7 @@ static int ieee80211_set_wds_peer(struct wiphy *wiphy, struct net_device *dev, const u8 *addr) { -@@ -4041,6 +4054,7 @@ const struct cfg80211_ops mac80211_confi +@@ -4042,6 +4055,7 @@ const struct cfg80211_ops mac80211_confi .set_wiphy_params = ieee80211_set_wiphy_params, .set_tx_power = ieee80211_set_tx_power, .get_tx_power = ieee80211_get_tx_power, @@ -137,7 +137,7 @@ }; /* policy for the key attributes */ -@@ -3136,6 +3137,20 @@ static int nl80211_set_wiphy(struct sk_b +@@ -3139,6 +3140,20 @@ static int nl80211_set_wiphy(struct sk_b if (result) return result; } diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile index 1277c6db8..d36f81031 100644 --- a/package/kernel/mt76/Makefile +++ b/package/kernel/mt76/Makefile @@ -1,16 +1,16 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mt76 -PKG_RELEASE=2 +PKG_RELEASE=3 PKG_LICENSE:=GPLv2 PKG_LICENSE_FILES:= PKG_SOURCE_URL:=https://github.com/openwrt/mt76 PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2020-09-23 -PKG_SOURCE_VERSION:=b22977c2727db7fea8d487573edb3aa668d8309d -PKG_MIRROR_HASH:=4182823ec5a97d842e7404b3c8139de8af4f35948008890d50e4dad95add996b +PKG_SOURCE_DATE:=2020-12-18 +PKG_SOURCE_VERSION:=4a90fdf6105e1517897aac1b451b73a54b3d9d0d +PKG_MIRROR_HASH:=1ea778584d0fabbc75eb3b2f42aba0c0f2f5e6f0f5ae3084c17b9f02876ebdcc PKG_MAINTAINER:=Felix Fietkau PKG_BUILD_PARALLEL:=1 diff --git a/package/kernel/mt76/patches/100-tools-Set-mode-for-new-file-tmp-mt76-test-s.patch b/package/kernel/mt76/patches/100-tools-Set-mode-for-new-file-tmp-mt76-test-s.patch new file mode 100644 index 000000000..71b43a1cb --- /dev/null +++ b/package/kernel/mt76/patches/100-tools-Set-mode-for-new-file-tmp-mt76-test-s.patch @@ -0,0 +1,25 @@ +From fe89f9bc4055fd6055ce8792a715a40a6c75ba44 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Thu, 17 Dec 2020 13:54:04 +0100 +Subject: [PATCH] tools: Set mode for new file /tmp/mt76-test-%s + +Set the file system mode for the newly created file /tmp/mt76-test-%s, +this is mandatory according to the man page and fixes a compile error +with glibc. + +Signed-off-by: Hauke Mehrtens +--- + tools/eeprom.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/tools/eeprom.c ++++ b/tools/eeprom.c +@@ -77,7 +77,7 @@ mt76_eeprom_create_file(void) + return -1; + } + +- fd = open(eeprom_file, O_RDWR | O_CREAT | O_EXCL); ++ fd = open(eeprom_file, O_RDWR | O_CREAT | O_EXCL, 00644); + if (fd < 0) + goto out; + diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile index 1e20b5620..b2a6de05c 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:=17 +PKG_RELEASE:=22 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 3c9a5023f..19f999054 100644 --- a/package/network/services/hostapd/files/hostapd.sh +++ b/package/network/services/hostapd/files/hostapd.sh @@ -99,6 +99,7 @@ hostapd_common_add_device_config() { config_add_string require_mode config_add_boolean legacy_rates config_add_boolean vendor_vht + config_add_int cell_density config_add_string acs_chan_bias config_add_array hostapd_options @@ -116,17 +117,16 @@ hostapd_prepare_device_config() { local base_cfg= json_get_vars country country_ie beacon_int:100 dtim_period:2 doth require_mode legacy_rates \ - acs_chan_bias local_pwr_constraint spectrum_mgmt_required airtime_mode vendor_vht + acs_chan_bias local_pwr_constraint spectrum_mgmt_required airtime_mode cell_density vendor_vht hostapd_set_log_options base_cfg set_default country_ie 1 set_default spectrum_mgmt_required 0 set_default doth 1 - set_default legacy_rates 1 + set_default legacy_rates 0 set_default airtime_mode 0 - - [ "$hwmode" = "b" ] && legacy_rates=1 + set_default cell_density 0 [ -n "$country" ] && { append base_cfg "country_code=$country" "$N" @@ -147,17 +147,58 @@ hostapd_prepare_device_config() { json_get_values rate_list supported_rates [ -n "$hwmode" ] && append base_cfg "hw_mode=$hwmode" "$N" - [ "$legacy_rates" -eq 0 ] && set_default require_mode g - - [ "$hwmode" = "g" ] && { - [ "$legacy_rates" -eq 0 ] && set_default rate_list "6000 9000 12000 18000 24000 36000 48000 54000" - [ -n "$require_mode" ] && set_default basic_rate_list "6000 12000 24000" - [ -n "$vendor_vht" ] && append base_cfg "vendor_vht=$vendor_vht" "$N" - } - - case "$require_mode" in - n) append base_cfg "require_ht=1" "$N";; - ac) append base_cfg "require_vht=1" "$N";; + if [ "$hwmode" = "g" ] || [ "$hwmode" = "a" ]; then + [ -n "$require_mode" ] && legacy_rates=0 + case "$require_mode" in + n) append base_cfg "require_ht=1" "$N";; + ac) append base_cfg "require_vht=1" "$N";; + esac + fi + case "$hwmode" in + b) + if [ "$cell_density" -eq 1 ]; then + set_default rate_list "5500 11000" + set_default basic_rate_list "5500 11000" + elif [ "$cell_density" -ge 2 ]; then + set_default rate_list "11000" + set_default basic_rate_list "11000" + fi + ;; + g) + if [ "$cell_density" -eq 0 ] || [ "$cell_density" -eq 1 ]; then + if [ "$legacy_rates" -eq 0 ]; then + set_default rate_list "6000 9000 12000 18000 24000 36000 48000 54000" + set_default basic_rate_list "6000 12000 24000" + elif [ "$cell_density" -eq 1 ]; then + set_default rate_list "5500 6000 9000 11000 12000 18000 24000 36000 48000 54000" + set_default basic_rate_list "5500 11000" + fi + elif [ "$cell_density" -ge 3 ] && [ "$legacy_rates" -ne 0 ] || [ "$cell_density" -eq 2 ]; then + if [ "$legacy_rates" -eq 0 ]; then + set_default rate_list "12000 18000 24000 36000 48000 54000" + set_default basic_rate_list "12000 24000" + else + set_default rate_list "11000 12000 18000 24000 36000 48000 54000" + set_default basic_rate_list "11000" + fi + elif [ "$cell_density" -ge 3 ]; then + set_default rate_list "24000 36000 48000 54000" + set_default basic_rate_list "24000" + fi + [ -n "$vendor_vht" ] && append base_cfg "vendor_vht=$vendor_vht" "$N" + ;; + a) + if [ "$cell_density" -eq 1 ]; then + set_default rate_list "6000 9000 12000 18000 24000 36000 48000 54000" + set_default basic_rate_list "6000 12000 24000" + elif [ "$cell_density" -eq 2 ]; then + set_default rate_list "12000 18000 24000 36000 48000 54000" + set_default basic_rate_list "12000 24000" + elif [ "$cell_density" -ge 3 ]; then + set_default rate_list "24000 36000 48000 54000" + set_default basic_rate_list "24000" + fi + ;; esac for r in $rate_list; do @@ -190,7 +231,7 @@ hostapd_common_add_bss_config() { config_add_boolean wds wmm uapsd hidden utf8_ssid config_add_int maxassoc max_inactivity - config_add_boolean disassoc_low_ack isolate short_preamble + config_add_boolean disassoc_low_ack isolate short_preamble skip_inactivity_poll config_add_int \ wep_rekey eap_reauth_period \ @@ -291,6 +332,8 @@ hostapd_common_add_bss_config() { config_add_array airtime_sta_weight config_add_int airtime_bss_weight airtime_bss_limit + + config_add_array hostapd_bss_options } hostapd_set_vlan_file() { @@ -438,7 +481,7 @@ hostapd_set_bss_options() { iapp_interface eapol_version dynamic_vlan ieee80211w nasid \ acct_server acct_secret acct_port acct_interval \ bss_load_update_period chan_util_avg_period sae_require_mfp \ - multi_ap multi_ap_backhaul_ssid multi_ap_backhaul_key \ + multi_ap multi_ap_backhaul_ssid multi_ap_backhaul_key skip_inactivity_poll \ airtime_bss_weight airtime_bss_limit airtime_sta_weight set_default isolate 0 @@ -446,12 +489,13 @@ hostapd_set_bss_options() { set_default max_inactivity 0 set_default short_preamble 1 set_default disassoc_low_ack 1 + set_default skip_inactivity_poll 0 set_default hidden 0 set_default wmm 1 set_default uapsd 1 set_default wpa_disable_eapol_key_retries 0 set_default tdls_prohibit 0 - set_default eapol_version 0 + set_default eapol_version $((wpa & 1)) set_default acct_port 1813 set_default bss_load_update_period 60 set_default chan_util_avg_period 600 @@ -478,6 +522,7 @@ hostapd_set_bss_options() { append bss_conf "bss_load_update_period=$bss_load_update_period" "$N" append bss_conf "chan_util_avg_period=$chan_util_avg_period" "$N" append bss_conf "disassoc_low_ack=$disassoc_low_ack" "$N" + append bss_conf "skip_inactivity_poll=$skip_inactivity_poll" "$N" append bss_conf "preamble=$short_preamble" "$N" append bss_conf "wmm_enabled=$wmm" "$N" append bss_conf "ignore_broadcast_ssid=$hidden" "$N" @@ -899,6 +944,11 @@ hostapd_set_bss_options() { json_for_each_item append_operator_icon operator_icon fi + json_get_values opts hostapd_bss_options + for val in $opts; do + append bss_conf "$val" "$N" + done + bss_md5sum=$(echo $bss_conf | md5sum | cut -d" " -f1) append bss_conf "config_id=$bss_md5sum" "$N" @@ -1264,6 +1314,11 @@ wpa_supplicant_add_network() { ;; esac + [ "$wpa_cipher" = GCMP ] && { + append network_data "pairwise=GCMP" "$N$T" + append network_data "group=GCMP" "$N$T" + } + [ "$mode" = mesh ] || { case "$wpa" in 1) @@ -1326,19 +1381,18 @@ wpa_supplicant_run() { _wpa_supplicant_common "$ifname" ubus wait_for wpa_supplicant - ubus call wpa_supplicant config_add "{ \ + local supplicant_pid=$(ubus call wpa_supplicant config_add "{ \ \"driver\": \"${_w_driver:-wext}\", \"ctrl\": \"$_rpath\", \ \"iface\": \"$ifname\", \"config\": \"$_config\" \ ${network_bridge:+, \"bridge\": \"$network_bridge\"} \ ${hostapd_ctrl:+, \"hostapd_ctrl\": \"$hostapd_ctrl\"} \ - }" + }" | jsonfilter -l 1 -e @.pid) ret="$?" [ "$ret" != 0 ] && wireless_setup_vif_failed WPA_SUPPLICANT_FAILED - local supplicant_pid=$(ubus call service list '{"name": "wpad"}' | jsonfilter -l 1 -e "@['wpad'].instances['supplicant'].pid") - wireless_add_process "$supplicant_pid" "/usr/sbin/wpa_supplicant" 1 + wireless_add_process "$supplicant_pid" "/usr/sbin/wpa_supplicant" 1 1 return $ret } diff --git a/package/network/services/hostapd/files/wpad.init b/package/network/services/hostapd/files/wpad.init index 3198e9801..847179677 100644 --- a/package/network/services/hostapd/files/wpad.init +++ b/package/network/services/hostapd/files/wpad.init @@ -11,7 +11,7 @@ start_service() { mkdir -p /var/run/hostapd procd_open_instance hostapd procd_set_param command /usr/sbin/hostapd -s -g /var/run/hostapd/global - procd_set_param respawn + procd_set_param respawn 3600 1 0 procd_close_instance fi @@ -19,7 +19,7 @@ start_service() { mkdir -p /var/run/wpa_supplicant procd_open_instance supplicant procd_set_param command /usr/sbin/wpa_supplicant -n -s -g /var/run/wpa_supplicant/global - procd_set_param respawn + procd_set_param respawn 3600 1 0 procd_close_instance fi } diff --git a/package/network/services/hostapd/src/src/ap/ubus.c b/package/network/services/hostapd/src/src/ap/ubus.c index 8546d2ce6..d03b848f9 100644 --- a/package/network/services/hostapd/src/src/ap/ubus.c +++ b/package/network/services/hostapd/src/src/ap/ubus.c @@ -658,6 +658,10 @@ hostapd_config_add(struct ubus_context *ctx, struct ubus_object *obj, if (hostapd_add_iface(interfaces, buf)) return UBUS_STATUS_INVALID_ARGUMENT; + blob_buf_init(&b, 0); + blobmsg_add_u32(&b, "pid", getpid()); + ubus_send_reply(ctx, req, b.head); + return UBUS_STATUS_OK; } diff --git a/package/network/services/hostapd/src/wpa_supplicant/ubus.c b/package/network/services/hostapd/src/wpa_supplicant/ubus.c index 4bb92a7b6..16a68c507 100644 --- a/package/network/services/hostapd/src/wpa_supplicant/ubus.c +++ b/package/network/services/hostapd/src/wpa_supplicant/ubus.c @@ -264,6 +264,10 @@ wpas_config_add(struct ubus_context *ctx, struct ubus_object *obj, if (!wpa_supplicant_add_iface(global, iface, NULL)) return UBUS_STATUS_INVALID_ARGUMENT; + blob_buf_init(&b, 0); + blobmsg_add_u32(&b, "pid", getpid()); + ubus_send_reply(ctx, req, b.head); + return UBUS_STATUS_OK; }