1 /*
2  * Copyright (c) 2024 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_WIFI_NATIVE_DEFINE_H
17 #define OHOS_WIFI_NATIVE_DEFINE_H
18 
19 #define HAL_MAX_WEPKEYS_SIZE 4
20 #define HAL_AUTH_ALGORITHM_MAX 8
21 #define HAL_PASSWORD_LEN 128
22 #define HAL_COUNTRY_CODE_LENGTH 2
23 #define HAL_GET_MAX_SCAN_INFO 256               /* Maximum number of scan infos obtained at a time */
24 #define HAL_GET_MAX_NETWORK_LIST 128
25 #define HAL_GET_MAX_BANDS 32                    /* Obtains the number of bands. */
26 #define HAL_INTERFACE_SUPPORT_COMBINATIONS 32   /* chip support valid interface combinations */
27 #define HAL_PSK_MIN_LENGTH 8
28 #define HAL_PSK_MAX_LENGTH 64
29 #define HAL_BSSID_LENGTH 17                     /* bssid - mac address length */
30 #define HAL_PIN_CODE_LENGTH 8
31 #define HAL_P2P_DEV_ADDRESS_LEN 32
32 #define HAL_P2P_LISTEN_MIN_TIME 1
33 #define HAL_P2P_LISTEN_MAX_TIME 65535
34 #define HAL_P2P_GO_INTENT_MIN_LENGTH 0
35 #define HAL_P2P_GO_INTENT_MAX_LENGTH 15
36 #define HAL_P2P_GO_INTENT_DEFAULT_LENGTH 6
37 #define HAL_P2P_TMP_BUFFER_SIZE_128 128
38 #define HAL_P2P_SERVICE_TYPE_MIN_SIZE 3
39 #define HAL_P2P_SERVICE_TYPE_2_POS 2
40 
41 typedef enum DeathType {
42     WPA_DEATH = 0,
43     AP_DEATH = 1
44 } DeathType;
45 
46 typedef enum HalScanResult {
47     HAL_SINGLE_SCAN_FAILED = 1,     /* Scan failure notification */
48     HAL_SINGLE_SCAN_OVER_OK = 2,    /* Scan success notification */
49     HAL_PNO_SCAN_OVER_OK = 3,       /* PNO Scan success notification */
50 } HalScanResult;
51 
52 typedef enum HalConnectStatus {
53     HAL_WPA_CB_CONNECTED = 1,
54     HAL_WPA_CB_DISCONNECTED = 2,
55     HAL_WPA_CB_ASSOCIATING = 3,
56     HAL_WPA_CB_ASSOCIATED = 4,
57 } HalConnectStatus;
58 
59 typedef enum HalPortType {
60     HAL_PORT_TYPE_STATION    = 0,
61     HAL_PORT_TYPE_AP         = 1,
62     HAL_PORT_TYPE_P2P_CLIENT = 2,
63     HAL_PORT_TYPE_P2P_GO     = 3,
64     HAL_PORT_TYPE_P2P_DEVICE = 4,
65     HAL_PORT_TYPE_BUTT,
66 } HalPortType;
67 
68 typedef enum HalCallbackEvent {
69     /* IWifiEventCallback */
70     HAL_CBK_CMD_FAILURE = 100,      /* Driver loading/unloading failure */
71     HAL_CBK_CMD_STARTED,            /* The driver has been loaded. */
72     HAL_CBK_CMD_STOPED,             /* The Wi-Fi driver has been uninstalled. */
73 
74     /* IWifiChipEventCallback */
75     HAL_CBK_CMD_ADD_IFACE,          /* The network device interface has been added. */
76     HAL_CBK_CMD_REMOVE_IFACE,       /* The network device interface has been deleted. */
77 
78     /* AP AsscociatedEvent */
79     HAL_CBK_CMD_STA_JOIN,           /* STA connection notification in AP mode */
80     HAL_CBK_CMD_STA_LEAVE,          /* STA leaving notification in AP mode */
81 
82     /* SupplicantEventCallback */
83     HAL_CBK_CMD_SCAN_INFO_NOTIFY,       /* SCAN Scan Result Notification */
84     HAL_CBK_CMD_CONNECT_CHANGED,        /* Connection status change notification */
85     HAL_CBK_CMD_BSSID_CHANGED,          /* bssid change notification */
86     HAL_CBK_CMD_AP_ENABLE,              /* AP enabling notification */
87     HAL_CBK_CMD_AP_DISABLE,             /* AP closure notification */
88     HAL_CBK_CMD_WPA_STATE_CHANGEM,      /* WPA status change notification */
89     HAL_CBK_CMD_SSID_WRONG_KEY,         /* Password error status notification */
90     HAL_CBK_CMD_WPS_CONNECTION_FULL,    /* network connection full */
91     HAL_CBK_CMD_WPS_CONNECTION_REJECT,  /* network connection reject */
92     HAL_CBK_CMD_WPS_OVERLAP,            /* wps PBC overlap */
93     HAL_CBK_CMD_WPS_TIME_OUT,           /* wps connect time out */
94 
95     /* P2p callback */
96     HAL_CBK_CMD_P2P_SUPPLICANT_CONNECT,            /* p2p connect supplicant */
97     HAL_CBK_CMD_SUP_CONN_FAILED_EVENT,             /* Wpa_supplicant client connection failure event */
98     HAL_CBK_CMD_P2P_DEVICE_FOUND_EVENT,            /* Device discovery event */
99     HAL_CBK_CMD_P2P_DEVICE_LOST_EVENT,             /* Device loss event */
100     HAL_CBK_CMD_P2P_GO_NEGOTIATION_REQUEST_EVENT,  /* Event of receiving a GO negotiation request */
101     HAL_CBK_CMD_P2P_GO_NEGOTIATION_SUCCESS_EVENT,  /* The GO negotiation is successful */
102     HAL_CBK_CMD_P2P_GO_NEGOTIATION_FAILURE_EVENT,  /* The GO negotiation fails */
103     HAL_CBK_CMD_P2P_INVITATION_RECEIVED_EVENT,     /* P2P invitation request event */
104     HAL_CBK_CMD_P2P_INVITATION_RESULT_EVENT,       /* P2P invitation result */
105     HAL_CBK_CMD_P2P_GROUP_FORMATION_SUCCESS_EVENT, /* The group is created successfully */
106     HAL_CBK_CMD_P2P_GROUP_FORMATION_FAILURE_EVENT, /* The group is created failure */
107     HAL_CBK_CMD_P2P_GROUP_STARTED_EVENT,           /* Group Start Event */
108     HAL_CBK_CMD_P2P_GROUP_REMOVED_EVENT,           /* Group removed event */
109     HAL_CBK_CMD_P2P_PROV_DISC_PBC_REQ_EVENT,       /* Provision Discovery request event */
110     HAL_CBK_CMD_P2P_PROV_DISC_PBC_RSP_EVENT,       /* Provision Discovery Response Event */
111     HAL_CBK_CMD_P2P_PROV_DISC_ENTER_PIN_EVENT,     /* Provision Discovery PIN input event */
112     HAL_CBK_CMD_P2P_PROV_DISC_SHOW_PIN_EVENT,      /* Provision Discovery Display PIN Event */
113     HAL_CBK_CMD_P2P_FIND_STOPPED_EVENT,            /* Device search stop event */
114     HAL_CBK_CMD_P2P_SERV_DISC_RESP_EVENT,          /* Service response event */
115     HAL_CBK_CMD_P2P_PROV_DISC_FAILURE_EVENT,       /* Provision Discovery failure event */
116     HAL_CBK_CMD_AP_STA_DISCONNECTED_EVENT,         /* STA Disconnected from AP */
117     HAL_CBK_CMD_AP_STA_CONNECTED_EVENT,            /* STA and AP connected event */
118     HAL_CBK_CMD_P2P_SERV_DISC_REQ_EVENT,           /* Service discovery request event */
119     HAL_CBK_CMD_P2P_IFACE_CREATED_EVENT,           /* P2P interface created event */
120     HAL_CBK_CMD_STA_AP_TEMP_EVENT,
121     HAL_CBK_CMD_AP_STA_PSK_MISMATCH_EVENT,         /* AP STA possible PSK mismatch event*/
122     HAL_CBK_CMD_P2P_CONNECT_FAILED,                /* P2P connect failed event */
123     HAL_CBK_CMD_P2P_CHANNEL_SWITCH_EVENT,          /* P2P Channel switch event */
124     HAL_CBK_CMD_STA_DISCONNECT_REASON_EVENT,       /* sta disconnect reason report */
125 } HalCallbackEvent;
126 
127 typedef enum Wifi80211StatusCode {
128     WLAN_STATUS_UNSPECIFIED_FAILURE = 1,
129     WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA = 17,
130     WLAN_STATUS_ASSOC_REJECTED_TEMPORARILY = 30,
131     WLAN_STATUS_DENIED_INSUFFICIENT_BANDWIDTH = 33,
132 } Wifi80211StatusCode;
133 
134 typedef enum Wifi80211ReasonCode {
135     WLAN_REASON_IE_IN_4WAY_DIFFERS = 17,
136 } Wifi80211ReasonCode;
137 #endif
138