• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2024 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.net.wifi;
18 
19 import android.annotation.FlaggedApi;
20 import android.annotation.SystemApi;
21 
22 import com.android.wifi.flags.Flags;
23 
24 /**
25  * Defines integer constants for Soft AP deauthentication reason codes.
26  *
27  * <p>These reason codes provide information about why a client was disconnected from a Soft AP.
28  * Refer to Section 9.4.1.7 and Table 9-45 of the IEEE 802.11-2016 standard for more information.
29  * @hide
30  */
31 @SystemApi
32 @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
33 public final class DeauthenticationReasonCode {
34     /** Disconnected for an unknown reason. */
35     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
36     public static final int REASON_UNKNOWN = 0;
37 
38     /** Disconnected for an unspecified reason. */
39     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
40     public static final int REASON_UNSPECIFIED = 1;
41 
42     /** Disconnected because the previous authentication is no longer valid. */
43     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
44     public static final int REASON_PREV_AUTH_NOT_VALID = 2;
45 
46     /** Disconnected because the client is being de-authenticated. */
47     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
48     public static final int REASON_DEAUTH_LEAVING = 3;
49 
50     /** Disconnected due to inactivity. */
51     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
52     public static final int REASON_DISASSOC_DUE_TO_INACTIVITY = 4;
53 
54     /** Disconnected because the AP is unable to handle all currently associated stations. */
55     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
56     public static final int REASON_DISASSOC_AP_BUSY = 5;
57 
58     /** Disconnected because of a Class 2 frame received from a non-authenticated station. */
59     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
60     public static final int REASON_CLASS2_FRAME_FROM_NONAUTH_STA = 6;
61 
62     /** Disconnected because of a Class 3 frame received from a non-associated station. */
63     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
64     public static final int REASON_CLASS3_FRAME_FROM_NONASSOC_STA = 7;
65 
66     /** Disconnected because the STA has left the network. */
67     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
68     public static final int REASON_DISASSOC_STA_HAS_LEFT = 8;
69 
70     /** Disconnected because the STA requested association without authentication. */
71     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
72     public static final int REASON_STA_REQ_ASSOC_WITHOUT_AUTH = 9;
73 
74     /** Disconnected because the power capability element is not valid. */
75     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
76     public static final int REASON_PWR_CAPABILITY_NOT_VALID = 10;
77 
78     /** Disconnected because the supported channel element is not valid. */
79     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
80     public static final int REASON_SUPPORTED_CHANNEL_NOT_VALID = 11;
81 
82     /** Disconnected due to a BSS transition disassociation. */
83     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
84     public static final int REASON_BSS_TRANSITION_DISASSOC = 12;
85 
86     /** Disconnected because of an invalid information element. */
87     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
88     public static final int REASON_INVALID_IE = 13;
89 
90     /** Disconnected because of a message integrity code failure. */
91     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
92     public static final int REASON_MICHAEL_MIC_FAILURE = 14;
93 
94     /** Disconnected due to a four-way handshake timeout. */
95     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
96     public static final int REASON_FOURWAY_HANDSHAKE_TIMEOUT = 15;
97 
98     /** Disconnected due to a group key handshake timeout. */
99     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
100     public static final int REASON_GROUP_KEY_UPDATE_TIMEOUT = 16;
101 
102     /** Disconnected because an information element in the 4-way handshake differs. */
103     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
104     public static final int REASON_IE_IN_4WAY_DIFFERS = 17;
105 
106     /** Disconnected because the group cipher is not valid. */
107     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
108     public static final int REASON_GROUP_CIPHER_NOT_VALID = 18;
109 
110     /** Disconnected because the pairwise cipher is not valid. */
111     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
112     public static final int REASON_PAIRWISE_CIPHER_NOT_VALID = 19;
113 
114     /** Disconnected because the authentication and key management protocol is not valid. */
115     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
116     public static final int REASON_AKMP_NOT_VALID = 20;
117 
118     /** Disconnected because the robust security network IE version is not supported. */
119     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
120     public static final int REASON_UNSUPPORTED_RSN_IE_VERSION = 21;
121 
122     /** Disconnected because the robust security network IE capabilities are invalid. */
123     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
124     public static final int REASON_INVALID_RSN_IE_CAPAB = 22;
125 
126     /** Disconnected because the IEEE 802.1X authentication failed. */
127     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
128     public static final int REASON_IEEE_802_1X_AUTH_FAILED = 23;
129 
130     /** Disconnected because the cipher suite was rejected. */
131     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
132     public static final int REASON_CIPHER_SUITE_REJECTED = 24;
133 
134     /** Disconnected because the Tunneled Direct Link Setup teardown is unreachable. */
135     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
136     public static final int REASON_TDLS_TEARDOWN_UNREACHABLE = 25;
137 
138     /** Disconnected because of a Tunneled Direct Link Setup teardown for an unspecified reason. */
139     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
140     public static final int REASON_TDLS_TEARDOWN_UNSPECIFIED = 26;
141 
142     /** Disconnected because an session security protocol requested disassociation. */
143     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
144     public static final int REASON_SSP_REQUESTED_DISASSOC = 27;
145 
146     /** Disconnected because there is no session security protocol roaming agreement. */
147     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
148     public static final int REASON_NO_SSP_ROAMING_AGREEMENT = 28;
149 
150     /** Disconnected because of an unsupported cipher or authentication key management method. */
151     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
152     public static final int REASON_BAD_CIPHER_OR_AKM = 29;
153 
154     /** Disconnected because the client is not authorized at this location. */
155     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
156     public static final int REASON_NOT_AUTHORIZED_THIS_LOCATION = 30;
157 
158     /** Disconnected because a service change precludes traffic specification. */
159     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
160     public static final int REASON_SERVICE_CHANGE_PRECLUDES_TS = 31;
161 
162     /** Disconnected for an unspecified quality of service related reason. */
163     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
164     public static final int REASON_UNSPECIFIED_QOS_REASON = 32;
165 
166     /** Disconnected because there is not enough bandwidth. */
167     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
168     public static final int REASON_NOT_ENOUGH_BANDWIDTH = 33;
169 
170     /** Disconnected due to low acknowledgment rate. */
171     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
172     public static final int REASON_DISASSOC_LOW_ACK = 34;
173 
174     /** Disconnected for exceeding the transmission opportunity. */
175     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
176     public static final int REASON_EXCEEDED_TXOP = 35;
177 
178     /** Disconnected because the station is leaving the network. */
179     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
180     public static final int REASON_STA_LEAVING = 36;
181 
182     /** Disconnected because of the end of a traffic specification, block ack, or DLS session. */
183     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
184     public static final int REASON_END_TS_BA_DLS = 37;
185 
186     /** Disconnected because of an unknown traffic specification or block ack. */
187     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
188     public static final int REASON_UNKNOWN_TS_BA = 38;
189 
190     /** Disconnected due to a timeout. */
191     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
192     public static final int REASON_TIMEOUT = 39;
193 
194     /** Disconnected because of a peerkey mismatch. */
195     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
196     public static final int REASON_PEERKEY_MISMATCH = 45;
197 
198     /** Disconnected because the authorized access limit has been reached. */
199     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
200     public static final int REASON_AUTHORIZED_ACCESS_LIMIT_REACHED = 46;
201 
202     /** Disconnected due to external service requirements. */
203     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
204     public static final int REASON_EXTERNAL_SERVICE_REQUIREMENTS = 47;
205 
206     /** Disconnected because of an invalid fast transition action frame count. */
207     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
208     public static final int REASON_INVALID_FT_ACTION_FRAME_COUNT = 48;
209 
210     /** Disconnected because of an invalid pairwise master key identifier. */
211     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
212     public static final int REASON_INVALID_PMKID = 49;
213 
214     /** Disconnected because of an invalid management downlink endpoint. */
215     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
216     public static final int REASON_INVALID_MDE = 50;
217 
218     /** Disconnected because of an invalid fast transition endpoint. */
219     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
220     public static final int REASON_INVALID_FTE = 51;
221 
222     /** Disconnected because mesh peering was cancelled. */
223     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
224     public static final int REASON_MESH_PEERING_CANCELLED = 52;
225 
226     /** Disconnected because the maximum number of mesh peers has been reached. */
227     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
228     public static final int REASON_MESH_MAX_PEERS = 53;
229 
230     /** Disconnected because of a mesh configuration policy violation. */
231     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
232     public static final int REASON_MESH_CONFIG_POLICY_VIOLATION = 54;
233 
234     /** Disconnected because a mesh close message was received. */
235     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
236     public static final int REASON_MESH_CLOSE_RCVD = 55;
237 
238     /** Disconnected because the maximum number of mesh retries has been reached. */
239     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
240     public static final int REASON_MESH_MAX_RETRIES = 56;
241 
242     /** Disconnected due to a mesh confirmation timeout. */
243     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
244     public static final int REASON_MESH_CONFIRM_TIMEOUT = 57;
245 
246     /** Disconnected because of an invalid mesh group temporal key. */
247     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
248     public static final int REASON_MESH_INVALID_GTK = 58;
249 
250     /** Disconnected because of inconsistent mesh parameters. */
251     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
252     public static final int REASON_MESH_INCONSISTENT_PARAMS = 59;
253 
254     /** Disconnected because of an invalid mesh security capability. */
255     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
256     public static final int REASON_MESH_INVALID_SECURITY_CAP = 60;
257 
258     /** Disconnected because of a mesh path error: no proxy information. */
259     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
260     public static final int REASON_MESH_PATH_ERROR_NO_PROXY_INFO = 61;
261 
262     /** Disconnected because of a mesh path error: no forwarding information. */
263     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
264     public static final int REASON_MESH_PATH_ERROR_NO_FORWARDING_INFO = 62;
265 
266     /** Disconnected because of a mesh path error: destination unreachable. */
267     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
268     public static final int REASON_MESH_PATH_ERROR_DEST_UNREACHABLE = 63;
269 
270     /** Disconnected because the MAC address already exists in the mesh basic service set. */
271     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
272     public static final int REASON_MAC_ADDRESS_ALREADY_EXISTS_IN_MBSS = 64;
273 
274     /** Disconnected due to a mesh channel switch due to regulatory requirements. */
275     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
276     public static final int REASON_MESH_CHANNEL_SWITCH_REGULATORY_REQ = 65;
277 
278     /** Disconnected due to a mesh channel switch for an unspecified reason. */
279     @FlaggedApi(Flags.FLAG_SOFTAP_DISCONNECT_REASON)
280     public static final int REASON_MESH_CHANNEL_SWITCH_UNSPECIFIED = 66;
281 
DeauthenticationReasonCode()282     private DeauthenticationReasonCode() {} // Private constructor to prevent instantiation
283 }
284