--- a/nl80211.h
+++ b/nl80211.h
-@@ -10,6 +10,7 @@
- * Copyright 2008, 2009 Luis R. Rodriguez <lrodriguez@atheros.com>
- * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
- * Copyright 2008 Colin McCabe <colin@cozybit.com>
-+ * 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
-@@ -328,7 +329,15 @@
- * 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
-@@ -1761,6 +1770,22 @@ enum nl80211_commands {
- * @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_PAD: attribute used for padding for 64-bit alignment
+ *
+ * @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
-@@ -2130,6 +2155,13 @@ 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_PAD,
+
+ NL80211_ATTR_WIPHY_ANTENNA_GAIN,
+
/* add attributes here, update the policy in nl80211.c */
__NL80211_ATTR_AFTER_LAST,
-@@ -3364,6 +3396,9 @@ 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)
+@@ -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_PAD: attribute used for padding for 64-bit alignment
+ * @__NL80211_STA_INFO_AFTER_LAST: internal
+ * @NL80211_STA_INFO_MAX: highest possible station info attribute
+ */
+@@ -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_PAD,
+
+ /* keep last */
+ __NL80211_STA_INFO_AFTER_LAST,
+@@ -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)
++ * @NL80211_TID_STATS_PAD: attribute used for padding for 64-bit alignment
+ * @NUM_NL80211_TID_STATS: number of attributes here
+ * @NL80211_TID_STATS_MAX: highest numbered attribute here
+ */
+@@ -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,
++ NL80211_TID_STATS_PAD,
+
+ /* keep last */
+ NUM_NL80211_TID_STATS,
+@@ -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)
++ * @NL80211_SURVEY_INFO_PAD: attribute used for padding for 64-bit alignment
+ * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
+ * currently defined
+ * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
+@@ -3026,6 +3040,7 @@ enum nl80211_survey_info {
+ NL80211_SURVEY_INFO_TIME_RX,
+ NL80211_SURVEY_INFO_TIME_TX,
+ NL80211_SURVEY_INFO_TIME_SCAN,
++ NL80211_SURVEY_INFO_PAD,
+
+ /* keep last */
+ __NL80211_SURVEY_INFO_AFTER_LAST,
+@@ -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 +3418,7 @@ 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,
-@@ -4589,4 +4625,28 @@ 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
-+};
-+
- #endif /* __LINUX_NL80211_H */