summaryrefslogtreecommitdiffstatshomepage
path: root/drivers/esp-hosted/esp_hosted.proto
blob: 8a51e9502bb6ba38d6344af7263655431db0c127 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
/* Copyright (C) 2015-2023 Espressif Systems (Shanghai) PTE LTD */
/* SPDX-License-Identifier: Apache-2.0 */

/* This file is sourced from
   https://github.com/espressif/esp-hosted/blob/master/esp_hosted_fg/common/proto/esp_hosted_config.proto
*/

syntax = "proto3";

/* Enums similar to ESP IDF */
enum Ctrl_VendorIEType {
    Beacon = 0;
    Probe_req = 1;
    Probe_resp = 2;
    Assoc_req = 3;
    Assoc_resp = 4;
}

enum Ctrl_VendorIEID {
    ID_0 = 0;
    ID_1 = 1;
}

enum Ctrl_WifiMode {
    NONE = 0;
    STA = 1;
    AP = 2;
    APSTA = 3;
}

enum Ctrl_WifiBw {
    BW_Invalid = 0;
    HT20 = 1;
    HT40 = 2;
}

enum Ctrl_WifiPowerSave {
    PS_Invalid = 0;
    MIN_MODEM = 1;
    MAX_MODEM = 2;
}

enum Ctrl_WifiSecProt {
    Open = 0;
    WEP = 1;
    WPA_PSK = 2;
    WPA2_PSK = 3;
    WPA_WPA2_PSK = 4;
    WPA2_ENTERPRISE = 5;
    WPA3_PSK = 6;
    WPA2_WPA3_PSK = 7;
}

/* enums for Control path */
enum Ctrl_Status {
    Connected = 0;
    Not_Connected = 1;
    No_AP_Found = 2;
    Connection_Fail = 3;
    Invalid_Argument = 4;
    Out_Of_Range = 5;
}


enum CtrlMsgType {
    MsgType_Invalid = 0;
    Req = 1;
    Resp = 2;
    Event = 3;
    MsgType_Max = 4;
}

enum CtrlMsgId {
    MsgId_Invalid = 0;

    /** Request Msgs **/
    Req_Base = 100;

    Req_GetMACAddress = 101;
    Req_SetMacAddress = 102;
    Req_GetWifiMode = 103;
    Req_SetWifiMode = 104;

    Req_GetAPScanList = 105;
    Req_GetAPConfig = 106;
    Req_ConnectAP = 107;
    Req_DisconnectAP = 108;

    Req_GetSoftAPConfig = 109;
    Req_SetSoftAPVendorSpecificIE = 110;
    Req_StartSoftAP = 111;
    Req_GetSoftAPConnectedSTAList = 112;
    Req_StopSoftAP = 113;

    Req_SetPowerSaveMode = 114;
    Req_GetPowerSaveMode = 115;

    Req_OTABegin = 116;
    Req_OTAWrite = 117;
    Req_OTAEnd = 118;

    Req_SetWifiMaxTxPower = 119;
    Req_GetWifiCurrTxPower = 120;

    Req_ConfigHeartbeat = 121;
    /* Add new control path command response before Req_Max
     * and update Req_Max */
    Req_Max = 122;

    /** Response Msgs **/
    Resp_Base = 200;

    Resp_GetMACAddress = 201;
    Resp_SetMacAddress = 202;
    Resp_GetWifiMode = 203;
    Resp_SetWifiMode = 204;

    Resp_GetAPScanList = 205;
    Resp_GetAPConfig = 206;
    Resp_ConnectAP = 207;
    Resp_DisconnectAP = 208;

    Resp_GetSoftAPConfig = 209;
    Resp_SetSoftAPVendorSpecificIE = 210;
    Resp_StartSoftAP = 211;
    Resp_GetSoftAPConnectedSTAList = 212;
    Resp_StopSoftAP = 213;

    Resp_SetPowerSaveMode = 214;
    Resp_GetPowerSaveMode = 215;

    Resp_OTABegin = 216;
    Resp_OTAWrite = 217;
    Resp_OTAEnd = 218;

    Resp_SetWifiMaxTxPower = 219;
    Resp_GetWifiCurrTxPower = 220;

    Resp_ConfigHeartbeat = 221;
    /* Add new control path command response before Resp_Max
     * and update Resp_Max */
    Resp_Max = 222;

    /** Event Msgs **/
    Event_Base = 300;
    Event_ESPInit = 301;
    Event_Heartbeat = 302;
    Event_StationDisconnectFromAP = 303;
    Event_StationDisconnectFromESPSoftAP = 304;
    /* Add new control path command notification before Event_Max
     * and update Event_Max */
    Event_Max = 305;
}

