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_WIFI_P2P_DEFINE_H 17 #define OHOS_WIFI_P2P_DEFINE_H 18 19 #include <any> 20 #include <string> 21 #include "wifi_msg.h" 22 23 namespace OHOS { 24 namespace Wifi { 25 /* The timeout interval of enable p2p */ 26 constexpr long ENABLE_P2P_TIMED_OUT__INTERVAL = 15000; 27 /* The time of clears service requests processed in records. */ 28 constexpr long REMOVE_SERVICE_REQUEST_RECORD = 3000; 29 30 enum class P2pStateMachineState : unsigned char { 31 NO_SUPPORT, 32 ENABLING, 33 ENABLED, 34 DISABLED, 35 }; 36 37 enum class P2pStatus { 38 SUCCESS = 0, 39 INFORMATION_IS_CURRENTLY_UNAVAILABLE, 40 INCOMPATIBLE_PARAMETERS, 41 LIMIT_REACHED, 42 INVALID_PARAMETERS, 43 UNABLE_TO_ACCOMMODATE_REQUEST, 44 PREVIOUS_PROTOCOL_ERROR, 45 NO_COMMON_CHANNELS, 46 UNKNOWN_P2P_GROUP, 47 BOTH_DEVICE_INDICATED_INTENT_15, 48 INCOMPATIBLE_PROVISIONING_METHOD, 49 REJECTED_BY_USER, 50 UNKNOWN = -9999, 51 }; 52 53 enum class P2pStatusCode : int { 54 SUCCESS = 0, 55 FAIL_INFORMATION_IS_CURRENTLY_UNAVAILABLE = 1, 56 FAIL_INCOMPATIBLE_PARAMETERS = 2, 57 FAIL_LIMIT_REACHED = 3, 58 FAIL_INVALID_PARAMETERS = 4, 59 FAIL_UNABLE_TO_ACCOMMODATE_REQUEST = 5, 60 FAIL_PREVIOUS_PROTOCOL_ERROR = 6, 61 FAIL_NO_COMMON_CHANNELS = 7, 62 FAIL_UNKNOWN_P2P_GROUP = 8, 63 FAIL_BOTH_DEVICE_INDICATED_INTENT_15 = 9, 64 FAIL_INCOMPATIBLE_PROVISIONING_METHOD = 10, 65 FAIL_REJECTED_BY_USER = 11, 66 SUCCESS_DEFERRED = 12, 67 }; 68 69 enum class WpsDevPasswordId : short { 70 DEFAULT = 0, 71 USER_SPECIFIED = 1, 72 MACHINE_SPECIFIED = 2, 73 REKEY = 3, 74 PUSHBUTTON = 4, 75 REGISTRAR_SPECIFIED = 5, 76 NFC_CONNECTION_HANDOVER = 7, 77 P2PS_DEFAULT = 8, 78 }; 79 80 enum class P2pConfigErrCode { 81 SUCCESS = 0, 82 MAC_EMPTY = 1, 83 MAC_NOT_FOUND = 2, 84 ERR_MAC_FORMAT = 3, 85 ERR_INTENT = 4, 86 ERR_SIZE_NW_NAME = 5, 87 }; 88 89 enum class P2P_STATE_MACHINE_CMD { 90 /* service to state machine */ 91 CMD_P2P_ENABLE = 0, 92 CMD_P2P_DISABLE, 93 CMD_DEVICE_DISCOVERS, 94 CMD_STOP_DEVICE_DISCOVERS, 95 CMD_DISCOVER_SERVICES, 96 CMD_STOP_DISCOVER_SERVICES, 97 CMD_REQUEST_SERVICE, 98 CMD_PUT_LOCAL_SERVICE, 99 CMD_DEL_LOCAL_SERVICE, 100 CMD_START_LISTEN, 101 CMD_STOP_LISTEN, 102 CMD_FORM_GROUP, 103 CMD_REMOVE_GROUP, 104 CMD_DELETE_GROUP, 105 CMD_CONNECT, 106 CMD_DISCONNECT, 107 CMD_SET_DEVICE_NAME, /* set device name */ 108 CMD_SET_WFD_INFO, /* set wifi-display info */ 109 CMD_CANCEL_CONNECT, /* cancel connect */ 110 CMD_HID2D_CREATE_GROUP, /* hid2d create group */ 111 CMD_HID2D_CONNECT, 112 CMD_REMOVE_GROUP_CLIENT, 113 CMD_DISCOVER_PEERS, 114 CMD_DISABLE_RANDOM_MAC, 115 CMD_INCREASE_SHARE_LINK, 116 CMD_DECREASE_SHARE_LINK, 117 CMD_REGISTER_SERVICE_CB, 118 CMD_UNREGISTER_SERVICE_CB, 119 CMD_CLEAR_SERVICE_CB, 120 121 /* monitor to state machine */ 122 WPA_CONNECTED_EVENT = 100, // result of connect 123 WPA_CONN_FAILED_EVENT, // failed to connected WPA 124 P2P_EVENT_DEVICE_FOUND, 125 P2P_EVENT_DEVICE_LOST, 126 P2P_EVENT_GO_NEG_REQUEST, // received GO negotiation request 127 P2P_EVENT_GO_NEG_SUCCESS, 128 P2P_EVENT_GO_NEG_FAILURE, 129 P2P_EVENT_INVITATION_RECEIVED, 130 P2P_EVENT_INVITATION_RESULT, 131 P2P_EVENT_GROUP_FORMATION_SUCCESS, 132 P2P_EVENT_GROUP_FORMATION_FAILURE, 133 P2P_EVENT_GROUP_STARTED, 134 P2P_EVENT_GROUP_REMOVED, 135 P2P_EVENT_PROV_DISC_PBC_REQ, 136 P2P_EVENT_PROV_DISC_PBC_RESP, 137 P2P_EVENT_PROV_DISC_ENTER_PIN, 138 P2P_EVENT_PROV_DISC_SHOW_PIN, 139 P2P_EVENT_FIND_STOPPED, 140 P2P_EVENT_SERV_DISC_REQ, 141 P2P_EVENT_SERV_DISC_RESP, 142 P2P_EVENT_PROV_DISC_FAILURE, 143 AP_STA_DISCONNECTED, 144 AP_STA_CONNECTED, 145 P2P_EVENT_IFACE_CREATED, 146 P2P_REMOVE_DEVICE, 147 P2P_RETRY_CONNECT, 148 P2P_EVENT_CH_SWITCH, 149 P2P_EVENT_PRI_DEVICE_FOUND, 150 P2P_EVENT_IP_ADDRESS, 151 P2P_EVENT_CHR_REPORT, 152 153 /* if the requests to WPA is not synchronization need protected by a timeout mechanism */ 154 ENABLE_P2P_TIMED_OUT = 200, 155 INTERNAL_CONN_USER_CONFIRM, // the user confirmed 156 INTERNAL_CONN_USER_ACCEPT, // the user chooses to agree 157 PEER_CONNECTION_USER_REJECT, // the user chooses to reject 158 INTERNAL_CONN_USER_TIME_OUT, 159 CREATE_GROUP_TIMED_OUT, 160 EXCEPTION_TIMED_OUT, /* P2P exception timeout */ 161 DISABLE_P2P_TIMED_OUT, 162 REMOVE_SERVICE_REQUEST_RECORD, 163 P2P_CONNECT_FAILED, 164 }; 165 166 enum class DHCPTYPE { 167 NO_DHCP = 0, 168 DHCP_P2P, 169 DHCP_LEGACEGO, 170 DHCP_INVALID, 171 }; 172 173 enum class P2P_ERROR_RES { 174 NEGO_FAILURE = 0, // p2p go negotiation failure 175 FORMATION_FAILURE, // p2p group formation failure 176 PROV_SCAN_FAILURE, // prov scan failur 177 P2P_GROUP_REMOVE_FAILURE, 178 P2P_DISCOVERY_FAILURE 179 }; 180 181 enum class P2P_ERROR_CODE { 182 NEGO_FAILURE_ERROR = 1001, 183 PROV_SCAN_ERROR, 184 FORMATION_ERROR, 185 P2P_GROUP_REMOVE_ERROR, 186 P2P_DISCOVER_FAILURE_ERROR 187 }; 188 189 enum class P2P_CHR_EVENT { 190 CONN_CNT = 0, 191 CONN_SUC_CNT, 192 MAGICLINK_CNT, 193 P2P_SUC_2G4_CNT, 194 P2P_SUC_5G_CNT 195 }; 196 197 enum class P2P_CONNECT_FAIL { 198 ERR_CODE = 0, 199 FAIL_REASON 200 }; 201 202 enum class P2P_ABNORMAL_DISCONNECT { 203 ERR_CODE = 0, 204 FAIL_REASON 205 }; 206 207 using HandlerMethod = void(P2P_STATE_MACHINE_CMD, int, int, const std::any &); 208 } // namespace Wifi 209 } // namespace OHOS 210 211 #endif 212