Add names for assigned QCA nl80211 vendor subcmds
[mech_eap.git] / src / common / qca-vendor.h
1 /*
2  * Qualcomm Atheros OUI and vendor specific assignments
3  * Copyright (c) 2014, Qualcomm Atheros, Inc.
4  *
5  * This software may be distributed under the terms of the BSD license.
6  * See README for more details.
7  */
8
9 #ifndef QCA_VENDOR_H
10 #define QCA_VENDOR_H
11
12 /*
13  * This file is a registry of identifier assignments from the Qualcomm Atheros
14  * OUI 00:13:74 for purposes other than MAC address assignment. New identifiers
15  * can be assigned through normal review process for changes to the upstream
16  * hostap.git repository.
17  */
18
19 #define OUI_QCA 0x001374
20
21 /**
22  * enum qca_radiotap_vendor_ids - QCA radiotap vendor namespace IDs
23  */
24 enum qca_radiotap_vendor_ids {
25         QCA_RADIOTAP_VID_WLANTEST = 0,
26 };
27
28 /**
29  * enum qca_nl80211_vendor_subcmds - QCA nl80211 vendor command identifiers
30  *
31  * @QCA_NL80211_VENDOR_SUBCMD_UNSPEC: Reserved value 0
32  *
33  * @QCA_NL80211_VENDOR_SUBCMD_TEST: Test command/event
34  *
35  * @QCA_NL80211_VENDOR_SUBCMD_ROAMING: Set roaming policy for drivers that use
36  *      internal BSS-selection. This command uses
37  *      @QCA_WLAN_VENDOR_ATTR_ROAMING_POLICY to specify the new roaming policy
38  *      for the current connection (i.e., changes policy set by the nl80211
39  *      Connect command). @QCA_WLAN_VENDOR_ATTR_MAC_ADDR may optionally be
40  *      included to indicate which BSS to use in case roaming is disabled.
41  *
42  * @QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY: Recommendation of frequency
43  *      ranges to avoid to reduce issues due to interference or internal
44  *      co-existence information in the driver. The event data structure is
45  *      defined in struct qca_avoid_freq_list.
46  *
47  * @QCA_NL80211_VENDOR_SUBCMD_DFS_CAPABILITY: Command to check driver support
48  *      for DFS offloading.
49  *
50  * @QCA_NL80211_VENDOR_SUBCMD_NAN: NAN command/event which is used to pass
51  *      NAN Request/Response and NAN Indication messages. These messages are
52  *      interpreted between the framework and the firmware component.
53  *
54  * @QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_SET_KEY: Set key operation that can be
55  *      used to configure PMK to the driver even when not connected. This can
56  *      be used to request offloading of key management operations.
57  * @QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH: An extended version of
58  *      NL80211_CMD_ROAM event with optional attributes including information
59  *      from offloaded key management operation. Uses
60  *      enum qca_wlan_vendor_attr_roam_auth attributes.
61  */
62 enum qca_nl80211_vendor_subcmds {
63         QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
64         QCA_NL80211_VENDOR_SUBCMD_TEST = 1,
65         /* subcmds 2..8 not yet allocated */
66         QCA_NL80211_VENDOR_SUBCMD_ROAMING = 9,
67         QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY = 10,
68         QCA_NL80211_VENDOR_SUBCMD_DFS_CAPABILITY =  11,
69         QCA_NL80211_VENDOR_SUBCMD_NAN =  12,
70         QCA_NL80211_VENDOR_SUBMCD_STATS_EXT = 13,
71         QCA_NL80211_VENDOR_SUBCMD_LL_STATS_SET = 14,
72         QCA_NL80211_VENDOR_SUBCMD_LL_STATS_GET = 15,
73         QCA_NL80211_VENDOR_SUBCMD_LL_STATS_CLR = 16,
74         QCA_NL80211_VENDOR_SUBCMD_LL_STATS_RADIO_RESULTS = 17,
75         QCA_NL80211_VENDOR_SUBCMD_LL_STATS_IFACE_RESULTS = 18,
76         QCA_NL80211_VENDOR_SUBCMD_LL_STATS_PEERS_RESULTS = 19,
77         QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_START = 20,
78         QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_STOP = 21,
79         QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_GET_VALID_CHANNELS = 22,
80         QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_GET_CAPABILITIES = 23,
81         QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_GET_CACHED_RESULTS = 24,
82         QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SCAN_RESULTS_AVAILABLE = 25,
83         QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_FULL_SCAN_RESULT = 26,
84         QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SCAN_EVENT = 27,
85         QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_AP_FOUND = 28,
86         QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SET_BSSID_HOTLIST = 29,
87         QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_RESET_BSSID_HOTLIST = 30,
88         QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SIGNIFICANT_CHANGE = 31,
89         QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SET_SIGNIFICANT_CHANGE = 32,
90         QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_RESET_SIGNIFICANT_CHANGE = 33,
91         QCA_NL80211_VENDOR_SUBCMD_TDLS_ENABLE = 34,
92         QCA_NL80211_VENDOR_SUBCMD_TDLS_DISABLE = 35,
93         QCA_NL80211_VENDOR_SUBCMD_TDLS_GET_STATUS = 36,
94         QCA_NL80211_VENDOR_SUBCMD_TDLS_STATE = 37,
95         QCA_NL80211_VENDOR_SUBCMD_GET_SUPPORTED_FEATURES = 38,
96         QCA_NL80211_VENDOR_SUBCMD_SCANNING_MAC_OUI = 39,
97         QCA_NL80211_VENDOR_SUBCMD_NO_DFS_FLAG = 40,
98         /* 41 - reserved for QCA */
99         QCA_NL80211_VENDOR_SUBCMD_GET_CONCURRENCY_MATRIX = 42,
100         /* 43..49 - reserved for QCA */
101         QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_SET_KEY = 50,
102         QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH = 51,
103         QCA_NL80211_VENDOR_SUBCMD_APFIND = 52,
104         /* 53 - reserved for QCA */
105 };
106
107
108 enum qca_wlan_vendor_attr {
109         QCA_WLAN_VENDOR_ATTR_INVALID = 0,
110         /* used by QCA_NL80211_VENDOR_SUBCMD_DFS_CAPABILITY */
111         QCA_WLAN_VENDOR_ATTR_DFS     = 1,
112         /* used by QCA_NL80211_VENDOR_SUBCMD_NAN */
113         QCA_WLAN_VENDOR_ATTR_NAN     = 2,
114         /* used by QCA_NL80211_VENDOR_SUBCMD_STATS_EXT */
115         QCA_WLAN_VENDOR_ATTR_STATS_EXT     = 3,
116         /* used by QCA_NL80211_VENDOR_SUBCMD_STATS_EXT */
117         QCA_WLAN_VENDOR_ATTR_IFINDEX     = 4,
118         /* used by QCA_NL80211_VENDOR_SUBCMD_ROAMING, u32 with values defined
119          * by enum qca_roaming_policy. */
120         QCA_WLAN_VENDOR_ATTR_ROAMING_POLICY = 5,
121         QCA_WLAN_VENDOR_ATTR_MAC_ADDR = 6,
122         /* keep last */
123         QCA_WLAN_VENDOR_ATTR_AFTER_LAST,
124         QCA_WLAN_VENDOR_ATTR_MAX        = QCA_WLAN_VENDOR_ATTR_AFTER_LAST - 1,
125 };
126
127
128 enum qca_roaming_policy {
129         QCA_ROAMING_NOT_ALLOWED,
130         QCA_ROAMING_ALLOWED_WITHIN_ESS,
131 };
132
133 enum qca_wlan_vendor_attr_roam_auth {
134         QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_INVALID = 0,
135         QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_BSSID,
136         QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_REQ_IE,
137         QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_RESP_IE,
138         QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_AUTHORIZED,
139         QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_KEY_REPLAY_CTR,
140         QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_PTK_KCK,
141         QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_PTK_KEK,
142         /* keep last */
143         QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_AFTER_LAST,
144         QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_MAX =
145         QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_AFTER_LAST - 1
146 };
147
148 #endif /* QCA_VENDOR_H */