/* internal supporting structures for CtrlMsg */
message ScanResult {
    bytes ssid = 1;
    uint32 chnl = 2;
    int32 rssi = 3;
    bytes bssid = 4;
    Ctrl_WifiSecProt sec_prot = 5;
}

message ConnectedSTAList {
    bytes mac = 1;
    int32 rssi = 2;
}


/* Control path structures */
/** Req/Resp structure **/
message CtrlMsg_Req_GetMacAddress {
    int32 mode = 1;
}

message CtrlMsg_Resp_GetMacAddress {
    bytes mac = 1;
    int32 resp = 2;
}

message CtrlMsg_Req_GetMode {
}

message CtrlMsg_Resp_GetMode {
    int32 mode = 1;
    int32 resp = 2;
}

message CtrlMsg_Req_SetMode {
    int32 mode = 1;
}

message CtrlMsg_Resp_SetMode {
    int32 resp = 1;
}

message CtrlMsg_Req_GetStatus {
}

message CtrlMsg_Resp_GetStatus {
    int32 resp = 1;
}

message CtrlMsg_Req_SetMacAddress {
    bytes mac = 1;
    int32 mode = 2;
}

message CtrlMsg_Resp_SetMacAddress {
    int32 resp = 1;
}

message CtrlMsg_Req_GetAPConfig {
}

message CtrlMsg_Resp_GetAPConfig {
    bytes ssid = 1;
    bytes bssid = 2;
    int32 rssi = 3;
    int32 chnl = 4;
    Ctrl_WifiSecProt sec_prot = 5;
    int32 resp = 6;
}

message CtrlMsg_Req_ConnectAP {
    string ssid = 1;
    string pwd = 2;
    string bssid = 3;
    bool is_wpa3_supported = 4;
    int32 listen_interval = 5;
}

message  CtrlMsg_Resp_ConnectAP {
    int32 resp = 1;
    bytes mac = 2;
}

message CtrlMsg_Req_GetSoftAPConfig {
}

message CtrlMsg_Resp_GetSoftAPConfig {
    bytes ssid = 1;
    bytes pwd = 2;
    int32 chnl = 3;
    Ctrl_WifiSecProt sec_prot = 4;
    int32 max_conn = 5;
    bool ssid_hidden = 6;
    int32 bw = 7;
    int32 resp = 8;
}

message CtrlMsg_Req_StartSoftAP {
    string ssid = 1;
    string pwd = 2;
    int32 chnl = 3;
    Ctrl_WifiSecProt sec_prot = 4;
    int32 max_conn = 5;
    bool ssid_hidden = 6;
    int32 bw = 7;
}

message CtrlMsg_Resp_StartSoftAP {
    int32 resp = 1;
    bytes mac = 2;
}

message CtrlMsg_Req_ScanResult {
}

message CtrlMsg_Resp_ScanResult {
    uint32 count = 1;
    repeated ScanResult entries = 2;
    int32 resp = 3;
}

message CtrlMsg_Req_SoftAPConnectedSTA {
}

message CtrlMsg_Resp_SoftAPConnectedSTA {
    uint32 num = 1;
    repeated ConnectedSTAList stations = 2;
    int32 resp = 3;
}

message CtrlMsg_Req_OTABegin {
}

message CtrlMsg_Resp_OTABegin {
    int32 resp = 1;
}

message CtrlMsg_Req_OTAWrite {
    bytes ota_data = 1;
}

message CtrlMsg_Resp_OTAWrite {
    int32 resp = 1;
}

message CtrlMsg_Req_OTAEnd {
}

message CtrlMsg_Resp_OTAEnd {
    int32 resp = 1;
}

message CtrlMsg_Req_VendorIEData {
    int32 element_id = 1;
    int32 length = 2;
    bytes vendor_oui = 3;
    int32 vendor_oui_type = 4;
    bytes payload = 5;
}

message CtrlMsg_Req_SetSoftAPVendorSpecificIE {
    bool enable = 1;
    Ctrl_VendorIEType type = 2;
    Ctrl_VendorIEID idx = 3;
    CtrlMsg_Req_VendorIEData vendor_ie_data = 4;
}

message CtrlMsg_Resp_SetSoftAPVendorSpecificIE {
    int32 resp = 1;
}

message CtrlMsg_Req_SetWifiMaxTxPower {
    int32 wifi_max_tx_power = 1;
}

message CtrlMsg_Resp_SetWifiMaxTxPower {
    int32 resp = 1;
}

message CtrlMsg_Req_GetWifiCurrTxPower {
}

message CtrlMsg_Resp_GetWifiCurrTxPower {
    int32 wifi_curr_tx_power = 1;
    int32 resp = 2;
}

message CtrlMsg_Req_ConfigHeartbeat {
    bool enable = 1;
    int32 duration = 2;
}

message CtrlMsg_Resp_ConfigHeartbeat {
    int32 resp = 1;
}

