wpa_supplicant / hostapd  2.5
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
nl80211_copy.h
1 #ifndef __LINUX_NL80211_H
2 #define __LINUX_NL80211_H
3 /*
4  * 802.11 netlink interface public header
5  *
6  * Copyright 2008 Michael Wu <flamingice@sourmilk.net>
7  * Copyright 2008 Luis Carlos Cobo <luisca@cozybit.com>
8  * Copyright 2008 Michael Buesch <m@bues.ch>
9  * Copyright 2008, 2009 Luis R. Rodriguez <lrodriguez@atheros.com>
10  * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
11  * Copyright 2008 Colin McCabe <colin@cozybit.com>
12  *
13  * Permission to use, copy, modify, and/or distribute this software for any
14  * purpose with or without fee is hereby granted, provided that the above
15  * copyright notice and this permission notice appear in all copies.
16  *
17  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
18  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
19  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
20  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
21  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
22  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
23  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
24  *
25  */
26 
27 /*
28  * This header file defines the userspace API to the wireless stack. Please
29  * be careful not to break things - i.e. don't move anything around or so
30  * unless you can demonstrate that it breaks neither API nor ABI.
31  *
32  * Additions to the API should be accompanied by actual implementations in
33  * an upstream driver, so that example implementations exist in case there
34  * are ever concerns about the precise semantics of the API or changes are
35  * needed, and to ensure that code for dead (no longer implemented) API
36  * can actually be identified and removed.
37  * Nonetheless, semantics should also be documented carefully in this file.
38  */
39 
40 #include <linux/types.h>
41 
42 #define NL80211_GENL_NAME "nl80211"
43 
44 #define NL80211_MULTICAST_GROUP_CONFIG "config"
45 #define NL80211_MULTICAST_GROUP_SCAN "scan"
46 #define NL80211_MULTICAST_GROUP_REG "regulatory"
47 #define NL80211_MULTICAST_GROUP_MLME "mlme"
48 #define NL80211_MULTICAST_GROUP_VENDOR "vendor"
49 #define NL80211_MULTICAST_GROUP_TESTMODE "testmode"
50 
817 enum nl80211_commands {
818 /* don't change the order or add anything between, this is ABI! */
819  NL80211_CMD_UNSPEC,
820 
821  NL80211_CMD_GET_WIPHY, /* can dump */
822  NL80211_CMD_SET_WIPHY,
823  NL80211_CMD_NEW_WIPHY,
824  NL80211_CMD_DEL_WIPHY,
825 
826  NL80211_CMD_GET_INTERFACE, /* can dump */
827  NL80211_CMD_SET_INTERFACE,
828  NL80211_CMD_NEW_INTERFACE,
829  NL80211_CMD_DEL_INTERFACE,
830 
831  NL80211_CMD_GET_KEY,
832  NL80211_CMD_SET_KEY,
833  NL80211_CMD_NEW_KEY,
834  NL80211_CMD_DEL_KEY,
835 
836  NL80211_CMD_GET_BEACON,
837  NL80211_CMD_SET_BEACON,
838  NL80211_CMD_START_AP,
839  NL80211_CMD_NEW_BEACON = NL80211_CMD_START_AP,
840  NL80211_CMD_STOP_AP,
841  NL80211_CMD_DEL_BEACON = NL80211_CMD_STOP_AP,
842 
843  NL80211_CMD_GET_STATION,
844  NL80211_CMD_SET_STATION,
845  NL80211_CMD_NEW_STATION,
846  NL80211_CMD_DEL_STATION,
847 
848  NL80211_CMD_GET_MPATH,
849  NL80211_CMD_SET_MPATH,
850  NL80211_CMD_NEW_MPATH,
851  NL80211_CMD_DEL_MPATH,
852 
853  NL80211_CMD_SET_BSS,
854 
855  NL80211_CMD_SET_REG,
856  NL80211_CMD_REQ_SET_REG,
857 
858  NL80211_CMD_GET_MESH_CONFIG,
859  NL80211_CMD_SET_MESH_CONFIG,
860 
861  NL80211_CMD_SET_MGMT_EXTRA_IE /* reserved; not used */,
862 
863  NL80211_CMD_GET_REG,
864 
865  NL80211_CMD_GET_SCAN,
866  NL80211_CMD_TRIGGER_SCAN,
867  NL80211_CMD_NEW_SCAN_RESULTS,
868  NL80211_CMD_SCAN_ABORTED,
869 
870  NL80211_CMD_REG_CHANGE,
871 
872  NL80211_CMD_AUTHENTICATE,
873  NL80211_CMD_ASSOCIATE,
874  NL80211_CMD_DEAUTHENTICATE,
875  NL80211_CMD_DISASSOCIATE,
876 
877  NL80211_CMD_MICHAEL_MIC_FAILURE,
878 
879  NL80211_CMD_REG_BEACON_HINT,
880 
881  NL80211_CMD_JOIN_IBSS,
882  NL80211_CMD_LEAVE_IBSS,
883 
884  NL80211_CMD_TESTMODE,
885 
886  NL80211_CMD_CONNECT,
887  NL80211_CMD_ROAM,
888  NL80211_CMD_DISCONNECT,
889 
890  NL80211_CMD_SET_WIPHY_NETNS,
891 
892  NL80211_CMD_GET_SURVEY,
893  NL80211_CMD_NEW_SURVEY_RESULTS,
894 
895  NL80211_CMD_SET_PMKSA,
896  NL80211_CMD_DEL_PMKSA,
897  NL80211_CMD_FLUSH_PMKSA,
898 
899  NL80211_CMD_REMAIN_ON_CHANNEL,
900  NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL,
901 
902  NL80211_CMD_SET_TX_BITRATE_MASK,
903 
904  NL80211_CMD_REGISTER_FRAME,
905  NL80211_CMD_REGISTER_ACTION = NL80211_CMD_REGISTER_FRAME,
906  NL80211_CMD_FRAME,
907  NL80211_CMD_ACTION = NL80211_CMD_FRAME,
908  NL80211_CMD_FRAME_TX_STATUS,
909  NL80211_CMD_ACTION_TX_STATUS = NL80211_CMD_FRAME_TX_STATUS,
910 
911  NL80211_CMD_SET_POWER_SAVE,
912  NL80211_CMD_GET_POWER_SAVE,
913 
914  NL80211_CMD_SET_CQM,
915  NL80211_CMD_NOTIFY_CQM,
916 
917  NL80211_CMD_SET_CHANNEL,
918  NL80211_CMD_SET_WDS_PEER,
919 
920  NL80211_CMD_FRAME_WAIT_CANCEL,
921 
922  NL80211_CMD_JOIN_MESH,
923  NL80211_CMD_LEAVE_MESH,
924 
925  NL80211_CMD_UNPROT_DEAUTHENTICATE,
926  NL80211_CMD_UNPROT_DISASSOCIATE,
927 
928  NL80211_CMD_NEW_PEER_CANDIDATE,
929 
930  NL80211_CMD_GET_WOWLAN,
931  NL80211_CMD_SET_WOWLAN,
932 
933  NL80211_CMD_START_SCHED_SCAN,
934  NL80211_CMD_STOP_SCHED_SCAN,
935  NL80211_CMD_SCHED_SCAN_RESULTS,
936  NL80211_CMD_SCHED_SCAN_STOPPED,
937 
938  NL80211_CMD_SET_REKEY_OFFLOAD,
939 
940  NL80211_CMD_PMKSA_CANDIDATE,
941 
942  NL80211_CMD_TDLS_OPER,
943  NL80211_CMD_TDLS_MGMT,
944 
945  NL80211_CMD_UNEXPECTED_FRAME,
946 
947  NL80211_CMD_PROBE_CLIENT,
948 
949  NL80211_CMD_REGISTER_BEACONS,
950 
951  NL80211_CMD_UNEXPECTED_4ADDR_FRAME,
952 
953  NL80211_CMD_SET_NOACK_MAP,
954 
955  NL80211_CMD_CH_SWITCH_NOTIFY,
956 
957  NL80211_CMD_START_P2P_DEVICE,
958  NL80211_CMD_STOP_P2P_DEVICE,
959 
960  NL80211_CMD_CONN_FAILED,
961 
962  NL80211_CMD_SET_MCAST_RATE,
963 
964  NL80211_CMD_SET_MAC_ACL,
965 
966  NL80211_CMD_RADAR_DETECT,
967 
968  NL80211_CMD_GET_PROTOCOL_FEATURES,
969 
970  NL80211_CMD_UPDATE_FT_IES,
971  NL80211_CMD_FT_EVENT,
972 
973  NL80211_CMD_CRIT_PROTOCOL_START,
974  NL80211_CMD_CRIT_PROTOCOL_STOP,
975 
976  NL80211_CMD_GET_COALESCE,
977  NL80211_CMD_SET_COALESCE,
978 
979  NL80211_CMD_CHANNEL_SWITCH,
980 
981  NL80211_CMD_VENDOR,
982 
983  NL80211_CMD_SET_QOS_MAP,
984 
985  NL80211_CMD_ADD_TX_TS,
986  NL80211_CMD_DEL_TX_TS,
987 
988  NL80211_CMD_GET_MPP,
989 
990  NL80211_CMD_JOIN_OCB,
991  NL80211_CMD_LEAVE_OCB,
992 
993  NL80211_CMD_CH_SWITCH_STARTED_NOTIFY,
994 
995  NL80211_CMD_TDLS_CHANNEL_SWITCH,
996  NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH,
997 
998  NL80211_CMD_WIPHY_REG_CHANGE,
999 
1000  /* add new commands above here */
1001 
1002  /* used to define NL80211_CMD_MAX below */
1003  __NL80211_CMD_AFTER_LAST,
1004  NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
1005 };
1006 
1007 /*
1008  * Allow user space programs to use #ifdef on new commands by defining them
1009  * here
1010  */
1011 #define NL80211_CMD_SET_BSS NL80211_CMD_SET_BSS
1012 #define NL80211_CMD_SET_MGMT_EXTRA_IE NL80211_CMD_SET_MGMT_EXTRA_IE
1013 #define NL80211_CMD_REG_CHANGE NL80211_CMD_REG_CHANGE
1014 #define NL80211_CMD_AUTHENTICATE NL80211_CMD_AUTHENTICATE
1015 #define NL80211_CMD_ASSOCIATE NL80211_CMD_ASSOCIATE
1016 #define NL80211_CMD_DEAUTHENTICATE NL80211_CMD_DEAUTHENTICATE
1017 #define NL80211_CMD_DISASSOCIATE NL80211_CMD_DISASSOCIATE
1018 #define NL80211_CMD_REG_BEACON_HINT NL80211_CMD_REG_BEACON_HINT
1019 
1020 #define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS
1021 
1022 /* source-level API compatibility */
1023 #define NL80211_CMD_GET_MESH_PARAMS NL80211_CMD_GET_MESH_CONFIG
1024 #define NL80211_CMD_SET_MESH_PARAMS NL80211_CMD_SET_MESH_CONFIG
1025 #define NL80211_MESH_SETUP_VENDOR_PATH_SEL_IE NL80211_MESH_SETUP_IE
1026 
1768 enum nl80211_attrs {
1769 /* don't change the order or add anything between, this is ABI! */
1770  NL80211_ATTR_UNSPEC,
1771 
1772  NL80211_ATTR_WIPHY,
1773  NL80211_ATTR_WIPHY_NAME,
1774 
1775  NL80211_ATTR_IFINDEX,
1776  NL80211_ATTR_IFNAME,
1777  NL80211_ATTR_IFTYPE,
1778 
1779  NL80211_ATTR_MAC,
1780 
1781  NL80211_ATTR_KEY_DATA,
1782  NL80211_ATTR_KEY_IDX,
1783  NL80211_ATTR_KEY_CIPHER,
1784  NL80211_ATTR_KEY_SEQ,
1785  NL80211_ATTR_KEY_DEFAULT,
1786 
1787  NL80211_ATTR_BEACON_INTERVAL,
1788  NL80211_ATTR_DTIM_PERIOD,
1789  NL80211_ATTR_BEACON_HEAD,
1790  NL80211_ATTR_BEACON_TAIL,
1791 
1792  NL80211_ATTR_STA_AID,
1793  NL80211_ATTR_STA_FLAGS,
1794  NL80211_ATTR_STA_LISTEN_INTERVAL,
1795  NL80211_ATTR_STA_SUPPORTED_RATES,
1796  NL80211_ATTR_STA_VLAN,
1797  NL80211_ATTR_STA_INFO,
1798 
1799  NL80211_ATTR_WIPHY_BANDS,
1800 
1801  NL80211_ATTR_MNTR_FLAGS,
1802 
1803  NL80211_ATTR_MESH_ID,
1804  NL80211_ATTR_STA_PLINK_ACTION,
1805  NL80211_ATTR_MPATH_NEXT_HOP,
1806  NL80211_ATTR_MPATH_INFO,
1807 
1808  NL80211_ATTR_BSS_CTS_PROT,
1809  NL80211_ATTR_BSS_SHORT_PREAMBLE,
1810  NL80211_ATTR_BSS_SHORT_SLOT_TIME,
1811 
1812  NL80211_ATTR_HT_CAPABILITY,
1813 
1814  NL80211_ATTR_SUPPORTED_IFTYPES,
1815 
1816  NL80211_ATTR_REG_ALPHA2,
1817  NL80211_ATTR_REG_RULES,
1818 
1819  NL80211_ATTR_MESH_CONFIG,
1820 
1821  NL80211_ATTR_BSS_BASIC_RATES,
1822 
1823  NL80211_ATTR_WIPHY_TXQ_PARAMS,
1824  NL80211_ATTR_WIPHY_FREQ,
1825  NL80211_ATTR_WIPHY_CHANNEL_TYPE,
1826 
1827  NL80211_ATTR_KEY_DEFAULT_MGMT,
1828 
1829  NL80211_ATTR_MGMT_SUBTYPE,
1830  NL80211_ATTR_IE,
1831 
1832  NL80211_ATTR_MAX_NUM_SCAN_SSIDS,
1833 
1834  NL80211_ATTR_SCAN_FREQUENCIES,
1835  NL80211_ATTR_SCAN_SSIDS,
1836  NL80211_ATTR_GENERATION, /* replaces old SCAN_GENERATION */
1837  NL80211_ATTR_BSS,
1838 
1839  NL80211_ATTR_REG_INITIATOR,
1840  NL80211_ATTR_REG_TYPE,
1841 
1842  NL80211_ATTR_SUPPORTED_COMMANDS,
1843 
1844  NL80211_ATTR_FRAME,
1845  NL80211_ATTR_SSID,
1846  NL80211_ATTR_AUTH_TYPE,
1847  NL80211_ATTR_REASON_CODE,
1848 
1849  NL80211_ATTR_KEY_TYPE,
1850 
1851  NL80211_ATTR_MAX_SCAN_IE_LEN,
1852  NL80211_ATTR_CIPHER_SUITES,
1853 
1854  NL80211_ATTR_FREQ_BEFORE,
1855  NL80211_ATTR_FREQ_AFTER,
1856 
1857  NL80211_ATTR_FREQ_FIXED,
1858 
1859 
1860  NL80211_ATTR_WIPHY_RETRY_SHORT,
1861  NL80211_ATTR_WIPHY_RETRY_LONG,
1862  NL80211_ATTR_WIPHY_FRAG_THRESHOLD,
1863  NL80211_ATTR_WIPHY_RTS_THRESHOLD,
1864 
1865  NL80211_ATTR_TIMED_OUT,
1866 
1867  NL80211_ATTR_USE_MFP,
1868 
1869  NL80211_ATTR_STA_FLAGS2,
1870 
1871  NL80211_ATTR_CONTROL_PORT,
1872 
1873  NL80211_ATTR_TESTDATA,
1874 
1875  NL80211_ATTR_PRIVACY,
1876 
1877  NL80211_ATTR_DISCONNECTED_BY_AP,
1878  NL80211_ATTR_STATUS_CODE,
1879 
1880  NL80211_ATTR_CIPHER_SUITES_PAIRWISE,
1881  NL80211_ATTR_CIPHER_SUITE_GROUP,
1882  NL80211_ATTR_WPA_VERSIONS,
1883  NL80211_ATTR_AKM_SUITES,
1884 
1885  NL80211_ATTR_REQ_IE,
1886  NL80211_ATTR_RESP_IE,
1887 
1888  NL80211_ATTR_PREV_BSSID,
1889 
1890  NL80211_ATTR_KEY,
1891  NL80211_ATTR_KEYS,
1892 
1893  NL80211_ATTR_PID,
1894 
1895  NL80211_ATTR_4ADDR,
1896 
1897  NL80211_ATTR_SURVEY_INFO,
1898 
1899  NL80211_ATTR_PMKID,
1900  NL80211_ATTR_MAX_NUM_PMKIDS,
1901 
1902  NL80211_ATTR_DURATION,
1903 
1904  NL80211_ATTR_COOKIE,
1905 
1906  NL80211_ATTR_WIPHY_COVERAGE_CLASS,
1907 
1908  NL80211_ATTR_TX_RATES,
1909 
1910  NL80211_ATTR_FRAME_MATCH,
1911 
1912  NL80211_ATTR_ACK,
1913 
1914  NL80211_ATTR_PS_STATE,
1915 
1916  NL80211_ATTR_CQM,
1917 
1918  NL80211_ATTR_LOCAL_STATE_CHANGE,
1919 
1920  NL80211_ATTR_AP_ISOLATE,
1921 
1922  NL80211_ATTR_WIPHY_TX_POWER_SETTING,
1923  NL80211_ATTR_WIPHY_TX_POWER_LEVEL,
1924 
1925  NL80211_ATTR_TX_FRAME_TYPES,
1926  NL80211_ATTR_RX_FRAME_TYPES,
1927  NL80211_ATTR_FRAME_TYPE,
1928 
1929  NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
1930  NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT,
1931 
1932  NL80211_ATTR_SUPPORT_IBSS_RSN,
1933 
1934  NL80211_ATTR_WIPHY_ANTENNA_TX,
1935  NL80211_ATTR_WIPHY_ANTENNA_RX,
1936 
1937  NL80211_ATTR_MCAST_RATE,
1938 
1939  NL80211_ATTR_OFFCHANNEL_TX_OK,
1940 
1941  NL80211_ATTR_BSS_HT_OPMODE,
1942 
1943  NL80211_ATTR_KEY_DEFAULT_TYPES,
1944 
1945  NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION,
1946 
1947  NL80211_ATTR_MESH_SETUP,
1948 
1949  NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX,
1950  NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX,
1951 
1952  NL80211_ATTR_SUPPORT_MESH_AUTH,
1953  NL80211_ATTR_STA_PLINK_STATE,
1954 
1955  NL80211_ATTR_WOWLAN_TRIGGERS,
1956  NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED,
1957 
1958  NL80211_ATTR_SCHED_SCAN_INTERVAL,
1959 
1960  NL80211_ATTR_INTERFACE_COMBINATIONS,
1961  NL80211_ATTR_SOFTWARE_IFTYPES,
1962 
1963  NL80211_ATTR_REKEY_DATA,
1964 
1965  NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS,
1966  NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN,
1967 
1968  NL80211_ATTR_SCAN_SUPP_RATES,
1969 
1970  NL80211_ATTR_HIDDEN_SSID,
1971 
1972  NL80211_ATTR_IE_PROBE_RESP,
1973  NL80211_ATTR_IE_ASSOC_RESP,
1974 
1975  NL80211_ATTR_STA_WME,
1976  NL80211_ATTR_SUPPORT_AP_UAPSD,
1977 
1978  NL80211_ATTR_ROAM_SUPPORT,
1979 
1980  NL80211_ATTR_SCHED_SCAN_MATCH,
1981  NL80211_ATTR_MAX_MATCH_SETS,
1982 
1983  NL80211_ATTR_PMKSA_CANDIDATE,
1984 
1985  NL80211_ATTR_TX_NO_CCK_RATE,
1986 
1987  NL80211_ATTR_TDLS_ACTION,
1988  NL80211_ATTR_TDLS_DIALOG_TOKEN,
1989  NL80211_ATTR_TDLS_OPERATION,
1990  NL80211_ATTR_TDLS_SUPPORT,
1991  NL80211_ATTR_TDLS_EXTERNAL_SETUP,
1992 
1993  NL80211_ATTR_DEVICE_AP_SME,
1994 
1995  NL80211_ATTR_DONT_WAIT_FOR_ACK,
1996 
1997  NL80211_ATTR_FEATURE_FLAGS,
1998 
1999  NL80211_ATTR_PROBE_RESP_OFFLOAD,
2000 
2001  NL80211_ATTR_PROBE_RESP,
2002 
2003  NL80211_ATTR_DFS_REGION,
2004 
2005  NL80211_ATTR_DISABLE_HT,
2006  NL80211_ATTR_HT_CAPABILITY_MASK,
2007 
2008  NL80211_ATTR_NOACK_MAP,
2009 
2010  NL80211_ATTR_INACTIVITY_TIMEOUT,
2011 
2012  NL80211_ATTR_RX_SIGNAL_DBM,
2013 
2014  NL80211_ATTR_BG_SCAN_PERIOD,
2015 
2016  NL80211_ATTR_WDEV,
2017 
2018  NL80211_ATTR_USER_REG_HINT_TYPE,
2019 
2020  NL80211_ATTR_CONN_FAILED_REASON,
2021 
2022  NL80211_ATTR_SAE_DATA,
2023 
2024  NL80211_ATTR_VHT_CAPABILITY,
2025 
2026  NL80211_ATTR_SCAN_FLAGS,
2027 
2028  NL80211_ATTR_CHANNEL_WIDTH,
2029  NL80211_ATTR_CENTER_FREQ1,
2030  NL80211_ATTR_CENTER_FREQ2,
2031 
2032  NL80211_ATTR_P2P_CTWINDOW,
2033  NL80211_ATTR_P2P_OPPPS,
2034 
2035  NL80211_ATTR_LOCAL_MESH_POWER_MODE,
2036 
2037  NL80211_ATTR_ACL_POLICY,
2038 
2039  NL80211_ATTR_MAC_ADDRS,
2040 
2041  NL80211_ATTR_MAC_ACL_MAX,
2042 
2043  NL80211_ATTR_RADAR_EVENT,
2044 
2045  NL80211_ATTR_EXT_CAPA,
2046  NL80211_ATTR_EXT_CAPA_MASK,
2047 
2048  NL80211_ATTR_STA_CAPABILITY,
2049  NL80211_ATTR_STA_EXT_CAPABILITY,
2050 
2051  NL80211_ATTR_PROTOCOL_FEATURES,
2052  NL80211_ATTR_SPLIT_WIPHY_DUMP,
2053 
2054  NL80211_ATTR_DISABLE_VHT,
2055  NL80211_ATTR_VHT_CAPABILITY_MASK,
2056 
2057  NL80211_ATTR_MDID,
2058  NL80211_ATTR_IE_RIC,
2059 
2060  NL80211_ATTR_CRIT_PROT_ID,
2061  NL80211_ATTR_MAX_CRIT_PROT_DURATION,
2062 
2063  NL80211_ATTR_PEER_AID,
2064 
2065  NL80211_ATTR_COALESCE_RULE,
2066 
2067  NL80211_ATTR_CH_SWITCH_COUNT,
2068  NL80211_ATTR_CH_SWITCH_BLOCK_TX,
2069  NL80211_ATTR_CSA_IES,
2070  NL80211_ATTR_CSA_C_OFF_BEACON,
2071  NL80211_ATTR_CSA_C_OFF_PRESP,
2072 
2073  NL80211_ATTR_RXMGMT_FLAGS,
2074 
2075  NL80211_ATTR_STA_SUPPORTED_CHANNELS,
2076 
2077  NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES,
2078 
2079  NL80211_ATTR_HANDLE_DFS,
2080 
2081  NL80211_ATTR_SUPPORT_5_MHZ,
2082  NL80211_ATTR_SUPPORT_10_MHZ,
2083 
2084  NL80211_ATTR_OPMODE_NOTIF,
2085 
2086  NL80211_ATTR_VENDOR_ID,
2087  NL80211_ATTR_VENDOR_SUBCMD,
2088  NL80211_ATTR_VENDOR_DATA,
2089  NL80211_ATTR_VENDOR_EVENTS,
2090 
2091  NL80211_ATTR_QOS_MAP,
2092 
2093  NL80211_ATTR_MAC_HINT,
2094  NL80211_ATTR_WIPHY_FREQ_HINT,
2095 
2096  NL80211_ATTR_MAX_AP_ASSOC_STA,
2097 
2098  NL80211_ATTR_TDLS_PEER_CAPABILITY,
2099 
2100  NL80211_ATTR_SOCKET_OWNER,
2101 
2102  NL80211_ATTR_CSA_C_OFFSETS_TX,
2103  NL80211_ATTR_MAX_CSA_COUNTERS,
2104 
2105  NL80211_ATTR_TDLS_INITIATOR,
2106 
2107  NL80211_ATTR_USE_RRM,
2108 
2109  NL80211_ATTR_WIPHY_DYN_ACK,
2110 
2111  NL80211_ATTR_TSID,
2112  NL80211_ATTR_USER_PRIO,
2113  NL80211_ATTR_ADMITTED_TIME,
2114 
2115  NL80211_ATTR_SMPS_MODE,
2116 
2117  NL80211_ATTR_OPER_CLASS,
2118 
2119  NL80211_ATTR_MAC_MASK,
2120 
2121  NL80211_ATTR_WIPHY_SELF_MANAGED_REG,
2122 
2123  NL80211_ATTR_EXT_FEATURES,
2124 
2125  NL80211_ATTR_SURVEY_RADIO_STATS,
2126 
2127  NL80211_ATTR_NETNS_FD,
2128 
2129  NL80211_ATTR_SCHED_SCAN_DELAY,
2130 
2131  NL80211_ATTR_REG_INDOOR,
2132 
2133  /* add attributes here, update the policy in nl80211.c */
2134 
2135  __NL80211_ATTR_AFTER_LAST,
2136  NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
2137  NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
2138 };
2139 
2140 /* source-level API compatibility */
2141 #define NL80211_ATTR_SCAN_GENERATION NL80211_ATTR_GENERATION
2142 #define NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG
2143 #define NL80211_ATTR_IFACE_SOCKET_OWNER NL80211_ATTR_SOCKET_OWNER
2144 
2145 /*
2146  * Allow user space programs to use #ifdef on new attributes by defining them
2147  * here
2148  */
2149 #define NL80211_CMD_CONNECT NL80211_CMD_CONNECT
2150 #define NL80211_ATTR_HT_CAPABILITY NL80211_ATTR_HT_CAPABILITY
2151 #define NL80211_ATTR_BSS_BASIC_RATES NL80211_ATTR_BSS_BASIC_RATES
2152 #define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS
2153 #define NL80211_ATTR_WIPHY_FREQ NL80211_ATTR_WIPHY_FREQ
2154 #define NL80211_ATTR_WIPHY_CHANNEL_TYPE NL80211_ATTR_WIPHY_CHANNEL_TYPE
2155 #define NL80211_ATTR_MGMT_SUBTYPE NL80211_ATTR_MGMT_SUBTYPE
2156 #define NL80211_ATTR_IE NL80211_ATTR_IE
2157 #define NL80211_ATTR_REG_INITIATOR NL80211_ATTR_REG_INITIATOR
2158 #define NL80211_ATTR_REG_TYPE NL80211_ATTR_REG_TYPE
2159 #define NL80211_ATTR_FRAME NL80211_ATTR_FRAME
2160 #define NL80211_ATTR_SSID NL80211_ATTR_SSID
2161 #define NL80211_ATTR_AUTH_TYPE NL80211_ATTR_AUTH_TYPE
2162 #define NL80211_ATTR_REASON_CODE NL80211_ATTR_REASON_CODE
2163 #define NL80211_ATTR_CIPHER_SUITES_PAIRWISE NL80211_ATTR_CIPHER_SUITES_PAIRWISE
2164 #define NL80211_ATTR_CIPHER_SUITE_GROUP NL80211_ATTR_CIPHER_SUITE_GROUP
2165 #define NL80211_ATTR_WPA_VERSIONS NL80211_ATTR_WPA_VERSIONS
2166 #define NL80211_ATTR_AKM_SUITES NL80211_ATTR_AKM_SUITES
2167 #define NL80211_ATTR_KEY NL80211_ATTR_KEY
2168 #define NL80211_ATTR_KEYS NL80211_ATTR_KEYS
2169 #define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS
2170 
2171 #define NL80211_MAX_SUPP_RATES 32
2172 #define NL80211_MAX_SUPP_HT_RATES 77
2173 #define NL80211_MAX_SUPP_REG_RULES 64
2174 #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0
2175 #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16
2176 #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
2177 #define NL80211_HT_CAPABILITY_LEN 26
2178 #define NL80211_VHT_CAPABILITY_LEN 12
2179 
2180 #define NL80211_MAX_NR_CIPHER_SUITES 5
2181 #define NL80211_MAX_NR_AKM_SUITES 2
2182 
2183 #define NL80211_MIN_REMAIN_ON_CHANNEL_TIME 10
2184 
2185 /* default RSSI threshold for scan results if none specified. */
2186 #define NL80211_SCAN_RSSI_THOLD_OFF -300
2187 
2188 #define NL80211_CQM_TXE_MAX_INTVL 1800
2189 
2219 enum nl80211_iftype {
2220  NL80211_IFTYPE_UNSPECIFIED,
2221  NL80211_IFTYPE_ADHOC,
2222  NL80211_IFTYPE_STATION,
2223  NL80211_IFTYPE_AP,
2224  NL80211_IFTYPE_AP_VLAN,
2225  NL80211_IFTYPE_WDS,
2226  NL80211_IFTYPE_MONITOR,
2227  NL80211_IFTYPE_MESH_POINT,
2228  NL80211_IFTYPE_P2P_CLIENT,
2229  NL80211_IFTYPE_P2P_GO,
2230  NL80211_IFTYPE_P2P_DEVICE,
2231  NL80211_IFTYPE_OCB,
2232 
2233  /* keep last */
2234  NUM_NL80211_IFTYPES,
2235  NL80211_IFTYPE_MAX = NUM_NL80211_IFTYPES - 1
2236 };
2237 
2263 enum nl80211_sta_flags {
2264  __NL80211_STA_FLAG_INVALID,
2265  NL80211_STA_FLAG_AUTHORIZED,
2266  NL80211_STA_FLAG_SHORT_PREAMBLE,
2267  NL80211_STA_FLAG_WME,
2268  NL80211_STA_FLAG_MFP,
2269  NL80211_STA_FLAG_AUTHENTICATED,
2270  NL80211_STA_FLAG_TDLS_PEER,
2271  NL80211_STA_FLAG_ASSOCIATED,
2272 
2273  /* keep last */
2274  __NL80211_STA_FLAG_AFTER_LAST,
2275  NL80211_STA_FLAG_MAX = __NL80211_STA_FLAG_AFTER_LAST - 1
2276 };
2277 
2278 #define NL80211_STA_FLAG_MAX_OLD_API NL80211_STA_FLAG_TDLS_PEER
2279 
2288  __u32 mask;
2289  __u32 set;
2290 } __attribute__((packed));
2291 
2327 enum nl80211_rate_info {
2328  __NL80211_RATE_INFO_INVALID,
2329  NL80211_RATE_INFO_BITRATE,
2330  NL80211_RATE_INFO_MCS,
2331  NL80211_RATE_INFO_40_MHZ_WIDTH,
2332  NL80211_RATE_INFO_SHORT_GI,
2333  NL80211_RATE_INFO_BITRATE32,
2334  NL80211_RATE_INFO_VHT_MCS,
2335  NL80211_RATE_INFO_VHT_NSS,
2336  NL80211_RATE_INFO_80_MHZ_WIDTH,
2337  NL80211_RATE_INFO_80P80_MHZ_WIDTH,
2338  NL80211_RATE_INFO_160_MHZ_WIDTH,
2339  NL80211_RATE_INFO_10_MHZ_WIDTH,
2340  NL80211_RATE_INFO_5_MHZ_WIDTH,
2341 
2342  /* keep last */
2343  __NL80211_RATE_INFO_AFTER_LAST,
2344  NL80211_RATE_INFO_MAX = __NL80211_RATE_INFO_AFTER_LAST - 1
2345 };
2346 
2365 enum nl80211_sta_bss_param {
2366  __NL80211_STA_BSS_PARAM_INVALID,
2367  NL80211_STA_BSS_PARAM_CTS_PROT,
2368  NL80211_STA_BSS_PARAM_SHORT_PREAMBLE,
2369  NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME,
2370  NL80211_STA_BSS_PARAM_DTIM_PERIOD,
2371  NL80211_STA_BSS_PARAM_BEACON_INTERVAL,
2372 
2373  /* keep last */
2374  __NL80211_STA_BSS_PARAM_AFTER_LAST,
2375  NL80211_STA_BSS_PARAM_MAX = __NL80211_STA_BSS_PARAM_AFTER_LAST - 1
2376 };
2377 
2441 enum nl80211_sta_info {
2442  __NL80211_STA_INFO_INVALID,
2443  NL80211_STA_INFO_INACTIVE_TIME,
2444  NL80211_STA_INFO_RX_BYTES,
2445  NL80211_STA_INFO_TX_BYTES,
2446  NL80211_STA_INFO_LLID,
2447  NL80211_STA_INFO_PLID,
2448  NL80211_STA_INFO_PLINK_STATE,
2449  NL80211_STA_INFO_SIGNAL,
2450  NL80211_STA_INFO_TX_BITRATE,
2451  NL80211_STA_INFO_RX_PACKETS,
2452  NL80211_STA_INFO_TX_PACKETS,
2453  NL80211_STA_INFO_TX_RETRIES,
2454  NL80211_STA_INFO_TX_FAILED,
2455  NL80211_STA_INFO_SIGNAL_AVG,
2456  NL80211_STA_INFO_RX_BITRATE,
2457  NL80211_STA_INFO_BSS_PARAM,
2458  NL80211_STA_INFO_CONNECTED_TIME,
2459  NL80211_STA_INFO_STA_FLAGS,
2460  NL80211_STA_INFO_BEACON_LOSS,
2461  NL80211_STA_INFO_T_OFFSET,
2462  NL80211_STA_INFO_LOCAL_PM,
2463  NL80211_STA_INFO_PEER_PM,
2464  NL80211_STA_INFO_NONPEER_PM,
2465  NL80211_STA_INFO_RX_BYTES64,
2466  NL80211_STA_INFO_TX_BYTES64,
2467  NL80211_STA_INFO_CHAIN_SIGNAL,
2468  NL80211_STA_INFO_CHAIN_SIGNAL_AVG,
2469  NL80211_STA_INFO_EXPECTED_THROUGHPUT,
2470  NL80211_STA_INFO_RX_DROP_MISC,
2471  NL80211_STA_INFO_BEACON_RX,
2472  NL80211_STA_INFO_BEACON_SIGNAL_AVG,
2473  NL80211_STA_INFO_TID_STATS,
2474 
2475  /* keep last */
2476  __NL80211_STA_INFO_AFTER_LAST,
2477  NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1
2478 };
2479 
2493 enum nl80211_tid_stats {
2494  __NL80211_TID_STATS_INVALID,
2495  NL80211_TID_STATS_RX_MSDU,
2496  NL80211_TID_STATS_TX_MSDU,
2497  NL80211_TID_STATS_TX_MSDU_RETRIES,
2498  NL80211_TID_STATS_TX_MSDU_FAILED,
2499 
2500  /* keep last */
2501  NUM_NL80211_TID_STATS,
2502  NL80211_TID_STATS_MAX = NUM_NL80211_TID_STATS - 1
2503 };
2504 
2515 enum nl80211_mpath_flags {
2516  NL80211_MPATH_FLAG_ACTIVE = 1<<0,
2517  NL80211_MPATH_FLAG_RESOLVING = 1<<1,
2518  NL80211_MPATH_FLAG_SN_VALID = 1<<2,
2519  NL80211_MPATH_FLAG_FIXED = 1<<3,
2520  NL80211_MPATH_FLAG_RESOLVED = 1<<4,
2521 };
2522 
2543 enum nl80211_mpath_info {
2544  __NL80211_MPATH_INFO_INVALID,
2545  NL80211_MPATH_INFO_FRAME_QLEN,
2546  NL80211_MPATH_INFO_SN,
2547  NL80211_MPATH_INFO_METRIC,
2548  NL80211_MPATH_INFO_EXPTIME,
2549  NL80211_MPATH_INFO_FLAGS,
2550  NL80211_MPATH_INFO_DISCOVERY_TIMEOUT,
2551  NL80211_MPATH_INFO_DISCOVERY_RETRIES,
2552 
2553  /* keep last */
2554  __NL80211_MPATH_INFO_AFTER_LAST,
2555  NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1
2556 };
2557 
2576 enum nl80211_band_attr {
2577  __NL80211_BAND_ATTR_INVALID,
2578  NL80211_BAND_ATTR_FREQS,
2579  NL80211_BAND_ATTR_RATES,
2580 
2581  NL80211_BAND_ATTR_HT_MCS_SET,
2582  NL80211_BAND_ATTR_HT_CAPA,
2583  NL80211_BAND_ATTR_HT_AMPDU_FACTOR,
2584  NL80211_BAND_ATTR_HT_AMPDU_DENSITY,
2585 
2586  NL80211_BAND_ATTR_VHT_MCS_SET,
2587  NL80211_BAND_ATTR_VHT_CAPA,
2588 
2589  /* keep last */
2590  __NL80211_BAND_ATTR_AFTER_LAST,
2591  NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1
2592 };
2593 
2594 #define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA
2595 
2653 enum nl80211_frequency_attr {
2654  __NL80211_FREQUENCY_ATTR_INVALID,
2655  NL80211_FREQUENCY_ATTR_FREQ,
2656  NL80211_FREQUENCY_ATTR_DISABLED,
2657  NL80211_FREQUENCY_ATTR_NO_IR,
2658  __NL80211_FREQUENCY_ATTR_NO_IBSS,
2659  NL80211_FREQUENCY_ATTR_RADAR,
2660  NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
2661  NL80211_FREQUENCY_ATTR_DFS_STATE,
2662  NL80211_FREQUENCY_ATTR_DFS_TIME,
2663  NL80211_FREQUENCY_ATTR_NO_HT40_MINUS,
2664  NL80211_FREQUENCY_ATTR_NO_HT40_PLUS,
2665  NL80211_FREQUENCY_ATTR_NO_80MHZ,
2666  NL80211_FREQUENCY_ATTR_NO_160MHZ,
2667  NL80211_FREQUENCY_ATTR_DFS_CAC_TIME,
2668  NL80211_FREQUENCY_ATTR_INDOOR_ONLY,
2669  NL80211_FREQUENCY_ATTR_GO_CONCURRENT,
2670  NL80211_FREQUENCY_ATTR_NO_20MHZ,
2671  NL80211_FREQUENCY_ATTR_NO_10MHZ,
2672 
2673  /* keep last */
2674  __NL80211_FREQUENCY_ATTR_AFTER_LAST,
2675  NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1
2676 };
2677 
2678 #define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER
2679 #define NL80211_FREQUENCY_ATTR_PASSIVE_SCAN NL80211_FREQUENCY_ATTR_NO_IR
2680 #define NL80211_FREQUENCY_ATTR_NO_IBSS NL80211_FREQUENCY_ATTR_NO_IR
2681 #define NL80211_FREQUENCY_ATTR_NO_IR NL80211_FREQUENCY_ATTR_NO_IR
2682 
2693 enum nl80211_bitrate_attr {
2694  __NL80211_BITRATE_ATTR_INVALID,
2695  NL80211_BITRATE_ATTR_RATE,
2696  NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE,
2697 
2698  /* keep last */
2699  __NL80211_BITRATE_ATTR_AFTER_LAST,
2700  NL80211_BITRATE_ATTR_MAX = __NL80211_BITRATE_ATTR_AFTER_LAST - 1
2701 };
2702 
2719 enum nl80211_reg_initiator {
2720  NL80211_REGDOM_SET_BY_CORE,
2721  NL80211_REGDOM_SET_BY_USER,
2722  NL80211_REGDOM_SET_BY_DRIVER,
2723  NL80211_REGDOM_SET_BY_COUNTRY_IE,
2724 };
2725 
2742 enum nl80211_reg_type {
2743  NL80211_REGDOM_TYPE_COUNTRY,
2744  NL80211_REGDOM_TYPE_WORLD,
2745  NL80211_REGDOM_TYPE_CUSTOM_WORLD,
2746  NL80211_REGDOM_TYPE_INTERSECTION,
2747 };
2748 
2774 enum nl80211_reg_rule_attr {
2775  __NL80211_REG_RULE_ATTR_INVALID,
2776  NL80211_ATTR_REG_RULE_FLAGS,
2777 
2778  NL80211_ATTR_FREQ_RANGE_START,
2779  NL80211_ATTR_FREQ_RANGE_END,
2780  NL80211_ATTR_FREQ_RANGE_MAX_BW,
2781 
2782  NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN,
2783  NL80211_ATTR_POWER_RULE_MAX_EIRP,
2784 
2785  NL80211_ATTR_DFS_CAC_TIME,
2786 
2787  /* keep last */
2788  __NL80211_REG_RULE_ATTR_AFTER_LAST,
2789  NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1
2790 };
2791 
2809 enum nl80211_sched_scan_match_attr {
2810  __NL80211_SCHED_SCAN_MATCH_ATTR_INVALID,
2811 
2812  NL80211_SCHED_SCAN_MATCH_ATTR_SSID,
2813  NL80211_SCHED_SCAN_MATCH_ATTR_RSSI,
2814 
2815  /* keep last */
2816  __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST,
2817  NL80211_SCHED_SCAN_MATCH_ATTR_MAX =
2818  __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST - 1
2819 };
2820 
2821 /* only for backward compatibility */
2822 #define NL80211_ATTR_SCHED_SCAN_MATCH_SSID NL80211_SCHED_SCAN_MATCH_ATTR_SSID
2823 
2847 enum nl80211_reg_rule_flags {
2848  NL80211_RRF_NO_OFDM = 1<<0,
2849  NL80211_RRF_NO_CCK = 1<<1,
2850  NL80211_RRF_NO_INDOOR = 1<<2,
2851  NL80211_RRF_NO_OUTDOOR = 1<<3,
2852  NL80211_RRF_DFS = 1<<4,
2853  NL80211_RRF_PTP_ONLY = 1<<5,
2854  NL80211_RRF_PTMP_ONLY = 1<<6,
2855  NL80211_RRF_NO_IR = 1<<7,
2856  __NL80211_RRF_NO_IBSS = 1<<8,
2857  NL80211_RRF_AUTO_BW = 1<<11,
2858  NL80211_RRF_GO_CONCURRENT = 1<<12,
2859  NL80211_RRF_NO_HT40MINUS = 1<<13,
2860  NL80211_RRF_NO_HT40PLUS = 1<<14,
2861  NL80211_RRF_NO_80MHZ = 1<<15,
2862  NL80211_RRF_NO_160MHZ = 1<<16,
2863 };
2864 
2865 #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
2866 #define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR
2867 #define NL80211_RRF_NO_IR NL80211_RRF_NO_IR
2868 #define NL80211_RRF_NO_HT40 (NL80211_RRF_NO_HT40MINUS |\
2869  NL80211_RRF_NO_HT40PLUS)
2870 
2871 /* For backport compatibility with older userspace */
2872 #define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS)
2873 
2883 enum nl80211_dfs_regions {
2884  NL80211_DFS_UNSET = 0,
2885  NL80211_DFS_FCC = 1,
2886  NL80211_DFS_ETSI = 2,
2887  NL80211_DFS_JP = 3,
2888 };
2889 
2908 enum nl80211_user_reg_hint_type {
2909  NL80211_USER_REG_HINT_USER = 0,
2910  NL80211_USER_REG_HINT_CELL_BASE = 1,
2911  NL80211_USER_REG_HINT_INDOOR = 2,
2912 };
2913 
2941 enum nl80211_survey_info {
2942  __NL80211_SURVEY_INFO_INVALID,
2943  NL80211_SURVEY_INFO_FREQUENCY,
2944  NL80211_SURVEY_INFO_NOISE,
2945  NL80211_SURVEY_INFO_IN_USE,
2946  NL80211_SURVEY_INFO_TIME,
2947  NL80211_SURVEY_INFO_TIME_BUSY,
2948  NL80211_SURVEY_INFO_TIME_EXT_BUSY,
2949  NL80211_SURVEY_INFO_TIME_RX,
2950  NL80211_SURVEY_INFO_TIME_TX,
2951  NL80211_SURVEY_INFO_TIME_SCAN,
2952 
2953  /* keep last */
2954  __NL80211_SURVEY_INFO_AFTER_LAST,
2955  NL80211_SURVEY_INFO_MAX = __NL80211_SURVEY_INFO_AFTER_LAST - 1
2956 };
2957 
2958 /* keep old names for compatibility */
2959 #define NL80211_SURVEY_INFO_CHANNEL_TIME NL80211_SURVEY_INFO_TIME
2960 #define NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY NL80211_SURVEY_INFO_TIME_BUSY
2961 #define NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY NL80211_SURVEY_INFO_TIME_EXT_BUSY
2962 #define NL80211_SURVEY_INFO_CHANNEL_TIME_RX NL80211_SURVEY_INFO_TIME_RX
2963 #define NL80211_SURVEY_INFO_CHANNEL_TIME_TX NL80211_SURVEY_INFO_TIME_TX
2964 
2985 enum nl80211_mntr_flags {
2986  __NL80211_MNTR_FLAG_INVALID,
2987  NL80211_MNTR_FLAG_FCSFAIL,
2988  NL80211_MNTR_FLAG_PLCPFAIL,
2989  NL80211_MNTR_FLAG_CONTROL,
2990  NL80211_MNTR_FLAG_OTHER_BSS,
2991  NL80211_MNTR_FLAG_COOK_FRAMES,
2992  NL80211_MNTR_FLAG_ACTIVE,
2993 
2994  /* keep last */
2995  __NL80211_MNTR_FLAG_AFTER_LAST,
2996  NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1
2997 };
2998 
3018 enum nl80211_mesh_power_mode {
3019  NL80211_MESH_POWER_UNKNOWN,
3020  NL80211_MESH_POWER_ACTIVE,
3021  NL80211_MESH_POWER_LIGHT_SLEEP,
3022  NL80211_MESH_POWER_DEEP_SLEEP,
3023 
3024  __NL80211_MESH_POWER_AFTER_LAST,
3025  NL80211_MESH_POWER_MAX = __NL80211_MESH_POWER_AFTER_LAST - 1
3026 };
3027 
3137 enum nl80211_meshconf_params {
3138  __NL80211_MESHCONF_INVALID,
3139  NL80211_MESHCONF_RETRY_TIMEOUT,
3140  NL80211_MESHCONF_CONFIRM_TIMEOUT,
3141  NL80211_MESHCONF_HOLDING_TIMEOUT,
3142  NL80211_MESHCONF_MAX_PEER_LINKS,
3143  NL80211_MESHCONF_MAX_RETRIES,
3144  NL80211_MESHCONF_TTL,
3145  NL80211_MESHCONF_AUTO_OPEN_PLINKS,
3146  NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES,
3147  NL80211_MESHCONF_PATH_REFRESH_TIME,
3148  NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT,
3149  NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT,
3150  NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL,
3151  NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME,
3152  NL80211_MESHCONF_HWMP_ROOTMODE,
3153  NL80211_MESHCONF_ELEMENT_TTL,
3154  NL80211_MESHCONF_HWMP_RANN_INTERVAL,
3155  NL80211_MESHCONF_GATE_ANNOUNCEMENTS,
3156  NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL,
3157  NL80211_MESHCONF_FORWARDING,
3158  NL80211_MESHCONF_RSSI_THRESHOLD,
3159  NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR,
3160  NL80211_MESHCONF_HT_OPMODE,
3161  NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT,
3162  NL80211_MESHCONF_HWMP_ROOT_INTERVAL,
3163  NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL,
3164  NL80211_MESHCONF_POWER_MODE,
3165  NL80211_MESHCONF_AWAKE_WINDOW,
3166  NL80211_MESHCONF_PLINK_TIMEOUT,
3167 
3168  /* keep last */
3169  __NL80211_MESHCONF_ATTR_AFTER_LAST,
3170  NL80211_MESHCONF_ATTR_MAX = __NL80211_MESHCONF_ATTR_AFTER_LAST - 1
3171 };
3172 
3223 enum nl80211_mesh_setup_params {
3224  __NL80211_MESH_SETUP_INVALID,
3225  NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL,
3226  NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC,
3227  NL80211_MESH_SETUP_IE,
3228  NL80211_MESH_SETUP_USERSPACE_AUTH,
3229  NL80211_MESH_SETUP_USERSPACE_AMPE,
3230  NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC,
3231  NL80211_MESH_SETUP_USERSPACE_MPM,
3232  NL80211_MESH_SETUP_AUTH_PROTOCOL,
3233 
3234  /* keep last */
3235  __NL80211_MESH_SETUP_ATTR_AFTER_LAST,
3236  NL80211_MESH_SETUP_ATTR_MAX = __NL80211_MESH_SETUP_ATTR_AFTER_LAST - 1
3237 };
3238 
3253 enum nl80211_txq_attr {
3254  __NL80211_TXQ_ATTR_INVALID,
3255  NL80211_TXQ_ATTR_AC,
3256  NL80211_TXQ_ATTR_TXOP,
3257  NL80211_TXQ_ATTR_CWMIN,
3258  NL80211_TXQ_ATTR_CWMAX,
3259  NL80211_TXQ_ATTR_AIFS,
3260 
3261  /* keep last */
3262  __NL80211_TXQ_ATTR_AFTER_LAST,
3263  NL80211_TXQ_ATTR_MAX = __NL80211_TXQ_ATTR_AFTER_LAST - 1
3264 };
3265 
3266 enum nl80211_ac {
3267  NL80211_AC_VO,
3268  NL80211_AC_VI,
3269  NL80211_AC_BE,
3270  NL80211_AC_BK,
3271  NL80211_NUM_ACS
3272 };
3273 
3274 /* backward compat */
3275 #define NL80211_TXQ_ATTR_QUEUE NL80211_TXQ_ATTR_AC
3276 #define NL80211_TXQ_Q_VO NL80211_AC_VO
3277 #define NL80211_TXQ_Q_VI NL80211_AC_VI
3278 #define NL80211_TXQ_Q_BE NL80211_AC_BE
3279 #define NL80211_TXQ_Q_BK NL80211_AC_BK
3280 
3290 enum nl80211_channel_type {
3291  NL80211_CHAN_NO_HT,
3292  NL80211_CHAN_HT20,
3293  NL80211_CHAN_HT40MINUS,
3294  NL80211_CHAN_HT40PLUS
3295 };
3296 
3317 enum nl80211_chan_width {
3318  NL80211_CHAN_WIDTH_20_NOHT,
3319  NL80211_CHAN_WIDTH_20,
3320  NL80211_CHAN_WIDTH_40,
3321  NL80211_CHAN_WIDTH_80,
3322  NL80211_CHAN_WIDTH_80P80,
3323  NL80211_CHAN_WIDTH_160,
3324  NL80211_CHAN_WIDTH_5,
3325  NL80211_CHAN_WIDTH_10,
3326 };
3327 
3338 enum nl80211_bss_scan_width {
3339  NL80211_BSS_CHAN_WIDTH_20,
3340  NL80211_BSS_CHAN_WIDTH_10,
3341  NL80211_BSS_CHAN_WIDTH_5,
3342 };
3343 
3384 enum nl80211_bss {
3385  __NL80211_BSS_INVALID,
3386  NL80211_BSS_BSSID,
3387  NL80211_BSS_FREQUENCY,
3388  NL80211_BSS_TSF,
3389  NL80211_BSS_BEACON_INTERVAL,
3390  NL80211_BSS_CAPABILITY,
3391  NL80211_BSS_INFORMATION_ELEMENTS,
3392  NL80211_BSS_SIGNAL_MBM,
3393  NL80211_BSS_SIGNAL_UNSPEC,
3394  NL80211_BSS_STATUS,
3395  NL80211_BSS_SEEN_MS_AGO,
3396  NL80211_BSS_BEACON_IES,
3397  NL80211_BSS_CHAN_WIDTH,
3398  NL80211_BSS_BEACON_TSF,
3399  NL80211_BSS_PRESP_DATA,
3400 
3401  /* keep last */
3402  __NL80211_BSS_AFTER_LAST,
3403  NL80211_BSS_MAX = __NL80211_BSS_AFTER_LAST - 1
3404 };
3405 
3418 enum nl80211_bss_status {
3419  NL80211_BSS_STATUS_AUTHENTICATED,
3420  NL80211_BSS_STATUS_ASSOCIATED,
3421  NL80211_BSS_STATUS_IBSS_JOINED,
3422 };
3423 
3439 enum nl80211_auth_type {
3440  NL80211_AUTHTYPE_OPEN_SYSTEM,
3441  NL80211_AUTHTYPE_SHARED_KEY,
3442  NL80211_AUTHTYPE_FT,
3443  NL80211_AUTHTYPE_NETWORK_EAP,
3444  NL80211_AUTHTYPE_SAE,
3445 
3446  /* keep last */
3447  __NL80211_AUTHTYPE_NUM,
3448  NL80211_AUTHTYPE_MAX = __NL80211_AUTHTYPE_NUM - 1,
3449  NL80211_AUTHTYPE_AUTOMATIC
3450 };
3451 
3459 enum nl80211_key_type {
3460  NL80211_KEYTYPE_GROUP,
3461  NL80211_KEYTYPE_PAIRWISE,
3462  NL80211_KEYTYPE_PEERKEY,
3463 
3464  NUM_NL80211_KEYTYPES
3465 };
3466 
3472 enum nl80211_mfp {
3473  NL80211_MFP_NO,
3474  NL80211_MFP_REQUIRED,
3475 };
3476 
3477 enum nl80211_wpa_versions {
3478  NL80211_WPA_VERSION_1 = 1 << 0,
3479  NL80211_WPA_VERSION_2 = 1 << 1,
3480 };
3481 
3491 enum nl80211_key_default_types {
3492  __NL80211_KEY_DEFAULT_TYPE_INVALID,
3493  NL80211_KEY_DEFAULT_TYPE_UNICAST,
3494  NL80211_KEY_DEFAULT_TYPE_MULTICAST,
3495 
3496  NUM_NL80211_KEY_DEFAULT_TYPES
3497 };
3498 
3521 enum nl80211_key_attributes {
3522  __NL80211_KEY_INVALID,
3523  NL80211_KEY_DATA,
3524  NL80211_KEY_IDX,
3525  NL80211_KEY_CIPHER,
3526  NL80211_KEY_SEQ,
3527  NL80211_KEY_DEFAULT,
3528  NL80211_KEY_DEFAULT_MGMT,
3529  NL80211_KEY_TYPE,
3530  NL80211_KEY_DEFAULT_TYPES,
3531 
3532  /* keep last */
3533  __NL80211_KEY_AFTER_LAST,
3534  NL80211_KEY_MAX = __NL80211_KEY_AFTER_LAST - 1
3535 };
3536 
3552 enum nl80211_tx_rate_attributes {
3553  __NL80211_TXRATE_INVALID,
3554  NL80211_TXRATE_LEGACY,
3555  NL80211_TXRATE_HT,
3556  NL80211_TXRATE_VHT,
3557  NL80211_TXRATE_GI,
3558 
3559  /* keep last */
3560  __NL80211_TXRATE_AFTER_LAST,
3561  NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1
3562 };
3563 
3564 #define NL80211_TXRATE_MCS NL80211_TXRATE_HT
3565 #define NL80211_VHT_NSS_MAX 8
3566 
3572  __u16 mcs[NL80211_VHT_NSS_MAX];
3573 };
3574 
3575 enum nl80211_txrate_gi {
3576  NL80211_TXRATE_DEFAULT_GI,
3577  NL80211_TXRATE_FORCE_SGI,
3578  NL80211_TXRATE_FORCE_LGI,
3579 };
3580 
3587 enum nl80211_band {
3588  NL80211_BAND_2GHZ,
3589  NL80211_BAND_5GHZ,
3590  NL80211_BAND_60GHZ,
3591 };
3592 
3598 enum nl80211_ps_state {
3599  NL80211_PS_DISABLED,
3600  NL80211_PS_ENABLED,
3601 };
3602 
3631 enum nl80211_attr_cqm {
3632  __NL80211_ATTR_CQM_INVALID,
3633  NL80211_ATTR_CQM_RSSI_THOLD,
3634  NL80211_ATTR_CQM_RSSI_HYST,
3635  NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT,
3636  NL80211_ATTR_CQM_PKT_LOSS_EVENT,
3637  NL80211_ATTR_CQM_TXE_RATE,
3638  NL80211_ATTR_CQM_TXE_PKTS,
3639  NL80211_ATTR_CQM_TXE_INTVL,
3640  NL80211_ATTR_CQM_BEACON_LOSS_EVENT,
3641 
3642  /* keep last */
3643  __NL80211_ATTR_CQM_AFTER_LAST,
3644  NL80211_ATTR_CQM_MAX = __NL80211_ATTR_CQM_AFTER_LAST - 1
3645 };
3646 
3655 enum nl80211_cqm_rssi_threshold_event {
3656  NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW,
3657  NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH,
3658  NL80211_CQM_RSSI_BEACON_LOSS_EVENT,
3659 };
3660 
3661 
3668 enum nl80211_tx_power_setting {
3669  NL80211_TX_POWER_AUTOMATIC,
3670  NL80211_TX_POWER_LIMITED,
3671  NL80211_TX_POWER_FIXED,
3672 };
3673 
3695 enum nl80211_packet_pattern_attr {
3696  __NL80211_PKTPAT_INVALID,
3697  NL80211_PKTPAT_MASK,
3698  NL80211_PKTPAT_PATTERN,
3699  NL80211_PKTPAT_OFFSET,
3700 
3701  NUM_NL80211_PKTPAT,
3702  MAX_NL80211_PKTPAT = NUM_NL80211_PKTPAT - 1,
3703 };
3704 
3719  __u32 max_patterns;
3720  __u32 min_pattern_len;
3721  __u32 max_pattern_len;
3722  __u32 max_pkt_offset;
3723 } __attribute__((packed));
3724 
3725 /* only for backward compatibility */
3726 #define __NL80211_WOWLAN_PKTPAT_INVALID __NL80211_PKTPAT_INVALID
3727 #define NL80211_WOWLAN_PKTPAT_MASK NL80211_PKTPAT_MASK
3728 #define NL80211_WOWLAN_PKTPAT_PATTERN NL80211_PKTPAT_PATTERN
3729 #define NL80211_WOWLAN_PKTPAT_OFFSET NL80211_PKTPAT_OFFSET
3730 #define NUM_NL80211_WOWLAN_PKTPAT NUM_NL80211_PKTPAT
3731 #define MAX_NL80211_WOWLAN_PKTPAT MAX_NL80211_PKTPAT
3732 #define nl80211_wowlan_pattern_support nl80211_pattern_support
3733 
3823 enum nl80211_wowlan_triggers {
3824  __NL80211_WOWLAN_TRIG_INVALID,
3825  NL80211_WOWLAN_TRIG_ANY,
3826  NL80211_WOWLAN_TRIG_DISCONNECT,
3827  NL80211_WOWLAN_TRIG_MAGIC_PKT,
3828  NL80211_WOWLAN_TRIG_PKT_PATTERN,
3829  NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED,
3830  NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE,
3831  NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST,
3832  NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE,
3833  NL80211_WOWLAN_TRIG_RFKILL_RELEASE,
3834  NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211,
3835  NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN,
3836  NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023,
3837  NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN,
3838  NL80211_WOWLAN_TRIG_TCP_CONNECTION,
3839  NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH,
3840  NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST,
3841  NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS,
3842  NL80211_WOWLAN_TRIG_NET_DETECT,
3843  NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS,
3844 
3845  /* keep last */
3846  NUM_NL80211_WOWLAN_TRIG,
3847  MAX_NL80211_WOWLAN_TRIG = NUM_NL80211_WOWLAN_TRIG - 1
3848 };
3849 
3884  __u32 start, offset, len;
3885 };
3886 
3895  __u32 offset, len;
3896  __u8 token_stream[];
3897 };
3898 
3906  __u32 min_len, max_len, bufsize;
3907 };
3908 
3941 enum nl80211_wowlan_tcp_attrs {
3942  __NL80211_WOWLAN_TCP_INVALID,
3943  NL80211_WOWLAN_TCP_SRC_IPV4,
3944  NL80211_WOWLAN_TCP_DST_IPV4,
3945  NL80211_WOWLAN_TCP_DST_MAC,
3946  NL80211_WOWLAN_TCP_SRC_PORT,
3947  NL80211_WOWLAN_TCP_DST_PORT,
3948  NL80211_WOWLAN_TCP_DATA_PAYLOAD,
3949  NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ,
3950  NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN,
3951  NL80211_WOWLAN_TCP_DATA_INTERVAL,
3952  NL80211_WOWLAN_TCP_WAKE_PAYLOAD,
3953  NL80211_WOWLAN_TCP_WAKE_MASK,
3954 
3955  /* keep last */
3956  NUM_NL80211_WOWLAN_TCP,
3957  MAX_NL80211_WOWLAN_TCP = NUM_NL80211_WOWLAN_TCP - 1
3958 };
3959 
3970  __u32 max_rules;
3971  struct nl80211_pattern_support pat;
3972  __u32 max_delay;
3973 } __attribute__((packed));
3974 
3986 enum nl80211_attr_coalesce_rule {
3987  __NL80211_COALESCE_RULE_INVALID,
3988  NL80211_ATTR_COALESCE_RULE_DELAY,
3989  NL80211_ATTR_COALESCE_RULE_CONDITION,
3990  NL80211_ATTR_COALESCE_RULE_PKT_PATTERN,
3991 
3992  /* keep last */
3993  NUM_NL80211_ATTR_COALESCE_RULE,
3994  NL80211_ATTR_COALESCE_RULE_MAX = NUM_NL80211_ATTR_COALESCE_RULE - 1
3995 };
3996 
4004 enum nl80211_coalesce_condition {
4005  NL80211_COALESCE_CONDITION_MATCH,
4006  NL80211_COALESCE_CONDITION_NO_MATCH
4007 };
4008 
4019 enum nl80211_iface_limit_attrs {
4020  NL80211_IFACE_LIMIT_UNSPEC,
4021  NL80211_IFACE_LIMIT_MAX,
4022  NL80211_IFACE_LIMIT_TYPES,
4023 
4024  /* keep last */
4025  NUM_NL80211_IFACE_LIMIT,
4026  MAX_NL80211_IFACE_LIMIT = NUM_NL80211_IFACE_LIMIT - 1
4027 };
4028 
4075 enum nl80211_if_combination_attrs {
4076  NL80211_IFACE_COMB_UNSPEC,
4077  NL80211_IFACE_COMB_LIMITS,
4078  NL80211_IFACE_COMB_MAXNUM,
4079  NL80211_IFACE_COMB_STA_AP_BI_MATCH,
4080  NL80211_IFACE_COMB_NUM_CHANNELS,
4081  NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS,
4082  NL80211_IFACE_COMB_RADAR_DETECT_REGIONS,
4083 
4084  /* keep last */
4085  NUM_NL80211_IFACE_COMB,
4086  MAX_NL80211_IFACE_COMB = NUM_NL80211_IFACE_COMB - 1
4087 };
4088 
4089 
4109 enum nl80211_plink_state {
4110  NL80211_PLINK_LISTEN,
4111  NL80211_PLINK_OPN_SNT,
4112  NL80211_PLINK_OPN_RCVD,
4113  NL80211_PLINK_CNF_RCVD,
4114  NL80211_PLINK_ESTAB,
4115  NL80211_PLINK_HOLDING,
4116  NL80211_PLINK_BLOCKED,
4117 
4118  /* keep last */
4119  NUM_NL80211_PLINK_STATES,
4120  MAX_NL80211_PLINK_STATES = NUM_NL80211_PLINK_STATES - 1
4121 };
4122 
4132 enum plink_actions {
4133  NL80211_PLINK_ACTION_NO_ACTION,
4134  NL80211_PLINK_ACTION_OPEN,
4135  NL80211_PLINK_ACTION_BLOCK,
4136 
4137  NUM_NL80211_PLINK_ACTIONS,
4138 };
4139 
4140 
4141 #define NL80211_KCK_LEN 16
4142 #define NL80211_KEK_LEN 16
4143 #define NL80211_REPLAY_CTR_LEN 8
4144 
4154 enum nl80211_rekey_data {
4155  __NL80211_REKEY_DATA_INVALID,
4156  NL80211_REKEY_DATA_KEK,
4157  NL80211_REKEY_DATA_KCK,
4158  NL80211_REKEY_DATA_REPLAY_CTR,
4159 
4160  /* keep last */
4161  NUM_NL80211_REKEY_DATA,
4162  MAX_NL80211_REKEY_DATA = NUM_NL80211_REKEY_DATA - 1
4163 };
4164 
4174 enum nl80211_hidden_ssid {
4175  NL80211_HIDDEN_SSID_NOT_IN_USE,
4176  NL80211_HIDDEN_SSID_ZERO_LEN,
4177  NL80211_HIDDEN_SSID_ZERO_CONTENTS
4178 };
4179 
4190 enum nl80211_sta_wme_attr {
4191  __NL80211_STA_WME_INVALID,
4192  NL80211_STA_WME_UAPSD_QUEUES,
4193  NL80211_STA_WME_MAX_SP,
4194 
4195  /* keep last */
4196  __NL80211_STA_WME_AFTER_LAST,
4197  NL80211_STA_WME_MAX = __NL80211_STA_WME_AFTER_LAST - 1
4198 };
4199 
4212 enum nl80211_pmksa_candidate_attr {
4213  __NL80211_PMKSA_CANDIDATE_INVALID,
4214  NL80211_PMKSA_CANDIDATE_INDEX,
4215  NL80211_PMKSA_CANDIDATE_BSSID,
4216  NL80211_PMKSA_CANDIDATE_PREAUTH,
4217 
4218  /* keep last */
4219  NUM_NL80211_PMKSA_CANDIDATE,
4220  MAX_NL80211_PMKSA_CANDIDATE = NUM_NL80211_PMKSA_CANDIDATE - 1
4221 };
4222 
4231 enum nl80211_tdls_operation {
4232  NL80211_TDLS_DISCOVERY_REQ,
4233  NL80211_TDLS_SETUP,
4234  NL80211_TDLS_TEARDOWN,
4235  NL80211_TDLS_ENABLE_LINK,
4236  NL80211_TDLS_DISABLE_LINK,
4237 };
4238 
4239 /*
4240  * enum nl80211_ap_sme_features - device-integrated AP features
4241  * Reserved for future use, no bits are defined in
4242  * NL80211_ATTR_DEVICE_AP_SME yet.
4243 enum nl80211_ap_sme_features {
4244 };
4245  */
4246 
4340 enum nl80211_feature_flags {
4341  NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
4342  NL80211_FEATURE_HT_IBSS = 1 << 1,
4343  NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2,
4344  NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3,
4345  NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 1 << 4,
4346  NL80211_FEATURE_SAE = 1 << 5,
4347  NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6,
4348  NL80211_FEATURE_SCAN_FLUSH = 1 << 7,
4349  NL80211_FEATURE_AP_SCAN = 1 << 8,
4350  NL80211_FEATURE_VIF_TXPOWER = 1 << 9,
4351  NL80211_FEATURE_NEED_OBSS_SCAN = 1 << 10,
4352  NL80211_FEATURE_P2P_GO_CTWIN = 1 << 11,
4353  NL80211_FEATURE_P2P_GO_OPPPS = 1 << 12,
4354  /* bit 13 is reserved */
4355  NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 1 << 14,
4356  NL80211_FEATURE_FULL_AP_CLIENT_STATE = 1 << 15,
4357  NL80211_FEATURE_USERSPACE_MPM = 1 << 16,
4358  NL80211_FEATURE_ACTIVE_MONITOR = 1 << 17,
4359  NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 1 << 18,
4360  NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES = 1 << 19,
4361  NL80211_FEATURE_WFA_TPC_IE_IN_PROBES = 1 << 20,
4362  NL80211_FEATURE_QUIET = 1 << 21,
4363  NL80211_FEATURE_TX_POWER_INSERTION = 1 << 22,
4364  NL80211_FEATURE_ACKTO_ESTIMATION = 1 << 23,
4365  NL80211_FEATURE_STATIC_SMPS = 1 << 24,
4366  NL80211_FEATURE_DYNAMIC_SMPS = 1 << 25,
4367  NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 1 << 26,
4368  NL80211_FEATURE_MAC_ON_CREATE = 1 << 27,
4369  NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 1 << 28,
4370  NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 1 << 29,
4371  NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 1 << 30,
4372  NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1 << 31,
4373 };
4374 
4382 enum nl80211_ext_feature_index {
4383  NL80211_EXT_FEATURE_VHT_IBSS,
4384 
4385  /* add new features before the definition below */
4386  NUM_NL80211_EXT_FEATURES,
4387  MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
4388 };
4389 
4405 enum nl80211_probe_resp_offload_support_attr {
4406  NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS = 1<<0,
4407  NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 = 1<<1,
4408  NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P = 1<<2,
4409  NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U = 1<<3,
4410 };
4411 
4418 enum nl80211_connect_failed_reason {
4419  NL80211_CONN_FAIL_MAX_CLIENTS,
4420  NL80211_CONN_FAIL_BLOCKED_CLIENT,
4421 };
4422 
4448 enum nl80211_scan_flags {
4449  NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0,
4450  NL80211_SCAN_FLAG_FLUSH = 1<<1,
4451  NL80211_SCAN_FLAG_AP = 1<<2,
4452  NL80211_SCAN_FLAG_RANDOM_ADDR = 1<<3,
4453 };
4454 
4469 enum nl80211_acl_policy {
4470  NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED,
4471  NL80211_ACL_POLICY_DENY_UNLESS_LISTED,
4472 };
4473 
4485 enum nl80211_smps_mode {
4486  NL80211_SMPS_OFF,
4487  NL80211_SMPS_STATIC,
4488  NL80211_SMPS_DYNAMIC,
4489 
4490  __NL80211_SMPS_AFTER_LAST,
4491  NL80211_SMPS_MAX = __NL80211_SMPS_AFTER_LAST - 1
4492 };
4493 
4510 enum nl80211_radar_event {
4511  NL80211_RADAR_DETECTED,
4512  NL80211_RADAR_CAC_FINISHED,
4513  NL80211_RADAR_CAC_ABORTED,
4514  NL80211_RADAR_NOP_FINISHED,
4515 };
4516 
4529 enum nl80211_dfs_state {
4530  NL80211_DFS_USABLE,
4531  NL80211_DFS_UNAVAILABLE,
4532  NL80211_DFS_AVAILABLE,
4533 };
4534 
4543 enum nl80211_protocol_features {
4544  NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 1 << 0,
4545 };
4546 
4557 enum nl80211_crit_proto_id {
4558  NL80211_CRIT_PROTO_UNSPEC,
4559  NL80211_CRIT_PROTO_DHCP,
4560  NL80211_CRIT_PROTO_EAPOL,
4561  NL80211_CRIT_PROTO_APIPA,
4562  /* add other protocols before this one */
4563  NUM_NL80211_CRIT_PROTO
4564 };
4565 
4566 /* maximum duration for critical protocol measures */
4567 #define NL80211_CRIT_PROTO_MAX_DURATION 5000 /* msec */
4568 
4577 enum nl80211_rxmgmt_flags {
4578  NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0,
4579 };
4580 
4581 /*
4582  * If this flag is unset, the lower 24 bits are an OUI, if set
4583  * a Linux nl80211 vendor ID is used (no such IDs are allocated
4584  * yet, so that's not valid so far)
4585  */
4586 #define NL80211_VENDOR_ID_IS_LINUX 0x80000000
4587 
4597  __u32 vendor_id;
4598  __u32 subcmd;
4599 };
4600 
4612 enum nl80211_tdls_peer_capability {
4613  NL80211_TDLS_PEER_HT = 1<<0,
4614  NL80211_TDLS_PEER_VHT = 1<<1,
4615  NL80211_TDLS_PEER_WMM = 1<<2,
4616 };
4617 
4618 #endif /* __LINUX_NL80211_H */
coalesce rule support information
Definition: nl80211_copy.h:3969
DOC: TCP connection wakeup.
Definition: nl80211_copy.h:3883
data token features
Definition: nl80211_copy.h:3905
station flags mask/set
Definition: nl80211_copy.h:2287
vendor command data
Definition: nl80211_copy.h:4596
VHT MCS/NSS txrate bitmap.
Definition: nl80211_copy.h:3571
WoWLAN TCP data token config.
Definition: nl80211_copy.h:3894
packet pattern support information
Definition: nl80211_copy.h:3718