diff options
Diffstat (limited to 'package/network/utils/iw/patches')
-rw-r--r-- | package/network/utils/iw/patches/001-nl80211_h_sync.patch | 246 |
1 files changed, 242 insertions, 4 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 5f15684d30..5c0993a7b7 100644 --- a/package/network/utils/iw/patches/001-nl80211_h_sync.patch +++ b/package/network/utils/iw/patches/001-nl80211_h_sync.patch @@ -1,45 +1,283 @@ +diff --git a/nl80211.h b/nl80211.h +index 31ae5c7..9fb7370 100644 --- a/nl80211.h +++ b/nl80211.h -@@ -2299,6 +2299,12 @@ enum nl80211_commands { +@@ -11,7 +11,7 @@ + * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com> + * Copyright 2008 Colin McCabe <colin@cozybit.com> + * Copyright 2015-2017 Intel Deutschland GmbH +- * Copyright (C) 2018 Intel Corporation ++ * Copyright (C) 2018-2019 Intel Corporation + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above +@@ -1065,6 +1065,26 @@ + * indicated by %NL80211_ATTR_WIPHY_FREQ and other attributes + * determining the width and type. + * ++ * @NL80211_CMD_UPDATE_OWE_INFO: This interface allows the host driver to ++ * offload OWE processing to user space. This intends to support ++ * OWE AKM by the host drivers that implement SME but rely ++ * on the user space for the cryptographic/DH IE processing in AP mode. ++ * ++ * @NL80211_CMD_PROBE_MESH_LINK: The requirement for mesh link metric ++ * refreshing, is that from one mesh point we be able to send some data ++ * frames to other mesh points which are not currently selected as a ++ * primary traffic path, but which are only 1 hop away. The absence of ++ * the primary path to the chosen node makes it necessary to apply some ++ * form of marking on a chosen packet stream so that the packets can be ++ * properly steered to the selected node for testing, and not by the ++ * regular mesh path lookup. Further, the packets must be of type data ++ * so that the rate control (often embedded in firmware) is used for ++ * rate selection. ++ * ++ * Here attribute %NL80211_ATTR_MAC is used to specify connected mesh ++ * peer MAC address and %NL80211_ATTR_FRAME is used to specify the frame ++ * content. The frame is ethernet data. ++ * + * @NL80211_CMD_MAX: highest used command number + * @__NL80211_CMD_AFTER_LAST: internal use + */ +@@ -1285,6 +1305,10 @@ enum nl80211_commands { + + NL80211_CMD_NOTIFY_RADAR, + ++ NL80211_CMD_UPDATE_OWE_INFO, ++ ++ NL80211_CMD_PROBE_MESH_LINK, ++ + /* add new commands above here */ + + /* used to define NL80211_CMD_MAX below */ +@@ -1565,6 +1589,12 @@ enum nl80211_commands { + * (a u32 with flags from &enum nl80211_wpa_versions). + * @NL80211_ATTR_AKM_SUITES: Used with CONNECT, ASSOCIATE, and NEW_BEACON to + * indicate which key management algorithm(s) to use (an array of u32). ++ * This attribute is also sent in response to @NL80211_CMD_GET_WIPHY, ++ * indicating the supported AKM suites, intended for specific drivers which ++ * implement SME and have constraints on which AKMs are supported and also ++ * the cases where an AKM support is offloaded to the driver/firmware. ++ * If there is no such notification from the driver, user space should ++ * assume the driver supports all the AKM suites. + * + * @NL80211_ATTR_REQ_IE: (Re)association request information elements as + * sent out by the card, for ROAM and successful CONNECT events. +@@ -2260,10 +2290,10 @@ enum nl80211_commands { + * &enum nl80211_external_auth_action value). This is used with the + * %NL80211_CMD_EXTERNAL_AUTH request event. + * @NL80211_ATTR_EXTERNAL_AUTH_SUPPORT: Flag attribute indicating that the user +- * space supports external authentication. This attribute shall be used +- * only with %NL80211_CMD_CONNECT request. The driver may offload +- * authentication processing to user space if this capability is indicated +- * in NL80211_CMD_CONNECT requests from the user space. ++ * space supports external authentication. This attribute shall be used ++ * with %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP request. The driver ++ * may offload authentication processing to user space if this capability ++ * is indicated in the respective requests from the user space. + * + * @NL80211_ATTR_NSS: Station's New/updated RX_NSS value notified using this + * u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED. +@@ -2299,6 +2329,21 @@ enum nl80211_commands { * This is also used for capability advertisement in the wiphy information, * with the appropriate sub-attributes. * + * @NL80211_ATTR_AIRTIME_WEIGHT: Station's weight when scheduled by the airtime + * scheduler. + * ++ * @NL80211_ATTR_STA_TX_POWER_SETTING: Transmit power setting type (u8) for ++ * station associated with the AP. See &enum nl80211_tx_power_setting for ++ * possible values. ++ * @NL80211_ATTR_STA_TX_POWER: Transmit power level (s16) in dBm units. This ++ * allows to set Tx power for a station. If this attribute is not included, ++ * the default per-interface tx power setting will be overriding. Driver ++ * should be picking up the lowest tx power, either tx power per-interface ++ * or per-station. ++ * + * @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 -@@ -2748,6 +2754,10 @@ enum nl80211_attrs { +@@ -2748,6 +2793,12 @@ enum nl80211_attrs { NL80211_ATTR_PEER_MEASUREMENTS, + NL80211_ATTR_AIRTIME_WEIGHT, ++ NL80211_ATTR_STA_TX_POWER_SETTING, ++ NL80211_ATTR_STA_TX_POWER, + + NL80211_ATTR_WIPHY_ANTENNA_GAIN, + /* add attributes here, update the policy in nl80211.c */ __NL80211_ATTR_AFTER_LAST, -@@ -3125,6 +3135,9 @@ enum nl80211_sta_bss_param { +@@ -2791,7 +2842,7 @@ enum nl80211_attrs { + + #define NL80211_MAX_SUPP_RATES 32 + #define NL80211_MAX_SUPP_HT_RATES 77 +-#define NL80211_MAX_SUPP_REG_RULES 64 ++#define NL80211_MAX_SUPP_REG_RULES 128 + #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0 + #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16 + #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 +@@ -3125,6 +3176,10 @@ enum nl80211_sta_bss_param { * might not be fully accurate. * @NL80211_STA_INFO_CONNECTED_TO_GATE: set to true if STA has a path to a * mesh gate (u8, 0 or 1) + * @NL80211_STA_INFO_TX_DURATION: aggregate PPDU duration for all frames + * 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_AFTER_LAST: internal * @NL80211_STA_INFO_MAX: highest possible station info attribute */ -@@ -3168,6 +3181,8 @@ enum nl80211_sta_info { +@@ -3168,6 +3223,9 @@ enum nl80211_sta_info { NL80211_STA_INFO_RX_MPDUS, NL80211_STA_INFO_FCS_ERROR_COUNT, NL80211_STA_INFO_CONNECTED_TO_GATE, + NL80211_STA_INFO_TX_DURATION, + NL80211_STA_INFO_AIRTIME_WEIGHT, ++ NL80211_STA_INFO_AIRTIME_LINK_METRIC, /* keep last */ __NL80211_STA_INFO_AFTER_LAST, +@@ -3277,8 +3335,10 @@ enum nl80211_mpath_flags { + * &enum nl80211_mpath_flags; + * @NL80211_MPATH_INFO_DISCOVERY_TIMEOUT: total path discovery timeout, in msec + * @NL80211_MPATH_INFO_DISCOVERY_RETRIES: mesh path discovery retries ++ * @NL80211_MPATH_INFO_HOP_COUNT: hop count to destination ++ * @NL80211_MPATH_INFO_PATH_CHANGE: total number of path changes to destination + * @NL80211_MPATH_INFO_MAX: highest mesh path information attribute number +- * currently defind ++ * currently defined + * @__NL80211_MPATH_INFO_AFTER_LAST: internal use + */ + enum nl80211_mpath_info { +@@ -3290,6 +3350,8 @@ enum nl80211_mpath_info { + NL80211_MPATH_INFO_FLAGS, + NL80211_MPATH_INFO_DISCOVERY_TIMEOUT, + NL80211_MPATH_INFO_DISCOVERY_RETRIES, ++ NL80211_MPATH_INFO_HOP_COUNT, ++ NL80211_MPATH_INFO_PATH_CHANGE, + + /* keep last */ + __NL80211_MPATH_INFO_AFTER_LAST, +@@ -3618,6 +3680,14 @@ enum nl80211_reg_rule_attr { + * value as specified by &struct nl80211_bss_select_rssi_adjust. + * @NL80211_SCHED_SCAN_MATCH_ATTR_BSSID: BSSID to be used for matching + * (this cannot be used together with SSID). ++ * @NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI: Nested attribute that carries the ++ * band specific minimum rssi thresholds for the bands defined in ++ * enum nl80211_band. The minimum rssi threshold value(s32) specific to a ++ * band shall be encapsulated in attribute with type value equals to one ++ * of the NL80211_BAND_* defined in enum nl80211_band. For example, the ++ * minimum rssi threshold value for 2.4GHZ band shall be encapsulated ++ * within an attribute of type NL80211_BAND_2GHZ. And one or more of such ++ * attributes will be nested within this attribute. + * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter + * attribute number currently defined + * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use +@@ -3630,6 +3700,7 @@ enum nl80211_sched_scan_match_attr { + NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI, + NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST, + NL80211_SCHED_SCAN_MATCH_ATTR_BSSID, ++ NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI, + + /* keep last */ + __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST, +@@ -4114,6 +4185,27 @@ enum nl80211_channel_type { + NL80211_CHAN_HT40PLUS + }; + ++/** ++ * enum nl80211_key_mode - Key mode ++ * ++ * @NL80211_KEY_RX_TX: (Default) ++ * Key can be used for Rx and Tx immediately ++ * ++ * The following modes can only be selected for unicast keys and when the ++ * driver supports @NL80211_EXT_FEATURE_EXT_KEY_ID: ++ * ++ * @NL80211_KEY_NO_TX: Only allowed in combination with @NL80211_CMD_NEW_KEY: ++ * Unicast key can only be used for Rx, Tx not allowed, yet ++ * @NL80211_KEY_SET_TX: Only allowed in combination with @NL80211_CMD_SET_KEY: ++ * The unicast key identified by idx and mac is cleared for Tx and becomes ++ * the preferred Tx key for the station. ++ */ ++enum nl80211_key_mode { ++ NL80211_KEY_RX_TX, ++ NL80211_KEY_NO_TX, ++ NL80211_KEY_SET_TX ++}; ++ + /** + * enum nl80211_chan_width - channel width definitions + * +@@ -4357,6 +4449,9 @@ enum nl80211_key_default_types { + * @NL80211_KEY_DEFAULT_TYPES: A nested attribute containing flags + * attributes, specifying what a key should be set as default as. + * See &enum nl80211_key_default_types. ++ * @NL80211_KEY_MODE: the mode from enum nl80211_key_mode. ++ * Defaults to @NL80211_KEY_RX_TX. ++ * + * @__NL80211_KEY_AFTER_LAST: internal + * @NL80211_KEY_MAX: highest key attribute + */ +@@ -4370,6 +4465,7 @@ enum nl80211_key_attributes { + NL80211_KEY_DEFAULT_MGMT, + NL80211_KEY_TYPE, + NL80211_KEY_DEFAULT_TYPES, ++ NL80211_KEY_MODE, + + /* keep last */ + __NL80211_KEY_AFTER_LAST, +@@ -5315,6 +5411,21 @@ enum nl80211_feature_flags { + * able to rekey an in-use key correctly. Userspace must not rekey PTK keys + * if this flag is not set. Ignoring this can leak clear text packets and/or + * freeze the connection. ++ * @NL80211_EXT_FEATURE_EXT_KEY_ID: Driver supports "Extended Key ID for ++ * Individually Addressed Frames" from IEEE802.11-2016. ++ * ++ * @NL80211_EXT_FEATURE_AIRTIME_FAIRNESS: Driver supports getting airtime ++ * fairness for transmitted packets and has enabled airtime fairness ++ * scheduling. ++ * ++ * @NL80211_EXT_FEATURE_AP_PMKSA_CACHING: Driver/device supports PMKSA caching ++ * (set/del PMKSA operations) in AP mode. ++ * ++ * @NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD: Driver supports ++ * filtering of sched scan results using band specific RSSI thresholds. ++ * ++ * @NL80211_EXT_FEATURE_STA_TX_PWR: This driver supports controlling tx power ++ * to a station. + * + * @NUM_NL80211_EXT_FEATURES: number of extended features. + * @MAX_NL80211_EXT_FEATURES: highest extended feature index. +@@ -5355,6 +5466,11 @@ enum nl80211_ext_feature_index { + NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT, + NL80211_EXT_FEATURE_CAN_REPLACE_PTK0, + NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER, ++ NL80211_EXT_FEATURE_AIRTIME_FAIRNESS, ++ NL80211_EXT_FEATURE_AP_PMKSA_CACHING, ++ NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD, ++ NL80211_EXT_FEATURE_EXT_KEY_ID, ++ NL80211_EXT_FEATURE_STA_TX_PWR, + + /* add new features before the definition below */ + NUM_NL80211_EXT_FEATURES, +@@ -5606,9 +5722,14 @@ enum nl80211_crit_proto_id { + * Used by cfg80211_rx_mgmt() + * + * @NL80211_RXMGMT_FLAG_ANSWERED: frame was answered by device/driver. ++ * @NL80211_RXMGMT_FLAG_EXTERNAL_AUTH: Host driver intends to offload ++ * the authentication. Exclusively defined for host drivers that ++ * advertises the SME functionality but would like the userspace ++ * to handle certain authentication algorithms (e.g. SAE). + */ + enum nl80211_rxmgmt_flags { + NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0, ++ NL80211_RXMGMT_FLAG_EXTERNAL_AUTH = 1 << 1, + }; + + /* |