initial import
[project/umbim.git] / data / mbim-service-basic-connect.h
1 /*
2  * ID: 1
3  * Command: Device Caps
4  */
5
6 #define MBIM_CMD_BASIC_CONNECT_DEVICE_CAPS      1
7
8 struct mbim_basic_connect_device_caps_r {
9         /* enum MbimDeviceType */
10         uint32_t devicetype;
11         /* enum MbimCellularClass */
12         uint32_t cellularclass;
13         /* enum MbimVoiceClass */
14         uint32_t voiceclass;
15         /* enum MbimSimClass */
16         uint32_t simclass;
17         /* enum MbimDataClass */
18         uint32_t dataclass;
19         /* enum MbimSmsCaps */
20         uint32_t smscaps;
21         /* enum MbimCtrlCaps */
22         uint32_t controlcaps;
23         uint32_t maxsessions;
24         struct mbim_string customdataclass;
25         struct mbim_string deviceid;
26         struct mbim_string firmwareinfo;
27         struct mbim_string hardwareinfo;
28 } __attribute__((packed));
29
30 /*
31  * ID: 2
32  * Command: Subscriber Ready Status
33  */
34
35 #define MBIM_CMD_BASIC_CONNECT_SUBSCRIBER_READY_STATUS  2
36
37 struct mbim_basic_connect_subscriber_ready_status_r {
38         /* enum MbimSubscriberReadyState */
39         uint32_t readystate;
40         struct mbim_string subscriberid;
41         struct mbim_string simiccid;
42         /* enum MbimReadyInfoFlag */
43         uint32_t readyinfo;
44         uint32_t telephonenumberscount;
45         /* array type: string-array */
46         uint32_t telephonenumbers;
47 } __attribute__((packed));
48
49 struct mbim_basic_connect_subscriber_ready_status_n {
50         /* enum MbimSubscriberReadyState */
51         uint32_t readystate;
52         struct mbim_string subscriberid;
53         struct mbim_string simiccid;
54         /* enum MbimReadyInfoFlag */
55         uint32_t readyinfo;
56         uint32_t telephonenumberscount;
57         /* array type: string-array */
58         uint32_t telephonenumbers;
59 } __attribute__((packed));
60
61 /*
62  * ID: 3
63  * Command: Radio State
64  */
65
66 #define MBIM_CMD_BASIC_CONNECT_RADIO_STATE      3
67
68 struct mbim_basic_connect_radio_state_r {
69         /* enum MbimRadioSwitchState */
70         uint32_t hwradiostate;
71         /* enum MbimRadioSwitchState */
72         uint32_t swradiostate;
73 } __attribute__((packed));
74
75 struct mbim_basic_connect_radio_state_s {
76         /* enum MbimRadioSwitchState */
77         uint32_t radiostate;
78 } __attribute__((packed));
79
80 struct mbim_basic_connect_radio_state_n {
81         /* enum MbimRadioSwitchState */
82         uint32_t hwradiostate;
83         /* enum MbimRadioSwitchState */
84         uint32_t swradiostate;
85 } __attribute__((packed));
86
87 /*
88  * ID: 4
89  * Command: Pin
90  */
91
92 #define MBIM_CMD_BASIC_CONNECT_PIN      4
93
94 struct mbim_basic_connect_pin_r {
95         /* enum MbimPinType */
96         uint32_t pintype;
97         /* enum MbimPinState */
98         uint32_t pinstate;
99         uint32_t remainingattempts;
100 } __attribute__((packed));
101
102 struct mbim_basic_connect_pin_s {
103         /* enum MbimPinType */
104         uint32_t pintype;
105         /* enum MbimPinOperation */
106         uint32_t pinoperation;
107         struct mbim_string pin;
108         struct mbim_string newpin;
109 } __attribute__((packed));
110
111 struct mbimpindesc {
112         /* enum MbimPinMode */
113         uint32_t pinmode;
114         /* enum MbimPinFormat */
115         uint32_t pinformat;
116         uint32_t pinlengthmin;
117         uint32_t pinlengthmax;
118 } __attribute__((packed));
119
120 /*
121  * ID: 5
122  * Command: Pin List
123  */
124
125 #define MBIM_CMD_BASIC_CONNECT_PIN_LIST 5
126
127 struct mbim_basic_connect_pin_list_r {
128         struct mbimpindesc pindescpin1;
129         struct mbimpindesc pindescpin2;
130         struct mbimpindesc pindescdevicesimpin;
131         struct mbimpindesc pindescdevicefirstsimpin;
132         struct mbimpindesc pindescnetworkpin;
133         struct mbimpindesc pindescnetworksubsetpin;
134         struct mbimpindesc pindescserviceproviderpin;
135         struct mbimpindesc pindesccorporatepin;
136         struct mbimpindesc pindescsubsidylock;
137         struct mbimpindesc pindesccustom;
138 } __attribute__((packed));
139
140 struct mbimprovider {
141         struct mbim_string providerid;
142         /* enum MbimProviderState */
143         uint32_t providerstate;
144         struct mbim_string providername;
145         /* enum MbimCellularClass */
146         uint32_t cellularclass;
147         uint32_t rssi;
148         uint32_t errorrate;
149 } __attribute__((packed));
150
151 /*
152  * ID: 6
153  * Command: Home Provider
154  */
155
156 #define MBIM_CMD_BASIC_CONNECT_HOME_PROVIDER    6
157
158 struct mbim_basic_connect_home_provider_r {
159         struct mbimprovider provider;
160 } __attribute__((packed));
161
162 struct mbim_basic_connect_home_provider_s {
163         struct mbimprovider provider;
164 } __attribute__((packed));
165
166 /*
167  * ID: 7
168  * Command: Preferred Providers
169  */
170
171 #define MBIM_CMD_BASIC_CONNECT_PREFERRED_PROVIDERS      7
172
173 struct mbim_basic_connect_preferred_providers_r {
174         uint32_t providerscount;
175         /* array type: ref-struct-array */
176         uint32_t providers;
177 } __attribute__((packed));
178
179 struct mbim_basic_connect_preferred_providers_s {
180         uint32_t providerscount;
181         /* array type: ref-struct-array */
182         uint32_t providers;
183 } __attribute__((packed));
184
185 struct mbim_basic_connect_preferred_providers_n {
186         uint32_t providerscount;
187         /* array type: ref-struct-array */
188         uint32_t providers;
189 } __attribute__((packed));
190
191 /*
192  * ID: 8
193  * Command: Visible Providers
194  */
195
196 #define MBIM_CMD_BASIC_CONNECT_VISIBLE_PROVIDERS        8
197
198 struct mbim_basic_connect_visible_providers_q {
199         /* enum MbimVisibleProvidersAction */
200         uint32_t action;
201 } __attribute__((packed));
202
203 struct mbim_basic_connect_visible_providers_r {
204         uint32_t providerscount;
205         /* array type: ref-struct-array */
206         uint32_t providers;
207 } __attribute__((packed));
208
209 /*
210  * ID: 9
211  * Command: Register State
212  */
213
214 #define MBIM_CMD_BASIC_CONNECT_REGISTER_STATE   9
215
216 struct mbim_basic_connect_register_state_r {
217         /* enum MbimNwError */
218         uint32_t nwerror;
219         /* enum MbimRegisterState */
220         uint32_t registerstate;
221         /* enum MbimRegisterMode */
222         uint32_t registermode;
223         /* enum MbimDataClass */
224         uint32_t availabledataclasses;
225         /* enum MbimCellularClass */
226         uint32_t currentcellularclass;
227         struct mbim_string providerid;
228         struct mbim_string providername;
229         struct mbim_string roamingtext;
230         /* enum MbimRegistrationFlag */
231         uint32_t registrationflag;
232 } __attribute__((packed));
233
234 struct mbim_basic_connect_register_state_s {
235         struct mbim_string providerid;
236         /* enum MbimRegisterAction */
237         uint32_t registeraction;
238         /* enum MbimDataClass */
239         uint32_t dataclass;
240 } __attribute__((packed));
241
242 struct mbim_basic_connect_register_state_n {
243         /* enum MbimNwError */
244         uint32_t nwerror;
245         /* enum MbimRegisterState */
246         uint32_t registerstate;
247         /* enum MbimRegisterMode */
248         uint32_t registermode;
249         /* enum MbimDataClass */
250         uint32_t availabledataclasses;
251         /* enum MbimCellularClass */
252         uint32_t currentcellularclass;
253         struct mbim_string providerid;
254         struct mbim_string providername;
255         struct mbim_string roamingtext;
256         /* enum MbimRegistrationFlag */
257         uint32_t registrationflag;
258 } __attribute__((packed));
259
260 /*
261  * ID: 10
262  * Command: Packet Service
263  */
264
265 #define MBIM_CMD_BASIC_CONNECT_PACKET_SERVICE   10
266
267 struct mbim_basic_connect_packet_service_r {
268         uint32_t nwerror;
269         /* enum MbimPacketServiceState */
270         uint32_t packetservicestate;
271         /* enum MbimDataClass */
272         uint32_t highestavailabledataclass;
273         uint64_t uplinkspeed;
274         uint64_t downlinkspeed;
275 } __attribute__((packed));
276
277 struct mbim_basic_connect_packet_service_s {
278         /* enum MbimPacketServiceAction */
279         uint32_t packetserviceaction;
280 } __attribute__((packed));
281
282 struct mbim_basic_connect_packet_service_n {
283         uint32_t nwerror;
284         /* enum MbimPacketServiceState */
285         uint32_t packetservicestate;
286         /* enum MbimDataClass */
287         uint32_t highestavailabledataclass;
288         uint64_t uplinkspeed;
289         uint64_t downlinkspeed;
290 } __attribute__((packed));
291
292 /*
293  * ID: 11
294  * Command: Signal State
295  */
296
297 #define MBIM_CMD_BASIC_CONNECT_SIGNAL_STATE     11
298
299 struct mbim_basic_connect_signal_state_r {
300         uint32_t rssi;
301         uint32_t errorrate;
302         uint32_t signalstrengthinterval;
303         uint32_t rssithreshold;
304         uint32_t errorratethreshold;
305 } __attribute__((packed));
306
307 struct mbim_basic_connect_signal_state_s {
308         uint32_t signalstrengthinterval;
309         uint32_t rssithreshold;
310         uint32_t errorratethreshold;
311 } __attribute__((packed));
312
313 struct mbim_basic_connect_signal_state_n {
314         uint32_t rssi;
315         uint32_t errorrate;
316         uint32_t signalstrengthinterval;
317         uint32_t rssithreshold;
318         uint32_t errorratethreshold;
319 } __attribute__((packed));
320
321 /*
322  * ID: 12
323  * Command: Connect
324  */
325
326 #define MBIM_CMD_BASIC_CONNECT_CONNECT  12
327
328 struct mbim_basic_connect_connect_q {
329         uint32_t sessionid;
330         /* enum MbimActivationState */
331         uint32_t activationstate;
332         /* enum MbimVoiceCallState */
333         uint32_t voicecallstate;
334         /* enum MbimContextIpType */
335         uint32_t iptype;
336         uint8_t contexttype[16];
337         uint32_t nwerror;
338 } __attribute__((packed));
339
340 struct mbim_basic_connect_connect_r {
341         uint32_t sessionid;
342         /* enum MbimActivationState */
343         uint32_t activationstate;
344         /* enum MbimVoiceCallState */
345         uint32_t voicecallstate;
346         /* enum MbimContextIpType */
347         uint32_t iptype;
348         uint8_t contexttype[16];
349         uint32_t nwerror;
350 } __attribute__((packed));
351
352 struct mbim_basic_connect_connect_s {
353         uint32_t sessionid;
354         /* enum MbimActivationCommand */
355         uint32_t activationcommand;
356         struct mbim_string accessstring;
357         struct mbim_string username;
358         struct mbim_string password;
359         /* enum MbimCompression */
360         uint32_t compression;
361         /* enum MbimAuthProtocol */
362         uint32_t authprotocol;
363         /* enum MbimContextIpType */
364         uint32_t iptype;
365         uint8_t contexttype[16];
366 } __attribute__((packed));
367
368 struct mbim_basic_connect_connect_n {
369         uint32_t sessionid;
370         /* enum MbimActivationState */
371         uint32_t activationstate;
372         /* enum MbimVoiceCallState */
373         uint32_t voicecallstate;
374         /* enum MbimContextIpType */
375         uint32_t iptype;
376         uint8_t contexttype[16];
377         uint32_t nwerror;
378 } __attribute__((packed));
379
380 struct mbimprovisionedcontextelement {
381         uint32_t contextid;
382         uint8_t contexttype[16];
383         struct mbim_string accessstring;
384         struct mbim_string username;
385         struct mbim_string password;
386         /* enum MbimCompression */
387         uint32_t compression;
388         /* enum MbimAuthProtocol */
389         uint32_t authprotocol;
390 } __attribute__((packed));
391
392 /*
393  * ID: 13
394  * Command: Provisioned Contexts
395  */
396
397 #define MBIM_CMD_BASIC_CONNECT_PROVISIONED_CONTEXTS     13
398
399 struct mbim_basic_connect_provisioned_contexts_r {
400         uint32_t provisionedcontextscount;
401         /* array type: ref-struct-array */
402         uint32_t provisionedcontexts;
403 } __attribute__((packed));
404
405 struct mbim_basic_connect_provisioned_contexts_s {
406         uint32_t contextid;
407         uint8_t contexttype[16];
408         struct mbim_string accessstring;
409         struct mbim_string username;
410         struct mbim_string password;
411         /* enum MbimCompression */
412         uint32_t compression;
413         /* enum MbimAuthProtocol */
414         uint32_t authprotocol;
415         struct mbim_string providerid;
416 } __attribute__((packed));
417
418 struct mbim_basic_connect_provisioned_contexts_n {
419         uint32_t provisionedcontextscount;
420         /* array type: ref-struct-array */
421         uint32_t provisionedcontexts;
422 } __attribute__((packed));
423
424 /*
425  * ID: 14
426  * Command: Service Activation
427  */
428
429 #define MBIM_CMD_BASIC_CONNECT_SERVICE_ACTIVATION       14
430
431 struct mbim_basic_connect_service_activation_r {
432         /* enum MbimNwError */
433         uint32_t nwerror;
434         /* array type: unsized-byte-array */
435         uint32_t buffer;
436 } __attribute__((packed));
437
438 struct mbim_basic_connect_service_activation_s {
439         /* array type: unsized-byte-array */
440         uint32_t buffer;
441 } __attribute__((packed));
442
443 struct mbimipv4element {
444         uint32_t onlinkprefixlength;
445         uint8_t ipv4address[4];
446 } __attribute__((packed));
447
448 struct mbimipv6element {
449         uint32_t onlinkprefixlength;
450         uint8_t ipv6address[16];
451 } __attribute__((packed));
452
453 /*
454  * ID: 15
455  * Command: IP Configuration
456  */
457
458 #define MBIM_CMD_BASIC_CONNECT_IP_CONFIGURATION 15
459
460 struct mbim_basic_connect_ip_configuration_q {
461         uint32_t sessionid;
462         /* enum MbimIPConfigurationAvailableFlag */
463         uint32_t ipv4configurationavailable;
464         /* enum MbimIPConfigurationAvailableFlag */
465         uint32_t ipv6configurationavailable;
466         uint32_t ipv4addresscount;
467         /* struct mbimipv4element */
468         uint32_t ipv4address;
469         uint32_t ipv6addresscount;
470         /* struct mbimipv6element */
471         uint32_t ipv6address;
472         /* array type: ref-ipv4 */
473         uint32_t ipv4gateway;
474         /* array type: ref-ipv6 */
475         uint32_t ipv6gateway;
476         uint32_t ipv4dnsservercount;
477         /* array type: ipv4-array */
478         uint32_t ipv4dnsserver;
479         uint32_t ipv6dnsservercount;
480         /* array type: ipv6-array */
481         uint32_t ipv6dnsserver;
482         uint32_t ipv4mtu;
483         uint32_t ipv6mtu;
484 } __attribute__((packed));
485
486 struct mbim_basic_connect_ip_configuration_r {
487         uint32_t sessionid;
488         /* enum MbimIPConfigurationAvailableFlag */
489         uint32_t ipv4configurationavailable;
490         /* enum MbimIPConfigurationAvailableFlag */
491         uint32_t ipv6configurationavailable;
492         uint32_t ipv4addresscount;
493         /* struct mbimipv4element */
494         uint32_t ipv4address;
495         uint32_t ipv6addresscount;
496         /* struct mbimipv6element */
497         uint32_t ipv6address;
498         /* array type: ref-ipv4 */
499         uint32_t ipv4gateway;
500         /* array type: ref-ipv6 */
501         uint32_t ipv6gateway;
502         uint32_t ipv4dnsservercount;
503         /* array type: ipv4-array */
504         uint32_t ipv4dnsserver;
505         uint32_t ipv6dnsservercount;
506         /* array type: ipv6-array */
507         uint32_t ipv6dnsserver;
508         uint32_t ipv4mtu;
509         uint32_t ipv6mtu;
510 } __attribute__((packed));
511
512 struct mbim_basic_connect_ip_configuration_n {
513         uint32_t sessionid;
514         /* enum MbimIPConfigurationAvailableFlag */
515         uint32_t ipv4configurationavailable;
516         /* enum MbimIPConfigurationAvailableFlag */
517         uint32_t ipv6configurationavailable;
518         uint32_t ipv4addresscount;
519         /* struct mbimipv4element */
520         uint32_t ipv4address;
521         uint32_t ipv6addresscount;
522         /* struct mbimipv6element */
523         uint32_t ipv6address;
524         /* array type: ref-ipv4 */
525         uint32_t ipv4gateway;
526         /* array type: ref-ipv6 */
527         uint32_t ipv6gateway;
528         uint32_t ipv4dnsservercount;
529         /* array type: ipv4-array */
530         uint32_t ipv4dnsserver;
531         uint32_t ipv6dnsservercount;
532         /* array type: ipv6-array */
533         uint32_t ipv6dnsserver;
534         uint32_t ipv4mtu;
535         uint32_t ipv6mtu;
536 } __attribute__((packed));
537
538 struct mbimdeviceserviceelement {
539         uint8_t deviceserviceid[16];
540         uint32_t dsspayload;
541         uint32_t maxdssinstances;
542         uint32_t cidscount;
543         /* array type: guint32-array */
544         uint32_t cids;
545 } __attribute__((packed));
546
547 /*
548  * ID: 16
549  * Command: Device Services
550  */
551
552 #define MBIM_CMD_BASIC_CONNECT_DEVICE_SERVICES  16
553
554 struct mbim_basic_connect_device_services_r {
555         uint32_t deviceservicescount;
556         uint32_t maxdsssessions;
557         /* array type: ref-struct-array */
558         uint32_t deviceservices;
559 } __attribute__((packed));
560
561 struct mbimevententry {
562         uint8_t deviceserviceid[16];
563         uint32_t cidscount;
564         /* array type: guint32-array */
565         uint32_t cids;
566 } __attribute__((packed));
567
568 /*
569  * ID: 19
570  * Command: Device Service Subscribe List
571  */
572
573 #define MBIM_CMD_BASIC_CONNECT_DEVICE_SERVICE_SUBSCRIBE_LIST    19
574
575 struct mbim_basic_connect_device_service_subscribe_list_r {
576         uint32_t eventscount;
577         /* array type: ref-struct-array */
578         uint32_t events;
579 } __attribute__((packed));
580
581 struct mbim_basic_connect_device_service_subscribe_list_s {
582         uint32_t eventscount;
583         /* array type: ref-struct-array */
584         uint32_t events;
585 } __attribute__((packed));
586
587 /*
588  * ID: 20
589  * Command: Packet Statistics
590  */
591
592 #define MBIM_CMD_BASIC_CONNECT_PACKET_STATISTICS        20
593
594 struct mbim_basic_connect_packet_statistics_r {
595         uint32_t indiscards;
596         uint32_t inerrors;
597         uint64_t inoctets;
598         uint64_t inpackets;
599         uint64_t outoctets;
600         uint64_t outpackets;
601         uint32_t outerrors;
602         uint32_t outdiscards;
603 } __attribute__((packed));
604
605 /*
606  * ID: 21
607  * Command: Network Idle Hint
608  */
609
610 #define MBIM_CMD_BASIC_CONNECT_NETWORK_IDLE_HINT        21
611
612 struct mbim_basic_connect_network_idle_hint_r {
613         /* enum MbimNetworkIdleHintState */
614         uint32_t state;
615 } __attribute__((packed));
616
617 struct mbim_basic_connect_network_idle_hint_s {
618         /* enum MbimNetworkIdleHintState */
619         uint32_t state;
620 } __attribute__((packed));
621
622 /*
623  * ID: 22
624  * Command: Emergency Mode
625  */
626
627 #define MBIM_CMD_BASIC_CONNECT_EMERGENCY_MODE   22
628
629 struct mbim_basic_connect_emergency_mode_r {
630         /* enum MbimEmergencyModeState */
631         uint32_t state;
632 } __attribute__((packed));
633
634 struct mbim_basic_connect_emergency_mode_s {
635         /* enum MbimEmergencyModeState */
636         uint32_t state;
637 } __attribute__((packed));
638
639 struct mbim_basic_connect_emergency_mode_n {
640         /* enum MbimEmergencyModeState */
641         uint32_t state;
642 } __attribute__((packed));
643
644 struct mbimpacketfilter {
645         uint32_t filtersize;
646         /* array type: ref-byte-array */
647         uint32_t packetfilter;
648         /* array type: ref-byte-array */
649         uint32_t packetmask;
650 } __attribute__((packed));
651
652 /*
653  * ID: 23
654  * Command: IP Packet Filters
655  */
656
657 #define MBIM_CMD_BASIC_CONNECT_IP_PACKET_FILTERS        23
658
659 struct mbim_basic_connect_ip_packet_filters_q {
660         uint32_t sessionid;
661         uint32_t packetfilterscount;
662         /* array type: ref-struct-array */
663         uint32_t packetfilters;
664 } __attribute__((packed));
665
666 struct mbim_basic_connect_ip_packet_filters_r {
667         uint32_t sessionid;
668         uint32_t packetfilterscount;
669         /* array type: ref-struct-array */
670         uint32_t packetfilters;
671 } __attribute__((packed));
672
673 struct mbim_basic_connect_ip_packet_filters_s {
674         uint32_t sessionid;
675         uint32_t packetfilterscount;
676         /* array type: ref-struct-array */
677         uint32_t packetfilters;
678 } __attribute__((packed));
679
680 /*
681  * ID: 24
682  * Command: Multicarrier Providers
683  */
684
685 #define MBIM_CMD_BASIC_CONNECT_MULTICARRIER_PROVIDERS   24
686
687 struct mbim_basic_connect_multicarrier_providers_r {
688         uint32_t providerscount;
689         /* array type: ref-struct-array */
690         uint32_t providers;
691 } __attribute__((packed));
692
693 struct mbim_basic_connect_multicarrier_providers_s {
694         uint32_t providerscount;
695         /* array type: ref-struct-array */
696         uint32_t providers;
697 } __attribute__((packed));
698
699 struct mbim_basic_connect_multicarrier_providers_n {
700         uint32_t providerscount;
701         /* array type: ref-struct-array */
702         uint32_t providers;
703 } __attribute__((packed));
704