1/* Copyright (C) 2015-2023 Espressif Systems (Shanghai) PTE LTD */ 2/* SPDX-License-Identifier: Apache-2.0 */ 3 4/* This file is sourced from 5 https://github.com/espressif/esp-hosted/blob/master/esp_hosted_fg/common/proto/esp_hosted_config.proto 6*/ 7 8syntax = "proto3"; 9 10/* Enums similar to ESP IDF */ 11enum Ctrl_VendorIEType { 12 Beacon = 0; 13 Probe_req = 1; 14 Probe_resp = 2; 15 Assoc_req = 3; 16 Assoc_resp = 4; 17} 18 19enum Ctrl_VendorIEID { 20 ID_0 = 0; 21 ID_1 = 1; 22} 23 24enum Ctrl_WifiMode { 25 NONE = 0; 26 STA = 1; 27 AP = 2; 28 APSTA = 3; 29} 30 31enum Ctrl_WifiBw { 32 BW_Invalid = 0; 33 HT20 = 1; 34 HT40 = 2; 35} 36 37enum Ctrl_WifiPowerSave { 38 PS_Invalid = 0; 39 MIN_MODEM = 1; 40 MAX_MODEM = 2; 41} 42 43enum Ctrl_WifiSecProt { 44 Open = 0; 45 WEP = 1; 46 WPA_PSK = 2; 47 WPA2_PSK = 3; 48 WPA_WPA2_PSK = 4; 49 WPA2_ENTERPRISE = 5; 50 WPA3_PSK = 6; 51 WPA2_WPA3_PSK = 7; 52} 53 54/* enums for Control path */ 55enum Ctrl_Status { 56 Connected = 0; 57 Not_Connected = 1; 58 No_AP_Found = 2; 59 Connection_Fail = 3; 60 Invalid_Argument = 4; 61 Out_Of_Range = 5; 62} 63 64 65enum CtrlMsgType { 66 MsgType_Invalid = 0; 67 Req = 1; 68 Resp = 2; 69 Event = 3; 70 MsgType_Max = 4; 71} 72 73enum CtrlMsgId { 74 MsgId_Invalid = 0; 75 76 /** Request Msgs **/ 77 Req_Base = 100; 78 79 Req_GetMacAddress = 101; 80 Req_SetMacAddress = 102; 81 Req_GetWifiMode = 103; 82 Req_SetWifiMode = 104; 83 84 Req_GetAPScanList = 105; 85 Req_GetAPConfig = 106; 86 Req_ConnectAP = 107; 87 Req_DisconnectAP = 108; 88 89 Req_GetSoftAPConfig = 109; 90 Req_SetSoftAPVendorSpecificIE = 110; 91 Req_StartSoftAP = 111; 92 Req_GetSoftAPConnectedSTAList = 112; 93 Req_StopSoftAP = 113; 94 95 Req_SetPowerSaveMode = 114; 96 Req_GetPowerSaveMode = 115; 97 98 Req_OTABegin = 116; 99 Req_OTAWrite = 117; 100 Req_OTAEnd = 118; 101 102 Req_SetWifiMaxTxPower = 119; 103 Req_GetWifiCurrTxPower = 120; 104 105 Req_ConfigHeartbeat = 121; 106 /* Add new control path command response before Req_Max 107 * and update Req_Max */ 108 Req_Max = 122; 109 110 /** Response Msgs **/ 111 Resp_Base = 200; 112 113 Resp_GetMacAddress = 201; 114 Resp_SetMacAddress = 202; 115 Resp_GetWifiMode = 203; 116 Resp_SetWifiMode = 204; 117 118 Resp_GetAPScanList = 205; 119 Resp_GetAPConfig = 206; 120 Resp_ConnectAP = 207; 121 Resp_DisconnectAP = 208; 122 123 Resp_GetSoftAPConfig = 209; 124 Resp_SetSoftAPVendorSpecificIE = 210; 125 Resp_StartSoftAP = 211; 126 Resp_GetSoftAPConnectedSTAList = 212; 127 Resp_StopSoftAP = 213; 128 129 Resp_SetPowerSaveMode = 214; 130 Resp_GetPowerSaveMode = 215; 131 132 Resp_OTABegin = 216; 133 Resp_OTAWrite = 217; 134 Resp_OTAEnd = 218; 135 136 Resp_SetWifiMaxTxPower = 219; 137 Resp_GetWifiCurrTxPower = 220; 138 139 Resp_ConfigHeartbeat = 221; 140 /* Add new control path command response before Resp_Max 141 * and update Resp_Max */ 142 Resp_Max = 222; 143 144 /** Event Msgs **/ 145 Event_Base = 300; 146 Event_ESPInit = 301; 147 Event_Heartbeat = 302; 148 Event_StationDisconnectFromAP = 303; 149 Event_StationDisconnectFromESPSoftAP = 304; 150 /* Add new control path command notification before Event_Max 151 * and update Event_Max */ 152 Event_Max = 305; 153} 154 155/* internal supporting structures for CtrlMsg */ 156message ScanResult { 157 bytes ssid = 1; 158 uint32 chnl = 2; 159 int32 rssi = 3; 160 bytes bssid = 4; 161 Ctrl_WifiSecProt sec_prot = 5; 162} 163 164message ConnectedSTAList { 165 bytes mac = 1; 166 int32 rssi = 2; 167} 168 169 170/* Control path structures */ 171/** Req/Resp structure **/ 172message CtrlMsg_Req_GetMacAddress { 173 int32 mode = 1; 174} 175 176message CtrlMsg_Resp_GetMacAddress { 177 bytes mac = 1; 178 int32 resp = 2; 179} 180 181message CtrlMsg_Req_GetMode { 182} 183 184message CtrlMsg_Resp_GetMode { 185 int32 mode = 1; 186 int32 resp = 2; 187} 188 189message CtrlMsg_Req_SetMode { 190 int32 mode = 1; 191} 192 193message CtrlMsg_Resp_SetMode { 194 int32 resp = 1; 195} 196 197message CtrlMsg_Req_GetStatus { 198} 199 200message CtrlMsg_Resp_GetStatus { 201 int32 resp = 1; 202} 203 204message CtrlMsg_Req_SetMacAddress { 205 bytes mac = 1; 206 int32 mode = 2; 207} 208 209message CtrlMsg_Resp_SetMacAddress { 210 int32 resp = 1; 211} 212 213message CtrlMsg_Req_GetAPConfig { 214} 215 216message CtrlMsg_Resp_GetAPConfig { 217 bytes ssid = 1; 218 bytes bssid = 2; 219 int32 rssi = 3; 220 int32 chnl = 4; 221 Ctrl_WifiSecProt sec_prot = 5; 222 int32 resp = 6; 223} 224 225message CtrlMsg_Req_ConnectAP { 226 string ssid = 1; 227 string pwd = 2; 228 bytes bssid = 3; 229 bool is_wpa3_supported = 4; 230 int32 listen_interval = 5; 231} 232 233message CtrlMsg_Resp_ConnectAP { 234 int32 resp = 1; 235 bytes mac = 2; 236} 237 238message CtrlMsg_Req_GetSoftAPConfig { 239} 240 241message CtrlMsg_Resp_GetSoftAPConfig { 242 bytes ssid = 1; 243 bytes pwd = 2; 244 int32 chnl = 3; 245 Ctrl_WifiSecProt sec_prot = 4; 246 int32 max_conn = 5; 247 bool ssid_hidden = 6; 248 int32 bw = 7; 249 int32 resp = 8; 250} 251 252message CtrlMsg_Req_StartSoftAP { 253 string ssid = 1; 254 string pwd = 2; 255 int32 chnl = 3; 256 Ctrl_WifiSecProt sec_prot = 4; 257 int32 max_conn = 5; 258 bool ssid_hidden = 6; 259 int32 bw = 7; 260} 261 262message CtrlMsg_Resp_StartSoftAP { 263 int32 resp = 1; 264 bytes mac = 2; 265} 266 267message CtrlMsg_Req_ScanResult { 268} 269 270message CtrlMsg_Resp_ScanResult { 271 uint32 count = 1; 272 repeated ScanResult entries = 2; 273 int32 resp = 3; 274} 275 276message CtrlMsg_Req_SoftAPConnectedSTA { 277} 278 279message CtrlMsg_Resp_SoftAPConnectedSTA { 280 uint32 num = 1; 281 repeated ConnectedSTAList stations = 2; 282 int32 resp = 3; 283} 284 285message CtrlMsg_Req_OTABegin { 286} 287 288message CtrlMsg_Resp_OTABegin { 289 int32 resp = 1; 290} 291 292message CtrlMsg_Req_OTAWrite { 293 bytes ota_data = 1; 294} 295 296message CtrlMsg_Resp_OTAWrite { 297 int32 resp = 1; 298} 299 300message CtrlMsg_Req_OTAEnd { 301} 302 303message CtrlMsg_Resp_OTAEnd { 304 int32 resp = 1; 305} 306 307message CtrlMsg_Req_VendorIEData { 308 int32 element_id = 1; 309 int32 length = 2; 310 bytes vendor_oui = 3; 311 int32 vendor_oui_type = 4; 312 bytes payload = 5; 313} 314 315message CtrlMsg_Req_SetSoftAPVendorSpecificIE { 316 bool enable = 1; 317 Ctrl_VendorIEType type = 2; 318 Ctrl_VendorIEID idx = 3; 319 CtrlMsg_Req_VendorIEData vendor_ie_data = 4; 320} 321 322message CtrlMsg_Resp_SetSoftAPVendorSpecificIE { 323 int32 resp = 1; 324} 325 326message CtrlMsg_Req_SetWifiMaxTxPower { 327 int32 wifi_max_tx_power = 1; 328} 329 330message CtrlMsg_Resp_SetWifiMaxTxPower { 331 int32 resp = 1; 332} 333 334message CtrlMsg_Req_GetWifiCurrTxPower { 335} 336 337message CtrlMsg_Resp_GetWifiCurrTxPower { 338 int32 wifi_curr_tx_power = 1; 339 int32 resp = 2; 340} 341 342message CtrlMsg_Req_ConfigHeartbeat { 343 bool enable = 1; 344 int32 duration = 2; 345} 346 347message CtrlMsg_Resp_ConfigHeartbeat { 348 int32 resp = 1; 349} 350 351/** Event structure **/ 352message CtrlMsg_Event_ESPInit { 353 bytes init_data = 1; 354} 355 356message CtrlMsg_Event_Heartbeat { 357 int32 hb_num = 1; 358} 359 360message CtrlMsg_Event_StationDisconnectFromAP { 361 int32 resp = 1; 362} 363 364message CtrlMsg_Event_StationDisconnectFromESPSoftAP { 365 int32 resp = 1; 366 bytes mac = 2; 367} 368 369message CtrlMsg { 370 /* msg_type could be req, resp or Event */ 371 CtrlMsgType msg_type = 1; 372 373 /* msg id */ 374 CtrlMsgId msg_id = 2; 375 376 /* union of all msg ids */ 377 oneof payload { 378 /** Requests **/ 379 CtrlMsg_Req_GetMacAddress req_get_mac_address = 101; 380 CtrlMsg_Req_SetMacAddress req_set_mac_address = 102; 381 CtrlMsg_Req_GetMode req_get_wifi_mode = 103; 382 CtrlMsg_Req_SetMode req_set_wifi_mode = 104; 383 384 CtrlMsg_Req_ScanResult req_scan_ap_list = 105; 385 CtrlMsg_Req_GetAPConfig req_get_ap_config = 106; 386 CtrlMsg_Req_ConnectAP req_connect_ap = 107; 387 CtrlMsg_Req_GetStatus req_disconnect_ap = 108; 388 389 CtrlMsg_Req_GetSoftAPConfig req_get_softap_config = 109; 390 CtrlMsg_Req_SetSoftAPVendorSpecificIE req_set_softap_vendor_specific_ie = 110; 391 CtrlMsg_Req_StartSoftAP req_start_softap = 111; 392 CtrlMsg_Req_SoftAPConnectedSTA req_softap_connected_stas_list = 112; 393 CtrlMsg_Req_GetStatus req_stop_softap = 113; 394 395 CtrlMsg_Req_SetMode req_set_power_save_mode = 114; 396 CtrlMsg_Req_GetMode req_get_power_save_mode = 115; 397 398 CtrlMsg_Req_OTABegin req_ota_begin = 116; 399 CtrlMsg_Req_OTAWrite req_ota_write = 117; 400 CtrlMsg_Req_OTAEnd req_ota_end = 118; 401 402 CtrlMsg_Req_SetWifiMaxTxPower req_set_wifi_max_tx_power = 119; 403 CtrlMsg_Req_GetWifiCurrTxPower req_get_wifi_curr_tx_power = 120; 404 CtrlMsg_Req_ConfigHeartbeat req_config_heartbeat = 121; 405 406 /** Responses **/ 407 CtrlMsg_Resp_GetMacAddress resp_get_mac_address = 201; 408 CtrlMsg_Resp_SetMacAddress resp_set_mac_address = 202; 409 CtrlMsg_Resp_GetMode resp_get_wifi_mode = 203; 410 CtrlMsg_Resp_SetMode resp_set_wifi_mode = 204; 411 412 CtrlMsg_Resp_ScanResult resp_scan_ap_list = 205; 413 CtrlMsg_Resp_GetAPConfig resp_get_ap_config = 206; 414 CtrlMsg_Resp_ConnectAP resp_connect_ap = 207; 415 CtrlMsg_Resp_GetStatus resp_disconnect_ap = 208; 416 417 CtrlMsg_Resp_GetSoftAPConfig resp_get_softap_config = 209; 418 CtrlMsg_Resp_SetSoftAPVendorSpecificIE resp_set_softap_vendor_specific_ie = 210; 419 CtrlMsg_Resp_StartSoftAP resp_start_softap = 211; 420 CtrlMsg_Resp_SoftAPConnectedSTA resp_softap_connected_stas_list = 212; 421 CtrlMsg_Resp_GetStatus resp_stop_softap = 213; 422 423 CtrlMsg_Resp_SetMode resp_set_power_save_mode = 214; 424 CtrlMsg_Resp_GetMode resp_get_power_save_mode = 215; 425 426 CtrlMsg_Resp_OTABegin resp_ota_begin = 216; 427 CtrlMsg_Resp_OTAWrite resp_ota_write = 217; 428 CtrlMsg_Resp_OTAEnd resp_ota_end = 218; 429 CtrlMsg_Resp_SetWifiMaxTxPower resp_set_wifi_max_tx_power = 219; 430 CtrlMsg_Resp_GetWifiCurrTxPower resp_get_wifi_curr_tx_power = 220; 431 CtrlMsg_Resp_ConfigHeartbeat resp_config_heartbeat = 221; 432 433 /** Notifications **/ 434 CtrlMsg_Event_ESPInit event_esp_init = 301; 435 CtrlMsg_Event_Heartbeat event_heartbeat = 302; 436 CtrlMsg_Event_StationDisconnectFromAP event_station_disconnect_from_AP = 303; 437 CtrlMsg_Event_StationDisconnectFromESPSoftAP event_station_disconnect_from_ESP_SoftAP = 304; 438 } 439} 440