blob: d086667500db2d3fc2b549cc068fb28f98c98440 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2012
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
rjw6c1fd8f2022-11-30 14:33:01 +080036
37#ifndef _ATP_D2AT_STRUCT_H
38#define _ATP_D2AT_STRUCT_H
39
40#include "kal_general_types.h"
41#include "kal_public_defs.h"
42#include "atcmd_struct.h"
43
44#include "d2pm_d2rm_struct.h"
45#include "ursp_public_defs.h"
46#include "ursp_struct.h"
47
48#define APN_PARAMETER_STRING_LEN (1024)
49#define EIF_CMD_STRING_LEN (16)
50#define EPDN_CMD_STRING_LEN (16)
51
52/*******************************************************************************/
53/* Caution!! */
54/* LOCAL_PARA_HDR and src_id MUST be the 1st and 2nd parameters, respectively. */
55/*******************************************************************************/
56#define ATP_D2AT_REQ_LOCAL_PARA_HDR \
57 LOCAL_PARA_HDR \
58 kal_uint32 src_id; \
59 kal_uint32 cmd_mode;
60
61#define ATP_D2AT_CNF_LOCAL_PARA_HDR \
62 LOCAL_PARA_HDR \
63 kal_uint32 src_id; \
64 kal_bool is_success; \
65 kal_uint16 err_cause;
66
67#define ATP_D2AT_IND_LOCAL_PARA_HDR \
68 LOCAL_PARA_HDR \
69 kal_uint32 src_id; \
70
71#define ATP_D2AT_L4_CMD_IND_LOCAL_PARA_HDR \
72 LOCAL_PARA_HDR \
73 kal_uint32 src_id;
74
75#define ATP_D2AT_L4_RSP_IND_LOCAL_PARA_HDR \
76 LOCAL_PARA_HDR \
77 kal_uint32 src_id; \
78 kal_bool is_success; \
79 kal_uint16 err_cause;
80
81typedef struct atp_d2at_hdr atp_d2at_hdr_t;
82typedef struct atp_d2at_hdr* atp_d2at_hdr_ptr_t;
83struct atp_d2at_hdr
84{
85 LOCAL_PARA_HDR
86 kal_uint32 src_id;
87};
88
89
90/*******************************************************************************
91* Internal *
92*******************************************************************************/
yu.dongc592bc72024-04-24 22:45:13 -070093// N/A
94
rjw6c1fd8f2022-11-30 14:33:01 +080095/*******************************************************************************
96* ATP to DAST request and DAST to ATP confrim *
97*******************************************************************************/
98//General REQ struct
99typedef struct {
100 ATP_D2AT_REQ_LOCAL_PARA_HDR
101} atp_d2at_req_struct;
102
103//General CNF struct
104typedef struct {
105 ATP_D2AT_CNF_LOCAL_PARA_HDR
106} atp_d2at_cnf_struct;
107
108//AT+CFUN REQ
109typedef struct {
110 ATP_D2AT_REQ_LOCAL_PARA_HDR
111 kal_bool state;
112} atp_d2at_cfun_req_struct;
113//AT+CFUN CNF
114typedef struct {
115 ATP_D2AT_CNF_LOCAL_PARA_HDR
116} atp_d2at_cfun_cnf_struct;
117
118//AT+EFUN REQ
119typedef struct {
120 ATP_D2AT_REQ_LOCAL_PARA_HDR
121 kal_bool state;
122} atp_d2at_efun_req_struct;
123//AT+EFUN CNF
124typedef struct {
125 ATP_D2AT_CNF_LOCAL_PARA_HDR
126} atp_d2at_efun_cnf_struct;
127
128//AT+EDALLOW REQ
129typedef struct {
130 ATP_D2AT_REQ_LOCAL_PARA_HDR
131 kal_uint8 edallow_value;
132 kal_uint8 para;
133} atp_d2at_edallow_req_struct;
134
135//AT+EDALLOW CNF
136typedef struct {
137 ATP_D2AT_CNF_LOCAL_PARA_HDR
138} atp_d2at_edallow_cnf_struct;
139
140//AT+EDATASIM REQ
141typedef struct {
142 ATP_D2AT_REQ_LOCAL_PARA_HDR
143 kal_uint8 sim_slot;
144} atp_d2at_edatasim_req_struct;
145
146//AT+EDATASIM CNF
147typedef struct {
148 ATP_D2AT_CNF_LOCAL_PARA_HDR
149} atp_d2at_edatasim_cnf_struct;
150
151//AT+EIAMDPREFER REQ
152typedef struct {
153 ATP_D2AT_REQ_LOCAL_PARA_HDR
154 kal_bool ia_md_prefer;
155} atp_d2at_eiamdprefer_req_struct;
156
157//AT+EIAMDPREFER CNF
158typedef struct {
159 ATP_D2AT_CNF_LOCAL_PARA_HDR
160} atp_d2at_eiamdprefer_cnf_struct;
161
162//AT+ACTTEST CNF
163typedef struct {
164 ATP_D2AT_CNF_LOCAL_PARA_HDR
165} atp_d2at_acttest_cnf_struct;
166//READ response = [+CGDCONT: <cid>,<PDP_type>,<APN>,<PDP_addr>,<d_comp>,<h_comp>[,<IPv4AddrAlloc>[,<request_type>[,<P-CSCF_discovery>[,<IM_CN_Signalling_Flag_Ind>[,<NSLPI>[,<securePCO>[,<IPv4_MTU_discovery>[,<Local_Addr_Ind>]]]]]]]]]
167typedef struct
168{
169 ATP_D2AT_REQ_LOCAL_PARA_HDR
170
171 at_token_parse_result_enum cid_parse_result;
172 kal_uint32 cid; // integer type
173 at_token_parse_result_enum PDP_type_parse_result;
174 kal_uint8 PDP_type[PDP_TYPE_STRING_LEN]; // string type
175 at_token_parse_result_enum APN_parse_result;
176 kal_uint8 APN[APN_STRING_LEN]; // string type
177 at_token_parse_result_enum PDP_addr_parse_result;
178 kal_uint8 PDP_addr[APN_STRING_LEN]; // string type
179 at_token_parse_result_enum d_comp_parse_result;
180 atcmd_d_comp_enum d_comp; // integer type
181 at_token_parse_result_enum h_comp_parse_result;
182 atcmd_h_comp_enum h_comp; // integer type
183 at_token_parse_result_enum IPv4AddrAlloc_parse_result;
184 atcmd_IPv4AddrAlloc_enum IPv4AddrAlloc; // integer type
185 at_token_parse_result_enum request_type_parse_result;
186 atcmd_request_type_enum request_type; // integer type
187 at_token_parse_result_enum P_CSCF_discovery_parse_result;
188 atcmd_P_CSCF_discovery_enum P_CSCF_discovery; // integer type
189 at_token_parse_result_enum IM_CN_Signalling_Flag_Ind_parse_result;
190 atcmd_IM_CN_Signalling_Flag_Ind_enum IM_CN_Signalling_Flag_Ind; // integer type
191 /*
192 at_token_parse_result_enum NSLPI_parse_result;
193 atcmd_NSLPI_enum NSLPI; // integer type
194 at_token_parse_result_enum securePCO_parse_result;
195 atcmd_securePCO_enum securePCO; // integer type
196 at_token_parse_result_enum IPv4_MTU_discovery_parse_result;
197 atcmd_IPv4_MTU_discovery_enum IPv4_MTU_discovery; // integer type
198 at_token_parse_result_enum Local_Addr_Ind_parse_result;
199 atcmd_Local_Addr_Ind_enum Local_Addr_Ind; // integer type
200 */
201} atp_d2at_cgdcont_req_struct1;
202
203
204typedef struct
205{
206 ATP_D2AT_REQ_LOCAL_PARA_HDR
207
208 kal_bool apn_present;
209 kal_char apn[APN_STRING_LEN]; // string type
210 kal_bool apn_idx_present;
211 kal_int32 apn_idx;
212 kal_bool request_type_present;
213 atcmd_request_type_enum request_type; // integer type
214 kal_bool rat_type_present;
215 kal_uint32 rat_type;
216 kal_bool d_comp_present;
217 kal_uint32 d_comp;
218 kal_bool h_comp_present;
219 kal_uint32 h_comp;
220 kal_bool P_CSCF_discovery_present;
221 kal_uint32 P_CSCF_discovery;
222 kal_bool IM_CN_Signalling_Flag_Ind_present;
223 kal_uint32 IM_CN_Signalling_Flag_Ind;
224} atp_d2at_lgdcont_req_struct;
225
226
227typedef struct
228{
229 ATP_D2AT_REQ_LOCAL_PARA_HDR
230
231 kal_bool apn_present;
232 kal_char apn[APN_STRING_LEN]; // string type
233 kal_bool apn_idx_present;
234 kal_int32 apn_idx;
235 kal_bool s_nssai_present;
yu.dongc592bc72024-04-24 22:45:13 -0700236 at_s_nssai_struct s_nssai;
rjw6c1fd8f2022-11-30 14:33:01 +0800237} atp_d2at_enssai_req_struct;
238
239
240typedef struct
241{
242 ATP_D2AT_REQ_LOCAL_PARA_HDR
243
244 kal_int32 reset_d2_apn;
245 kal_int32 reset_gprs_apn;
246
247} atp_d2at_rstiaapn_req_struct;
248
249
250typedef struct
251{
252 ATP_D2AT_IND_LOCAL_PARA_HDR
253
254 kal_bool cid_present;
255 kal_uint32 cid; // integer type
256 kal_bool PDP_type_present;
257 kal_uint8 PDP_type[PDP_TYPE_STRING_LEN]; // string type
258 kal_bool APN_present;
259 kal_uint8 APN[APN_STRING_LEN]; // string type
260 kal_bool PDP_addr_present;
261 kal_uint8 PDP_addr[APN_STRING_LEN]; // string type
262 kal_bool d_comp_present;
263 atcmd_d_comp_enum d_comp; // integer type
264 kal_bool h_comp_present;
265 atcmd_h_comp_enum h_comp; // integer type
266 kal_bool IPv4AddrAlloc_present;
267 atcmd_IPv4AddrAlloc_enum IPv4AddrAlloc; // integer type
268 kal_bool request_type_present;
269 atcmd_request_type_enum request_type; // integer type
270 kal_bool P_CSCF_discovery_present;
271 atcmd_P_CSCF_discovery_enum P_CSCF_discovery; // integer type
272 kal_bool IM_CN_Signalling_Flag_Ind_present;
273 atcmd_IM_CN_Signalling_Flag_Ind_enum IM_CN_Signalling_Flag_Ind; // integer type
274 /*
275 kal_bool NSLPI_present;
276 atcmd_NSLPI_enum NSLPI; // integer type
277 kal_bool securePCO_present;
278 atcmd_securePCO_enum securePCO; // integer type
279 kal_bool IPv4_MTU_discovery_present;
280 atcmd_IPv4_MTU_discovery_enum IPv4_MTU_discovery; // integer type
281 kal_bool Local_Addr_Ind_present;
282 atcmd_Local_Addr_Ind_enum Local_Addr_Ind; // integer type
283 */
yu.dongc592bc72024-04-24 22:45:13 -0700284
rjw6c1fd8f2022-11-30 14:33:01 +0800285} atp_d2at_cgdcont_ind_struct1;
286
287
288
289//AT+CGDCONT CNF
290
yu.dongc592bc72024-04-24 22:45:13 -0700291typedef struct {
292 ATP_D2AT_CNF_LOCAL_PARA_HDR
rjw6c1fd8f2022-11-30 14:33:01 +0800293}atp_d2at_cgdcont_cnf_struct;
294
yu.dongc592bc72024-04-24 22:45:13 -0700295typedef struct {
296 ATP_D2AT_CNF_LOCAL_PARA_HDR
rjw6c1fd8f2022-11-30 14:33:01 +0800297}atp_d2at_cgauth_cnf_struct;
298
299/*******************/
300/* D2CM/D2PM Start */
301/*******************/
302
303// AT+EAPNLOCK
304typedef struct
305{
306 ATP_D2AT_REQ_LOCAL_PARA_HDR
307
308 kal_uint32 sim_id;
yu.dongc592bc72024-04-24 22:45:13 -0700309 atcmd_state_enum state;
rjw6c1fd8f2022-11-30 14:33:01 +0800310 kal_uint8 iccid[USERID_STRING_LEN]; // string type
311}atp_d2at_eapnlock_req_struct;
312
313typedef struct
314{
315 ATP_D2AT_CNF_LOCAL_PARA_HDR
316
317 atcmd_state_enum state;
318}atp_d2at_eapnlock_cnf_struct;
319
320
321// AT+EAPNSET
322typedef struct
323{
324 at_token_parse_result_enum userid_parse_result;
325 kal_uint8 userid[USERID_STRING_LEN]; // string type
326 at_token_parse_result_enum password_parse_result;
327 kal_uint8 password[PASSWORD_STRING_LEN]; // string type
328} at_eapnset_up_struct;
329
330
331// AT+EAPNSET
332/*
333typedef struct
334{
335 at_token_parse_result_enum S_NSSAI_parse_result;
336 at_s_nssai_struct S_NSSAI; // string type
337 at_token_parse_result_enum SSC_mode_parse_result;
338 atcmd_SSC_mode_enum SSC_mode; // integer type
yu.dongc592bc72024-04-24 22:45:13 -0700339 at_token_parse_result_enum Access_type_parse_result;
340 atcmd_Access_type_enum Access_type; // integer type
rjw6c1fd8f2022-11-30 14:33:01 +0800341} at_eapnset_UE_local_config_struct;
342*/
343
344
345typedef struct
346{
347 ATP_D2AT_REQ_LOCAL_PARA_HDR
348
349 kal_uint32 sim_id;
350 kal_bool apn_present;
351 kal_uint8 apn[APN_STRING_LEN]; // string type
yu.dongc592bc72024-04-24 22:45:13 -0700352 kal_bool cmd_present;
rjw6c1fd8f2022-11-30 14:33:01 +0800353 kal_uint32 cmd; // integer type
354
355 union
356 {
yu.dongc592bc72024-04-24 22:45:13 -0700357 kal_uint8 apn_parameter[APN_PARAMETER_STRING_LEN];
358 at_eapnset_up_struct user_passwd;
rjw6c1fd8f2022-11-30 14:33:01 +0800359 at_eapnset_UE_local_config_struct UE_local_config;
360 } param;
361}atp_d2at_eapnset_req_struct;
362
363typedef struct
364{
365 ATP_D2AT_IND_LOCAL_PARA_HDR
366
367 kal_uint32 cmd_mode;
368
369 union
370 {
371 kal_uint8 apn_parameter[APN_PARAMETER_STRING_LEN];
372 struct
373 {
374 kal_uint8 apn[APN_STRING_LEN];
375 kal_uint8 username[USERID_STRING_LEN];
376 kal_uint8 passwd[PASSWORD_STRING_LEN];
377 kal_uint32 type;
378 kal_uint8 pdp_type[PDP_TYPE_STRING_LEN];
379 kal_uint8 roam_prot[ROAMING_IP_TYPE_STRING_LEN];
380 kal_uint32 auth_type;
381 kal_bool carrier_enabled;
382 kal_uint32 max_conn;
383 kal_uint32 max_conn_time;
384 kal_uint32 wait_time;
385 kal_uint32 bearer_bitmask;
386 kal_uint32 inact_time;
387 }apn_info;
388 }param;
389}atp_d2at_eapnset_ind_struct;
390
391typedef struct
392{
393 ATP_D2AT_CNF_LOCAL_PARA_HDR
394}atp_d2at_eapnset_cnf_struct;
395
396
397// AT+EAPNACT
398typedef struct
399{
400 ATP_D2AT_REQ_LOCAL_PARA_HDR
401
402 kal_uint8 state;
403 kal_uint32 flag;
404
405 union
406 {
407 struct
408 {
409 kal_char apn[APN_STRING_LEN];
410 kal_int32 apn_idx;
411 kal_char type[APN_TYPE_STRING_LEN];
412 kal_bool cid_present;
413 kal_int32 cid;
414 kal_bool cgdcont_req_present;
415 at_cgdcont_req_struct cgdcont_req;
416 kal_bool rat_type_present;
417 atcmd_rat_enum rat_type;
418 atcmd_fallback_enable_enum ipv4v6_fb_enable; // integer type
419 atcmd_ipv4_first_enum ipv4v6_fb_ipv4_first; // integer type
420 kal_bool if_id_present;
421 kal_int32 if_id;
422 ursp_traffic_desc_struct traffic_desc;
423 ursp_ue_local_conf_struct ue_local_conf;
424 kal_bool match_all_disallow;
425 }act;
426
427 struct
428 {
429 kal_int32 cid;
430 atcmd_deact_cause_enum reason;
431 }deact;
432 }param;
433}atp_d2at_eapnact_req_struct;
434
435typedef struct
436{
437 ATP_D2AT_IND_LOCAL_PARA_HDR
438
439 kal_uint8 state;
440 kal_int32 cid, fb_cid, reason;
441}atp_d2at_eapnact_ind_struct;
442
443typedef struct
444{
445 ATP_D2AT_CNF_LOCAL_PARA_HDR
446
447 // N/A
448}atp_d2at_eapnact_cnf_struct;
449
450
451// AT+EAPNRESV
452typedef struct
453{
454 ATP_D2AT_REQ_LOCAL_PARA_HDR
455
456 atcmd_state_enum state;
457 union
458 {
459 struct
460 {
461 kal_bool cid_present;
462 kal_int32 cid;
463 }act;
464
465 struct
466 {
467 kal_int32 cid;
468 }deact;
469 }param;
470}atp_d2at_eapnresv_req_struct;
471
472typedef struct
473{
474 ATP_D2AT_CNF_LOCAL_PARA_HDR
475
476 atcmd_state_enum state;
477 union
478 {
479 struct
480 {
481 kal_int32 cid;
482 }act;
483
484 struct
485 {
486 kal_int32 cid;
487 }deact;
488 }param;
489}atp_d2at_eapnresv_cnf_struct;
490
491
492// AT+EPDN
493typedef struct
494{
495 ATP_D2AT_REQ_LOCAL_PARA_HDR
496
497 kal_uint32 aid;
498 kal_uint32 state_mask;
499 kal_uint8 cmd[EPDN_CMD_STRING_LEN];
500}atp_d2at_epdn_req_struct;
501
502typedef struct
503{
504 ATP_D2AT_IND_LOCAL_PARA_HDR
505
506 kal_int32 aid;
507 kal_uint8 cmd[EPDN_CMD_STRING_LEN];
508 kal_uint32 event;
509 kal_int32 if_id;
510 kal_uint32 ran_type;
511 kal_uint32 mtu;
512 kal_uint32 pdp_type;
513 kal_uint32 deact_reason;
514 kal_bool ipv4_addr_present;
515 kal_uint8 ipv4_addr[MAXIMUM_POSSIBLE_ADDR_LEN];
516 kal_int32 ipv4_netmask;
517 kal_bool ipv6_addr_present;
518 kal_uint8 ipv6_addr[MAXIMUM_POSSIBLE_ADDR_LEN];
519 kal_int32 ipv6_prefix_len;
520} atp_d2at_epdn_ind_struct;
521
522typedef struct
523{
524 ATP_D2AT_CNF_LOCAL_PARA_HDR
525}atp_d2at_epdn_cnf_struct;
526
527
528// +EPDN
529typedef atp_d2at_epdn_ind_struct atp_d2at_ap_urc_epdn_ind_struct;
530
531
532// AT+EGFB
533typedef struct
534{
535 ATP_D2AT_REQ_LOCAL_PARA_HDR
536 at_token_parse_result_enum fallback_enable_parse_result;
537 atcmd_fallback_enable_enum fallback_enable; // integer type
538 at_token_parse_result_enum ipv4_first_parse_result;
539 atcmd_ipv4_first_enum ipv4_first; // integer type
540}atp_d2at_egfb_req_struct;
541
542typedef struct
543{
544 ATP_D2AT_CNF_LOCAL_PARA_HDR
545}atp_d2at_egfb_cnf_struct;
546
547
548// AT+EDRETRY
549typedef struct
550{
551 ATP_D2AT_REQ_LOCAL_PARA_HDR
552
553 kal_char apn[APN_STRING_LEN];
554 kal_bool mode_present;
555 kal_uint32 mode;
556 kal_bool reason_present;
557 kal_uint32 reason;
558}atp_d2at_edretry_req_struct;
559
560typedef struct {
561 ATP_D2AT_CNF_LOCAL_PARA_HDR
562
563 kal_bool retrytime_present;
564 kal_uint32 retrytime;
565}atp_d2at_edretry_cnf_struct;
566
567
568// +EDRETRY
569typedef struct
570{
571 ATP_D2AT_IND_LOCAL_PARA_HDR
572
573 kal_bool apn_present;
574 kal_char apn[APN_STRING_LEN];
575}atp_d2at_ap_urc_edretry_ind_struct;
576
577// AT+EDRETRYRDP
578typedef struct
579{
580 ATP_D2AT_REQ_LOCAL_PARA_HDR
581
582 kal_char apn[APN_STRING_LEN];
583}atp_d2at_edretryrdp_req_struct;
584
585typedef struct
586{
587 ATP_D2AT_IND_LOCAL_PARA_HDR
588
589 kal_char apn[APN_STRING_LEN];
590 iwlan_ran_e ran;
591
592 union
593 {
594 struct
595 {
596 atcmd_rat_enum rat;
597 kal_bool retrytime_present;
598 kal_uint32 retrytime;
599 }cell;
600
601 struct
602 {
603 kal_bool retrytime_present;
604 kal_uint32 retrytime;
605 }wlan;
606 }timer;
607
608}atp_d2at_edretryrdp_ind_struct;
609
610typedef struct {
611 ATP_D2AT_CNF_LOCAL_PARA_HDR
612}atp_d2at_edretryrdp_cnf_struct;
613
614// +CGPIAF
615typedef struct {
616 ATP_D2AT_REQ_LOCAL_PARA_HDR
617
618 kal_bool IPv6_AddressFormat_present;
619 kal_uint8 IPv6_AddressFormat;
620 kal_bool IPv6_SubnetNotation_present;
621 kal_uint8 IPv6_SubnetNotation;
622 kal_bool IPv6_LeadingZeros_present;
623 kal_uint8 IPv6_LeadingZeros;
624 kal_bool IPv6_CompressZeros_present;
625 kal_uint8 IPv6_CompressZeros;
626} atp_d2at_cgpiaf_req_struct;
627
628// AT+CGACT
629typedef struct
630{
631 ATP_D2AT_REQ_LOCAL_PARA_HDR
632
633 at_token_parse_result_enum state_parse_result;
634 atcmd_state_enum state;
635 at_token_parse_result_enum cid_parse_result;
636 kal_uint32 cid;
637}atp_d2at_cgact_req_struct;
638
639typedef struct
640{
641 ATP_D2AT_IND_LOCAL_PARA_HDR
642
643 at_token_parse_result_enum state_parse_result;
644 atcmd_state_enum state;
645 at_token_parse_result_enum cid_parse_result;
646 kal_uint32 cid;
647}atp_d2at_cgact_ind_struct;
648
649typedef struct
650{
651 ATP_D2AT_CNF_LOCAL_PARA_HDR
652
653 kal_uint32 ind_num;
654 at_cgact_ind_struct ind[MAX_PS_CID_NUM]; // NEED_TO_BE_NOTICED, to use a macro and indications?
655}atp_d2at_cgact_cnf_struct;
656
657
658// AT+CGCONTRDP
659typedef struct
660{
661 ATP_D2AT_REQ_LOCAL_PARA_HDR
662
663 at_token_parse_result_enum cid_parse_result;
yu.dongc592bc72024-04-24 22:45:13 -0700664 kal_uint32 cid;
rjw6c1fd8f2022-11-30 14:33:01 +0800665}atp_d2at_cgcontrdp_req_struct;
666
667typedef struct
668{
669 ATP_D2AT_IND_LOCAL_PARA_HDR
670
671 at_cgcontrdp_ind_struct ind;
672}atp_d2at_cgcontrdp_ind_struct;
673
674typedef struct
675{
676 ATP_D2AT_CNF_LOCAL_PARA_HDR
677
678 // N/A
679}atp_d2at_cgcontrdp_cnf_struct;
680
681
682// AT+ESIMMAP, NEED_TO_BE_NOTICED, monitoring only
yu.dongc592bc72024-04-24 22:45:13 -0700683typedef struct
rjw6c1fd8f2022-11-30 14:33:01 +0800684{
685 ATP_D2AT_REQ_LOCAL_PARA_HDR
686
687 kal_uint8 sim_id;
688 kal_uint8 curr_sim_slot[MAX_SIM_NUM];
689}atp_d2at_esimmap_req_struct;
690
691
692// AT+EPSMAP, NEED_TO_BE_NOTICED, monitoring only
yu.dongc592bc72024-04-24 22:45:13 -0700693typedef struct
rjw6c1fd8f2022-11-30 14:33:01 +0800694{
695 ATP_D2AT_REQ_LOCAL_PARA_HDR
696
697 kal_uint8 num_of_sim;
698 kal_uint8 sim_slot[MAX_SIM_NUM];
699 kal_uint8 curr_sim_slot[MAX_SIM_NUM];
700}atp_d2at_epsmap_req_struct;
701
702
703// +EAPNINFO IND
704typedef struct
705{
706 ATP_D2AT_IND_LOCAL_PARA_HDR
707
708 msg_type event;
709 kal_char prefix[APN_STRING_LEN];
710
711 union
712 {
713 // AT+EAPNSET
714 struct
715 {
716 kal_char apn[APN_STRING_LEN];
717 kal_uint32 pdn_state;
718 kal_int32 p_cid;
719 kal_int32 fb_cid;
720 kal_uint32 pdp_type;
721 kal_uint32 roam_prot;
722 kal_uint32 flag; // is_alias, is_usable
723 }eapnset;
724
725 // AT+EAPNACT
726 struct
727 {
728 kal_uint8 state;
729
730 union
731 {
732 struct
733 {
734 kal_char apn[APN_STRING_LEN];
735 kal_int32 pdn_state;
736 kal_char apn_type[APN_TYPE_STRING_LEN];
737 kal_int32 p_cid;
738 kal_int32 fb_cid;
739 kal_uint32 pdp_type;
740 kal_int32 if_id;
741 kal_uint32 suff_cond;
742 kal_uint32 ap_if_status;
743 kal_uint32 md_if_status;
744 kal_uint32 usr_list;
745 kal_uint32 flag; // is_ack, is_dangling, is_abort, is_forced
746 kal_bool cgdcont_req_present;
747 }act;
748
749 struct
750 {
751 kal_int32 cid;
752 kal_int32 bearer_state;
753 kal_char apn[APN_STRING_LEN];
754 kal_int32 p_cid;
755 kal_int32 fb_cid;
756 kal_uint32 pdp_type;
757 kal_int32 if_id;
758 kal_uint32 ap_if_status;
yu.dongc592bc72024-04-24 22:45:13 -0700759 kal_uint32 md_if_status;
rjw6c1fd8f2022-11-30 14:33:01 +0800760 kal_uint32 usr_list;
761 kal_uint32 flag;
762 }deact;
763 }param;
764 }eapnact;
765
766 // AT+EPDN
767 struct
768 {
769 kal_int32 cid;
770 kal_int32 bearer_state;
771 kal_uint32 pdp_type;
772 kal_int32 if_id;
773 kal_uint32 cond;
774 kal_uint32 ap_if_status;
775 kal_uint32 md_if_status;
776 kal_uint32 usr_list;
777 }epdn;
778 }info;
779} atp_d2at_ap_urc_eapninfo_ind_struct;
780/*****************/
781/* D2CM/D2PM End */
782/*****************/
783
784/*****************/
785/* D2CM/D2PM Start */
786/*****************/
787
788/*****************/
789/* D2CM/D2PM End */
790/*****************/
791
792typedef enum {
793 ATP_D2AT_EIF_ADDR_TYPE_V4 = 1,
794 ATP_D2AT_EIF_ADDR_TYPE_V6 = 2,
795} atp_d2at_eif_addr_type_enum;
796
797typedef struct {
yu.dongc592bc72024-04-24 22:45:13 -0700798 kal_uint32 type;
rjw6c1fd8f2022-11-30 14:33:01 +0800799 kal_uint32 num;
800 kal_uint8 v4[4];
801 kal_uint8 v6[16];
802 kal_int32 v6_prefix;
803 kal_uint8 v4_2[4];
804 kal_uint8 v6_2[16];
805 kal_int32 v6_2_prefix;
806 kal_int32 mtu;
807} at_eif_ip_struct;
808
809typedef struct {
810 kal_char buf[512];
811} at_eif_str_struct;
812
813typedef struct {
814 ATP_D2AT_REQ_LOCAL_PARA_HDR
815
816 kal_uint32 interface_id;
817 kal_char cmd_str[EIF_CMD_STRING_LEN];
818 union {
819 at_eif_ip_struct ip;
820 at_eif_str_struct str;
821 } param;
822} atp_d2at_eif_req_struct;
823//AT+EIF CNF
824
825typedef struct {
826 ATP_D2AT_CNF_LOCAL_PARA_HDR
827} atp_d2at_eif_cnf_struct;
828
829typedef struct {
830 ATP_D2AT_CNF_LOCAL_PARA_HDR
831 kal_uint32 interface_id;
832 kal_uint32 ran;
833 new_ip_info_struct ip_info;
834} atp_d2at_eif_ind_struct;
835
836//AT+EAID REQ
837typedef struct {
838 ATP_D2AT_REQ_LOCAL_PARA_HDR
839
yu.dongc592bc72024-04-24 22:45:13 -0700840 atcmd_state_enum state;
rjw6c1fd8f2022-11-30 14:33:01 +0800841 kal_uint8 apn[APN_STRING_LEN];
842 kal_uint8 type[APN_TYPE_LIST_STRING_LEN];
843} atp_d2at_eaid_req_struct;
844//AT+EAID CNF
845typedef struct {
846 ATP_D2AT_CNF_LOCAL_PARA_HDR
847} atp_d2at_eaid_cnf_struct;
848
849//AT+EIAAPN REQ
850typedef struct {
851 ATP_D2AT_REQ_LOCAL_PARA_HDR
852 kal_uint8 sim_id;
853 kal_uint8 apn[APN_STRING_LEN];
854 kal_uint8 iccid[24]; // it's 20, just prevent over-boundary
855 kal_int32 apn_idx; // apn index in apn setting table
856 kal_uint8 pdp_type[PDP_TYPE_STRING_LEN]; // string type
857 kal_uint8 roaming_pdp_type[PDP_TYPE_STRING_LEN]; // string type
858 atcmd_auth_prot_enum auth_prot;
859 kal_uint8 userid[USERID_STRING_LEN];
860 kal_uint8 password[PASSWORD_STRING_LEN];
861} atp_d2at_eiaapn_req_struct;
862//AT+EIAAPN CNF
863typedef struct {
864 ATP_D2AT_CNF_LOCAL_PARA_HDR
865} atp_d2at_eiaapn_cnf_struct;
866
867// AT+EGDATA
868typedef struct
869{
870 ATP_D2AT_REQ_LOCAL_PARA_HDR
871 kal_uint32 if_type;
872}atp_d2at_egdata_req_struct;
873
874// AT+EPSI REQ
875typedef struct
876{
877 ATP_D2AT_REQ_LOCAL_PARA_HDR
878 kal_uint8 state;
879 kal_uint8 sim_id;
880 union {
881 struct {
882 kal_char apn[APN_STRING_LEN]; // string type
883 kal_bool apn_idx_present;
884 kal_int32 apn_idx;
885 kal_uint8 psi;
886 } epsi;
887
888 } param;
889} atp_d2at_epsi_req_struct;
890
891// AT+EPSI CNF
892typedef struct {
893 ATP_D2AT_CNF_LOCAL_PARA_HDR
894 kal_uint8 state;
895 kal_uint8 psi;
896} atp_d2at_epsi_cnf_struct;
897
898/*******************************************************************************
899* DAST to ATP IND (send URC to AP) *
900*******************************************************************************/
901//+CGEV IND: use at_cgev_ind_struct directly
902typedef struct {
903 ATP_D2AT_IND_LOCAL_PARA_HDR
904
905 cgev_event_enum event;
906
907 union {
908 cgev_nw_pdn_act_struct nw_pdn_act;
909 cgev_me_pdn_act_struct me_pdn_act;
910 cgev_nw_act_struct nw_act;
911 cgev_me_act_struct me_act;
912 cgev_nw_pdn_deact_struct nw_pdn_deact;
913 cgev_me_pdn_deact_struct me_pdn_deact;
914 cgev_nw_deact_struct nw_deact;
915 cgev_me_deact_struct me_deact;
916 cgev_nw_modify_struct nw_modify;
917 cgev_me_modify_struct me_modify;
918 cgev_reject_struct reject;
919 cgev_nw_react_struct nw_react;
920 } info;
921} atp_d2at_ap_urc_cgev_ind_struct;
922
923typedef struct {
924 ATP_D2AT_IND_LOCAL_PARA_HDR
925 at_escontind_ind_struct cmd;
926} atp_d2at_ap_urc_escontind_ind_struct;
927//+EIF IND
928typedef struct {
929 LOCAL_PARA_HDR
930
931 kal_uint32 interface_id;
932 kal_char cmd[EIF_CMD_STRING_LEN];
933 kal_uint32 cause;
934 new_ip_info_struct ip_info;
935 at_eif_str_struct str;
936} atp_d2at_ap_urc_eif_ind_struct;
937
938typedef d2pm_d2rm_pdn_ho_notify_ind_struct atp_d2at_ap_urc_eif_ho_ind_struct;
939
940/*******************************************************************************
941* DAST to ATP IND and ATP to DAST RSP (send AT to PS) *
942*******************************************************************************/
943//General IND
944typedef struct {
945 ATP_D2AT_L4_CMD_IND_LOCAL_PARA_HDR
946} atp_d2at_l4_cmd_ind_struct;
947//General RSP
948typedef struct {
949 ATP_D2AT_L4_RSP_IND_LOCAL_PARA_HDR
950} atp_d2at_l4_cmd_rsp_struct;
951
952//AT+CGATT IND
953typedef struct {
954 ATP_D2AT_L4_CMD_IND_LOCAL_PARA_HDR
955
yu.dongc592bc72024-04-24 22:45:13 -0700956 atcmd_state_enum state;
rjw6c1fd8f2022-11-30 14:33:01 +0800957} atp_d2at_l4_cmd_cgatt_ind_struct;
958//AT+CGATT RSP
959typedef struct {
960 ATP_D2AT_L4_RSP_IND_LOCAL_PARA_HDR
961} atp_d2at_l4_cmd_cgatt_rsp_struct;
962
963//AT+EGTYPE IND
964typedef struct {
965 ATP_D2AT_L4_CMD_IND_LOCAL_PARA_HDR
966
967 kal_char type[8];
968} atp_d2at_l4_cmd_egtype_ind_struct;
969//AT+EGTYPE RSP
970typedef struct {
971 ATP_D2AT_L4_RSP_IND_LOCAL_PARA_HDR
972} atp_d2at_l4_cmd_egtype_rsp_struct;
973
974//AT+ICCID IND
975typedef struct {
976 ATP_D2AT_L4_CMD_IND_LOCAL_PARA_HDR
977} atp_d2at_l4_cmd_iccid_ind_struct;
978
979//+ICCID RSP
980typedef struct {
981 ATP_D2AT_L4_RSP_IND_LOCAL_PARA_HDR
yu.dongc592bc72024-04-24 22:45:13 -0700982 kal_uint8 iccid[20];
rjw6c1fd8f2022-11-30 14:33:01 +0800983} atp_d2at_l4_cmd_iccid_rsp_struct;
984
985//AT+EGREA IND
986typedef struct {
987 ATP_D2AT_L4_CMD_IND_LOCAL_PARA_HDR
988 kal_char type[8];
989} atp_d2at_l4_cmd_egrea_ind_struct;
990//AT+EGREA RSP
991typedef struct {
992 ATP_D2AT_L4_RSP_IND_LOCAL_PARA_HDR
993} atp_d2at_l4_cmd_egrea_rsp_struct;
994
995typedef struct {
996 LOCAL_PARA_HDR
997 kal_uint8 apn[APN_STRING_LEN];
998 kal_uint32 pdp_type;
999 kal_uint32 apn_index;
1000} atp_d2at_ap_urc_eiareg_ind_struct;
1001
1002/*******************************************************************************
1003* ATP TO DAST IND (intercpt URC to ATP) *
1004*******************************************************************************/
1005//+ESIMS
1006typedef struct {
1007 LOCAL_PARA_HDR
1008} atp_d2at_l4_urc_esims_ind_struct;
1009
1010//+EUSIM
1011typedef struct {
1012 LOCAL_PARA_HDR
1013} atp_d2at_l4_urc_eusim_ind_struct;
1014
1015//+EGREG
1016typedef struct {
1017 LOCAL_PARA_HDR
1018 kal_uint8 ps_state;
1019 kal_uint16 rat_tech;
1020} atp_d2at_l4_urc_egreg_ind_struct;
1021/*******************************************************************************
1022* D2 TO D2 retry IND
1023*******************************************************************************/
1024typedef struct {
1025 LOCAL_PARA_HDR
1026 kal_uint8 ps_id;
1027 kal_uint8 pending_action; // attach or detach
1028} atp_d2am_d2_cmd_retry_ind_struct;
1029
1030typedef struct
1031{
1032 kal_uint8 IPv6_AddressFormat_present;
1033 kal_uint8 IPv6_AddressFormat;
1034 kal_uint8 IPv6_SubnetNotation_present;
1035 kal_uint8 IPv6_SubnetNotation;
1036 kal_uint8 IPv6_LeadingZeros_present;
1037 kal_uint8 IPv6_LeadingZeros;
1038 kal_uint8 IPv6_CompressZeros_present;
1039 kal_uint8 IPv6_CompressZeros;
1040} atp_cgpiaf_config_context_struct;
1041
1042typedef struct
1043{
1044 atcmd_cgerep_mode_enum mode;
1045 atcmd_bfr_enum bfr;
1046} atp_cgerep_config_context_struct;
1047
1048typedef struct
1049{
1050 kal_uint8 eiareg;
1051 kal_uint8 edretry;
1052 atp_cgerep_config_context_struct cgerep;
1053 atp_cgpiaf_config_context_struct cgpiaf;
yu.dongc592bc72024-04-24 22:45:13 -07001054} atp_d2at_report_mode_struct;
rjw6c1fd8f2022-11-30 14:33:01 +08001055
1056typedef struct
1057{
1058 atp_d2at_report_mode_struct report_mode;
1059} atp_d2at_context_struct;
1060
1061extern atp_d2at_context_struct atp_d2at_context_g[MAX_SIM_NUM];
1062
1063//AT+EIMSTESTMODE REQ
1064typedef struct {
1065 ATP_D2AT_REQ_LOCAL_PARA_HDR
1066 kal_uint8 ims_test_mode;
1067} atp_d2at_eimstestmode_req_struct;
1068
1069//AT+EIMSTESTMODE CNF
1070typedef struct {
1071 ATP_D2AT_CNF_LOCAL_PARA_HDR
1072} atp_d2at_eimstestmode_cnf_struct;
1073
1074//AT+EGDCACT REQ
1075typedef struct {
1076 ATP_D2AT_REQ_LOCAL_PARA_HDR
1077 kal_bool enable;
1078 kal_uint32 mode;
1079} atp_d2at_egdcact_req_struct;
1080
1081//AT+EGDCACT CNF
1082typedef struct {
1083 ATP_D2AT_CNF_LOCAL_PARA_HDR
1084} atp_d2at_egdcact_cnf_struct;
1085
1086typedef struct {
1087 ATP_D2AT_REQ_LOCAL_PARA_HDR
1088} atp_d2at_eiaattach_req_struct;
1089
1090typedef struct {
1091 LOCAL_PARA_HDR
1092 kal_uint8 apn[APN_STRING_LEN];
1093 kal_uint32 pdp_type;
1094 kal_bool is_success;
1095} atp_d2at_eiaattach_cnf_struct;
1096
1097
1098#endif /* _ATP_D2AT_STRUCT_H */