From 7305b55588d698fa1496828a6cccfe729700eb59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Sat, 12 Nov 2016 15:59:00 +0100 Subject: iw: update to version 4.7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rafał Miłecki --- .../utils/iw/patches/001-nl80211_h_sync.patch | 323 ++------------------- 1 file changed, 20 insertions(+), 303 deletions(-) (limited to 'package/network/utils/iw/patches/001-nl80211_h_sync.patch') 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 e5ea8f7c8a..cf39a3e5fc 100644 --- a/package/network/utils/iw/patches/001-nl80211_h_sync.patch +++ b/package/network/utils/iw/patches/001-nl80211_h_sync.patch @@ -1,145 +1,9 @@ --- a/nl80211.h +++ b/nl80211.h -@@ -10,6 +10,7 @@ - * Copyright 2008, 2009 Luis R. Rodriguez - * Copyright 2008 Jouni Malinen - * Copyright 2008 Colin McCabe -+ * Copyright 2015 Intel Deutschland GmbH +@@ -1817,6 +1817,11 @@ enum nl80211_commands { + * @NL80211_ATTR_STA_SUPPORT_P2P_PS: whether P2P PS mechanism supported + * or not. u8, one of the values of &enum nl80211_sta_p2p_ps_status * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above -@@ -321,14 +322,24 @@ - * @NL80211_CMD_GET_SCAN: get scan results - * @NL80211_CMD_TRIGGER_SCAN: trigger a new scan with the given parameters - * %NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the -- * probe requests at CCK rate or not. -+ * probe requests at CCK rate or not. %NL80211_ATTR_MAC can be used to -+ * specify a BSSID to scan for; if not included, the wildcard BSSID will -+ * be used. - * @NL80211_CMD_NEW_SCAN_RESULTS: scan notification (as a reply to - * NL80211_CMD_GET_SCAN and on the "scan" multicast group) - * @NL80211_CMD_SCAN_ABORTED: scan was aborted, for unspecified reasons, - * partial scan results may be available - * - * @NL80211_CMD_START_SCHED_SCAN: start a scheduled scan at certain -- * intervals, as specified by %NL80211_ATTR_SCHED_SCAN_INTERVAL. -+ * intervals and certain number of cycles, as specified by -+ * %NL80211_ATTR_SCHED_SCAN_PLANS. If %NL80211_ATTR_SCHED_SCAN_PLANS is -+ * not specified and only %NL80211_ATTR_SCHED_SCAN_INTERVAL is specified, -+ * scheduled scan will run in an infinite loop with the specified interval. -+ * These attributes are mutually exculsive, -+ * i.e. NL80211_ATTR_SCHED_SCAN_INTERVAL must not be passed if -+ * NL80211_ATTR_SCHED_SCAN_PLANS is defined. -+ * If for some reason scheduled scan is aborted by the driver, all scan -+ * plans are canceled (including scan plans that did not start yet). - * Like with normal scans, if SSIDs (%NL80211_ATTR_SCAN_SSIDS) - * are passed, they are used in the probe requests. For - * broadcast, a broadcast SSID must be passed (ie. an empty -@@ -418,7 +429,11 @@ - * @NL80211_CMD_ASSOCIATE: association request and notification; like - * NL80211_CMD_AUTHENTICATE but for Association and Reassociation - * (similar to MLME-ASSOCIATE.request, MLME-REASSOCIATE.request, -- * MLME-ASSOCIATE.confirm or MLME-REASSOCIATE.confirm primitives). -+ * MLME-ASSOCIATE.confirm or MLME-REASSOCIATE.confirm primitives). The -+ * %NL80211_ATTR_PREV_BSSID attribute is used to specify whether the -+ * request is for the initial association to an ESS (that attribute not -+ * included) or for reassociation within the ESS (that attribute is -+ * included). - * @NL80211_CMD_DEAUTHENTICATE: deauthentication request and notification; like - * NL80211_CMD_AUTHENTICATE but for Deauthentication frames (similar to - * MLME-DEAUTHENTICATION.request and MLME-DEAUTHENTICATE.indication -@@ -468,6 +483,9 @@ - * set of BSSID,frequency parameters is used (i.e., either the enforcing - * %NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict - * %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT). -+ * %NL80211_ATTR_PREV_BSSID can be used to request a reassociation within -+ * the ESS in case the device is already associated and an association with -+ * a different BSS is desired. - * Background scan period can optionally be - * specified in %NL80211_ATTR_BG_SCAN_PERIOD, - * if not specified default background scan configuration -@@ -811,6 +829,10 @@ - * as an event to indicate changes for devices with wiphy-specific regdom - * management. - * -+ * @NL80211_CMD_ABORT_SCAN: Stop an ongoing scan. Returns -ENOENT if a scan is -+ * not running. The driver indicates the status of the scan through -+ * cfg80211_scan_done(). -+ * - * @NL80211_CMD_MAX: highest used command number - * @__NL80211_CMD_AFTER_LAST: internal use - */ -@@ -997,6 +1019,8 @@ enum nl80211_commands { - - NL80211_CMD_WIPHY_REG_CHANGE, - -+ NL80211_CMD_ABORT_SCAN, -+ - /* add new commands above here */ - - /* used to define NL80211_CMD_MAX below */ -@@ -1270,8 +1294,11 @@ enum nl80211_commands { - * @NL80211_ATTR_RESP_IE: (Re)association response information elements as - * sent by peer, for ROAM and successful CONNECT events. - * -- * @NL80211_ATTR_PREV_BSSID: previous BSSID, to be used by in ASSOCIATE -- * commands to specify using a reassociate frame -+ * @NL80211_ATTR_PREV_BSSID: previous BSSID, to be used in ASSOCIATE and CONNECT -+ * commands to specify a request to reassociate within an ESS, i.e., to use -+ * Reassociate Request frame (with the value of this attribute in the -+ * Current AP address field) instead of Association Request frame which is -+ * used for the initial association to an ESS. - * - * @NL80211_ATTR_KEY: key information in a nested attribute with - * %NL80211_KEY_* sub-attributes -@@ -1712,6 +1739,8 @@ enum nl80211_commands { - * underlying device supports these minimal RRM features: - * %NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES, - * %NL80211_FEATURE_QUIET, -+ * Or, if global RRM is supported, see: -+ * %NL80211_EXT_FEATURE_RRM - * If this flag is used, driver must add the Power Capabilities IE to the - * association request. In addition, it must also set the RRM capability - * flag in the association request's Capability Info field. -@@ -1755,12 +1784,44 @@ enum nl80211_commands { - * over all channels. - * - * @NL80211_ATTR_SCHED_SCAN_DELAY: delay before the first cycle of a -- * scheduled scan (or a WoWLAN net-detect scan) is started, u32 -- * in seconds. -+ * scheduled scan is started. Or the delay before a WoWLAN -+ * net-detect scan is started, counting from the moment the -+ * system is suspended. This value is a u32, in seconds. - - * @NL80211_ATTR_REG_INDOOR: flag attribute, if set indicates that the device - * is operating in an indoor environment. - * -+ * @NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS: maximum number of scan plans for -+ * scheduled scan supported by the device (u32), a wiphy attribute. -+ * @NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL: maximum interval (in seconds) for -+ * a scan plan (u32), a wiphy attribute. -+ * @NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS: maximum number of iterations in -+ * a scan plan (u32), a wiphy attribute. -+ * @NL80211_ATTR_SCHED_SCAN_PLANS: a list of scan plans for scheduled scan. -+ * Each scan plan defines the number of scan iterations and the interval -+ * between scans. The last scan plan will always run infinitely, -+ * thus it must not specify the number of iterations, only the interval -+ * between scans. The scan plans are executed sequentially. -+ * Each scan plan is a nested attribute of &enum nl80211_sched_scan_plan. -+ * @NL80211_ATTR_PBSS: flag attribute. If set it means operate -+ * in a PBSS. Specified in %NL80211_CMD_CONNECT to request -+ * connecting to a PCP, and in %NL80211_CMD_START_AP to start -+ * a PCP instead of AP. Relevant for DMG networks only. -+ * @NL80211_ATTR_BSS_SELECT: nested attribute for driver supporting the -+ * BSS selection feature. When used with %NL80211_CMD_GET_WIPHY it contains -+ * attributes according &enum nl80211_bss_select_attr to indicate what -+ * BSS selection behaviours are supported. When used with %NL80211_CMD_CONNECT -+ * it contains the behaviour-specific attribute containing the parameters for -+ * BSS selection to be done by driver and/or firmware. -+ * -+ * @NL80211_ATTR_STA_SUPPORT_P2P_PS: whether P2P PS mechanism supported -+ * or not. u8, one of the values of &enum nl80211_sta_p2p_ps_status -+ * + * @NL80211_ATTR_PAD: attribute used for padding for 64-bit alignment + * + * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce @@ -148,21 +12,10 @@ * @NUM_NL80211_ATTR: total number of nl80211_attrs available * @NL80211_ATTR_MAX: highest attribute number currently defined * @__NL80211_ATTR_AFTER_LAST: internal use -@@ -2130,6 +2191,21 @@ enum nl80211_attrs { +@@ -2197,6 +2202,10 @@ enum nl80211_attrs { - NL80211_ATTR_REG_INDOOR, + NL80211_ATTR_STA_SUPPORT_P2P_PS, -+ NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS, -+ NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL, -+ NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS, -+ NL80211_ATTR_SCHED_SCAN_PLANS, -+ -+ NL80211_ATTR_PBSS, -+ -+ NL80211_ATTR_BSS_SELECT, -+ -+ NL80211_ATTR_STA_SUPPORT_P2P_PS, -+ + NL80211_ATTR_PAD, + + NL80211_ATTR_WIPHY_ANTENNA_GAIN, @@ -170,47 +23,23 @@ /* add attributes here, update the policy in nl80211.c */ __NL80211_ATTR_AFTER_LAST, -@@ -2273,6 +2349,20 @@ enum nl80211_sta_flags { - NL80211_STA_FLAG_MAX = __NL80211_STA_FLAG_AFTER_LAST - 1 - }; - -+/** -+ * enum nl80211_sta_p2p_ps_status - station support of P2P PS -+ * -+ * @NL80211_P2P_PS_UNSUPPORTED: station doesn't support P2P PS mechanism -+ * @@NL80211_P2P_PS_SUPPORTED: station supports P2P PS mechanism -+ * @NUM_NL80211_P2P_PS_STATUS: number of values -+ */ -+enum nl80211_sta_p2p_ps_status { -+ NL80211_P2P_PS_UNSUPPORTED = 0, -+ NL80211_P2P_PS_SUPPORTED, -+ -+ NUM_NL80211_P2P_PS_STATUS, -+}; -+ - #define NL80211_STA_FLAG_MAX_OLD_API NL80211_STA_FLAG_TDLS_PEER - - /** -@@ -2430,6 +2520,9 @@ enum nl80211_sta_bss_param { - * TID+1 and the special TID 16 (i.e. value 17) is used for non-QoS frames; - * each one of those is again nested with &enum nl80211_tid_stats +@@ -2513,6 +2522,7 @@ enum nl80211_sta_bss_param { * attributes carrying the actual values. -+ * @NL80211_STA_INFO_RX_DURATION: aggregate PPDU duration for all frames -+ * received from the station (u64, usec) + * @NL80211_STA_INFO_RX_DURATION: aggregate PPDU duration for all frames + * received from the station (u64, usec) + * @NL80211_STA_INFO_PAD: attribute used for padding for 64-bit alignment * @__NL80211_STA_INFO_AFTER_LAST: internal * @NL80211_STA_INFO_MAX: highest possible station info attribute */ -@@ -2466,6 +2559,8 @@ enum nl80211_sta_info { - NL80211_STA_INFO_BEACON_RX, +@@ -2550,6 +2560,7 @@ enum nl80211_sta_info { NL80211_STA_INFO_BEACON_SIGNAL_AVG, NL80211_STA_INFO_TID_STATS, -+ NL80211_STA_INFO_RX_DURATION, + NL80211_STA_INFO_RX_DURATION, + NL80211_STA_INFO_PAD, /* keep last */ __NL80211_STA_INFO_AFTER_LAST, -@@ -2482,6 +2577,7 @@ enum nl80211_sta_info { +@@ -2566,6 +2577,7 @@ enum nl80211_sta_info { * transmitted MSDUs (not counting the first attempt; u64) * @NL80211_TID_STATS_TX_MSDU_FAILED: number of failed transmitted * MSDUs (u64) @@ -218,7 +47,7 @@ * @NUM_NL80211_TID_STATS: number of attributes here * @NL80211_TID_STATS_MAX: highest numbered attribute here */ -@@ -2491,6 +2587,7 @@ enum nl80211_tid_stats { +@@ -2575,6 +2587,7 @@ enum nl80211_tid_stats { NL80211_TID_STATS_TX_MSDU, NL80211_TID_STATS_TX_MSDU_RETRIES, NL80211_TID_STATS_TX_MSDU_FAILED, @@ -226,7 +55,7 @@ /* keep last */ NUM_NL80211_TID_STATS, -@@ -2927,6 +3024,7 @@ enum nl80211_user_reg_hint_type { +@@ -3011,6 +3024,7 @@ enum nl80211_user_reg_hint_type { * transmitting data (on channel or globally) * @NL80211_SURVEY_INFO_TIME_SCAN: time the radio spent for scan * (on this channel or globally) @@ -234,7 +63,7 @@ * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number * currently defined * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use -@@ -2942,6 +3040,7 @@ enum nl80211_survey_info { +@@ -3026,6 +3040,7 @@ enum nl80211_survey_info { NL80211_SURVEY_INFO_TIME_RX, NL80211_SURVEY_INFO_TIME_TX, NL80211_SURVEY_INFO_TIME_SCAN, @@ -242,131 +71,19 @@ /* keep last */ __NL80211_SURVEY_INFO_AFTER_LAST, -@@ -3364,6 +3463,10 @@ enum nl80211_bss_scan_width { - * (not present if no beacon frame has been received yet) - * @NL80211_BSS_PRESP_DATA: the data in @NL80211_BSS_INFORMATION_ELEMENTS and - * @NL80211_BSS_TSF is known to be from a probe response (flag attribute) -+ * @NL80211_BSS_LAST_SEEN_BOOTTIME: CLOCK_BOOTTIME timestamp when this entry -+ * was last updated by a received frame. The value is expected to be -+ * accurate to about 10ms. (u64, nanoseconds) +@@ -3451,6 +3466,7 @@ enum nl80211_bss_scan_width { + * @NL80211_BSS_LAST_SEEN_BOOTTIME: CLOCK_BOOTTIME timestamp when this entry + * was last updated by a received frame. The value is expected to be + * accurate to about 10ms. (u64, nanoseconds) + * @NL80211_BSS_PAD: attribute used for padding for 64-bit alignment * @__NL80211_BSS_AFTER_LAST: internal * @NL80211_BSS_MAX: highest BSS attribute */ -@@ -3383,6 +3486,8 @@ enum nl80211_bss { - NL80211_BSS_CHAN_WIDTH, +@@ -3471,6 +3487,7 @@ enum nl80211_bss { NL80211_BSS_BEACON_TSF, NL80211_BSS_PRESP_DATA, -+ NL80211_BSS_LAST_SEEN_BOOTTIME, + NL80211_BSS_LAST_SEEN_BOOTTIME, + NL80211_BSS_PAD, /* keep last */ __NL80211_BSS_AFTER_LAST, -@@ -3568,11 +3673,15 @@ 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 - 64.80 GHz) -+ * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace -+ * since newer kernel versions may support more bands - */ - enum nl80211_band { - NL80211_BAND_2GHZ, - NL80211_BAND_5GHZ, - NL80211_BAND_60GHZ, -+ -+ NUM_NL80211_BANDS, - }; - - /** -@@ -4358,12 +4467,18 @@ enum nl80211_feature_flags { - /** - * enum nl80211_ext_feature_index - bit index of extended features. - * @NL80211_EXT_FEATURE_VHT_IBSS: This driver supports IBSS with VHT datarates. -+ * @NL80211_EXT_FEATURE_RRM: This driver supports RRM. When featured, user can -+ * can request to use RRM (see %NL80211_ATTR_USE_RRM) with -+ * %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set -+ * the ASSOC_REQ_USE_RRM flag in the association request even if -+ * NL80211_FEATURE_QUIET is not advertized. - * - * @NUM_NL80211_EXT_FEATURES: number of extended features. - * @MAX_NL80211_EXT_FEATURES: highest extended feature index. - */ - enum nl80211_ext_feature_index { - NL80211_EXT_FEATURE_VHT_IBSS, -+ NL80211_EXT_FEATURE_RRM, - - /* add new features before the definition below */ - NUM_NL80211_EXT_FEATURES, -@@ -4589,4 +4704,72 @@ enum nl80211_tdls_peer_capability { - NL80211_TDLS_PEER_WMM = 1<<2, - }; - -+/** -+ * enum nl80211_sched_scan_plan - scanning plan for scheduled scan -+ * @__NL80211_SCHED_SCAN_PLAN_INVALID: attribute number 0 is reserved -+ * @NL80211_SCHED_SCAN_PLAN_INTERVAL: interval between scan iterations. In -+ * seconds (u32). -+ * @NL80211_SCHED_SCAN_PLAN_ITERATIONS: number of scan iterations in this -+ * scan plan (u32). The last scan plan must not specify this attribute -+ * because it will run infinitely. A value of zero is invalid as it will -+ * make the scan plan meaningless. -+ * @NL80211_SCHED_SCAN_PLAN_MAX: highest scheduled scan plan attribute number -+ * currently defined -+ * @__NL80211_SCHED_SCAN_PLAN_AFTER_LAST: internal use -+ */ -+enum nl80211_sched_scan_plan { -+ __NL80211_SCHED_SCAN_PLAN_INVALID, -+ NL80211_SCHED_SCAN_PLAN_INTERVAL, -+ NL80211_SCHED_SCAN_PLAN_ITERATIONS, -+ -+ /* keep last */ -+ __NL80211_SCHED_SCAN_PLAN_AFTER_LAST, -+ NL80211_SCHED_SCAN_PLAN_MAX = -+ __NL80211_SCHED_SCAN_PLAN_AFTER_LAST - 1 -+}; -+ -+/** -+ * struct nl80211_bss_select_rssi_adjust - RSSI adjustment parameters. -+ * -+ * @band: band of BSS that must match for RSSI value adjustment. -+ * @delta: value used to adjust the RSSI value of matching BSS. -+ */ -+struct nl80211_bss_select_rssi_adjust { -+ __u8 band; -+ __s8 delta; -+} __attribute__((packed)); -+ -+/** -+ * enum nl80211_bss_select_attr - attributes for bss selection. -+ * -+ * @__NL80211_BSS_SELECT_ATTR_INVALID: reserved. -+ * @NL80211_BSS_SELECT_ATTR_RSSI: Flag indicating only RSSI-based BSS selection -+ * is requested. -+ * @NL80211_BSS_SELECT_ATTR_BAND_PREF: attribute indicating BSS -+ * selection should be done such that the specified band is preferred. -+ * When there are multiple BSS-es in the preferred band, the driver -+ * shall use RSSI-based BSS selection as a second step. The value of -+ * this attribute is according to &enum nl80211_band (u32). -+ * @NL80211_BSS_SELECT_ATTR_RSSI_ADJUST: When present the RSSI level for -+ * BSS-es in the specified band is to be adjusted before doing -+ * RSSI-based BSS selection. The attribute value is a packed structure -+ * value as specified by &struct nl80211_bss_select_rssi_adjust. -+ * @NL80211_BSS_SELECT_ATTR_MAX: highest bss select attribute number. -+ * @__NL80211_BSS_SELECT_ATTR_AFTER_LAST: internal use. -+ * -+ * One and only one of these attributes are found within %NL80211_ATTR_BSS_SELECT -+ * for %NL80211_CMD_CONNECT. It specifies the required BSS selection behaviour -+ * which the driver shall use. -+ */ -+enum nl80211_bss_select_attr { -+ __NL80211_BSS_SELECT_ATTR_INVALID, -+ NL80211_BSS_SELECT_ATTR_RSSI, -+ NL80211_BSS_SELECT_ATTR_BAND_PREF, -+ NL80211_BSS_SELECT_ATTR_RSSI_ADJUST, -+ -+ /* keep last */ -+ __NL80211_BSS_SELECT_ATTR_AFTER_LAST, -+ NL80211_BSS_SELECT_ATTR_MAX = __NL80211_BSS_SELECT_ATTR_AFTER_LAST - 1 -+}; -+ - #endif /* __LINUX_NL80211_H */ -- cgit v1.2.3