1 /*
2  * Copyright (C) 2021-2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef OHOS_STA_DEFINE_H
17 #define OHOS_STA_DEFINE_H
18 
19 #include <functional>
20 #include <string>
21 
22 namespace OHOS {
23 namespace Wifi {
24 #define FRIEND_GTEST(test_typename) friend class test_typename##Test
25 
26 #define WIFI_SVR_CMD_STA_ENABLE_STA 0x2001
27 #define WIFI_SVR_CMD_STA_DISABLE_STA 0x2002
28 #define WIFI_SVR_CMD_STA_OPERATIONAL_MODE 0x2003
29 #define WIFI_SVR_CMD_STA_CONNECT_NETWORK 0x2004
30 #define WIFI_SVR_CMD_STA_CONNECT_SAVED_NETWORK 0x2005
31 #define WIFI_SVR_CMD_STA_RECONNECT_NETWORK 0x2006
32 #define WIFI_SVR_CMD_STA_REASSOCIATE_NETWORK 0x2007
33 #define WIFI_SVR_CMD_STA_DISCONNECT 0x2008
34 #define WIFI_SVR_CMD_STA_STARTWPS 0x2009
35 #define WIFI_SVR_CMD_STA_CANCELWPS 0x200A
36 #define WIFI_SVR_COM_STA_START_ROAM 0x200B
37 #define WIFI_SVR_COM_STA_ENABLE_HILINK 0x200C
38 #define WIFI_SVR_COM_STA_HILINK_DELIVER_MAC 0x200D
39 #define WIFI_SVR_COM_STA_HILINK_TRIGGER_WPS 0x200E
40 #define WIFI_SVR_COM_STA_NETWORK_REMOVED 0x200F
41 
42 #define WIFI_SVR_CMD_STA_ERROR 0x3001
43 #define WIFI_SVR_CMD_STA_SUP_CONNECTION_EVENT 0x3002
44 #define WIFI_SVR_CMD_STA_SUP_DISCONNECTION_EVENT 0x3003
45 #define WIFI_SVR_CMD_STA_NETWORK_CONNECTION_EVENT 0x3004
46 #define WIFI_SVR_CMD_STA_NETWORK_DISCONNECTION_EVENT 0x3005
47 #define WIFI_SVR_CMD_STA_WPS_START_EVENT 0x3006
48 #define WIFI_SVR_CMD_STA_WPS_CANCEL_EVENT 0x3007
49 #define WIFI_SVR_CMD_STA_WPS_FAILED_EVENT 0x3008
50 #define WIFI_SVR_CMD_STA_WPS_OVERLAP_EVENT 0x3009
51 #define WIFI_SVR_CMD_STA_WPS_TIMEOUT_EVNET 0x300A
52 #define WIFI_SVR_CMD_STA_WPS_WEP_PROHIBITED 0x300B
53 #define WIFI_SVR_CMD_STA_WPS_TKIP_ONLY_PROHIBITED 0x300C
54 #define WIFI_SVR_CMD_STA_WPS_AUTH_FAILURE 0x300D
55 #define WIFI_SVR_CMD_STA_WPS_OVERLAP_ERROR 0x300E
56 #define WIFI_SVR_CMD_STA_SUP_REQUEST_IDENTITY 0x300F
57 #define WIFI_SVR_CMD_STA_SUP_REQUEST_SIM_AUTH 0x3010
58 #define WIFI_SVR_CMD_STA_AUTHENTICATION_FAILURE_EVENT 0x3011
59 #define WIFI_SVR_CMD_STA_REASON_TKIP_ONLY_PROHIBITED 0x3012
60 #define WIFI_SVR_CMD_STA_REASON_WEP_PROHIBITED 0x3013
61 #define WIFI_SVR_CMD_STA_CONFIG_AUTH_FAILURE 0x3014
62 #define WIFI_SVR_CMD_STA_CONFIG_MULTIPLE_PBC_DETECTED 0x3015
63 #define WIFI_SVR_CMD_STA_WPA_STATE_CHANGE_EVENT 0x3016
64 #define WIFI_SVR_CMD_STA_WPA_PASSWD_WRONG_EVENT 0x3017
65 #define WIFI_SVR_CMD_STA_WPA_FULL_CONNECT_EVENT 0x3018
66 #define WIFI_SVR_CMD_STA_WPA_ASSOC_REJECT_EVENT 0x3019
67 #define WIFI_SVR_CMD_STA_BSSID_CHANGED_EVENT 0x301A
68 #define WIFI_SVR_CMD_STA_DHCP_RESULT_NOTIFY_EVENT 0x301B
69 #define WIFI_SVR_CMD_STA_NET_DETECTION_NOTIFY_EVENT 0x301C
70 #define WIFI_SVR_CMD_STA_WPA_EAP_SIM_AUTH_EVENT 0x301D
71 #define WIFI_SVR_CMD_STA_WPA_EAP_UMTS_AUTH_EVENT 0x301E
72 #define WIFI_SVR_CMD_STA_REPORT_DISCONNECT_REASON_EVENT 0x301F
73 #define WIFI_SVR_CMD_STA_PORTAL_BROWSE_NOTIFY_EVENT 0x3020
74 #define WIFI_SVR_CMD_STA_LINK_SWITCH_EVENT 0x3021
75 
76 #define WPA_BLOCK_LIST_CLEAR_EVENT 0x4001
77 #define WIFI_SVR_CMD_UPDATE_COUNTRY_CODE 0x4002
78 #define WIFI_SCREEN_STATE_CHANGED_NOTIFY_EVENT 0x4003
79 
80 #define BSSID_LEN 17
81 #define KEY_LEN 128
82 #define SSID_LEN 30
83 #define VALUE_LIMIT_MIN_RSSI (-100)
84 #define VALUE_LIMIT_MAX_RSSI (-55)
85 
86 enum SelectedType {
87     NETWORK_SELECTED_BY_UNKNOWN = -1,
88     NETWORK_SELECTED_BY_AUTO = 0,
89     NETWORK_SELECTED_BY_USER = 1,
90     NETWORK_SELECTED_BY_RETRY = 2
91 };
92 
93 #define WIFI_SIM_GSM_AUTH_MIN_PARAM_COUNT 3
94 #define WIFI_SIM_GSM_AUTH_MAX_PARAM_COUNT 4
95 #define WIFI_SIM_UMTS_AUTH_PARAM_COUNT 3
96 
97 const int NETWORK_24G_BAND = 1;
98 const int NETWORK_5G_BAND = 2;
99 const int MAX_RETRY_COUNT = 3;
100 #define BAND_2_G 1
101 #define BAND_5_G 2
102 
103 typedef enum EnumStaArpState {
104     ARP_STATE_WORKING,
105     ARP_STATE_UNREACHABLE,
106 } StaArpState;
107 
108 typedef enum EnumStaDnsState {
109     DNS_STATE_WORKING,
110     DNS_STATE_UNREACHABLE,
111 } StaDnsState;
112 
113 typedef enum EnumNetWorkState {
114     NETWORK_NOTWORKING,
115     NETWORK_IS_WORKING,
116     NETWORK_IS_PORTAL,
117 }SystemNetWorkState;
118 
119 typedef enum EnumStaNetState {
120     NETWORK_STATE_UNKNOWN,
121     NETWORK_STATE_WORKING,
122     NETWORK_CHECK_PORTAL,
123     NETWORK_STATE_NOINTERNET,
124     NETWORK_STATE_BUTT,
125 } StaNetState;
126 
127 using ArpStateHandler = std::function<void(StaArpState arpState)>;
128 using DnsStateHandler = std::function<void(StaDnsState dnsState)>;
129 }  // namespace Wifi
130 }  // namespace OHOS
131 #endif /* OHOS_STA_DEFINE_H */
132