Changeset 36599


Ignore:
Timestamp:
2013-05-10T00:11:55+02:00 (5 years ago)
Author:
nbd
Message:

iw: sync with latest nl80211 header

Signed-off-by: Felix Fietkau <nbd@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/attitude_adjustment/package/iw/patches/001-nl80211_h_sync.patch

    r33586 r36599  
    11--- a/nl80211.h 
    22+++ b/nl80211.h 
    3 @@ -565,6 +565,14 @@ 
    4   *     %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ with 
    5   *     %NL80211_ATTR_WIPHY_CHANNEL_TYPE. 
    6   * 
     3@@ -118,8 +118,9 @@ 
     4  *     to get a list of all present wiphys. 
     5  * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or 
     6  *     %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME, 
     7- *     %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ, 
     8- *     %NL80211_ATTR_WIPHY_CHANNEL_TYPE, %NL80211_ATTR_WIPHY_RETRY_SHORT, 
     9+ *     %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ (and the 
     10+ *     attributes determining the channel width; this is used for setting 
     11+ *     monitor mode channel),  %NL80211_ATTR_WIPHY_RETRY_SHORT, 
     12  *     %NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD, 
     13  *     and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD. 
     14  *     However, for setting the channel, see %NL80211_CMD_SET_CHANNEL 
     15@@ -169,9 +170,10 @@ 
     16  *     %NL80211_ATTR_HIDDEN_SSID, %NL80211_ATTR_CIPHERS_PAIRWISE, 
     17  *     %NL80211_ATTR_CIPHER_GROUP, %NL80211_ATTR_WPA_VERSIONS, 
     18  *     %NL80211_ATTR_AKM_SUITES, %NL80211_ATTR_PRIVACY, 
     19- *     %NL80211_ATTR_AUTH_TYPE and %NL80211_ATTR_INACTIVITY_TIMEOUT. 
     20+ *     %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_INACTIVITY_TIMEOUT, 
     21+ *     %NL80211_ATTR_ACL_POLICY and %NL80211_ATTR_MAC_ADDRS. 
     22  *     The channel to use can be set on the interface or be given using the 
     23- *     %NL80211_ATTR_WIPHY_FREQ and %NL80211_ATTR_WIPHY_CHANNEL_TYPE attrs. 
     24+ *     %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel width. 
     25  * @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP 
     26  * @NL80211_CMD_STOP_AP: Stop AP operation on the given interface 
     27  * @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP 
     28@@ -373,8 +375,8 @@ 
     29  *     requests to connect to a specified network but without separating 
     30  *     auth and assoc steps. For this, you need to specify the SSID in a 
     31  *     %NL80211_ATTR_SSID attribute, and can optionally specify the association 
     32- *     IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_MAC, 
     33- *     %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT, 
     34+ *     IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP, 
     35+ *     %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT, 
     36  *     %NL80211_ATTR_CONTROL_PORT_ETHERTYPE and 
     37  *     %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT. 
     38  *     Background scan period can optionally be 
     39@@ -401,8 +403,7 @@ 
     40  *     a response while being associated to an AP on another channel. 
     41  *     %NL80211_ATTR_IFINDEX is used to specify which interface (and thus 
     42  *     radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the 
     43- *     frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be 
     44- *     optionally used to specify additional channel parameters. 
     45+ *     frequency for the operation. 
     46  *     %NL80211_ATTR_DURATION is used to specify the duration in milliseconds 
     47  *     to remain on the channel. This command is also used as an event to 
     48  *     notify when the requested duration starts (it may take a while for the 
     49@@ -440,12 +441,11 @@ 
     50  *     as an event indicating reception of a frame that was not processed in 
     51  *     kernel code, but is for us (i.e., which may need to be processed in a 
     52  *     user space application). %NL80211_ATTR_FRAME is used to specify the 
     53- *     frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and 
     54- *     optionally %NL80211_ATTR_WIPHY_CHANNEL_TYPE) is used to indicate on 
     55- *     which channel the frame is to be transmitted or was received. If this 
     56- *     channel is not the current channel (remain-on-channel or the 
     57- *     operational channel) the device will switch to the given channel and 
     58- *     transmit the frame, optionally waiting for a response for the time 
     59+ *     frame contents (including header). %NL80211_ATTR_WIPHY_FREQ is used 
     60+ *     to indicate on which channel the frame is to be transmitted or was 
     61+ *     received. If this channel is not the current channel (remain-on-channel 
     62+ *     or the operational channel) the device will switch to the given channel 
     63+ *     and transmit the frame, optionally waiting for a response for the time 
     64  *     specified using %NL80211_ATTR_DURATION. When called, this operation 
     65  *     returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the 
     66  *     TX status event pertaining to the TX request. 
     67@@ -473,8 +473,8 @@ 
     68  *     command is used as an event to indicate the that a trigger level was 
     69  *     reached. 
     70  * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ 
     71- *     and %NL80211_ATTR_WIPHY_CHANNEL_TYPE) the given interface (identifed 
     72- *     by %NL80211_ATTR_IFINDEX) shall operate on. 
     73+ *     and the attributes determining channel width) the given interface 
     74+ *     (identifed by %NL80211_ATTR_IFINDEX) shall operate on. 
     75  *     In case multiple channels are supported by the device, the mechanism 
     76  *     with which it switches channels is implementation-defined. 
     77  *     When a monitor interface is given, it can only switch channel while 
     78@@ -513,6 +513,12 @@ 
     79  *     command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For 
     80  *     more background information, see 
     81  *     http://wireless.kernel.org/en/users/Documentation/WoWLAN. 
     82+ *     The @NL80211_CMD_SET_WOWLAN command can also be used as a notification 
     83+ *     from the driver reporting the wakeup reason. In this case, the 
     84+ *     @NL80211_ATTR_WOWLAN_TRIGGERS attribute will contain the reason 
     85+ *     for the wakeup, if it was caused by wireless. If it is not present 
     86+ *     in the wakeup notification, the wireless device didn't cause the 
     87+ *     wakeup but reports that it was woken up. 
     88  * 
     89  * @NL80211_CMD_SET_REKEY_OFFLOAD: This command is used give the driver 
     90  *     the necessary information for supporting GTK rekey offload. This 
     91@@ -526,6 +532,12 @@ 
     92  *     of PMKSA caching dandidates. 
     93  * 
     94  * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup). 
     95+ *     In addition, this can be used as an event to request userspace to take 
     96+ *     actions on TDLS links (set up a new link or tear down an existing one). 
     97+ *     In such events, %NL80211_ATTR_TDLS_OPERATION indicates the requested 
     98+ *     operation, %NL80211_ATTR_MAC contains the peer MAC address, and 
     99+ *     %NL80211_ATTR_REASON_CODE the reason code to be used (only with 
     100+ *     %NL80211_TDLS_TEARDOWN). 
     101  * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. 
     102  * 
     103  * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP 
     104@@ -562,8 +574,42 @@ 
     105  * 
     106  * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels 
     107  *     independently of the userspace SME, send this event indicating 
     108- *     %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ with 
     109- *     %NL80211_ATTR_WIPHY_CHANNEL_TYPE. 
     110+ *     %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ and the 
     111+ *     attributes determining channel width. 
     112+ * 
    7113+ * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by 
    8114+ *     its %NL80211_ATTR_WDEV identifier. It must have been created with 
     
    13119+ *     its %NL80211_ATTR_WDEV identifier. 
    14120+ * 
     121+ * @NL80211_CMD_CONN_FAILED: connection request to an AP failed; used to 
     122+ *     notify userspace that AP has rejected the connection request from a 
     123+ *     station, due to particular reason. %NL80211_ATTR_CONN_FAILED_REASON 
     124+ *     is used for this. 
     125+ * 
     126+ * @NL80211_CMD_SET_MCAST_RATE: Change the rate used to send multicast frames 
     127+ *     for IBSS or MESH vif. 
     128+ * 
     129+ * @NL80211_CMD_SET_MAC_ACL: sets ACL for MAC address based access control. 
     130+ *     This is to be used with the drivers advertising the support of MAC 
     131+ *     address based access control. List of MAC addresses is passed in 
     132+ *     %NL80211_ATTR_MAC_ADDRS and ACL policy is passed in 
     133+ *     %NL80211_ATTR_ACL_POLICY. Driver will enable ACL with this list, if it 
     134+ *     is not already done. The new list will replace any existing list. Driver 
     135+ *     will clear its ACL when the list of MAC addresses passed is empty. This 
     136+ *     command is used in AP/P2P GO mode. Driver has to make sure to clear its 
     137+ *     ACL list during %NL80211_CMD_STOP_AP. 
     138+ * 
     139+ * @NL80211_CMD_RADAR_DETECT: Start a Channel availability check (CAC). Once 
     140+ *     a radar is detected or the channel availability scan (CAC) has finished 
     141+ *     or was aborted, or a radar was detected, usermode will be notified with 
     142+ *     this event. This command is also used to notify userspace about radars 
     143+ *     while operating on this channel. 
     144+ *     %NL80211_ATTR_RADAR_EVENT is used to inform about the type of the 
     145+ *     event. 
     146  * 
    15147  * @NL80211_CMD_MAX: highest used command number 
    16148  * @__NL80211_CMD_AFTER_LAST: internal use 
    17   */ 
    18 @@ -708,6 +716,9 @@ enum nl80211_commands { 
     149@@ -708,6 +754,17 @@ enum nl80211_commands { 
    19150  
    20151        NL80211_CMD_CH_SWITCH_NOTIFY, 
     
    23154+       NL80211_CMD_STOP_P2P_DEVICE, 
    24155+ 
     156+       NL80211_CMD_CONN_FAILED, 
     157+ 
     158+       NL80211_CMD_SET_MCAST_RATE, 
     159+ 
     160+       NL80211_CMD_SET_MAC_ACL, 
     161+ 
     162+       NL80211_CMD_RADAR_DETECT, 
     163+ 
    25164        /* add new commands above here */ 
    26165  
    27166        /* used to define NL80211_CMD_MAX below */ 
    28 @@ -1506,6 +1517,8 @@ enum nl80211_attrs { 
     167@@ -744,14 +801,26 @@ enum nl80211_commands { 
     168  *     /sys/class/ieee80211/<phyname>/index 
     169  * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming) 
     170  * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters 
     171- * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz 
     172+ * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz, 
     173+ *     defines the channel together with the (deprecated) 
     174+ *     %NL80211_ATTR_WIPHY_CHANNEL_TYPE attribute or the attributes 
     175+ *     %NL80211_ATTR_CHANNEL_WIDTH and if needed %NL80211_ATTR_CENTER_FREQ1 
     176+ *     and %NL80211_ATTR_CENTER_FREQ2 
     177+ * @NL80211_ATTR_CHANNEL_WIDTH: u32 attribute containing one of the values 
     178+ *     of &enum nl80211_chan_width, describing the channel width. See the 
     179+ *     documentation of the enum for more information. 
     180+ * @NL80211_ATTR_CENTER_FREQ1: Center frequency of the first part of the 
     181+ *     channel, used for anything but 20 MHz bandwidth 
     182+ * @NL80211_ATTR_CENTER_FREQ2: Center frequency of the second part of the 
     183+ *     channel, used only for 80+80 MHz bandwidth 
     184  * @NL80211_ATTR_WIPHY_CHANNEL_TYPE: included with NL80211_ATTR_WIPHY_FREQ 
     185- *     if HT20 or HT40 are allowed (i.e., 802.11n disabled if not included): 
     186+ *     if HT20 or HT40 are to be used (i.e., HT disabled if not included): 
     187  *     NL80211_CHAN_NO_HT = HT not allowed (i.e., same as not including 
     188  *             this attribute) 
     189  *     NL80211_CHAN_HT20 = HT20 only 
     190  *     NL80211_CHAN_HT40MINUS = secondary channel is below the primary channel 
     191  *     NL80211_CHAN_HT40PLUS = secondary channel is above the primary channel 
     192+ *     This attribute is now deprecated. 
     193  * @NL80211_ATTR_WIPHY_RETRY_SHORT: TX retry limit for frames whose length is 
     194  *     less than or equal to the RTS threshold; allowed range: 1..255; 
     195  *     dot11ShortRetryLimit; u8 
     196@@ -918,7 +987,7 @@ enum nl80211_commands { 
     197  * @NL80211_ATTR_USE_MFP: Whether management frame protection (IEEE 802.11w) is 
     198  *     used for the association (&enum nl80211_mfp, represented as a u32); 
     199  *     this attribute can be used 
     200- *     with %NL80211_CMD_ASSOCIATE request 
     201+ *     with %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests 
     202  * 
     203  * @NL80211_ATTR_STA_FLAGS2: Attribute containing a 
     204  *     &struct nl80211_sta_flag_update. 
     205@@ -1251,6 +1320,54 @@ enum nl80211_commands { 
     206  *     was used to provide the hint. For the different types of 
     207  *     allowed user regulatory hints see nl80211_user_reg_hint_type. 
     208  * 
     209+ * @NL80211_ATTR_CONN_FAILED_REASON: The reason for which AP has rejected 
     210+ *     the connection request from a station. nl80211_connect_failed_reason 
     211+ *     enum has different reasons of connection failure. 
     212+ * 
     213+ * @NL80211_ATTR_SAE_DATA: SAE elements in Authentication frames. This starts 
     214+ *     with the Authentication transaction sequence number field. 
     215+ * 
     216+ * @NL80211_ATTR_VHT_CAPABILITY: VHT Capability information element (from 
     217+ *     association request when used with NL80211_CMD_NEW_STATION) 
     218+ * 
     219+ * @NL80211_ATTR_SCAN_FLAGS: scan request control flags (u32) 
     220+ * 
     221+ * @NL80211_ATTR_P2P_CTWINDOW: P2P GO Client Traffic Window (u8), used with 
     222+ *     the START_AP and SET_BSS commands 
     223+ * @NL80211_ATTR_P2P_OPPPS: P2P GO opportunistic PS (u8), used with the 
     224+ *     START_AP and SET_BSS commands. This can have the values 0 or 1; 
     225+ *     if not given in START_AP 0 is assumed, if not given in SET_BSS 
     226+ *     no change is made. 
     227+ * 
     228+ * @NL80211_ATTR_LOCAL_MESH_POWER_MODE: local mesh STA link-specific power mode 
     229+ *     defined in &enum nl80211_mesh_power_mode. 
     230+ * 
     231+ * @NL80211_ATTR_ACL_POLICY: ACL policy, see &enum nl80211_acl_policy, 
     232+ *     carried in a u32 attribute 
     233+ * 
     234+ * @NL80211_ATTR_MAC_ADDRS: Array of nested MAC addresses, used for 
     235+ *     MAC ACL. 
     236+ * 
     237+ * @NL80211_ATTR_MAC_ACL_MAX: u32 attribute to advertise the maximum 
     238+ *     number of MAC addresses that a device can support for MAC 
     239+ *     ACL. 
     240+ * 
     241+ * @NL80211_ATTR_RADAR_EVENT: Type of radar event for notification to userspace, 
     242+ *     contains a value of enum nl80211_radar_event (u32). 
     243+ * 
     244+ * @NL80211_ATTR_EXT_CAPA: 802.11 extended capabilities that the kernel driver 
     245+ *     has and handles. The format is the same as the IE contents. See 
     246+ *     802.11-2012 8.4.2.29 for more information. 
     247+ * @NL80211_ATTR_EXT_CAPA_MASK: Extended capabilities that the kernel driver 
     248+ *     has set in the %NL80211_ATTR_EXT_CAPA value, for multibit fields. 
     249+ * 
     250+ * @NL80211_ATTR_STA_CAPABILITY: Station capabilities (u16) are advertised to 
     251+ *     the driver, e.g., to enable TDLS power save (PU-APSD). 
     252+ * 
     253+ * @NL80211_ATTR_STA_EXT_CAPABILITY: Station extended capabilities are 
     254+ *     advertised to the driver, e.g., to enable TDLS off channel operations 
     255+ *     and PU-APSD. 
     256+ * 
     257  * @NL80211_ATTR_MAX: highest attribute number currently defined 
     258  * @__NL80211_ATTR_AFTER_LAST: internal use 
     259  */ 
     260@@ -1506,6 +1623,39 @@ enum nl80211_attrs { 
    29261  
    30262        NL80211_ATTR_USER_REG_HINT_TYPE, 
    31263  
     264+       NL80211_ATTR_CONN_FAILED_REASON, 
     265+ 
     266+       NL80211_ATTR_SAE_DATA, 
     267+ 
     268+       NL80211_ATTR_VHT_CAPABILITY, 
     269+ 
     270+       NL80211_ATTR_SCAN_FLAGS, 
     271+ 
     272+       NL80211_ATTR_CHANNEL_WIDTH, 
     273+       NL80211_ATTR_CENTER_FREQ1, 
     274+       NL80211_ATTR_CENTER_FREQ2, 
     275+ 
     276+       NL80211_ATTR_P2P_CTWINDOW, 
     277+       NL80211_ATTR_P2P_OPPPS, 
     278+ 
     279+       NL80211_ATTR_LOCAL_MESH_POWER_MODE, 
     280+ 
     281+       NL80211_ATTR_ACL_POLICY, 
     282+ 
     283+       NL80211_ATTR_MAC_ADDRS, 
     284+ 
     285+       NL80211_ATTR_MAC_ACL_MAX, 
     286+ 
     287+       NL80211_ATTR_RADAR_EVENT, 
     288+ 
     289+       NL80211_ATTR_EXT_CAPA, 
     290+       NL80211_ATTR_EXT_CAPA_MASK, 
     291+ 
     292+       NL80211_ATTR_STA_CAPABILITY, 
     293+       NL80211_ATTR_STA_EXT_CAPABILITY, 
     294+ 
    32295+       NL80211_ATTR_WIPHY_ANTENNA_GAIN, 
    33296+ 
     
    35298  
    36299        __NL80211_ATTR_AFTER_LAST, 
    37 @@ -1575,6 +1588,10 @@ enum nl80211_attrs { 
     300@@ -1549,6 +1699,7 @@ enum nl80211_attrs { 
     301 #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY    16 
     302 #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY    24 
     303 #define NL80211_HT_CAPABILITY_LEN              26 
     304+#define NL80211_VHT_CAPABILITY_LEN             12 
     305  
     306 #define NL80211_MAX_NR_CIPHER_SUITES           5 
     307 #define NL80211_MAX_NR_AKM_SUITES              2 
     308@@ -1575,6 +1726,10 @@ enum nl80211_attrs { 
    38309  * @NL80211_IFTYPE_MESH_POINT: mesh point 
    39310  * @NL80211_IFTYPE_P2P_CLIENT: P2P client 
     
    46317  * @NUM_NL80211_IFTYPES: number of defined interface types 
    47318  * 
    48 @@ -1593,6 +1610,7 @@ enum nl80211_iftype { 
     319@@ -1593,6 +1748,7 @@ enum nl80211_iftype { 
    49320        NL80211_IFTYPE_MESH_POINT, 
    50321        NL80211_IFTYPE_P2P_CLIENT, 
     
    54325        /* keep last */ 
    55326        NUM_NL80211_IFTYPES, 
    56 @@ -1744,6 +1762,8 @@ enum nl80211_sta_bss_param { 
     327@@ -1617,6 +1773,9 @@ enum nl80211_iftype { 
     328  *     flag can't be changed, it is only valid while adding a station, and 
     329  *     attempts to change it will silently be ignored (rather than rejected 
     330  *     as errors.) 
     331+ * @NL80211_STA_FLAG_ASSOCIATED: station is associated; used with drivers 
     332+ *     that support %NL80211_FEATURE_FULL_AP_CLIENT_STATE to transition a 
     333+ *     previously added station into associated state 
     334  * @NL80211_STA_FLAG_MAX: highest station flag number currently defined 
     335  * @__NL80211_STA_FLAG_AFTER_LAST: internal use 
     336  */ 
     337@@ -1628,6 +1787,7 @@ enum nl80211_sta_flags { 
     338        NL80211_STA_FLAG_MFP, 
     339        NL80211_STA_FLAG_AUTHENTICATED, 
     340        NL80211_STA_FLAG_TDLS_PEER, 
     341+       NL80211_STA_FLAG_ASSOCIATED, 
     342  
     343        /* keep last */ 
     344        __NL80211_STA_FLAG_AFTER_LAST, 
     345@@ -1664,10 +1824,15 @@ struct nl80211_sta_flag_update { 
     346  * @__NL80211_RATE_INFO_INVALID: attribute number 0 is reserved 
     347  * @NL80211_RATE_INFO_BITRATE: total bitrate (u16, 100kbit/s) 
     348  * @NL80211_RATE_INFO_MCS: mcs index for 802.11n (u8) 
     349- * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 Mhz dualchannel bitrate 
     350+ * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 MHz dualchannel bitrate 
     351  * @NL80211_RATE_INFO_SHORT_GI: 400ns guard interval 
     352  * @NL80211_RATE_INFO_BITRATE32: total bitrate (u32, 100kbit/s) 
     353  * @NL80211_RATE_INFO_MAX: highest rate_info number currently defined 
     354+ * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8) 
     355+ * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8) 
     356+ * @NL80211_RATE_INFO_80_MHZ_WIDTH: 80 MHz VHT rate 
     357+ * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: 80+80 MHz VHT rate 
     358+ * @NL80211_RATE_INFO_160_MHZ_WIDTH: 160 MHz VHT rate 
     359  * @__NL80211_RATE_INFO_AFTER_LAST: internal use 
     360  */ 
     361 enum nl80211_rate_info { 
     362@@ -1677,6 +1842,11 @@ enum nl80211_rate_info { 
     363        NL80211_RATE_INFO_40_MHZ_WIDTH, 
     364        NL80211_RATE_INFO_SHORT_GI, 
     365        NL80211_RATE_INFO_BITRATE32, 
     366+       NL80211_RATE_INFO_VHT_MCS, 
     367+       NL80211_RATE_INFO_VHT_NSS, 
     368+       NL80211_RATE_INFO_80_MHZ_WIDTH, 
     369+       NL80211_RATE_INFO_80P80_MHZ_WIDTH, 
     370+       NL80211_RATE_INFO_160_MHZ_WIDTH, 
     371  
     372        /* keep last */ 
     373        __NL80211_RATE_INFO_AFTER_LAST, 
     374@@ -1723,6 +1893,8 @@ enum nl80211_sta_bss_param { 
     375  * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs) 
     376  * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station) 
     377  * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station) 
     378+ * @NL80211_STA_INFO_RX_BYTES64: total received bytes (u64, from this station) 
     379+ * @NL80211_STA_INFO_TX_BYTES64: total transmitted bytes (u64, to this station) 
     380  * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm) 
     381  * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute 
     382  *     containing info as possible, see &enum nl80211_rate_info 
     383@@ -1744,6 +1916,12 @@ enum nl80211_sta_bss_param { 
    57384  * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update. 
    58385  * @NL80211_STA_INFO_BEACON_LOSS: count of times beacon loss was detected (u32) 
    59386  * @NL80211_STA_INFO_T_OFFSET: timing offset with respect to this STA (s64) 
     387+ * @NL80211_STA_INFO_LOCAL_PM: local mesh STA link-specific power mode 
     388+ * @NL80211_STA_INFO_PEER_PM: peer mesh STA link-specific power mode 
     389+ * @NL80211_STA_INFO_NONPEER_PM: neighbor mesh STA power save mode towards 
     390+ *     non-peer STA 
    60391+ * @NL80211_STA_INFO_CHAIN_SIGNAL: per-chain signal strength of last PPDU 
    61392+ * @NL80211_STA_INFO_CHAIN_SIGNAL_AVG: per-chain signal strength average 
     
    63394  * @NL80211_STA_INFO_MAX: highest possible station info attribute 
    64395  */ 
    65 @@ -1768,6 +1788,8 @@ enum nl80211_sta_info { 
     396@@ -1768,6 +1946,13 @@ enum nl80211_sta_info { 
    66397        NL80211_STA_INFO_STA_FLAGS, 
    67398        NL80211_STA_INFO_BEACON_LOSS, 
    68399        NL80211_STA_INFO_T_OFFSET, 
     400+       NL80211_STA_INFO_LOCAL_PM, 
     401+       NL80211_STA_INFO_PEER_PM, 
     402+       NL80211_STA_INFO_NONPEER_PM, 
     403+       NL80211_STA_INFO_RX_BYTES64, 
     404+       NL80211_STA_INFO_TX_BYTES64, 
    69405+       NL80211_STA_INFO_CHAIN_SIGNAL, 
    70406+       NL80211_STA_INFO_CHAIN_SIGNAL_AVG, 
     
    72408        /* keep last */ 
    73409        __NL80211_STA_INFO_AFTER_LAST, 
    74 @@ -2994,12 +3016,18 @@ enum nl80211_ap_sme_features { 
     410@@ -1877,6 +2062,20 @@ enum nl80211_band_attr { 
     411  *     on this channel in current regulatory domain. 
     412  * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm 
     413  *     (100 * dBm). 
     414+ * @NL80211_FREQUENCY_ATTR_DFS_STATE: current state for DFS 
     415+ *     (enum nl80211_dfs_state) 
     416+ * @NL80211_FREQUENCY_ATTR_DFS_TIME: time in miliseconds for how long 
     417+ *     this channel is in this DFS state. 
     418+ * @NL80211_FREQUENCY_ATTR_NO_HT40_MINUS: HT40- isn't possible with this 
     419+ *     channel as the control channel 
     420+ * @NL80211_FREQUENCY_ATTR_NO_HT40_PLUS: HT40+ isn't possible with this 
     421+ *     channel as the control channel 
     422+ * @NL80211_FREQUENCY_ATTR_NO_80MHZ: any 80 MHz channel using this channel 
     423+ *     as the primary or any of the secondary channels isn't possible, 
     424+ *     this includes 80+80 channels 
     425+ * @NL80211_FREQUENCY_ATTR_NO_160MHZ: any 160 MHz (but not 80+80) channel 
     426+ *     using this channel as the primary or any of the secondary channels 
     427+ *     isn't possible 
     428  * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number 
     429  *     currently defined 
     430  * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use 
     431@@ -1889,6 +2088,12 @@ enum nl80211_frequency_attr { 
     432        NL80211_FREQUENCY_ATTR_NO_IBSS, 
     433        NL80211_FREQUENCY_ATTR_RADAR, 
     434        NL80211_FREQUENCY_ATTR_MAX_TX_POWER, 
     435+       NL80211_FREQUENCY_ATTR_DFS_STATE, 
     436+       NL80211_FREQUENCY_ATTR_DFS_TIME, 
     437+       NL80211_FREQUENCY_ATTR_NO_HT40_MINUS, 
     438+       NL80211_FREQUENCY_ATTR_NO_HT40_PLUS, 
     439+       NL80211_FREQUENCY_ATTR_NO_80MHZ, 
     440+       NL80211_FREQUENCY_ATTR_NO_160MHZ, 
     441  
     442        /* keep last */ 
     443        __NL80211_FREQUENCY_ATTR_AFTER_LAST, 
     444@@ -2159,6 +2364,34 @@ enum nl80211_mntr_flags { 
     445 }; 
     446  
     447 /** 
     448+ * enum nl80211_mesh_power_mode - mesh power save modes 
     449+ * 
     450+ * @NL80211_MESH_POWER_UNKNOWN: The mesh power mode of the mesh STA is 
     451+ *     not known or has not been set yet. 
     452+ * @NL80211_MESH_POWER_ACTIVE: Active mesh power mode. The mesh STA is 
     453+ *     in Awake state all the time. 
     454+ * @NL80211_MESH_POWER_LIGHT_SLEEP: Light sleep mode. The mesh STA will 
     455+ *     alternate between Active and Doze states, but will wake up for 
     456+ *     neighbor's beacons. 
     457+ * @NL80211_MESH_POWER_DEEP_SLEEP: Deep sleep mode. The mesh STA will 
     458+ *     alternate between Active and Doze states, but may not wake up 
     459+ *     for neighbor's beacons. 
     460+ * 
     461+ * @__NL80211_MESH_POWER_AFTER_LAST - internal use 
     462+ * @NL80211_MESH_POWER_MAX - highest possible power save level 
     463+ */ 
     464+ 
     465+enum nl80211_mesh_power_mode { 
     466+       NL80211_MESH_POWER_UNKNOWN, 
     467+       NL80211_MESH_POWER_ACTIVE, 
     468+       NL80211_MESH_POWER_LIGHT_SLEEP, 
     469+       NL80211_MESH_POWER_DEEP_SLEEP, 
     470+ 
     471+       __NL80211_MESH_POWER_AFTER_LAST, 
     472+       NL80211_MESH_POWER_MAX = __NL80211_MESH_POWER_AFTER_LAST - 1 
     473+}; 
     474+ 
     475+/** 
     476  * enum nl80211_meshconf_params - mesh configuration parameters 
     477  * 
     478  * Mesh configuration parameters. These can be changed while the mesh is 
     479@@ -2252,6 +2485,11 @@ enum nl80211_mntr_flags { 
     480  *     (in TUs) during which a mesh STA can send only one Action frame 
     481  *     containing a PREQ element for root path confirmation. 
     482  * 
     483+ * @NL80211_MESHCONF_POWER_MODE: Default mesh power mode for new peer links. 
     484+ *     type &enum nl80211_mesh_power_mode (u32) 
     485+ * 
     486+ * @NL80211_MESHCONF_AWAKE_WINDOW: awake window duration (in TUs) 
     487+ * 
     488  * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use 
     489  */ 
     490 enum nl80211_meshconf_params { 
     491@@ -2281,6 +2519,8 @@ enum nl80211_meshconf_params { 
     492        NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT, 
     493        NL80211_MESHCONF_HWMP_ROOT_INTERVAL, 
     494        NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL, 
     495+       NL80211_MESHCONF_POWER_MODE, 
     496+       NL80211_MESHCONF_AWAKE_WINDOW, 
     497  
     498        /* keep last */ 
     499        __NL80211_MESHCONF_ATTR_AFTER_LAST, 
     500@@ -2385,6 +2625,15 @@ enum nl80211_ac { 
     501 #define NL80211_TXQ_Q_BE       NL80211_AC_BE 
     502 #define NL80211_TXQ_Q_BK       NL80211_AC_BK 
     503  
     504+/** 
     505+ * enum nl80211_channel_type - channel type 
     506+ * @NL80211_CHAN_NO_HT: 20 MHz, non-HT channel 
     507+ * @NL80211_CHAN_HT20: 20 MHz HT channel 
     508+ * @NL80211_CHAN_HT40MINUS: HT40 channel, secondary channel 
     509+ *     below the control channel 
     510+ * @NL80211_CHAN_HT40PLUS: HT40 channel, secondary channel 
     511+ *     above the control channel 
     512+ */ 
     513 enum nl80211_channel_type { 
     514        NL80211_CHAN_NO_HT, 
     515        NL80211_CHAN_HT20, 
     516@@ -2393,6 +2642,32 @@ enum nl80211_channel_type { 
     517 }; 
     518  
     519 /** 
     520+ * enum nl80211_chan_width - channel width definitions 
     521+ * 
     522+ * These values are used with the %NL80211_ATTR_CHANNEL_WIDTH 
     523+ * attribute. 
     524+ * 
     525+ * @NL80211_CHAN_WIDTH_20_NOHT: 20 MHz, non-HT channel 
     526+ * @NL80211_CHAN_WIDTH_20: 20 MHz HT channel 
     527+ * @NL80211_CHAN_WIDTH_40: 40 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 
     528+ *     attribute must be provided as well 
     529+ * @NL80211_CHAN_WIDTH_80: 80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 
     530+ *     attribute must be provided as well 
     531+ * @NL80211_CHAN_WIDTH_80P80: 80+80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 
     532+ *     and %NL80211_ATTR_CENTER_FREQ2 attributes must be provided as well 
     533+ * @NL80211_CHAN_WIDTH_160: 160 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 
     534+ *     attribute must be provided as well 
     535+ */ 
     536+enum nl80211_chan_width { 
     537+       NL80211_CHAN_WIDTH_20_NOHT, 
     538+       NL80211_CHAN_WIDTH_20, 
     539+       NL80211_CHAN_WIDTH_40, 
     540+       NL80211_CHAN_WIDTH_80, 
     541+       NL80211_CHAN_WIDTH_80P80, 
     542+       NL80211_CHAN_WIDTH_160, 
     543+}; 
     544+ 
     545+/** 
     546  * enum nl80211_bss - netlink attributes for a BSS 
     547  * 
     548  * @__NL80211_BSS_INVALID: invalid 
     549@@ -2460,6 +2735,7 @@ enum nl80211_bss_status { 
     550  * @NL80211_AUTHTYPE_SHARED_KEY: Shared Key authentication (WEP only) 
     551  * @NL80211_AUTHTYPE_FT: Fast BSS Transition (IEEE 802.11r) 
     552  * @NL80211_AUTHTYPE_NETWORK_EAP: Network EAP (some Cisco APs and mainly LEAP) 
     553+ * @NL80211_AUTHTYPE_SAE: Simultaneous authentication of equals 
     554  * @__NL80211_AUTHTYPE_NUM: internal 
     555  * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm 
     556  * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by 
     557@@ -2471,6 +2747,7 @@ enum nl80211_auth_type { 
     558        NL80211_AUTHTYPE_SHARED_KEY, 
     559        NL80211_AUTHTYPE_FT, 
     560        NL80211_AUTHTYPE_NETWORK_EAP, 
     561+       NL80211_AUTHTYPE_SAE, 
     562  
     563        /* keep last */ 
     564        __NL80211_AUTHTYPE_NUM, 
     565@@ -2689,10 +2966,12 @@ enum nl80211_tx_power_setting { 
     566  *     corresponds to the lowest-order bit in the second byte of the mask. 
     567  *     For example: The match 00:xx:00:00:xx:00:00:00:00:xx:xx:xx (where 
     568  *     xx indicates "don't care") would be represented by a pattern of 
     569- *     twelve zero bytes, and a mask of "0xed,0x07". 
     570+ *     twelve zero bytes, and a mask of "0xed,0x01". 
     571  *     Note that the pattern matching is done as though frames were not 
     572  *     802.11 frames but 802.3 frames, i.e. the frame is fully unpacked 
     573  *     first (including SNAP header unpacking) and then matched. 
     574+ * @NL80211_WOWLAN_PKTPAT_OFFSET: packet offset, pattern is matched after 
     575+ *     these fixed number of bytes of received packet 
     576  * @NUM_NL80211_WOWLAN_PKTPAT: number of attributes 
     577  * @MAX_NL80211_WOWLAN_PKTPAT: max attribute number 
     578  */ 
     579@@ -2700,6 +2979,7 @@ enum nl80211_wowlan_packet_pattern_attr  
     580        __NL80211_WOWLAN_PKTPAT_INVALID, 
     581        NL80211_WOWLAN_PKTPAT_MASK, 
     582        NL80211_WOWLAN_PKTPAT_PATTERN, 
     583+       NL80211_WOWLAN_PKTPAT_OFFSET, 
     584  
     585        NUM_NL80211_WOWLAN_PKTPAT, 
     586        MAX_NL80211_WOWLAN_PKTPAT = NUM_NL80211_WOWLAN_PKTPAT - 1, 
     587@@ -2710,6 +2990,7 @@ enum nl80211_wowlan_packet_pattern_attr  
     588  * @max_patterns: maximum number of patterns supported 
     589  * @min_pattern_len: minimum length of each pattern 
     590  * @max_pattern_len: maximum length of each pattern 
     591+ * @max_pkt_offset: maximum Rx packet offset 
     592  * 
     593  * This struct is carried in %NL80211_WOWLAN_TRIG_PKT_PATTERN when 
     594  * that is part of %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED in the 
     595@@ -2719,6 +3000,7 @@ struct nl80211_wowlan_pattern_support { 
     596        __u32 max_patterns; 
     597        __u32 min_pattern_len; 
     598        __u32 max_pattern_len; 
     599+       __u32 max_pkt_offset; 
     600 } __attribute__((packed)); 
     601  
     602 /** 
     603@@ -2734,12 +3016,17 @@ struct nl80211_wowlan_pattern_support { 
     604  * @NL80211_WOWLAN_TRIG_PKT_PATTERN: wake up on the specified packet patterns 
     605  *     which are passed in an array of nested attributes, each nested attribute 
     606  *     defining a with attributes from &struct nl80211_wowlan_trig_pkt_pattern. 
     607- *     Each pattern defines a wakeup packet. The matching is done on the MSDU, 
     608- *     i.e. as though the packet was an 802.3 packet, so the pattern matching 
     609- *     is done after the packet is converted to the MSDU. 
     610+ *     Each pattern defines a wakeup packet. Packet offset is associated with 
     611+ *     each pattern which is used while matching the pattern. The matching is 
     612+ *     done on the MSDU, i.e. as though the packet was an 802.3 packet, so the 
     613+ *     pattern matching is done after the packet is converted to the MSDU. 
     614  * 
     615  *     In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute 
     616  *     carrying a &struct nl80211_wowlan_pattern_support. 
     617+ * 
     618+ *     When reporting wakeup. it is a u32 attribute containing the 0-based 
     619+ *     index of the pattern that caused the wakeup, in the patterns passed 
     620+ *     to the kernel when configuring. 
     621  * @NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED: Not a real trigger, and cannot be 
     622  *     used when setting, used only to indicate that GTK rekeying is supported 
     623  *     by the device (flag) 
     624@@ -2750,8 +3037,36 @@ struct nl80211_wowlan_pattern_support { 
     625  * @NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE: wake up on 4-way handshake (flag) 
     626  * @NL80211_WOWLAN_TRIG_RFKILL_RELEASE: wake up when rfkill is released 
     627  *     (on devices that have rfkill in the device) (flag) 
     628+ * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211: For wakeup reporting only, contains 
     629+ *     the 802.11 packet that caused the wakeup, e.g. a deauth frame. The frame 
     630+ *     may be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN 
     631+ *     attribute contains the original length. 
     632+ * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN: Original length of the 802.11 
     633+ *     packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 
     634+ *     attribute if the packet was truncated somewhere. 
     635+ * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023: For wakeup reporting only, contains the 
     636+ *     802.11 packet that caused the wakeup, e.g. a magic packet. The frame may 
     637+ *     be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN attribute 
     638+ *     contains the original length. 
     639+ * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN: Original length of the 802.3 
     640+ *     packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 
     641+ *     attribute if the packet was truncated somewhere. 
     642+ * @NL80211_WOWLAN_TRIG_TCP_CONNECTION: TCP connection wake, see DOC section 
     643+ *     "TCP connection wakeup" for more details. This is a nested attribute 
     644+ *     containing the exact information for establishing and keeping alive 
     645+ *     the TCP connection. 
     646+ * @NL80211_WOWLAN_TRIG_TCP_WAKEUP_MATCH: For wakeup reporting only, the 
     647+ *     wakeup packet was received on the TCP connection 
     648+ * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST: For wakeup reporting only, the 
     649+ *     TCP connection was lost or failed to be established 
     650+ * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS: For wakeup reporting only, 
     651+ *     the TCP connection ran out of tokens to use for data to send to the 
     652+ *     service 
     653  * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers 
     654  * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number 
     655+ * 
     656+ * These nested attributes are used to configure the wakeup triggers and 
     657+ * to report the wakeup reason(s). 
     658  */ 
     659 enum nl80211_wowlan_triggers { 
     660        __NL80211_WOWLAN_TRIG_INVALID, 
     661@@ -2764,6 +3079,14 @@ enum nl80211_wowlan_triggers { 
     662        NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST, 
     663        NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE, 
     664        NL80211_WOWLAN_TRIG_RFKILL_RELEASE, 
     665+       NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211, 
     666+       NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN, 
     667+       NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023, 
     668+       NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN, 
     669+       NL80211_WOWLAN_TRIG_TCP_CONNECTION, 
     670+       NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH, 
     671+       NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST, 
     672+       NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS, 
     673  
     674        /* keep last */ 
     675        NUM_NL80211_WOWLAN_TRIG, 
     676@@ -2771,6 +3094,116 @@ enum nl80211_wowlan_triggers { 
     677 }; 
     678  
     679 /** 
     680+ * DOC: TCP connection wakeup 
     681+ * 
     682+ * Some devices can establish a TCP connection in order to be woken up by a 
     683+ * packet coming in from outside their network segment, or behind NAT. If 
     684+ * configured, the device will establish a TCP connection to the given 
     685+ * service, and periodically send data to that service. The first data 
     686+ * packet is usually transmitted after SYN/ACK, also ACKing the SYN/ACK. 
     687+ * The data packets can optionally include a (little endian) sequence 
     688+ * number (in the TCP payload!) that is generated by the device, and, also 
     689+ * optionally, a token from a list of tokens. This serves as a keep-alive 
     690+ * with the service, and for NATed connections, etc. 
     691+ * 
     692+ * During this keep-alive period, the server doesn't send any data to the 
     693+ * client. When receiving data, it is compared against the wakeup pattern 
     694+ * (and mask) and if it matches, the host is woken up. Similarly, if the 
     695+ * connection breaks or cannot be established to start with, the host is 
     696+ * also woken up. 
     697+ * 
     698+ * Developer's note: ARP offload is required for this, otherwise TCP 
     699+ * response packets might not go through correctly. 
     700+ */ 
     701+ 
     702+/** 
     703+ * struct nl80211_wowlan_tcp_data_seq - WoWLAN TCP data sequence 
     704+ * @start: starting value 
     705+ * @offset: offset of sequence number in packet 
     706+ * @len: length of the sequence value to write, 1 through 4 
     707+ * 
     708+ * Note: don't confuse with the TCP sequence number(s), this is for the 
     709+ * keepalive packet payload. The actual value is written into the packet 
     710+ * in little endian. 
     711+ */ 
     712+struct nl80211_wowlan_tcp_data_seq { 
     713+       __u32 start, offset, len; 
     714+}; 
     715+ 
     716+/** 
     717+ * struct nl80211_wowlan_tcp_data_token - WoWLAN TCP data token config 
     718+ * @offset: offset of token in packet 
     719+ * @len: length of each token 
     720+ * @token_stream: stream of data to be used for the tokens, the length must 
     721+ *     be a multiple of @len for this to make sense 
     722+ */ 
     723+struct nl80211_wowlan_tcp_data_token { 
     724+       __u32 offset, len; 
     725+       __u8 token_stream[]; 
     726+}; 
     727+ 
     728+/** 
     729+ * struct nl80211_wowlan_tcp_data_token_feature - data token features 
     730+ * @min_len: minimum token length 
     731+ * @max_len: maximum token length 
     732+ * @bufsize: total available token buffer size (max size of @token_stream) 
     733+ */ 
     734+struct nl80211_wowlan_tcp_data_token_feature { 
     735+       __u32 min_len, max_len, bufsize; 
     736+}; 
     737+ 
     738+/** 
     739+ * enum nl80211_wowlan_tcp_attrs - WoWLAN TCP connection parameters 
     740+ * @__NL80211_WOWLAN_TCP_INVALID: invalid number for nested attributes 
     741+ * @NL80211_WOWLAN_TCP_SRC_IPV4: source IPv4 address (in network byte order) 
     742+ * @NL80211_WOWLAN_TCP_DST_IPV4: destination IPv4 address 
     743+ *     (in network byte order) 
     744+ * @NL80211_WOWLAN_TCP_DST_MAC: destination MAC address, this is given because 
     745+ *     route lookup when configured might be invalid by the time we suspend, 
     746+ *     and doing a route lookup when suspending is no longer possible as it 
     747+ *     might require ARP querying. 
     748+ * @NL80211_WOWLAN_TCP_SRC_PORT: source port (u16); optional, if not given a 
     749+ *     socket and port will be allocated 
     750+ * @NL80211_WOWLAN_TCP_DST_PORT: destination port (u16) 
     751+ * @NL80211_WOWLAN_TCP_DATA_PAYLOAD: data packet payload, at least one byte. 
     752+ *     For feature advertising, a u32 attribute holding the maximum length 
     753+ *     of the data payload. 
     754+ * @NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ: data packet sequence configuration 
     755+ *     (if desired), a &struct nl80211_wowlan_tcp_data_seq. For feature 
     756+ *     advertising it is just a flag 
     757+ * @NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN: data packet token configuration, 
     758+ *     see &struct nl80211_wowlan_tcp_data_token and for advertising see 
     759+ *     &struct nl80211_wowlan_tcp_data_token_feature. 
     760+ * @NL80211_WOWLAN_TCP_DATA_INTERVAL: data interval in seconds, maximum 
     761+ *     interval in feature advertising (u32) 
     762+ * @NL80211_WOWLAN_TCP_WAKE_PAYLOAD: wake packet payload, for advertising a 
     763+ *     u32 attribute holding the maximum length 
     764+ * @NL80211_WOWLAN_TCP_WAKE_MASK: Wake packet payload mask, not used for 
     765+ *     feature advertising. The mask works like @NL80211_WOWLAN_PKTPAT_MASK 
     766+ *     but on the TCP payload only. 
     767+ * @NUM_NL80211_WOWLAN_TCP: number of TCP attributes 
     768+ * @MAX_NL80211_WOWLAN_TCP: highest attribute number 
     769+ */ 
     770+enum nl80211_wowlan_tcp_attrs { 
     771+       __NL80211_WOWLAN_TCP_INVALID, 
     772+       NL80211_WOWLAN_TCP_SRC_IPV4, 
     773+       NL80211_WOWLAN_TCP_DST_IPV4, 
     774+       NL80211_WOWLAN_TCP_DST_MAC, 
     775+       NL80211_WOWLAN_TCP_SRC_PORT, 
     776+       NL80211_WOWLAN_TCP_DST_PORT, 
     777+       NL80211_WOWLAN_TCP_DATA_PAYLOAD, 
     778+       NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ, 
     779+       NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN, 
     780+       NL80211_WOWLAN_TCP_DATA_INTERVAL, 
     781+       NL80211_WOWLAN_TCP_WAKE_PAYLOAD, 
     782+       NL80211_WOWLAN_TCP_WAKE_MASK, 
     783+ 
     784+       /* keep last */ 
     785+       NUM_NL80211_WOWLAN_TCP, 
     786+       MAX_NL80211_WOWLAN_TCP = NUM_NL80211_WOWLAN_TCP - 1 
     787+}; 
     788+ 
     789+/** 
     790  * enum nl80211_iface_limit_attrs - limit attributes 
     791  * @NL80211_IFACE_LIMIT_UNSPEC: (reserved) 
     792  * @NL80211_IFACE_LIMIT_MAX: maximum number of interfaces that 
     793@@ -2806,6 +3239,8 @@ enum nl80211_iface_limit_attrs { 
     794  *     the infrastructure network's beacon interval. 
     795  * @NL80211_IFACE_COMB_NUM_CHANNELS: u32 attribute specifying how many 
     796  *     different channels may be used within this group. 
     797+ * @NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS: u32 attribute containing the bitmap 
     798+ *     of supported channel widths for radar detection. 
     799  * @NUM_NL80211_IFACE_COMB: number of attributes 
     800  * @MAX_NL80211_IFACE_COMB: highest attribute number 
     801  * 
     802@@ -2838,6 +3273,7 @@ enum nl80211_if_combination_attrs { 
     803        NL80211_IFACE_COMB_MAXNUM, 
     804        NL80211_IFACE_COMB_STA_AP_BI_MATCH, 
     805        NL80211_IFACE_COMB_NUM_CHANNELS, 
     806+       NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS, 
     807  
     808        /* keep last */ 
     809        NUM_NL80211_IFACE_COMB, 
     810@@ -2994,12 +3430,56 @@ enum nl80211_ap_sme_features { 
    75811  * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested 
    76812  *     to work properly to suppport receiving regulatory hints from 
     
    81817+ *     and remain-on-channel. This could be due to, for example, the 
    82818+ *     remain-on-channel implementation requiring a channel context. 
     819+ * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of 
     820+ *     equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station 
     821+ *     mode 
     822+ * @NL80211_FEATURE_LOW_PRIORITY_SCAN: This driver supports low priority scan 
     823+ * @NL80211_FEATURE_SCAN_FLUSH: Scan flush is supported 
     824+ * @NL80211_FEATURE_AP_SCAN: Support scanning using an AP vif 
     825+ * @NL80211_FEATURE_VIF_TXPOWER: The driver supports per-vif TX power setting 
     826+ * @NL80211_FEATURE_NEED_OBSS_SCAN: The driver expects userspace to perform 
     827+ *     OBSS scans and generate 20/40 BSS coex reports. This flag is used only 
     828+ *     for drivers implementing the CONNECT API, for AUTH/ASSOC it is implied. 
     829+ * @NL80211_FEATURE_P2P_GO_CTWIN: P2P GO implementation supports CT Window 
     830+ *     setting 
     831+ * @NL80211_FEATURE_P2P_GO_OPPPS: P2P GO implementation supports opportunistic 
     832+ *     powersave 
     833+ * @NL80211_FEATURE_FULL_AP_CLIENT_STATE: The driver supports full state 
     834+ *     transitions for AP clients. Without this flag (and if the driver 
     835+ *     doesn't have the AP SME in the device) the driver supports adding 
     836+ *     stations only when they're associated and adds them in associated 
     837+ *     state (to later be transitioned into authorized), with this flag 
     838+ *     they should be added before even sending the authentication reply 
     839+ *     and then transitioned into authenticated, associated and authorized 
     840+ *     states using station flags. 
     841+ *     Note that even for drivers that support this, the default is to add 
     842+ *     stations in authenticated/associated state, so to add unauthenticated 
     843+ *     stations the authenticated/associated bits have to be set in the mask. 
     844+ * @NL80211_FEATURE_ADVERTISE_CHAN_LIMITS: cfg80211 advertises channel limits 
     845+ *     (HT40, VHT 80/160 MHz) if this flag is set 
    83846  */ 
    84847 enum nl80211_feature_flags { 
     
    92855+       NL80211_FEATURE_CELL_BASE_REG_HINTS             = 1 << 3, 
    93856+       NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL        = 1 << 4, 
     857+       NL80211_FEATURE_SAE                             = 1 << 5, 
     858+       NL80211_FEATURE_LOW_PRIORITY_SCAN               = 1 << 6, 
     859+       NL80211_FEATURE_SCAN_FLUSH                      = 1 << 7, 
     860+       NL80211_FEATURE_AP_SCAN                         = 1 << 8, 
     861+       NL80211_FEATURE_VIF_TXPOWER                     = 1 << 9, 
     862+       NL80211_FEATURE_NEED_OBSS_SCAN                  = 1 << 10, 
     863+       NL80211_FEATURE_P2P_GO_CTWIN                    = 1 << 11, 
     864+       NL80211_FEATURE_P2P_GO_OPPPS                    = 1 << 12, 
     865+       /* bit 13 is reserved */ 
     866+       NL80211_FEATURE_ADVERTISE_CHAN_LIMITS           = 1 << 14, 
     867+       NL80211_FEATURE_FULL_AP_CLIENT_STATE            = 1 << 15, 
    94868 }; 
    95869  
    96870 /** 
     871@@ -3023,4 +3503,94 @@ enum nl80211_probe_resp_offload_support_ 
     872        NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U =     1<<3, 
     873 }; 
     874  
     875+/** 
     876+ * enum nl80211_connect_failed_reason - connection request failed reasons 
     877+ * @NL80211_CONN_FAIL_MAX_CLIENTS: Maximum number of clients that can be 
     878+ *     handled by the AP is reached. 
     879+ * @NL80211_CONN_FAIL_BLOCKED_CLIENT: Connection request is rejected due to ACL. 
     880+ */ 
     881+enum nl80211_connect_failed_reason { 
     882+       NL80211_CONN_FAIL_MAX_CLIENTS, 
     883+       NL80211_CONN_FAIL_BLOCKED_CLIENT, 
     884+}; 
     885+ 
     886+/** 
     887+ * enum nl80211_scan_flags -  scan request control flags 
     888+ * 
     889+ * Scan request control flags are used to control the handling 
     890+ * of NL80211_CMD_TRIGGER_SCAN and NL80211_CMD_START_SCHED_SCAN 
     891+ * requests. 
     892+ * 
     893+ * @NL80211_SCAN_FLAG_LOW_PRIORITY: scan request has low priority 
     894+ * @NL80211_SCAN_FLAG_FLUSH: flush cache before scanning 
     895+ * @NL80211_SCAN_FLAG_AP: force a scan even if the interface is configured 
     896+ *     as AP and the beaconing has already been configured. This attribute is 
     897+ *     dangerous because will destroy stations performance as a lot of frames 
     898+ *     will be lost while scanning off-channel, therefore it must be used only 
     899+ *     when really needed 
     900+ */ 
     901+enum nl80211_scan_flags { 
     902+       NL80211_SCAN_FLAG_LOW_PRIORITY                  = 1<<0, 
     903+       NL80211_SCAN_FLAG_FLUSH                         = 1<<1, 
     904+       NL80211_SCAN_FLAG_AP                            = 1<<2, 
     905+}; 
     906+ 
     907+/** 
     908+ * enum nl80211_acl_policy - access control policy 
     909+ * 
     910+ * Access control policy is applied on a MAC list set by 
     911+ * %NL80211_CMD_START_AP and %NL80211_CMD_SET_MAC_ACL, to 
     912+ * be used with %NL80211_ATTR_ACL_POLICY. 
     913+ * 
     914+ * @NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED: Deny stations which are 
     915+ *     listed in ACL, i.e. allow all the stations which are not listed 
     916+ *     in ACL to authenticate. 
     917+ * @NL80211_ACL_POLICY_DENY_UNLESS_LISTED: Allow the stations which are listed 
     918+ *     in ACL, i.e. deny all the stations which are not listed in ACL. 
     919+ */ 
     920+enum nl80211_acl_policy { 
     921+       NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED, 
     922+       NL80211_ACL_POLICY_DENY_UNLESS_LISTED, 
     923+}; 
     924+ 
     925+/** 
     926+ * enum nl80211_radar_event - type of radar event for DFS operation 
     927+ * 
     928+ * Type of event to be used with NL80211_ATTR_RADAR_EVENT to inform userspace 
     929+ * about detected radars or success of the channel available check (CAC) 
     930+ * 
     931+ * @NL80211_RADAR_DETECTED: A radar pattern has been detected. The channel is 
     932+ *     now unusable. 
     933+ * @NL80211_RADAR_CAC_FINISHED: Channel Availability Check has been finished, 
     934+ *     the channel is now available. 
     935+ * @NL80211_RADAR_CAC_ABORTED: Channel Availability Check has been aborted, no 
     936+ *     change to the channel status. 
     937+ * @NL80211_RADAR_NOP_FINISHED: The Non-Occupancy Period for this channel is 
     938+ *     over, channel becomes usable. 
     939+ */ 
     940+enum nl80211_radar_event { 
     941+       NL80211_RADAR_DETECTED, 
     942+       NL80211_RADAR_CAC_FINISHED, 
     943+       NL80211_RADAR_CAC_ABORTED, 
     944+       NL80211_RADAR_NOP_FINISHED, 
     945+}; 
     946+ 
     947+/** 
     948+ * enum nl80211_dfs_state - DFS states for channels 
     949+ * 
     950+ * Channel states used by the DFS code. 
     951+ * 
     952+ * @IEEE80211_DFS_USABLE: The channel can be used, but channel availability 
     953+ *     check (CAC) must be performed before using it for AP or IBSS. 
     954+ * @IEEE80211_DFS_UNAVAILABLE: A radar has been detected on this channel, it 
     955+ *     is therefore marked as not available. 
     956+ * @IEEE80211_DFS_AVAILABLE: The channel has been CAC checked and is available. 
     957+ */ 
     958+ 
     959+enum nl80211_dfs_state { 
     960+       NL80211_DFS_USABLE, 
     961+       NL80211_DFS_UNAVAILABLE, 
     962+       NL80211_DFS_AVAILABLE, 
     963+}; 
     964+ 
     965 #endif /* __LINUX_NL80211_H */ 
Note: See TracChangeset for help on using the changeset viewer.