From b9d29b78c81e90b9d0a24b1fa002ae6c5ea18299 Mon Sep 17 00:00:00 2001 From: DENG Qingfang Date: Wed, 12 Feb 2020 20:16:05 +0800 Subject: [PATCH] iw: update to 5.4 Update iw to 5.4 This increases the ipk size of iw-tiny/full by about 400 bytes Signed-off-by: DENG Qingfang --- package/network/utils/iw/Makefile | 6 +- .../utils/iw/patches/001-nl80211_h_sync.patch | 125 ++++-------------- .../utils/iw/patches/200-reduce_size.patch | 30 ++--- 3 files changed, 43 insertions(+), 118 deletions(-) diff --git a/package/network/utils/iw/Makefile b/package/network/utils/iw/Makefile index ed2599342c..7abf93e01e 100644 --- a/package/network/utils/iw/Makefile +++ b/package/network/utils/iw/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=iw -PKG_VERSION:=5.3 -PKG_RELEASE:=2 +PKG_VERSION:=5.4 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/software/network/iw -PKG_HASH:=04afe857bc8dea67e461946de30ae1b012954b6965839c5c3fda7d0ed15505d5 +PKG_HASH:=a2469f677088d7b1070a7fbb28f3c747041697e8f6ec70783339cb1bc27a395f PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=GPL-2.0 diff --git a/package/network/utils/iw/patches/001-nl80211_h_sync.patch b/package/network/utils/iw/patches/001-nl80211_h_sync.patch index 97cf82793d..6b65f61846 100644 --- a/package/network/utils/iw/patches/001-nl80211_h_sync.patch +++ b/package/network/utils/iw/patches/001-nl80211_h_sync.patch @@ -1,116 +1,41 @@ --- a/nl80211.h +++ b/nl80211.h -@@ -52,6 +52,11 @@ - #define NL80211_MULTICAST_GROUP_NAN "nan" - #define NL80211_MULTICAST_GROUP_TESTMODE "testmode" - -+#define NL80211_EDMG_BW_CONFIG_MIN 4 -+#define NL80211_EDMG_BW_CONFIG_MAX 15 -+#define NL80211_EDMG_CHANNELS_MIN 1 -+#define NL80211_EDMG_CHANNELS_MAX 0x3c /* 0b00111100 */ -+ - /** - * DOC: Station handling +@@ -2373,6 +2373,9 @@ enum nl80211_commands { + * the allowed channel bandwidth configurations. (u8 attribute) + * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13. * -@@ -2361,6 +2366,16 @@ enum nl80211_commands { - * @NL80211_ATTR_HE_OBSS_PD: nested attribute for OBSS Packet Detection - * functionality. - * -+ * @NL80211_ATTR_WIPHY_EDMG_CHANNELS: bitmap that indicates the 2.16 GHz -+ * channel(s) that are allowed to be used for EDMG transmissions. -+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251. (u8 attribute) -+ * @NL80211_ATTR_WIPHY_EDMG_BW_CONFIG: Channel BW Configuration subfield encodes -+ * the allowed channel bandwidth configurations. (u8 attribute) -+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13. -+ * + * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce + * transmit power to stay within regulatory limits. u32, dBi. + * * @NUM_NL80211_ATTR: total number of nl80211_attrs available * @NL80211_ATTR_MAX: highest attribute number currently defined * @__NL80211_ATTR_AFTER_LAST: internal use -@@ -2820,6 +2835,11 @@ enum nl80211_attrs { +@@ -2835,6 +2838,8 @@ enum nl80211_attrs { + NL80211_ATTR_WIPHY_EDMG_CHANNELS, + NL80211_ATTR_WIPHY_EDMG_BW_CONFIG, - NL80211_ATTR_HE_OBSS_PD, - -+ NL80211_ATTR_WIPHY_EDMG_CHANNELS, -+ NL80211_ATTR_WIPHY_EDMG_BW_CONFIG, -+ + NL80211_ATTR_WIPHY_ANTENNA_GAIN, + /* add attributes here, update the policy in nl80211.c */ __NL80211_ATTR_AFTER_LAST, -@@ -3201,6 +3221,8 @@ enum nl80211_sta_bss_param { - * sent to the station (u64, usec) - * @NL80211_STA_INFO_AIRTIME_WEIGHT: current airtime weight for station (u16) - * @NL80211_STA_INFO_AIRTIME_LINK_METRIC: airtime link metric for mesh station -+ * @NL80211_STA_INFO_ASSOC_AT_BOOTTIME: Timestamp (CLOCK_BOOTTIME, nanoseconds) -+ * of STA's association - * @__NL80211_STA_INFO_AFTER_LAST: internal - * @NL80211_STA_INFO_MAX: highest possible station info attribute - */ -@@ -3247,6 +3269,7 @@ enum nl80211_sta_info { - NL80211_STA_INFO_TX_DURATION, - NL80211_STA_INFO_AIRTIME_WEIGHT, - NL80211_STA_INFO_AIRTIME_LINK_METRIC, -+ NL80211_STA_INFO_ASSOC_AT_BOOTTIME, - - /* keep last */ - __NL80211_STA_INFO_AFTER_LAST, -@@ -3428,6 +3451,12 @@ enum nl80211_band_iftype_attr { - * @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE - * @NL80211_BAND_ATTR_IFTYPE_DATA: nested array attribute, with each entry using - * attributes from &enum nl80211_band_iftype_attr -+ * @NL80211_BAND_ATTR_EDMG_CHANNELS: bitmap that indicates the 2.16 GHz -+ * channel(s) that are allowed to be used for EDMG transmissions. -+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251. -+ * @NL80211_BAND_ATTR_EDMG_BW_CONFIG: Channel BW Configuration subfield encodes -+ * the allowed channel bandwidth configurations. -+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13. - * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined - * @__NL80211_BAND_ATTR_AFTER_LAST: internal use - */ -@@ -3445,6 +3474,9 @@ enum nl80211_band_attr { - NL80211_BAND_ATTR_VHT_CAPA, - NL80211_BAND_ATTR_IFTYPE_DATA, - -+ NL80211_BAND_ATTR_EDMG_CHANNELS, -+ NL80211_BAND_ATTR_EDMG_BW_CONFIG, -+ - /* keep last */ - __NL80211_BAND_ATTR_AFTER_LAST, - NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1 -@@ -3843,6 +3875,8 @@ enum nl80211_user_reg_hint_type { - * @NL80211_SURVEY_INFO_TIME_SCAN: time the radio spent for scan - * (on this channel or globally) - * @NL80211_SURVEY_INFO_PAD: attribute used for padding for 64-bit alignment -+ * @NL80211_SURVEY_INFO_TIME_BSS_RX: amount of time the radio spent -+ * receiving frames destined to the local BSS - * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number - * currently defined - * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use -@@ -3859,6 +3893,7 @@ enum nl80211_survey_info { - NL80211_SURVEY_INFO_TIME_TX, - NL80211_SURVEY_INFO_TIME_SCAN, - NL80211_SURVEY_INFO_PAD, -+ NL80211_SURVEY_INFO_TIME_BSS_RX, - - /* keep last */ - __NL80211_SURVEY_INFO_AFTER_LAST, -@@ -4543,6 +4578,7 @@ enum nl80211_txrate_gi { - * @NL80211_BAND_2GHZ: 2.4 GHz ISM band - * @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz) - * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz) -+ * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz) - * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace - * since newer kernel versions may support more bands +@@ -5484,6 +5489,10 @@ enum nl80211_feature_flags { + * @NL80211_EXT_FEATURE_SAE_OFFLOAD: Device wants to do SAE authentication in + * station mode (SAE password is passed as part of the connect command). + * ++ * @NL80211_EXT_FEATURE_AQL: The driver supports the Airtime Queue Limit (AQL) ++ * feature, which prevents bufferbloat by using the expected transmission ++ * time to limit the amount of data buffered in the hardware. ++ * + * @NUM_NL80211_EXT_FEATURES: number of extended features. + * @MAX_NL80211_EXT_FEATURES: highest extended feature index. */ -@@ -4550,6 +4586,7 @@ enum nl80211_band { - NL80211_BAND_2GHZ, - NL80211_BAND_5GHZ, - NL80211_BAND_60GHZ, -+ NL80211_BAND_6GHZ, - - NUM_NL80211_BANDS, - }; +@@ -5529,6 +5538,8 @@ enum nl80211_ext_feature_index { + NL80211_EXT_FEATURE_EXT_KEY_ID, + NL80211_EXT_FEATURE_STA_TX_PWR, + NL80211_EXT_FEATURE_SAE_OFFLOAD, ++ NL80211_EXT_FEATURE_VLAN_OFFLOAD, ++ NL80211_EXT_FEATURE_AQL, + + /* add new features before the definition below */ + NUM_NL80211_EXT_FEATURES, diff --git a/package/network/utils/iw/patches/200-reduce_size.patch b/package/network/utils/iw/patches/200-reduce_size.patch index a6d1855771..58613d59a0 100644 --- a/package/network/utils/iw/patches/200-reduce_size.patch +++ b/package/network/utils/iw/patches/200-reduce_size.patch @@ -150,7 +150,7 @@ { --- a/scan.c +++ b/scan.c -@@ -1197,6 +1197,9 @@ static void print_ht_op(const uint8_t ty +@@ -1195,6 +1195,9 @@ static void print_ht_op(const uint8_t ty printf("\t\t * secondary channel offset: %s\n", ht_secondary_offset[data[1] & 0x3]); printf("\t\t * STA channel width: %s\n", sta_chan_width[(data[1] & 0x4)>>2]); @@ -160,7 +160,7 @@ printf("\t\t * RIFS: %d\n", (data[1] & 0x8)>>3); printf("\t\t * HT protection: %s\n", protection[data[2] & 0x3]); printf("\t\t * non-GF present: %d\n", (data[2] & 0x4) >> 2); -@@ -1524,6 +1527,14 @@ static void print_ie(const struct ie_pri +@@ -1522,6 +1525,14 @@ static void print_ie(const struct ie_pri static const struct ie_print ieprinters[] = { [0] = { "SSID", print_ssid, 0, 32, BIT(PRINT_SCAN) | BIT(PRINT_LINK), }, @@ -175,7 +175,7 @@ [1] = { "Supported rates", print_supprates, 0, 255, BIT(PRINT_SCAN), }, [3] = { "DS Parameter set", print_ds, 1, 1, BIT(PRINT_SCAN), }, [5] = { "TIM", print_tim, 4, 255, BIT(PRINT_SCAN), }, -@@ -1533,21 +1544,15 @@ static const struct ie_print ieprinters[ +@@ -1531,21 +1542,15 @@ static const struct ie_print ieprinters[ [32] = { "Power constraint", print_powerconstraint, 1, 1, BIT(PRINT_SCAN), }, [35] = { "TPC report", print_tpcreport, 2, 2, BIT(PRINT_SCAN), }, [42] = { "ERP", print_erp, 1, 255, BIT(PRINT_SCAN), }, @@ -198,7 +198,7 @@ }; static void print_wifi_wpa(const uint8_t type, uint8_t len, const uint8_t *data, -@@ -2026,6 +2031,7 @@ void print_ies(unsigned char *ie, int ie +@@ -2024,6 +2029,7 @@ void print_ies(unsigned char *ie, int ie ieprinters[ie[0]].flags & BIT(ptype)) { print_ie(&ieprinters[ie[0]], ie[0], ie[1], ie + 2, &ie_buffer); @@ -206,7 +206,7 @@ } else if (ie[0] == 221 /* vendor */) { print_vendor(ie[1], ie + 2, unknown, ptype); } else if (unknown) { -@@ -2035,6 +2041,7 @@ void print_ies(unsigned char *ie, int ie +@@ -2033,6 +2039,7 @@ void print_ies(unsigned char *ie, int ie for (i=0; i