aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/nl80211.h108
1 files changed, 104 insertions, 4 deletions
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index 9b3025e4377a..d77524510435 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -643,7 +643,18 @@
643 * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels 643 * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels
644 * independently of the userspace SME, send this event indicating 644 * independently of the userspace SME, send this event indicating
645 * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ and the 645 * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ and the
646 * attributes determining channel width. 646 * attributes determining channel width. This indication may also be
647 * sent when a remotely-initiated switch (e.g., when a STA receives a CSA
648 * from the remote AP) is completed;
649 *
650 * @NL80211_CMD_CH_SWITCH_STARTED_NOTIFY: Notify that a channel switch
651 * has been started on an interface, regardless of the initiator
652 * (ie. whether it was requested from a remote device or
653 * initiated on our own). It indicates that
654 * %NL80211_ATTR_IFINDEX will be on %NL80211_ATTR_WIPHY_FREQ
655 * after %NL80211_ATTR_CH_SWITCH_COUNT TBTT's. The userspace may
656 * decide to react to this indication by requesting other
657 * interfaces to change channel as well.
647 * 658 *
648 * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by 659 * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by
649 * its %NL80211_ATTR_WDEV identifier. It must have been created with 660 * its %NL80211_ATTR_WDEV identifier. It must have been created with
@@ -751,6 +762,18 @@
751 * @NL80211_CMD_LEAVE_OCB: Leave the OCB network -- no special arguments, the 762 * @NL80211_CMD_LEAVE_OCB: Leave the OCB network -- no special arguments, the
752 * network is determined by the network interface. 763 * network is determined by the network interface.
753 * 764 *
765 * @NL80211_CMD_TDLS_CHANNEL_SWITCH: Start channel-switching with a TDLS peer,
766 * identified by the %NL80211_ATTR_MAC parameter. A target channel is
767 * provided via %NL80211_ATTR_WIPHY_FREQ and other attributes determining
768 * channel width/type. The target operating class is given via
769 * %NL80211_ATTR_OPER_CLASS.
770 * The driver is responsible for continually initiating channel-switching
771 * operations and returning to the base channel for communication with the
772 * AP.
773 * @NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH: Stop channel-switching with a TDLS
774 * peer given by %NL80211_ATTR_MAC. Both peers must be on the base channel
775 * when this command completes.
776 *
754 * @NL80211_CMD_MAX: highest used command number 777 * @NL80211_CMD_MAX: highest used command number
755 * @__NL80211_CMD_AFTER_LAST: internal use 778 * @__NL80211_CMD_AFTER_LAST: internal use
756 */ 779 */
@@ -930,6 +953,11 @@ enum nl80211_commands {
930 NL80211_CMD_JOIN_OCB, 953 NL80211_CMD_JOIN_OCB,
931 NL80211_CMD_LEAVE_OCB, 954 NL80211_CMD_LEAVE_OCB,
932 955
956 NL80211_CMD_CH_SWITCH_STARTED_NOTIFY,
957
958 NL80211_CMD_TDLS_CHANNEL_SWITCH,
959 NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH,
960
933 /* add new commands above here */ 961 /* add new commands above here */
934 962
935 /* used to define NL80211_CMD_MAX below */ 963 /* used to define NL80211_CMD_MAX below */
@@ -1624,9 +1652,9 @@ enum nl80211_commands {
1624 * @NL80211_ATTR_TDLS_PEER_CAPABILITY: flags for TDLS peer capabilities, u32. 1652 * @NL80211_ATTR_TDLS_PEER_CAPABILITY: flags for TDLS peer capabilities, u32.
1625 * As specified in the &enum nl80211_tdls_peer_capability. 1653 * As specified in the &enum nl80211_tdls_peer_capability.
1626 * 1654 *
1627 * @NL80211_ATTR_IFACE_SOCKET_OWNER: flag attribute, if set during interface 1655 * @NL80211_ATTR_SOCKET_OWNER: Flag attribute, if set during interface
1628 * creation then the new interface will be owned by the netlink socket 1656 * creation then the new interface will be owned by the netlink socket
1629 * that created it and will be destroyed when the socket is closed 1657 * that created it and will be destroyed when the socket is closed.
1630 * 1658 *
1631 * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is 1659 * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is
1632 * the TDLS link initiator. 1660 * the TDLS link initiator.
@@ -1656,6 +1684,11 @@ enum nl80211_commands {
1656 * @NL80211_ATTR_SMPS_MODE: SMPS mode to use (ap mode). see 1684 * @NL80211_ATTR_SMPS_MODE: SMPS mode to use (ap mode). see
1657 * &enum nl80211_smps_mode. 1685 * &enum nl80211_smps_mode.
1658 * 1686 *
1687 * @NL80211_ATTR_OPER_CLASS: operating class
1688 *
1689 * @NL80211_ATTR_MAC_MASK: MAC address mask
1690 *
1691 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
1659 * @NL80211_ATTR_MAX: highest attribute number currently defined 1692 * @NL80211_ATTR_MAX: highest attribute number currently defined
1660 * @__NL80211_ATTR_AFTER_LAST: internal use 1693 * @__NL80211_ATTR_AFTER_LAST: internal use
1661 */ 1694 */
@@ -1991,7 +2024,7 @@ enum nl80211_attrs {
1991 2024
1992 NL80211_ATTR_TDLS_PEER_CAPABILITY, 2025 NL80211_ATTR_TDLS_PEER_CAPABILITY,
1993 2026
1994 NL80211_ATTR_IFACE_SOCKET_OWNER, 2027 NL80211_ATTR_SOCKET_OWNER,
1995 2028
1996 NL80211_ATTR_CSA_C_OFFSETS_TX, 2029 NL80211_ATTR_CSA_C_OFFSETS_TX,
1997 NL80211_ATTR_MAX_CSA_COUNTERS, 2030 NL80211_ATTR_MAX_CSA_COUNTERS,
@@ -2008,15 +2041,21 @@ enum nl80211_attrs {
2008 2041
2009 NL80211_ATTR_SMPS_MODE, 2042 NL80211_ATTR_SMPS_MODE,
2010 2043
2044 NL80211_ATTR_OPER_CLASS,
2045
2046 NL80211_ATTR_MAC_MASK,
2047
2011 /* add attributes here, update the policy in nl80211.c */ 2048 /* add attributes here, update the policy in nl80211.c */
2012 2049
2013 __NL80211_ATTR_AFTER_LAST, 2050 __NL80211_ATTR_AFTER_LAST,
2051 NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
2014 NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1 2052 NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
2015}; 2053};
2016 2054
2017/* source-level API compatibility */ 2055/* source-level API compatibility */
2018#define NL80211_ATTR_SCAN_GENERATION NL80211_ATTR_GENERATION 2056#define NL80211_ATTR_SCAN_GENERATION NL80211_ATTR_GENERATION
2019#define NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG 2057#define NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG
2058#define NL80211_ATTR_IFACE_SOCKET_OWNER NL80211_ATTR_SOCKET_OWNER
2020 2059
2021/* 2060/*
2022 * Allow user space programs to use #ifdef on new attributes by defining them 2061 * Allow user space programs to use #ifdef on new attributes by defining them
@@ -2652,6 +2691,11 @@ enum nl80211_sched_scan_match_attr {
2652 * @NL80211_RRF_AUTO_BW: maximum available bandwidth should be calculated 2691 * @NL80211_RRF_AUTO_BW: maximum available bandwidth should be calculated
2653 * base on contiguous rules and wider channels will be allowed to cross 2692 * base on contiguous rules and wider channels will be allowed to cross
2654 * multiple contiguous/overlapping frequency ranges. 2693 * multiple contiguous/overlapping frequency ranges.
2694 * @NL80211_RRF_GO_CONCURRENT: See &NL80211_FREQUENCY_ATTR_GO_CONCURRENT
2695 * @NL80211_RRF_NO_HT40MINUS: channels can't be used in HT40- operation
2696 * @NL80211_RRF_NO_HT40PLUS: channels can't be used in HT40+ operation
2697 * @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed
2698 * @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed
2655 */ 2699 */
2656enum nl80211_reg_rule_flags { 2700enum nl80211_reg_rule_flags {
2657 NL80211_RRF_NO_OFDM = 1<<0, 2701 NL80211_RRF_NO_OFDM = 1<<0,
@@ -2664,11 +2708,18 @@ enum nl80211_reg_rule_flags {
2664 NL80211_RRF_NO_IR = 1<<7, 2708 NL80211_RRF_NO_IR = 1<<7,
2665 __NL80211_RRF_NO_IBSS = 1<<8, 2709 __NL80211_RRF_NO_IBSS = 1<<8,
2666 NL80211_RRF_AUTO_BW = 1<<11, 2710 NL80211_RRF_AUTO_BW = 1<<11,
2711 NL80211_RRF_GO_CONCURRENT = 1<<12,
2712 NL80211_RRF_NO_HT40MINUS = 1<<13,
2713 NL80211_RRF_NO_HT40PLUS = 1<<14,
2714 NL80211_RRF_NO_80MHZ = 1<<15,
2715 NL80211_RRF_NO_160MHZ = 1<<16,
2667}; 2716};
2668 2717
2669#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR 2718#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
2670#define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR 2719#define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR
2671#define NL80211_RRF_NO_IR NL80211_RRF_NO_IR 2720#define NL80211_RRF_NO_IR NL80211_RRF_NO_IR
2721#define NL80211_RRF_NO_HT40 (NL80211_RRF_NO_HT40MINUS |\
2722 NL80211_RRF_NO_HT40PLUS)
2672 2723
2673/* For backport compatibility with older userspace */ 2724/* For backport compatibility with older userspace */
2674#define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS) 2725#define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS)
@@ -3566,6 +3617,25 @@ struct nl80211_pattern_support {
3566 * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS: For wakeup reporting only, 3617 * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS: For wakeup reporting only,
3567 * the TCP connection ran out of tokens to use for data to send to the 3618 * the TCP connection ran out of tokens to use for data to send to the
3568 * service 3619 * service
3620 * @NL80211_WOWLAN_TRIG_NET_DETECT: wake up when a configured network
3621 * is detected. This is a nested attribute that contains the
3622 * same attributes used with @NL80211_CMD_START_SCHED_SCAN. It
3623 * specifies how the scan is performed (e.g. the interval and the
3624 * channels to scan) as well as the scan results that will
3625 * trigger a wake (i.e. the matchsets).
3626 * @NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS: nested attribute
3627 * containing an array with information about what triggered the
3628 * wake up. If no elements are present in the array, it means
3629 * that the information is not available. If more than one
3630 * element is present, it means that more than one match
3631 * occurred.
3632 * Each element in the array is a nested attribute that contains
3633 * one optional %NL80211_ATTR_SSID attribute and one optional
3634 * %NL80211_ATTR_SCAN_FREQUENCIES attribute. At least one of
3635 * these attributes must be present. If
3636 * %NL80211_ATTR_SCAN_FREQUENCIES contains more than one
3637 * frequency, it means that the match occurred in more than one
3638 * channel.
3569 * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers 3639 * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers
3570 * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number 3640 * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number
3571 * 3641 *
@@ -3591,6 +3661,8 @@ enum nl80211_wowlan_triggers {
3591 NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH, 3661 NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH,
3592 NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST, 3662 NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST,
3593 NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS, 3663 NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS,
3664 NL80211_WOWLAN_TRIG_NET_DETECT,
3665 NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS,
3594 3666
3595 /* keep last */ 3667 /* keep last */
3596 NUM_NL80211_WOWLAN_TRIG, 3668 NUM_NL80211_WOWLAN_TRIG,
@@ -4070,6 +4142,20 @@ enum nl80211_ap_sme_features {
4070 * @NL80211_FEATURE_MAC_ON_CREATE: Device supports configuring 4142 * @NL80211_FEATURE_MAC_ON_CREATE: Device supports configuring
4071 * the vif's MAC address upon creation. 4143 * the vif's MAC address upon creation.
4072 * See 'macaddr' field in the vif_params (cfg80211.h). 4144 * See 'macaddr' field in the vif_params (cfg80211.h).
4145 * @NL80211_FEATURE_TDLS_CHANNEL_SWITCH: Driver supports channel switching when
4146 * operating as a TDLS peer.
4147 * @NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR: This device/driver supports using a
4148 * random MAC address during scan (if the device is unassociated); the
4149 * %NL80211_SCAN_FLAG_RANDOM_ADDR flag may be set for scans and the MAC
4150 * address mask/value will be used.
4151 * @NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR: This device/driver supports
4152 * using a random MAC address for every scan iteration during scheduled
4153 * scan (while not associated), the %NL80211_SCAN_FLAG_RANDOM_ADDR may
4154 * be set for scheduled scan and the MAC address mask/value will be used.
4155 * @NL80211_FEATURE_ND_RANDOM_MAC_ADDR: This device/driver supports using a
4156 * random MAC address for every scan iteration during "net detect", i.e.
4157 * scan in unassociated WoWLAN, the %NL80211_SCAN_FLAG_RANDOM_ADDR may
4158 * be set for scheduled scan and the MAC address mask/value will be used.
4073 */ 4159 */
4074enum nl80211_feature_flags { 4160enum nl80211_feature_flags {
4075 NL80211_FEATURE_SK_TX_STATUS = 1 << 0, 4161 NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
@@ -4100,6 +4186,10 @@ enum nl80211_feature_flags {
4100 NL80211_FEATURE_DYNAMIC_SMPS = 1 << 25, 4186 NL80211_FEATURE_DYNAMIC_SMPS = 1 << 25,
4101 NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 1 << 26, 4187 NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 1 << 26,
4102 NL80211_FEATURE_MAC_ON_CREATE = 1 << 27, 4188 NL80211_FEATURE_MAC_ON_CREATE = 1 << 27,
4189 NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 1 << 28,
4190 NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 1 << 29,
4191 NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 1 << 30,
4192 NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1 << 31,
4103}; 4193};
4104 4194
4105/** 4195/**
@@ -4148,11 +4238,21 @@ enum nl80211_connect_failed_reason {
4148 * dangerous because will destroy stations performance as a lot of frames 4238 * dangerous because will destroy stations performance as a lot of frames
4149 * will be lost while scanning off-channel, therefore it must be used only 4239 * will be lost while scanning off-channel, therefore it must be used only
4150 * when really needed 4240 * when really needed
4241 * @NL80211_SCAN_FLAG_RANDOM_ADDR: use a random MAC address for this scan (or
4242 * for scheduled scan: a different one for every scan iteration). When the
4243 * flag is set, depending on device capabilities the @NL80211_ATTR_MAC and
4244 * @NL80211_ATTR_MAC_MASK attributes may also be given in which case only
4245 * the masked bits will be preserved from the MAC address and the remainder
4246 * randomised. If the attributes are not given full randomisation (46 bits,
4247 * locally administered 1, multicast 0) is assumed.
4248 * This flag must not be requested when the feature isn't supported, check
4249 * the nl80211 feature flags for the device.
4151 */ 4250 */
4152enum nl80211_scan_flags { 4251enum nl80211_scan_flags {
4153 NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, 4252 NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0,
4154 NL80211_SCAN_FLAG_FLUSH = 1<<1, 4253 NL80211_SCAN_FLAG_FLUSH = 1<<1,
4155 NL80211_SCAN_FLAG_AP = 1<<2, 4254 NL80211_SCAN_FLAG_AP = 1<<2,
4255 NL80211_SCAN_FLAG_RANDOM_ADDR = 1<<3,
4156}; 4256};
4157 4257
4158/** 4258/**