diff options
-rw-r--r-- | package/network/utils/iw/patches/001-nl80211_h_sync.patch | 159 | ||||
-rw-r--r-- | package/network/utils/iw/patches/120-antenna_gain.patch | 2 |
2 files changed, 137 insertions, 24 deletions
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 cbae38abcb..3a263686a9 100644 --- a/package/network/utils/iw/patches/001-nl80211_h_sync.patch +++ b/package/network/utils/iw/patches/001-nl80211_h_sync.patch @@ -33,7 +33,32 @@ * Background scan period can optionally be * specified in %NL80211_ATTR_BG_SCAN_PERIOD, * if not specified default background scan configuration -@@ -1555,6 +1566,22 @@ enum nl80211_commands { +@@ -492,6 +503,9 @@ + * TX status event pertaining to the TX request. + * %NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the + * management frames at CCK rate or not in 2GHz band. ++ * %NL80211_ATTR_CSA_C_OFFSETS_TX is an array of offsets to CSA ++ * counters which will be updated to the current value. This attribute ++ * is used during CSA period. + * @NL80211_CMD_FRAME_WAIT_CANCEL: When an off-channel TX was requested, this + * command may be used with the corresponding cookie to cancel the wait + * time if it is known that it is no longer necessary. +@@ -1514,10 +1528,10 @@ enum nl80211_commands { + * operation). + * @NL80211_ATTR_CSA_IES: Nested set of attributes containing the IE information + * for the time while performing a channel switch. +- * @NL80211_ATTR_CSA_C_OFF_BEACON: Offset of the channel switch counter +- * field in the beacons tail (%NL80211_ATTR_BEACON_TAIL). +- * @NL80211_ATTR_CSA_C_OFF_PRESP: Offset of the channel switch counter +- * field in the probe response (%NL80211_ATTR_PROBE_RESP). ++ * @NL80211_ATTR_CSA_C_OFF_BEACON: An array of offsets (u16) to the channel ++ * switch counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL). ++ * @NL80211_ATTR_CSA_C_OFF_PRESP: An array of offsets (u16) to the channel ++ * switch counters in the probe response (%NL80211_ATTR_PROBE_RESP). + * + * @NL80211_ATTR_RXMGMT_FLAGS: flags for nl80211_send_mgmt(), u32. + * As specified in the &enum nl80211_rxmgmt_flags. +@@ -1555,6 +1569,31 @@ enum nl80211_commands { * data is in the format defined for the payload of the QoS Map Set element * in IEEE Std 802.11-2012, 8.4.2.97. * @@ -47,16 +72,25 @@ + * advertise values that cannot always be met. In such cases, an attempt + * to add a new station entry with @NL80211_CMD_NEW_STATION may fail. + * ++ * @NL80211_ATTR_CSA_C_OFFSETS_TX: An array of csa counter offsets (u16) which ++ * should be updated when the frame is transmitted. ++ * @NL80211_ATTR_MAX_CSA_COUNTERS: U8 attribute used to advertise the maximum ++ * supported number of csa counters. ++ * + * @NL80211_ATTR_TDLS_PEER_CAPABILITY: flags for TDLS peer capabilities, u32. + * As specified in the &enum nl80211_tdls_peer_capability. + * ++ * @NL80211_ATTR_IFACE_SOCKET_OWNER: flag attribute, if set during interface ++ * creation then the new interface will be owned by the netlink socket ++ * that created it and will be destroyed when the socket is closed ++ * + * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce + * transmit power to stay within regulatory limits. u32, dBi. + * * @NL80211_ATTR_MAX: highest attribute number currently defined * @__NL80211_ATTR_AFTER_LAST: internal use */ -@@ -1883,6 +1910,15 @@ enum nl80211_attrs { +@@ -1883,6 +1922,20 @@ enum nl80211_attrs { NL80211_ATTR_QOS_MAP, @@ -67,28 +101,65 @@ + + NL80211_ATTR_TDLS_PEER_CAPABILITY, + ++ NL80211_ATTR_IFACE_SOCKET_OWNER, ++ ++ NL80211_ATTR_CSA_C_OFFSETS_TX, ++ NL80211_ATTR_MAX_CSA_COUNTERS, ++ + NL80211_ATTR_WIPHY_ANTENNA_GAIN, + /* add attributes here, update the policy in nl80211.c */ __NL80211_ATTR_AFTER_LAST, -@@ -2304,6 +2340,7 @@ enum nl80211_band_attr { +@@ -2304,9 +2357,35 @@ enum nl80211_band_attr { * @NL80211_FREQUENCY_ATTR_NO_160MHZ: any 160 MHz (but not 80+80) channel * using this channel as the primary or any of the secondary channels * isn't possible + * @NL80211_FREQUENCY_ATTR_DFS_CAC_TIME: DFS CAC time in milliseconds. ++ * @NL80211_FREQUENCY_ATTR_INDOOR_ONLY: Only indoor use is permitted on this ++ * channel. A channel that has the INDOOR_ONLY attribute can only be ++ * used when there is a clear assessment that the device is operating in ++ * 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 ++ * 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) ++ * @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 ++ * on this channel in current regulatory domain. * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number * currently defined * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use -@@ -2322,6 +2359,7 @@ enum nl80211_frequency_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. + */ + enum nl80211_frequency_attr { + __NL80211_FREQUENCY_ATTR_INVALID, +@@ -2322,6 +2401,11 @@ enum nl80211_frequency_attr { NL80211_FREQUENCY_ATTR_NO_HT40_PLUS, NL80211_FREQUENCY_ATTR_NO_80MHZ, NL80211_FREQUENCY_ATTR_NO_160MHZ, + NL80211_FREQUENCY_ATTR_DFS_CAC_TIME, ++ NL80211_FREQUENCY_ATTR_INDOOR_ONLY, ++ NL80211_FREQUENCY_ATTR_GO_CONCURRENT, ++ NL80211_FREQUENCY_ATTR_NO_20MHZ, ++ NL80211_FREQUENCY_ATTR_NO_10MHZ, /* keep last */ __NL80211_FREQUENCY_ATTR_AFTER_LAST, -@@ -2412,12 +2450,14 @@ enum nl80211_reg_type { +@@ -2412,12 +2496,14 @@ enum nl80211_reg_type { * in KHz. This is not a center a frequency but an actual regulatory * band edge. * @NL80211_ATTR_FREQ_RANGE_MAX_BW: maximum allowed bandwidth for this @@ -104,7 +175,7 @@ * @NL80211_REG_RULE_ATTR_MAX: highest regulatory rule attribute number * currently defined * @__NL80211_REG_RULE_ATTR_AFTER_LAST: internal use -@@ -2433,6 +2473,8 @@ enum nl80211_reg_rule_attr { +@@ -2433,6 +2519,8 @@ enum nl80211_reg_rule_attr { NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN, NL80211_ATTR_POWER_RULE_MAX_EIRP, @@ -113,7 +184,7 @@ /* keep last */ __NL80211_REG_RULE_ATTR_AFTER_LAST, NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1 -@@ -2442,9 +2484,15 @@ enum nl80211_reg_rule_attr { +@@ -2442,9 +2530,15 @@ enum nl80211_reg_rule_attr { * enum nl80211_sched_scan_match_attr - scheduled scan match attributes * @__NL80211_SCHED_SCAN_MATCH_ATTR_INVALID: attribute number 0 is reserved * @NL80211_SCHED_SCAN_MATCH_ATTR_SSID: SSID to be used for matching, @@ -131,7 +202,7 @@ * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter * attribute number currently defined * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use -@@ -2477,6 +2525,9 @@ enum nl80211_sched_scan_match_attr { +@@ -2477,6 +2571,9 @@ enum nl80211_sched_scan_match_attr { * @NL80211_RRF_NO_IR: no mechanisms that initiate radiation are allowed, * this includes probe requests or modes of operation that require * beaconing. @@ -141,7 +212,7 @@ */ enum nl80211_reg_rule_flags { NL80211_RRF_NO_OFDM = 1<<0, -@@ -2488,6 +2539,7 @@ enum nl80211_reg_rule_flags { +@@ -2488,6 +2585,7 @@ enum nl80211_reg_rule_flags { NL80211_RRF_PTMP_ONLY = 1<<6, NL80211_RRF_NO_IR = 1<<7, __NL80211_RRF_NO_IBSS = 1<<8, @@ -149,7 +220,21 @@ }; #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR -@@ -3131,6 +3183,7 @@ enum nl80211_key_attributes { +@@ -2526,10 +2624,13 @@ enum nl80211_dfs_regions { + * present has been registered with the wireless core that + * has listed NL80211_FEATURE_CELL_BASE_REG_HINTS as a + * supported feature. ++ * @NL80211_USER_REG_HINT_INDOOR: a user sent an hint indicating that the ++ * platform is operating in an indoor environment. + */ + enum nl80211_user_reg_hint_type { + NL80211_USER_REG_HINT_USER = 0, + NL80211_USER_REG_HINT_CELL_BASE = 1, ++ NL80211_USER_REG_HINT_INDOOR = 2, + }; + + /** +@@ -3131,6 +3232,7 @@ enum nl80211_key_attributes { * in an array of MCS numbers. * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection, * see &struct nl80211_txrate_vht @@ -157,7 +242,7 @@ * @__NL80211_TXRATE_AFTER_LAST: internal * @NL80211_TXRATE_MAX: highest TX rate attribute */ -@@ -3139,6 +3192,7 @@ enum nl80211_tx_rate_attributes { +@@ -3139,6 +3241,7 @@ enum nl80211_tx_rate_attributes { NL80211_TXRATE_LEGACY, NL80211_TXRATE_HT, NL80211_TXRATE_VHT, @@ -165,7 +250,7 @@ /* keep last */ __NL80211_TXRATE_AFTER_LAST, -@@ -3156,6 +3210,12 @@ struct nl80211_txrate_vht { +@@ -3156,6 +3259,12 @@ struct nl80211_txrate_vht { __u16 mcs[NL80211_VHT_NSS_MAX]; }; @@ -178,7 +263,24 @@ /** * enum nl80211_band - Frequency band * @NL80211_BAND_2GHZ: 2.4 GHz ISM band -@@ -3801,11 +3861,6 @@ enum nl80211_ap_sme_features { +@@ -3595,6 +3704,8 @@ enum nl80211_iface_limit_attrs { + * different channels may be used within this group. + * @NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS: u32 attribute containing the bitmap + * of supported channel widths for radar detection. ++ * @NL80211_IFACE_COMB_RADAR_DETECT_REGIONS: u32 attribute containing the bitmap ++ * of supported regulatory regions for radar detection. + * @NUM_NL80211_IFACE_COMB: number of attributes + * @MAX_NL80211_IFACE_COMB: highest attribute number + * +@@ -3628,6 +3739,7 @@ enum nl80211_if_combination_attrs { + NL80211_IFACE_COMB_STA_AP_BI_MATCH, + NL80211_IFACE_COMB_NUM_CHANNELS, + NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS, ++ NL80211_IFACE_COMB_RADAR_DETECT_REGIONS, + + /* keep last */ + NUM_NL80211_IFACE_COMB, +@@ -3801,11 +3913,8 @@ enum nl80211_ap_sme_features { * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested * to work properly to suppport receiving regulatory hints from * cellular base stations. @@ -187,19 +289,30 @@ - * in the interface combinations, even when it's only used for scan - * and remain-on-channel. This could be due to, for example, the - * remain-on-channel implementation requiring a channel context. ++ * @NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL: (no longer available, only ++ * here to reserve the value for API/ABI compatibility) * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of * equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station * mode -@@ -3847,7 +3902,7 @@ enum nl80211_feature_flags { - NL80211_FEATURE_HT_IBSS = 1 << 1, - NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2, - NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3, -- NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 1 << 4, -+ /* bit 4 is reserved - don't use */ - NL80211_FEATURE_SAE = 1 << 5, - NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6, - NL80211_FEATURE_SCAN_FLUSH = 1 << 7, -@@ -4037,4 +4092,20 @@ struct nl80211_vendor_cmd_info { +@@ -3841,6 +3950,9 @@ enum nl80211_ap_sme_features { + * interface. An active monitor interface behaves like a normal monitor + * interface, but gets added to the driver. It ensures that incoming + * unicast packets directed at the configured interface address get ACKed. ++ * @NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE: This driver supports dynamic ++ * channel bandwidth change (e.g., HT 20 <-> 40 MHz channel) during the ++ * lifetime of a BSS. + */ + enum nl80211_feature_flags { + NL80211_FEATURE_SK_TX_STATUS = 1 << 0, +@@ -3861,6 +3973,7 @@ enum nl80211_feature_flags { + NL80211_FEATURE_FULL_AP_CLIENT_STATE = 1 << 15, + NL80211_FEATURE_USERSPACE_MPM = 1 << 16, + NL80211_FEATURE_ACTIVE_MONITOR = 1 << 17, ++ NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 1 << 18, + }; + + /** +@@ -4037,4 +4150,20 @@ struct nl80211_vendor_cmd_info { __u32 subcmd; }; diff --git a/package/network/utils/iw/patches/120-antenna_gain.patch b/package/network/utils/iw/patches/120-antenna_gain.patch index 223a59a246..04316ab0a4 100644 --- a/package/network/utils/iw/patches/120-antenna_gain.patch +++ b/package/network/utils/iw/patches/120-antenna_gain.patch @@ -1,6 +1,6 @@ --- a/phy.c +++ b/phy.c -@@ -424,3 +424,31 @@ COMMAND(set, antenna, "<bitmap> | all | +@@ -424,3 +424,31 @@ 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."); |