diff options
Diffstat (limited to 'package/network')
-rw-r--r-- | package/network/utils/iw/Makefile | 4 | ||||
-rw-r--r-- | package/network/utils/iw/patches/001-nl80211_h_sync.patch | 79 | ||||
-rw-r--r-- | package/network/utils/iw/patches/120-antenna_gain.patch | 3 | ||||
-rw-r--r-- | package/network/utils/iw/patches/200-reduce_size.patch | 106 |
4 files changed, 56 insertions, 136 deletions
diff --git a/package/network/utils/iw/Makefile b/package/network/utils/iw/Makefile index 53cfee3674..ad82081570 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:=4.1 +PKG_VERSION:=4.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://www.kernel.org/pub/software/network/iw -PKG_MD5SUM:=3a292dd342bb88e30e74015ae6fe1e54 +PKG_MD5SUM:=7adec72e91ebdd9c55429fa34a23a6f5 PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org> 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 afa55064e5..ce706daf91 100644 --- a/package/network/utils/iw/patches/001-nl80211_h_sync.patch +++ b/package/network/utils/iw/patches/001-nl80211_h_sync.patch @@ -19,82 +19,3 @@ /* add attributes here, update the policy in nl80211.c */ __NL80211_ATTR_AFTER_LAST, -@@ -2620,16 +2625,17 @@ enum nl80211_band_attr { - * an indoor surroundings, i.e., it is connected to AC power (and not - * through portable DC inverters) or is under the control of a master - * that is acting as an AP and is connected to AC power. -- * @NL80211_FREQUENCY_ATTR_GO_CONCURRENT: GO operation is allowed on this -+ * @NL80211_FREQUENCY_ATTR_IR_CONCURRENT: IR operation is allowed on this - * channel if it's connected concurrently to a BSS on the same channel on - * the 2 GHz band or to a channel in the same UNII band (on the 5 GHz -- * band), and IEEE80211_CHAN_RADAR is not set. Instantiating a GO on a -- * channel that has the GO_CONCURRENT attribute set can be done when there -- * is a clear assessment that the device is operating under the guidance of -- * an authorized master, i.e., setting up a GO while the device is also -- * connected to an AP with DFS and radar detection on the UNII band (it is -- * up to user-space, i.e., wpa_supplicant to perform the required -- * verifications) -+ * band), and IEEE80211_CHAN_RADAR is not set. Instantiating a GO or TDLS -+ * off-channel on a channel that has the IR_CONCURRENT attribute set can be -+ * done when there is a clear assessment that the device is operating under -+ * the guidance of an authorized master, i.e., setting up a GO or TDLS -+ * off-channel while the device is also connected to an AP with DFS and -+ * radar detection on the UNII band (it is up to user-space, i.e., -+ * wpa_supplicant to perform the required verifications). Using this -+ * attribute for IR is disallowed for master interfaces (IBSS, AP). - * @NL80211_FREQUENCY_ATTR_NO_20MHZ: 20 MHz operation is not allowed - * on this channel in current regulatory domain. - * @NL80211_FREQUENCY_ATTR_NO_10MHZ: 10 MHz operation is not allowed -@@ -2641,7 +2647,7 @@ enum nl80211_band_attr { - * See https://apps.fcc.gov/eas/comments/GetPublishedDocument.html?id=327&tn=528122 - * for more information on the FCC description of the relaxations allowed - * by NL80211_FREQUENCY_ATTR_INDOOR_ONLY and -- * NL80211_FREQUENCY_ATTR_GO_CONCURRENT. -+ * NL80211_FREQUENCY_ATTR_IR_CONCURRENT. - */ - enum nl80211_frequency_attr { - __NL80211_FREQUENCY_ATTR_INVALID, -@@ -2659,7 +2665,7 @@ enum nl80211_frequency_attr { - NL80211_FREQUENCY_ATTR_NO_160MHZ, - NL80211_FREQUENCY_ATTR_DFS_CAC_TIME, - NL80211_FREQUENCY_ATTR_INDOOR_ONLY, -- NL80211_FREQUENCY_ATTR_GO_CONCURRENT, -+ NL80211_FREQUENCY_ATTR_IR_CONCURRENT, - NL80211_FREQUENCY_ATTR_NO_20MHZ, - NL80211_FREQUENCY_ATTR_NO_10MHZ, - -@@ -2672,6 +2678,8 @@ enum nl80211_frequency_attr { - #define NL80211_FREQUENCY_ATTR_PASSIVE_SCAN NL80211_FREQUENCY_ATTR_NO_IR - #define NL80211_FREQUENCY_ATTR_NO_IBSS NL80211_FREQUENCY_ATTR_NO_IR - #define NL80211_FREQUENCY_ATTR_NO_IR NL80211_FREQUENCY_ATTR_NO_IR -+#define NL80211_FREQUENCY_ATTR_GO_CONCURRENT \ -+ NL80211_FREQUENCY_ATTR_IR_CONCURRENT - - /** - * enum nl80211_bitrate_attr - bitrate attributes -@@ -2830,7 +2838,7 @@ enum nl80211_sched_scan_match_attr { - * @NL80211_RRF_AUTO_BW: maximum available bandwidth should be calculated - * base on contiguous rules and wider channels will be allowed to cross - * multiple contiguous/overlapping frequency ranges. -- * @NL80211_RRF_GO_CONCURRENT: See &NL80211_FREQUENCY_ATTR_GO_CONCURRENT -+ * @NL80211_RRF_IR_CONCURRENT: See &NL80211_FREQUENCY_ATTR_IR_CONCURRENT - * @NL80211_RRF_NO_HT40MINUS: channels can't be used in HT40- operation - * @NL80211_RRF_NO_HT40PLUS: channels can't be used in HT40+ operation - * @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed -@@ -2847,7 +2855,7 @@ enum nl80211_reg_rule_flags { - NL80211_RRF_NO_IR = 1<<7, - __NL80211_RRF_NO_IBSS = 1<<8, - NL80211_RRF_AUTO_BW = 1<<11, -- NL80211_RRF_GO_CONCURRENT = 1<<12, -+ NL80211_RRF_IR_CONCURRENT = 1<<12, - NL80211_RRF_NO_HT40MINUS = 1<<13, - NL80211_RRF_NO_HT40PLUS = 1<<14, - NL80211_RRF_NO_80MHZ = 1<<15, -@@ -2859,6 +2867,7 @@ enum nl80211_reg_rule_flags { - #define NL80211_RRF_NO_IR NL80211_RRF_NO_IR - #define NL80211_RRF_NO_HT40 (NL80211_RRF_NO_HT40MINUS |\ - NL80211_RRF_NO_HT40PLUS) -+#define NL80211_RRF_GO_CONCURRENT NL80211_RRF_IR_CONCURRENT - - /* For backport compatibility with older userspace */ - #define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS) diff --git a/package/network/utils/iw/patches/120-antenna_gain.patch b/package/network/utils/iw/patches/120-antenna_gain.patch index 8de3df2e5a..6a45c70b80 100644 --- a/package/network/utils/iw/patches/120-antenna_gain.patch +++ b/package/network/utils/iw/patches/120-antenna_gain.patch @@ -1,12 +1,11 @@ --- a/phy.c +++ b/phy.c -@@ -532,3 +532,31 @@ COMMAND(set, antenna, "<bitmap> | all | +@@ -524,3 +524,30 @@ COMMAND(set, antenna, "<bitmap> | all | NL80211_CMD_SET_WIPHY, 0, CIB_PHY, handle_antenna, "Set a bitmap of allowed antennas to use for TX and RX.\n" "The driver may reject antenna configurations it cannot support."); + +static int handle_antenna_gain(struct nl80211_state *state, -+ struct nl_cb *cb, + struct nl_msg *msg, + int argc, char **argv, + enum id_input id) diff --git a/package/network/utils/iw/patches/200-reduce_size.patch b/package/network/utils/iw/patches/200-reduce_size.patch index 3ba4730a2f..dea24fb495 100644 --- a/package/network/utils/iw/patches/200-reduce_size.patch +++ b/package/network/utils/iw/patches/200-reduce_size.patch @@ -11,6 +11,44 @@ OBJS += sections.o OBJS-$(HWSIM) += hwsim.o +--- a/event.c ++++ b/event.c +@@ -342,6 +342,7 @@ static int print_event(struct nl_msg *ms + } + + switch (gnlh->cmd) { ++#if 0 + case NL80211_CMD_NEW_WIPHY: + printf("renamed to %s\n", nla_get_string(tb[NL80211_ATTR_WIPHY_NAME])); + break; +@@ -376,6 +377,7 @@ static int print_event(struct nl_msg *ms + case NL80211_CMD_SCHED_SCAN_RESULTS: + printf("got scheduled scan results\n"); + break; ++#endif + case NL80211_CMD_REG_CHANGE: + printf("regulatory domain change: "); + +@@ -454,6 +456,7 @@ static int print_event(struct nl_msg *ms + mac_addr_n2a(macbuf, nla_data(tb[NL80211_ATTR_MAC])); + printf("del station %s\n", macbuf); + break; ++#if 0 + case NL80211_CMD_JOIN_IBSS: + mac_addr_n2a(macbuf, nla_data(tb[NL80211_ATTR_MAC])); + printf("IBSS %s joined\n", macbuf); +@@ -610,9 +613,9 @@ static int print_event(struct nl_msg *ms + case NL80211_CMD_DEL_WIPHY: + printf("delete wiphy\n"); + break; ++#endif + default: +- printf("unknown event %d (%s)\n", +- gnlh->cmd, command_name(gnlh->cmd)); ++ printf("unknown event %d\n", gnlh->cmd); + break; + } + --- a/info.c +++ b/info.c @@ -219,6 +219,7 @@ next: @@ -91,15 +129,15 @@ if (tb_msg[NL80211_ATTR_EXT_FEATURES]) { struct nlattr *tb = tb_msg[NL80211_ATTR_EXT_FEATURES]; -@@ -669,6 +679,7 @@ TOPLEVEL(list, NULL, NL80211_CMD_GET_WIP +@@ -668,6 +678,7 @@ TOPLEVEL(list, NULL, NL80211_CMD_GET_WIP "List all wireless devices and their capabilities."); TOPLEVEL(phy, NULL, NL80211_CMD_GET_WIPHY, NLM_F_DUMP, CIB_NONE, handle_info, NULL); +#if 0 - static int handle_commands(struct nl80211_state *state, - struct nl_cb *cb, struct nl_msg *msg, + static int handle_commands(struct nl80211_state *state, struct nl_msg *msg, int argc, char **argv, enum id_input id) -@@ -681,6 +692,7 @@ static int handle_commands(struct nl8021 + { +@@ -679,6 +690,7 @@ static int handle_commands(struct nl8021 } TOPLEVEL(commands, NULL, NL80211_CMD_GET_WIPHY, 0, CIB_NONE, handle_commands, "list all known commands and their decimal & hex value"); @@ -109,7 +147,7 @@ { --- a/scan.c +++ b/scan.c -@@ -1080,6 +1080,7 @@ static void print_ht_op(const uint8_t ty +@@ -1081,6 +1081,7 @@ 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]); @@ -117,7 +155,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); -@@ -1311,6 +1312,13 @@ static void print_ie(const struct ie_pri +@@ -1312,6 +1313,13 @@ 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), }, @@ -131,7 +169,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), }, -@@ -1320,14 +1328,8 @@ static const struct ie_print ieprinters[ +@@ -1321,14 +1329,8 @@ 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), }, @@ -146,7 +184,7 @@ [50] = { "Extended supported rates", print_supprates, 0, 255, BIT(PRINT_SCAN), }, [113] = { "MESH Configuration", print_mesh_conf, 7, 7, BIT(PRINT_SCAN), }, [114] = { "MESH ID", print_ssid, 0, 32, BIT(PRINT_SCAN) | BIT(PRINT_LINK), }, -@@ -1335,6 +1337,7 @@ static const struct ie_print ieprinters[ +@@ -1336,6 +1338,7 @@ static const struct ie_print ieprinters[ [107] = { "802.11u Interworking", print_interworking, 0, 255, BIT(PRINT_SCAN), }, [108] = { "802.11u Advertisement", print_11u_advert, 0, 255, BIT(PRINT_SCAN), }, [111] = { "802.11u Roaming Consortium", print_11u_rcon, 0, 255, BIT(PRINT_SCAN), }, @@ -154,7 +192,7 @@ }; static void print_wifi_wpa(const uint8_t type, uint8_t len, const uint8_t *data) -@@ -1766,6 +1769,7 @@ void print_ies(unsigned char *ie, int ie +@@ -1767,6 +1770,7 @@ void print_ies(unsigned char *ie, int ie ieprinters[ie[0]].name && ieprinters[ie[0]].flags & BIT(ptype)) { print_ie(&ieprinters[ie[0]], ie[0], ie[1], ie + 2); @@ -162,7 +200,7 @@ } else if (ie[0] == 221 /* vendor */) { print_vendor(ie[1], ie + 2, unknown, ptype); } else if (unknown) { -@@ -1775,6 +1779,7 @@ void print_ies(unsigned char *ie, int ie +@@ -1776,6 +1780,7 @@ void print_ies(unsigned char *ie, int ie for (i=0; i<ie[1]; i++) printf(" %.2x", ie[2+i]); printf("\n"); @@ -170,7 +208,7 @@ } ielen -= ie[1] + 2; ie += ie[1] + 2; -@@ -1815,6 +1820,7 @@ static void print_capa_non_dmg(__u16 cap +@@ -1816,6 +1821,7 @@ static void print_capa_non_dmg(__u16 cap printf(" ESS"); if (capa & WLAN_CAPABILITY_IBSS) printf(" IBSS"); @@ -178,7 +216,7 @@ if (capa & WLAN_CAPABILITY_CF_POLLABLE) printf(" CfPollable"); if (capa & WLAN_CAPABILITY_CF_POLL_REQUEST) -@@ -1843,6 +1849,7 @@ static void print_capa_non_dmg(__u16 cap +@@ -1844,6 +1850,7 @@ static void print_capa_non_dmg(__u16 cap printf(" DelayedBACK"); if (capa & WLAN_CAPABILITY_IMM_BACK) printf(" ImmediateBACK"); @@ -186,7 +224,7 @@ } static int print_bss_handler(struct nl_msg *msg, void *arg) -@@ -1921,8 +1928,10 @@ static int print_bss_handler(struct nl_m +@@ -1922,8 +1929,10 @@ static int print_bss_handler(struct nl_m if (bss[NL80211_BSS_FREQUENCY]) { int freq = nla_get_u32(bss[NL80211_BSS_FREQUENCY]); printf("\tfreq: %d\n", freq); @@ -199,7 +237,7 @@ printf("\tbeacon interval: %d TUs\n", --- a/util.c +++ b/util.c -@@ -264,6 +264,7 @@ static const char *commands[NL80211_CMD_ +@@ -267,6 +267,7 @@ static const char *commands[NL80211_CMD_ static char cmdbuf[100]; @@ -207,7 +245,7 @@ const char *command_name(enum nl80211_commands cmd) { if (cmd <= NL80211_CMD_MAX && commands[cmd]) -@@ -271,6 +272,7 @@ const char *command_name(enum nl80211_co +@@ -274,6 +275,7 @@ const char *command_name(enum nl80211_co sprintf(cmdbuf, "Unknown command (%d)", cmd); return cmdbuf; } @@ -215,41 +253,3 @@ int ieee80211_channel_to_frequency(int chan, enum nl80211_band band) { ---- a/event.c -+++ b/event.c -@@ -334,6 +334,7 @@ static int print_event(struct nl_msg *ms - } - - switch (gnlh->cmd) { -+#if 0 - case NL80211_CMD_NEW_WIPHY: - printf("renamed to %s\n", nla_get_string(tb[NL80211_ATTR_WIPHY_NAME])); - break; -@@ -368,6 +369,7 @@ static int print_event(struct nl_msg *ms - case NL80211_CMD_SCHED_SCAN_RESULTS: - printf("got scheduled scan results\n"); - break; -+#endif - case NL80211_CMD_REG_CHANGE: - printf("regulatory domain change: "); - -@@ -446,6 +448,7 @@ static int print_event(struct nl_msg *ms - mac_addr_n2a(macbuf, nla_data(tb[NL80211_ATTR_MAC])); - printf("del station %s\n", macbuf); - break; -+#if 0 - case NL80211_CMD_JOIN_IBSS: - mac_addr_n2a(macbuf, nla_data(tb[NL80211_ATTR_MAC])); - printf("IBSS %s joined\n", macbuf); -@@ -599,9 +602,9 @@ static int print_event(struct nl_msg *ms - } - printf("\n"); - break; -+#endif - default: -- printf("unknown event %d (%s)\n", -- gnlh->cmd, command_name(gnlh->cmd)); -+ printf("unknown event %d\n", gnlh->cmd); - break; - } - |