1 /* 2 * Copyright (c) 2021-2023 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 WIFI_COMMON_CMD_H 17 #define WIFI_COMMON_CMD_H 18 19 #include "wifi_driver_client.h" 20 21 enum PlatformServiceID { 22 INTERFACE_SERVICE_ID = 0, 23 BASE_SERVICE_ID, 24 AP_SERVICE_ID, 25 STA_SERVICE_ID, 26 P2P_SERVICE_ID, 27 AUTO_ALLOC_SERVICE_ID_START = 300 28 }; 29 30 enum BaseCommands { 31 CMD_BASE_NEW_KEY, 32 CMD_BASE_DEL_KEY, 33 CMD_BASE_SET_DEFAULT_KEY, 34 CMD_BASE_SEND_MLME, 35 CMD_BASE_SEND_EAPOL, 36 CMD_BASE_RECEIVE_EAPOL = 5, 37 CMD_BASE_ENALBE_EAPOL, 38 CMD_BASE_DISABLE_EAPOL, 39 CMD_BASE_GET_ADDR, 40 CMD_BASE_SET_MODE, 41 CMD_BASE_GET_HW_FEATURE = 10, 42 CMD_BASE_SET_NETDEV, 43 CMD_BASE_SEND_ACTION, 44 CMD_BASE_SET_CLIENT, 45 CMD_BASE_GET_NETWORK_INFO = 15, 46 CMD_BASE_IS_SUPPORT_COMBO, 47 CMD_BASE_GET_SUPPORT_COMBO, 48 CMD_BASE_GET_DEV_MAC_ADDR, 49 CMD_BASE_SET_MAC_ADDR, 50 CMD_BASE_GET_VALID_FREQ = 20, 51 CMD_BASE_SET_TX_POWER, 52 CMD_BASE_GET_CHIPID, 53 CMD_BASE_GET_IFNAMES, 54 CMD_BASE_RESET_DRIVER, 55 CMD_BASE_GET_NETDEV_INFO, 56 CMD_BASE_DO_RESET_PRIVATE, 57 CMD_BASE_GET_POWER_MODE, 58 CMD_BASE_SET_POWER_MODE, 59 CMD_BASE_START_CHANNEL_MEAS, 60 CMD_BASE_SET_PROJECTION_SCREEN_PARAM, 61 CMD_BASE_SEND_CMD_IOCTL, 62 CMD_BASE_GET_STATION_INFO 63 }; 64 65 enum APCommands { 66 CMD_AP_START = 0, 67 CMD_AP_STOP, 68 CMD_AP_CHANGE_BEACON, 69 CMD_AP_DEL_STATION, 70 CMD_AP_GET_ASSOC_STA, 71 CMD_AP_SET_COUNTRY_CODE, 72 CMD_AP_GET_BANDWIDTH, 73 }; 74 75 enum STACommands { 76 CMD_STA_CONNECT = 0, 77 CMD_STA_DISCONNECT, 78 CMD_STA_SCAN, 79 CMD_STA_ABORT_SCAN, 80 CMD_STA_SET_SCAN_MAC_ADDR, 81 CMD_STA_START_PNO_SCAN, 82 CMD_STA_STOP_PNO_SCAN, 83 CMD_STA_GET_SIGNAL_INFO 84 }; 85 86 enum P2PCommands { 87 CMD_P2P_PROBE_REQ_REPORT = 0, 88 CMD_P2P_REMAIN_ON_CHANNEL, 89 CMD_P2P_CANCEL_REMAIN_ON_CHANNEL, 90 CMD_P2P_ADD_IF, 91 CMD_P2P_REMOVE_IF, 92 CMD_P2P_SET_AP_WPS_P2P_IE, 93 CMD_P2P_GET_DRIVER_FLAGS 94 }; 95 96 #define MESSAGE_CMD_BITS 16 97 #define HDF_WIFI_CMD(SERVICEID, CMDID) ((((uint32_t)SERVICEID) << MESSAGE_CMD_BITS) | (CMDID)) 98 99 typedef enum { 100 WIFI_HAL_CMD_GET_NETWORK_INFO = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_GET_NETWORK_INFO), 101 WIFI_HAL_CMD_IS_SUPPORT_COMBO = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_IS_SUPPORT_COMBO), 102 WIFI_HAL_CMD_GET_SUPPORT_COMBO = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_GET_SUPPORT_COMBO), 103 WIFI_HAL_CMD_GET_DEV_MAC_ADDR = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_GET_DEV_MAC_ADDR), 104 WIFI_HAL_CMD_SET_MAC_ADDR = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_SET_MAC_ADDR), 105 WIFI_HAL_CMD_GET_VALID_FREQ = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_GET_VALID_FREQ), 106 WIFI_HAL_CMD_SET_TX_POWER = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_SET_TX_POWER), 107 WIFI_HAL_CMD_GET_ASSOC_STA = HDF_WIFI_CMD(AP_SERVICE_ID, CMD_AP_GET_ASSOC_STA), 108 WIFI_HAL_CMD_SET_COUNTRY_CODE = HDF_WIFI_CMD(AP_SERVICE_ID, CMD_AP_SET_COUNTRY_CODE), 109 WIFI_HAL_CMD_SET_SCAN_MAC_ADDR = HDF_WIFI_CMD(STA_SERVICE_ID, CMD_STA_SET_SCAN_MAC_ADDR), 110 WIFI_HAL_CMD_GET_CHIPID = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_GET_CHIPID), 111 WIFI_HAL_CMD_GET_IFNAMES = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_GET_IFNAMES), 112 WIFI_HAL_CMD_RESET_DRIVER = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_RESET_DRIVER), 113 WIFI_HAL_CMD_GET_NETDEV_INFO = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_GET_NETDEV_INFO), 114 WIFI_HAL_CMD_GET_POWER_MODE = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_GET_POWER_MODE), 115 WIFI_HAL_CMD_SET_POWER_MODE = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_SET_POWER_MODE), 116 WIFI_HAL_CMD_START_CHANNEL_MEAS = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_START_CHANNEL_MEAS), 117 WIFI_HAL_CMD_CONFIG_PROJECTION_SCREEN = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_SET_PROJECTION_SCREEN_PARAM), 118 WIFI_HAL_CMD_SET_CMD_IOCTL = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_SEND_CMD_IOCTL), 119 WIFI_HAL_CMD_GET_STATION_INFO = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_GET_STATION_INFO), 120 WIFI_HAL_CMD_START_PNO_SCAN = HDF_WIFI_CMD(STA_SERVICE_ID, CMD_STA_START_PNO_SCAN), 121 WIFI_HAL_CMD_STOP_PNO_SCAN = HDF_WIFI_CMD(STA_SERVICE_ID, CMD_STA_STOP_PNO_SCAN), 122 WIFI_HAL_CMD_GET_SIGNAL_INFO = HDF_WIFI_CMD(STA_SERVICE_ID, CMD_STA_GET_SIGNAL_INFO), 123 WIFI_HAL_CMD_GET_AP_BANDWIDTH = HDF_WIFI_CMD(AP_SERVICE_ID, CMD_AP_GET_BANDWIDTH), 124 } WifiHalCmd; 125 126 typedef enum { 127 WIFI_WPA_CMD_SET_AP = HDF_WIFI_CMD(AP_SERVICE_ID, CMD_AP_START), 128 WIFI_WPA_CMD_NEW_KEY = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_NEW_KEY), 129 WIFI_WPA_CMD_DEL_KEY = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_DEL_KEY), 130 WIFI_WPA_CMD_SET_KEY = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_SET_DEFAULT_KEY), 131 WIFI_WPA_CMD_SEND_MLME = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_SEND_MLME), 132 WIFI_WPA_CMD_SEND_EAPOL = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_SEND_EAPOL), 133 WIFI_WPA_CMD_RECEIVE_EAPOL = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_RECEIVE_EAPOL), 134 WIFI_WPA_CMD_ENALBE_EAPOL = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_ENALBE_EAPOL), 135 WIFI_WPA_CMD_DISABLE_EAPOL = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_DISABLE_EAPOL), 136 WIFI_WPA_CMD_GET_ADDR = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_GET_ADDR), 137 WIFI_WPA_CMD_SET_MODE = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_SET_MODE), 138 WIFI_WPA_CMD_GET_HW_FEATURE = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_GET_HW_FEATURE), 139 WIFI_WPA_CMD_STOP_AP = HDF_WIFI_CMD(AP_SERVICE_ID, CMD_AP_STOP), 140 WIFI_WPA_CMD_SCAN = HDF_WIFI_CMD(STA_SERVICE_ID, CMD_STA_SCAN), 141 WIFI_WPA_CMD_DISCONNECT = HDF_WIFI_CMD(STA_SERVICE_ID, CMD_STA_DISCONNECT), 142 WIFI_WPA_CMD_ASSOC = HDF_WIFI_CMD(STA_SERVICE_ID, CMD_STA_CONNECT), 143 WIFI_WPA_CMD_SET_NETDEV = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_SET_NETDEV), 144 WIFI_WPA_CMD_CHANGE_BEACON = HDF_WIFI_CMD(AP_SERVICE_ID, CMD_AP_CHANGE_BEACON), 145 WIFI_WPA_CMD_STA_REMOVE = HDF_WIFI_CMD(AP_SERVICE_ID, CMD_AP_DEL_STATION), 146 WIFI_WPA_CMD_SEND_ACTION = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_SEND_ACTION), 147 WIFI_CLIENT_CMD_SET_CLIENT = HDF_WIFI_CMD(BASE_SERVICE_ID, CMD_BASE_SET_CLIENT), 148 WIFI_WPA_CMD_PROBE_REQ_REPORT = HDF_WIFI_CMD(P2P_SERVICE_ID, CMD_P2P_PROBE_REQ_REPORT), 149 WIFI_WPA_CMD_REMAIN_ON_CHANNEL = HDF_WIFI_CMD(P2P_SERVICE_ID, CMD_P2P_REMAIN_ON_CHANNEL), 150 WIFI_WPA_CMD_CANCEL_REMAIN_ON_CHANNEL = HDF_WIFI_CMD(P2P_SERVICE_ID, CMD_P2P_CANCEL_REMAIN_ON_CHANNEL), 151 WIFI_WPA_CMD_ADD_IF = HDF_WIFI_CMD(P2P_SERVICE_ID, CMD_P2P_ADD_IF), 152 WIFI_WPA_CMD_REMOVE_IF = HDF_WIFI_CMD(P2P_SERVICE_ID, CMD_P2P_REMOVE_IF), 153 WIFI_WPA_CMD_SET_AP_WPS_P2P_IE = HDF_WIFI_CMD(P2P_SERVICE_ID, CMD_P2P_SET_AP_WPS_P2P_IE), 154 WIFI_WPA_CMD_GET_DRIVER_FLAGS = HDF_WIFI_CMD(P2P_SERVICE_ID, CMD_P2P_GET_DRIVER_FLAGS), 155 WIFI_WPA_CMD_BUTT 156 } WifiWPACmdType; 157 158 struct CallbackEvent { 159 uint32_t eventType; /* eventmap */ 160 char ifName[IFNAMSIZ + 1]; 161 OnReceiveFunc onRecFunc; 162 }; 163 164 struct Hid2dEvent { 165 char ifName[IFNAMSIZ + 1]; 166 Hid2dCallback func; 167 }; 168 169 typedef enum { 170 COOKIE_INDEX = 0, 171 ACK_INDEX = 4, 172 MAX_INDEX, 173 } ActionT; 174 175 #define NO_ACK 1 176 #define ACK 2 177 #define BYTE_UNIT_8 8 178 179 void WifiEventReport(const char *ifName, uint32_t event, void *data); 180 void Hid2dEventReport(const char *ifName, const uint8_t *msg, uint32_t msgLen); 181 int32_t InitEventcallbackMutex(void); 182 void DeinitEventcallbackMutex(void); 183 void FreeScanResult(WifiScanResult *res); 184 void FreeScanResults(WifiScanResults *res); 185 int32_t InitScanResults(WifiScanResults *scanResults); 186 #endif /* end of wifi_common_cmd.h */ 187