summaryrefslogtreecommitdiff
path: root/include/uapi/linux/nl80211.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux/nl80211.h')
-rwxr-xr-x[-rw-r--r--]include/uapi/linux/nl80211.h163
1 files changed, 162 insertions, 1 deletions
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index d1e48b5e348..125e86d8df2 100644..100755
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -646,6 +646,44 @@
* @NL80211_CMD_CRIT_PROTOCOL_STOP: Indicates the connection reliability can
* return back to normal.
*
+ * @NL80211_CMD_SCAN_CANCEL: Stop currently running scan (both sw and hw).
+ * This operation will eventually invoke %NL80211_CMD_SCAN_ABORTED
+ * event, partial scan results will be available. Returns -ENOENT
+ * if scan is not running.
+ *
+ * @NL80211_CMD_IM_SCAN_RESULT: Intermediate scan result notification event,
+ * this event could be enabled with @NL80211_ATTR_IM_SCAN_RESULT
+ * flag during @NL80211_CMD_TRIGGER_SCAN. This event contains
+ * %NL80211_BSS_BSSID which is used to specify the BSSID of received
+ * scan result and %NL80211_BSS_SIGNAL_MBM to indicate signal strength.
+ * On reception of this notification, userspace may decide to stop earlier
+ * currently running scan with (@NL80211_CMD_SCAN_CANCEL).
+ *
+ * @NL80211_CMD_ROAMING_SUPPORT: A notify event used to alert userspace
+ * regarding changes in roaming support by the driver. If roaming is
+ * disabled (marked by the presence of @NL80211_ATTR_ROAMING_DISABLED flag)
+ * userspace should disable background scans and roaming attempts.
+ *
+ * @NL80211_CMD_AP_CH_SWITCH: Perform a channel switch in the driver (for
+ * AP/GO).
+ * %NL80211_ATTR_WIPHY_FREQ: new channel frequency.
+ * %NL80211_ATTR_CH_SWITCH_BLOCK_TX: block tx on the current channel.
+ * %NL80211_ATTR_CH_SWITCH_POST_BLOCK_TX: block tx on the target channel.
+ * %NL80211_FREQ_ATTR_CH_SWITCH_COUNT: number of TBTT's until the channel
+ * switch event.
+ *
+ * @NL80211_CMD_REQ_CH_SW: Request a channel switch from a GO/AP.
+ *
+ * @NL80211_CMD_CHANNEL_SWITCH: Perform a channel switch by announcing the
+ * the new channel information (Channel Switch Announcement - CSA)
+ * in the beacon for some time (as defined in the
+ * %NL80211_ATTR_CH_SWITCH_COUNT parameter) and then change to the
+ * new channel. Userspace provides the new channel information (using
+ * %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel
+ * width). %NL80211_ATTR_CH_SWITCH_BLOCK_TX may be supplied to inform
+ * other station that transmission must be blocked until the channel
+ * switch is complete.
+ *
* @NL80211_CMD_MAX: highest used command number
* @__NL80211_CMD_AFTER_LAST: internal use
*/
@@ -808,6 +846,24 @@ enum nl80211_commands {
NL80211_CMD_CRIT_PROTOCOL_START,
NL80211_CMD_CRIT_PROTOCOL_STOP,
+ NL80211_CMD_GET_COALESCE,
+ NL80211_CMD_SET_COALESCE,
+
+ NL80211_CMD_CHANNEL_SWITCH,
+
+ /* leave some room for adding nl80211 commands for old kernels */
+ NL80211_CMD_SCAN_CANCEL = NL80211_CMD_FT_EVENT + 40,
+
+ NL80211_CMD_IM_SCAN_RESULT,
+
+ NL80211_CMD_ROAMING_SUPPORT,
+
+ /* set/cancel_priority is depcrecated. keep it for backward compat */
+ NL80211_CMD_SET_PRIORITY,
+ NL80211_CMD_CANCEL_PRIORITY,
+
+ NL80211_CMD_AP_CH_SWITCH,
+ NL80211_CMD_REQ_CH_SW,
/* add new commands above here */
/* used to define NL80211_CMD_MAX below */
@@ -1224,7 +1280,9 @@ enum nl80211_commands {
* triggers.
*
* @NL80211_ATTR_SCHED_SCAN_INTERVAL: Interval between scheduled scan
- * cycles, in msecs.
+ * cycles, in msecs. If short interval is supported by the driver
+ * and configured then this will be used only after the requested
+ * number of short intervals
*
* @NL80211_ATTR_SCHED_SCAN_MATCH: Nested attribute with one or more
* sets of attributes to match during scheduled scans. Only BSSs
@@ -1429,6 +1487,59 @@ enum nl80211_commands {
* @NL80211_ATTR_MAX_CRIT_PROT_DURATION: duration in milliseconds in which
* the connection should have increased reliability (u16).
*
+ * @%NL80211_ATTR_IM_SCAN_RESULT: Flag attribute to enable intermediate
+ * scan result notification event (%NL80211_CMD_IM_SCAN_RESULT)
+ * for the %NL80211_CMD_TRIGGER_SCAN command.
+ * When set: will notify on each new scan result in the cache.
+ *
+ * @%NL80211_ATTR_IM_SCAN_RESULT_MIN_RSSI: Intermediate event filtering.
+ * When set: will notify only those new scan result whose signal
+ * strength of probe response/beacon (in dBm) is stronger than this
+ * negative value (usually: -20 dBm > X > -95 dBm).
+ *
+ * @%NL80211_ATTR_SCAN_MIN_DWELL: Minimum scan dwell time (in TUs), u32
+ * attribute to setup minimum time to wait on each channel, if received
+ * at least one probe response during this period will continue waiting
+ * %NL80211_ATTR_SCAN_MAX_DWELL, otherwise will move to next channel.
+ * Relevant only for active scan, used with %NL80211_CMD_TRIGGER_SCAN
+ * command. This is optional attribute, so if it's not set driver should
+ * use hardware default values.
+ * @%NL80211_ATTR_SCAN_MAX_DWELL: Maximum scan dwell time (in TUs), u32
+ * attribute to setup maximum time to wait on each channel.
+ * Relevant only for active scan, used with %NL80211_CMD_TRIGGER_SCAN
+ * command. This is optional attribute, so if it's not set driver should
+ * use hardware default values.
+ * @%NL80211_ATTR_SCAN_NUM_PROBE: Attribute (u8) to setup number of probe
+ * requests to transmit on each active scan channel, used with
+ * %NL80211_CMD_TRIGGER_SCAN command.
+ *
+ * @NL80211_ATTR_SCHED_SCAN_SHORT_INTERVAL: interval between
+ * each short interval scheduled scan cycle in msecs.
+ * @NL80211_ATTR_SCHED_SCAN_NUM_SHORT_INTERVALS: number of short
+ * sched scan intervals before switching to the long interval
+ * @NL80211_ATTR_ROAMING_DISABLED: indicates that the driver can't do roaming
+ * currently.
+ *
+ * @NL80211_ATTR_CH_SWITCH_COUNT: the number of TBTT's until the channel
+ * switch event
+ * @NL80211_ATTR_CH_SWITCH_BLOCK_TX: block tx on the current channel before the
+ * channel switch operation.
+ * @NL80211_ATTR_CH_SWITCH_POST_BLOCK_TX: block tx on the target channel after
+ * the channel switch operation, should be set if the target channel is
+ * DFS channel.
+ *
+ * @NL80211_ATTR_CH_SWITCH_COUNT: u32 attribute specifying the number of TBTT's
+ * until the channel switch event.
+ * @NL80211_ATTR_CH_SWITCH_BLOCK_TX: flag attribute specifying that transmission
+ * must be blocked on the current channel (before the channel switch
+ * 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_MAX: highest attribute number currently defined
* @__NL80211_ATTR_AFTER_LAST: internal use
*/
@@ -1727,6 +1838,26 @@ enum nl80211_attrs {
NL80211_ATTR_CRIT_PROT_ID,
NL80211_ATTR_MAX_CRIT_PROT_DURATION,
+ /* leave some room for new attributes in nl80211 updates */
+ NL80211_ATTR_IM_SCAN_RESULT = NL80211_ATTR_IE_RIC + 40,
+ NL80211_ATTR_IM_SCAN_RESULT_MIN_RSSI,
+
+ NL80211_ATTR_SCAN_MIN_DWELL,
+ NL80211_ATTR_SCAN_MAX_DWELL,
+ NL80211_ATTR_SCAN_NUM_PROBE,
+
+ NL80211_ATTR_SCHED_SCAN_SHORT_INTERVAL,
+ NL80211_ATTR_SCHED_SCAN_NUM_SHORT_INTERVALS,
+
+ NL80211_ATTR_ROAMING_DISABLED,
+ NL80211_ATTR_CH_SWITCH_POST_BLOCK_TX,
+
+ NL80211_ATTR_CH_SWITCH_COUNT,
+ NL80211_ATTR_CH_SWITCH_BLOCK_TX,
+ NL80211_ATTR_CSA_IES,
+ NL80211_ATTR_CSA_C_OFF_BEACON,
+ NL80211_ATTR_CSA_C_OFF_PRESP,
+
/* add attributes here, update the policy in nl80211.c */
__NL80211_ATTR_AFTER_LAST,
@@ -3045,6 +3176,14 @@ enum nl80211_tx_power_setting {
* first (including SNAP header unpacking) and then matched.
* @NL80211_WOWLAN_PKTPAT_OFFSET: packet offset, pattern is matched after
* these fixed number of bytes of received packet
+ *
+ * @NL80211_WOWLAN_ACTION: pattern action which can be either to wake up
+ * on this pattern or drop it and avoid wake up. This can be used to
+ * specify an excpetion/blacklist pattern that shouldn't cause wakeup
+ * despite the packet matching another wowlan pattern. For example:
+ * configure all IPv4 multicast to wake up except certain type of packets
+ * This can be either NL80211_WOWLAN_ACTION_ALLOW or DROP.
+ * If this attribute is missing the default would be ALLOW.
* @NUM_NL80211_WOWLAN_PKTPAT: number of attributes
* @MAX_NL80211_WOWLAN_PKTPAT: max attribute number
*/
@@ -3053,11 +3192,30 @@ enum nl80211_wowlan_packet_pattern_attr {
NL80211_WOWLAN_PKTPAT_MASK,
NL80211_WOWLAN_PKTPAT_PATTERN,
NL80211_WOWLAN_PKTPAT_OFFSET,
+ NL80211_WOWLAN_PKTPAT_ACTION = NL80211_WOWLAN_PKTPAT_PATTERN + 10,
NUM_NL80211_WOWLAN_PKTPAT,
MAX_NL80211_WOWLAN_PKTPAT = NUM_NL80211_WOWLAN_PKTPAT - 1,
};
+
+/**
+ * enum nl80211_wowlan_action - WoWLAN packet pattern action
+ * @NL80211_WOWLAN_ACTION_ALLOW: this pattern should wake up the host
+ * and the packet should be forwarded to the host unless this packet
+ * matches a DROP rule.
+ * @NL80211_WOWLAN_ACTION_DROP: a packet containing this pattern shouldn't
+ * wake up the host.
+ */
+enum nl80211_wowlan_action {
+ NL80211_WOWLAN_ACTION_ALLOW,
+ NL80211_WOWLAN_ACTION_DROP,
+
+ /* keep last */
+ NUM_NL80211_WOWLAN_ACTION,
+ MAX_NL80211_WOWLAN_ACTION = NUM_NL80211_WOWLAN_ACTION - 1,
+};
+
/**
* struct nl80211_wowlan_pattern_support - pattern support information
* @max_patterns: maximum number of patterns supported
@@ -3556,6 +3714,7 @@ enum nl80211_ap_sme_features {
* Peering Management entity which may be implemented by registering for
* beacons or NL80211_CMD_NEW_PEER_CANDIDATE events. The mesh beacon is
* still generated by the driver.
+ * @NL80211_FEATURE_AP_CH_SWITCH: This driver supports AP channel switch.
*/
enum nl80211_feature_flags {
NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
@@ -3575,6 +3734,8 @@ enum nl80211_feature_flags {
NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 1 << 14,
NL80211_FEATURE_FULL_AP_CLIENT_STATE = 1 << 15,
NL80211_FEATURE_USERSPACE_MPM = 1 << 16,
+ NL80211_FEATURE_SCHED_SCAN_INTERVALS = 1 << 20,
+ NL80211_FEATURE_AP_CH_SWITCH = 1 << 21,
};
/**