/** Event structure **/
message CtrlMsg_Event_ESPInit {
    bytes init_data = 1;
}

message CtrlMsg_Event_Heartbeat {
    int32 hb_num = 1;
}

message CtrlMsg_Event_StationDisconnectFromAP {
    int32 resp = 1;
}

message CtrlMsg_Event_StationDisconnectFromESPSoftAP {
    int32 resp = 1;
    bytes mac = 2;
}

message CtrlMsg {
    /* msg_type could be req, resp or Event */
    CtrlMsgType msg_type = 1;

    /* msg id */
    CtrlMsgId msg_id = 2;

    /* union of all msg ids */
    oneof payload {
        /** Requests **/
        CtrlMsg_Req_GetMacAddress req_get_mac_address = 101;
        CtrlMsg_Req_SetMacAddress req_set_mac_address = 102;
        CtrlMsg_Req_GetMode req_get_wifi_mode = 103;
        CtrlMsg_Req_SetMode req_set_wifi_mode = 104;

        CtrlMsg_Req_ScanResult req_scan_ap_list = 105;
        CtrlMsg_Req_GetAPConfig req_get_ap_config = 106;
        CtrlMsg_Req_ConnectAP req_connect_ap = 107;
        CtrlMsg_Req_GetStatus req_disconnect_ap = 108;

        CtrlMsg_Req_GetSoftAPConfig req_get_softap_config = 109;
        CtrlMsg_Req_SetSoftAPVendorSpecificIE req_set_softap_vendor_specific_ie = 110;
        CtrlMsg_Req_StartSoftAP req_start_softap = 111;
        CtrlMsg_Req_SoftAPConnectedSTA req_softap_connected_stas_list = 112;
        CtrlMsg_Req_GetStatus req_stop_softap = 113;

        CtrlMsg_Req_SetMode req_set_power_save_mode = 114;
        CtrlMsg_Req_GetMode req_get_power_save_mode = 115;

        CtrlMsg_Req_OTABegin req_ota_begin = 116;
        CtrlMsg_Req_OTAWrite req_ota_write = 117;
        CtrlMsg_Req_OTAEnd req_ota_end = 118;

        CtrlMsg_Req_SetWifiMaxTxPower req_set_wifi_max_tx_power = 119;
        CtrlMsg_Req_GetWifiCurrTxPower req_get_wifi_curr_tx_power = 120;
        CtrlMsg_Req_ConfigHeartbeat req_config_heartbeat = 121;

        /** Responses **/
        CtrlMsg_Resp_GetMacAddress resp_get_mac_address = 201;
        CtrlMsg_Resp_SetMacAddress resp_set_mac_address = 202;
        CtrlMsg_Resp_GetMode resp_get_wifi_mode = 203;
        CtrlMsg_Resp_SetMode resp_set_wifi_mode = 204;

        CtrlMsg_Resp_ScanResult resp_scan_ap_list = 205;
        CtrlMsg_Resp_GetAPConfig resp_get_ap_config = 206;
        CtrlMsg_Resp_ConnectAP resp_connect_ap = 207;
        CtrlMsg_Resp_GetStatus resp_disconnect_ap = 208;

        CtrlMsg_Resp_GetSoftAPConfig resp_get_softap_config = 209;
        CtrlMsg_Resp_SetSoftAPVendorSpecificIE resp_set_softap_vendor_specific_ie = 210;
        CtrlMsg_Resp_StartSoftAP resp_start_softap = 211;
        CtrlMsg_Resp_SoftAPConnectedSTA resp_softap_connected_stas_list = 212;
        CtrlMsg_Resp_GetStatus resp_stop_softap = 213;

        CtrlMsg_Resp_SetMode resp_set_power_save_mode = 214;
        CtrlMsg_Resp_GetMode resp_get_power_save_mode = 215;

        CtrlMsg_Resp_OTABegin resp_ota_begin = 216;
        CtrlMsg_Resp_OTAWrite resp_ota_write = 217;
        CtrlMsg_Resp_OTAEnd resp_ota_end = 218;
        CtrlMsg_Resp_SetWifiMaxTxPower resp_set_wifi_max_tx_power = 219;
        CtrlMsg_Resp_GetWifiCurrTxPower resp_get_wifi_curr_tx_power = 220;
        CtrlMsg_Resp_ConfigHeartbeat resp_config_heartbeat = 221;

        /** Notifications **/
        CtrlMsg_Event_ESPInit event_esp_init = 301;
        CtrlMsg_Event_Heartbeat event_heartbeat = 302;
        CtrlMsg_Event_StationDisconnectFromAP event_station_disconnect_from_AP = 303;
        CtrlMsg_Event_StationDisconnectFromESPSoftAP event_station_disconnect_from_ESP_SoftAP = 304;
    }
}