diff options
Diffstat (limited to 'include/uapi/linux')
| -rw-r--r-- | include/uapi/linux/nl80211.h | 108 |
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 | */ |
| 2656 | enum nl80211_reg_rule_flags { | 2700 | enum 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 | */ |
| 4074 | enum nl80211_feature_flags { | 4160 | enum 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 | */ |
| 4152 | enum nl80211_scan_flags { | 4251 | enum 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 | /** |
