blob: 1ed58ae6ca4e5fd33a0c606efb05f7d4c33b4bda [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
36#ifndef __D2CM_STRUCT_H__
37#define __D2CM_STRUCT_H__
38
39#include "kal_general_types.h"
40#include "kal_public_defs.h"
41#include "ps_public_enum.h"
42#include "pdn_public_defs.h"
43#include "custom_d2_config.h"
44#include "d2pm_ddm_struct.h" // NEED_TO_BE_NOTICED, to review it
45#include "d2pm_d2rm_struct.h" // NEED_TO_BE_NOTICED, to review it
46#include "ursp_public_defs.h"
47#include "d2rm_public_defs.h"
48#include "n3epc_public_defs.h"
49#include "iwlan_public_defs.h"
50
51// Type definition
52typedef struct d2cm_hdr d2cm_hdr_t;
53typedef struct d2cm_hdr* d2cm_hdr_ptr_t;
54typedef d2pm_ddm_ims_prv_data_t d2cm_act_data_call_ims_info_struct;
55
56// Macros
57#define D2CM_REQ_LOCAL_PARA_HDR \
58 LOCAL_PARA_HDR \
59 kal_uint32 src_id;
60
61#define D2CM_CNF_LOCAL_PARA_HDR \
62 LOCAL_PARA_HDR \
63 kal_uint32 src_id;
64
65#define D2CM_IND_LOCAL_PARA_HDR \
66 LOCAL_PARA_HDR \
67 kal_uint32 src_id;
68
69#define D2CM_RSP_LOCAL_PARA_HDR \
70 LOCAL_PARA_HDR \
71 kal_uint32 src_id;
72
73// Functions
74// N/A
75
76// Implementation
77struct d2cm_hdr
78{
79 LOCAL_PARA_HDR
80 kal_uint32 src_id;
81};
82
83/*******************************************************************************
84* Internal *
85*******************************************************************************/
86
87typedef struct {
88 // Header path: //VMOLY/BRANCHES_NR15/NR15.R3.MP/mcu/interface/protocol/general/ps_public_enum.h
89 ps_cause_enum deact_cause, mod_cause;
90}ddm_deact_res_info_struct;
91
92typedef struct {
93 iwlan_ran_e ran;
94
95 union {
96 ddm_deact_res_info_struct ddm_res_info;
97// n3x_deact_res_info_struct data4_res_info;
98 }res;
99}ran_deact_res_info;
100
101typedef union {
102 ran_deact_res_info ran_deact_res[RPL_PRIO_CNT + 1];
103}deact_res_info_struct;
104
105
106/*******************************************************************************
107* User to D2CM REQ *
108*******************************************************************************/
109
110// MSG_ID_D2CM_GET_PDN_PROFILE_REQ
111typedef struct
112{
113 D2CM_REQ_LOCAL_PARA_HDR
114
115 /* common part */
116 // => unique key of APN
117 kal_bool apn_present;
118 kal_char apn[APN_STRING_LEN];
119 kal_int32 apn_idx;
120 // => unique key of CID
121 kal_bool cid_present;
122 kal_int32 cid;
123 // => non-key values
124 kal_uint32 flag;
125
126 /* operater part */
127 kal_uint32 mcc_mnc;
128 union
129 {
130 struct
131 {
132 kal_uint32 apncl;
133 }vzw;
134 }op;
135
136 /* private part */
137 union
138 {
139 kal_uint8 unused;
140 }prv;
141}d2cm_get_pdn_profile_req_struct;
142
143
144// MSG_ID_D2CM_ACT_DATA_CALL_REQ
145typedef struct
146{
147 kal_bool cid_present;
148 kal_int32 cid;
149 kal_bool cgdcont_req_present;
150 at_cgdcont_req_struct cgdcont_req;
151 kal_uint32 tm_flag;
152 kal_bool if_id_present;
153 kal_int32 if_id;
154 kal_bool egpco_req_present;
155 at_egpco_req_struct egpco_req;
156}d2at_d2cm_act_data_call_req_prv_struct;
157
158typedef struct
159{
160 kal_int32 cid;
161 kal_int32 p_cid;
162 kal_int32 fb_cid;
163}d2am_d2cm_act_data_call_req_prv_struct;
164
165typedef struct
166{
167 kal_bool pcscf_restore;
168}imsm_d2cm_act_data_call_req_prv_struct;
169
170typedef struct
171{
172 kal_bool is_defined;
173 kal_char pdp_type[PDP_TYPE_STRING_LEN];
174 kal_char roam_prot[ROAMING_IP_TYPE_STRING_LEN];
175 kal_char username[APN_STRING_LEN];
176 kal_char passwd[APN_STRING_LEN];
177 kal_int8 auth_type;
178 ran_filter_struct ran_filter; // MUST give a value regardless of is_defined, by MTK14037
179 kal_bool qos_param_present;
180 kal_int32 qos_reliability;
181 kal_int32 qos_precedence_class;
182 kal_int32 qos_delay_class;
183 kal_int32 qos_peak_throughput_class;
184 kal_int32 qos_mean_throughput_class;
185}bip_d2cm_act_data_call_req_prv_struct;
186
187typedef struct
188{
189 kal_int32 if_id;
190 kal_uint32 bearer_bitmask;
191 kal_bool egpco_req_present;
192 at_egpco_req_struct egpco_req;
193}l5updn_d2cm_act_data_call_req_prv_struct;
194
195typedef struct
196{
197 D2CM_REQ_LOCAL_PARA_HDR
198
199 /* common part */
200 kal_char apn[APN_STRING_LEN];
201 kal_int32 apn_idx;
202 kal_char apn_type[APN_TYPE_STRING_LEN];
203 kal_uint32 suff_cond;
204 kal_uint32 flag;
205 d2cm_ipv4v6_fb_pref_enum ipv4v6_fb_pref;
206 ran_filter_struct ran_filter;
207
208 /* ursp part */
209 struct
210 {
211 kal_bool is_match_all;
212 kal_uint8 dnn_len;
213 kal_char dnn[URSP_TDC_LEN_DNN]; // APN in TS 23.003
214 kal_uint8 os_id[URSP_TDC_LEN_OS_ID]; // UUID in RFC 4122
215 kal_uint8 app_id_len;
216 kal_uint8 app_id[URSP_TDC_LEN_OS_APP_ID];
217 kal_uint8 ipv4_addr[URSP_TDC_LEN_IPV4_REMOTE_ADDR];
218 kal_uint8 ipv4_mask[URSP_TDC_LEN_IPV4_REMOTE_MASK];
219 kal_uint8 ipv6_addr[URSP_TDC_LEN_IPV6_REMOTE_ADDR];
220 kal_uint8 ipv6_prefix_len;
221 kal_uint8 prot_id_next_hdr;
222 kal_uint16 single_remote_port;
223 kal_uint16 min_remote_port;
224 kal_uint16 max_remote_port;
225 kal_uint8 dst_fqdn_len;
226 kal_uint8 dst_fqdn[URSP_TDC_LEN_DST_FQDN];
227 }traffic_desc;
228
229 struct
230 {
231 kal_uint8 ssc_mode;
232 kal_uint8 s_nssai_len;
233 kal_uint8 s_nssai[URSP_RSDC_LEN_S_NSSAI];
234 kal_uint8 dnn_len;
235 kal_uint8 dnn[URSP_TDC_LEN_DNN]; // APN in TS 23.003
236 kal_uint8 pdu_session_type;
237 kal_uint8 pref_access_type;
238 }ue_local_conf;
239 kal_uint32 ursp_eval_flag;
240
241 /* custom part */
242 /* Since AP fully controls APN settings in Gen93, this part can create a new APN setting, but cannot overwrite an existing one. */
243 kal_bool has_custom;
244 kal_char pdp_type[PDP_TYPE_STRING_LEN];
245 kal_char roam_prot[ROAMING_IP_TYPE_STRING_LEN];
246 kal_char username[APN_STRING_LEN];
247 kal_char passwd[APN_STRING_LEN];
248 kal_int8 auth_type;
249
250 /* private part */
251 union
252 {
253 d2at_d2cm_act_data_call_req_prv_struct d2at;
254 d2am_d2cm_act_data_call_req_prv_struct d2am;
255 imsm_d2cm_act_data_call_req_prv_struct imsm;
256 bip_d2cm_act_data_call_req_prv_struct bip;
257 l5updn_d2cm_act_data_call_req_prv_struct l5updn;
258 }prv;
259}d2cm_act_data_call_req_struct;
260
261// MSG_ID_D2CM_DEACT_DATA_CALL_REQ
262typedef struct
263{
264 kal_uint32 tm_flag;
265}d2at_d2cm_deact_data_call_req_prv_struct;
266
267typedef d2am_ddm_deact_data_call_req_prv_struct d2am_d2cm_deact_data_call_req_prv_struct;
268
269typedef struct
270{
271 D2CM_REQ_LOCAL_PARA_HDR
272
273 /* common part */
274 kal_int32 cid;
275 atcmd_deact_cause_enum reason;
276
277 /* private part */
278 union
279 {
280 d2at_d2cm_deact_data_call_req_prv_struct d2at;
281 d2am_d2cm_deact_data_call_req_prv_struct d2am;
282 }prv;
283}d2cm_deact_data_call_req_struct;
284
285
286// MSG_ID_D2CM_ABORT_DATA_CALL_REQ
287typedef struct
288{
289 kal_uint8 unused;
290}imsm_d2cm_abort_data_call_req_prv_struct;
291
292typedef struct
293{
294 D2CM_REQ_LOCAL_PARA_HDR
295
296 /* common part */
297 kal_char apn[APN_STRING_LEN];
298 kal_int32 apn_idx;
299 kal_bool cid_present;
300 kal_int32 cid;
301 atcmd_deact_cause_enum reason;
302
303 /* private part */
304 union
305 {
306 imsm_d2cm_abort_data_call_req_prv_struct imsm;
307 }prv;
308}d2cm_abort_data_call_req_struct;
309
310
311#if 0
312/* under construction !*/
313/* under construction !*/
314/* under construction !*/
315/* under construction !*/
316/* under construction !*/
317/* under construction !*/
318/* under construction !*/
319/* under construction !*/
320/* under construction !*/
321/* under construction !*/
322/* under construction !*/
323/* under construction !*/
324/* under construction !*/
325/* under construction !*/
326/* under construction !*/
327/* under construction !*/
328/* under construction !*/
329/* under construction !*/
330/* under construction !*/
331/* under construction !*/
332/* under construction !*/
333/* under construction !*/
334/* under construction !*/
335/* under construction !*/
336/* under construction !*/
337/* under construction !*/
338/* under construction !*/
339/* under construction !*/
340/* under construction !*/
341/* under construction !*/
342/* under construction !*/
343/* under construction !*/
344/* under construction !*/
345/* under construction !*/
346/* under construction !*/
347/* under construction !*/
348/* under construction !*/
349#endif
350
351
352// MSG_ID_D2CM_RESET_RETRY_TMR_REQ
353typedef struct
354{
355 D2CM_REQ_LOCAL_PARA_HDR
356
357 /* common part */
358 kal_char apn[APN_STRING_LEN];
359 kal_int32 apn_idx;
360 kal_uint32 reason;
361
362 /* private part */
363 union
364 {
365 kal_uint8 unused;
366 }prv;
367}d2cm_reset_retry_tmr_req_struct;
368
369
370/*******************************************************************************
371* D2CM to User CNF *
372*******************************************************************************/
373
374// MSG_ID_D2CM_GET_PDN_PROFILE_CNF
375typedef struct
376{
377 D2CM_REQ_LOCAL_PARA_HDR
378
379 /* common part */
380 kal_int32 res;
381
382 /* private part */
383 union
384 {
385 kal_uint8 unused;
386 }prv;
387}d2cm_get_pdn_profile_cnf_struct;
388
389
390// MSG_ID_D2CM_ACT_DATA_CALL_CNF
391typedef struct
392{
393 d2cm_act_data_call_ims_info_struct ims_info; // IMS information for p_cid
394 d2cm_act_data_call_ims_info_struct fb_ims_info; // IMS information for fb_cid
395}imsm_d2cm_act_data_call_cnf_prv_struct;
396
397typedef struct
398{
399 D2CM_CNF_LOCAL_PARA_HDR
400
401 /* common part */
402 kal_int32 cid, p_cid, fb_cid; // cid == fb_cid for fallback default bearer; cid == p_cid for default bearer; cid != p_cid for dedicated bearer
403 kal_uint8 p_ded_cid[D2CM_CID_BITMAP_SIZE], fb_ded_cid[D2CM_CID_BITMAP_SIZE]; // a bitmap
404 d2cm_act_data_call_ip_info_struct ip_info; // IP address for p_cid
405 d2cm_act_data_call_net_info_struct net_info; // Internet information for p_cid
406 d2cm_act_data_call_if_info_struct if_info; // interface information for p_cid
407 d2cm_act_data_call_ran_info_struct ran_info; // RAN info of non-3GPP for p_cid
408 d2cm_act_data_call_ip_info_struct fb_ip_info; // IP address for fb_cid
409 d2cm_act_data_call_net_info_struct fb_net_info; // Internet information for fb_cid
410 d2cm_act_data_call_if_info_struct fb_if_info; // interface information for fb_cid
411 d2cm_act_data_call_ran_info_struct fb_ran_info; // RAN info of non-3GPP for fb_cid
412 d2cm_act_data_call_retry_info_struct retry_info; // retry timer for APN
413 kal_int32 res;
rjw8e44aab2022-11-30 16:42:16 +0800414 res_info_struct res_info;
rjw6c1fd8f2022-11-30 14:33:01 +0800415
416 /* private part */
417 union
418 {
419 imsm_d2cm_act_data_call_cnf_prv_struct imsm;
420 }prv;
421}d2cm_act_data_call_cnf_struct;
422/* IMSM_INTERMEDIATE_CNF share the same structure*/
423typedef d2cm_act_data_call_cnf_struct d2cm_netif_send_imsm_intermediate_cnf_struct;
424
425// MSG_ID_D2CM_DEACT_DATA_CALL_CNF
426typedef struct
427{
428 D2CM_CNF_LOCAL_PARA_HDR
429
430 /* common part */
431 kal_int32 cid;
432 kal_int32 res;
433
434 /* private part */
435 union
436 {
437 kal_uint8 unused;
438 }prv;
439}d2cm_deact_data_call_cnf_struct;
440
441
442// MSG_ID_D2CM_ABORT_DATA_CALL_CNF
443typedef struct
444{
445 D2CM_CNF_LOCAL_PARA_HDR
446
447 /* common part */
448 kal_char apn[APN_STRING_LEN];
449 kal_int32 apn_idx;
450 kal_bool cid_present;
451 kal_int32 cid;
452 kal_int32 res;
453
454 /* private part */
455 union
456 {
457 kal_uint8 unused;
458 }prv;
459}d2cm_abort_data_call_cnf_struct;
460
461
462#if 0
463/* under construction !*/
464/* under construction !*/
465/* under construction !*/
466/* under construction !*/
467/* under construction !*/
468/* under construction !*/
469/* under construction !*/
470/* under construction !*/
471/* under construction !*/
472/* under construction !*/
473/* under construction !*/
474/* under construction !*/
475/* under construction !*/
476/* under construction !*/
477/* under construction !*/
478/* under construction !*/
479/* under construction !*/
480/* under construction !*/
481/* under construction !*/
482/* under construction !*/
483/* under construction !*/
484/* under construction !*/
485/* under construction !*/
486/* under construction !*/
487/* under construction !*/
488/* under construction !*/
489/* under construction !*/
490/* under construction !*/
491/* under construction !*/
492/* under construction !*/
493/* under construction !*/
494/* under construction !*/
495/* under construction !*/
496/* under construction !*/
497/* under construction !*/
498/* under construction !*/
499/* under construction !*/
500/* under construction !*/
501/* under construction !*/
502#endif
503
504
505// MSG_ID_D2CM_RESET_RETRY_TMR_CNF
506typedef struct
507{
508 D2CM_CNF_LOCAL_PARA_HDR
509
510 /* common part */
511 kal_char apn[APN_STRING_LEN];
512 kal_int32 apn_idx;
513 kal_int32 res;
514
515 /* private part */
516 union
517 {
518 kal_uint8 unused;
519 }prv;
520}d2cm_reset_retry_tmr_cnf_struct;
521
522
523/*******************************************************************************
524* D2CM to User IND *
525*******************************************************************************/
526
527// MSG_ID_D2CM_GET_PDN_PROFILE_IND
528// ---- TO_BE_REMOVED ----
529typedef struct
530{
531 ran_info_struct ran_info;
532}bip_d2cm_get_pdn_profile_ind_prv_struct;
533// ++++ TO_BE_REMOVED ++++
534
535typedef struct
536{
537 D2CM_IND_LOCAL_PARA_HDR
538
539 /* static part */
540 kal_char apn[APN_STRING_LEN];
541 kal_int32 apn_idx;
542 kal_char apn_type[APN_TYPE_LIST_STRING_LEN];
543 kal_char pdp_type[PDP_TYPE_STRING_LEN];
544 kal_char roam_prot[ROAMING_IP_TYPE_STRING_LEN];
545 kal_char username[APN_STRING_LEN];
546 kal_char passwd[APN_STRING_LEN];
547 kal_int8 auth_type;
548 kal_uint32 bearer_bitmask;
549
550 /* dynamic part */
551 d2cm_pdn_state_enum state;
552 kal_uint32 flag;
553 kal_int32 p_cid, fb_cid;
554 kal_uint8 p_ded_cid[D2CM_CID_BITMAP_SIZE], fb_ded_cid[D2CM_CID_BITMAP_SIZE]; // a bitmap
555 kal_char real_apn[APN_STRING_LEN];
556 kal_int32 engaged_apn_idx;
557 kal_char engaged_apn_type[APN_TYPE_STRING_LEN];
558 kal_char engaged_pdp_type[PDP_TYPE_STRING_LEN];
559 kal_uint32 num_of_p_cid_usr;
560 module_type p_cid_usr_list[D2CM_MAX_NUM_OF_USR];
561 kal_uint32 num_of_fb_cid_usr;
562 module_type fb_cid_usr_list[D2CM_MAX_NUM_OF_USR];
563
564 /* operater part */
565 struct
566 {
567 struct
568 {
569 kal_uint32 wapn;
570 kal_uint32 apncl;
571 kal_uint32 apned;
572 kal_uint32 max_conn;
573 kal_uint32 max_conn_t;
574 kal_uint32 wait_time;
575 }vzw;
576
577 struct
578 {
579 kal_uint32 inact_time;
580 }sprint;
581 }op;
582
583 /* private part */
584 struct
585 {
586 bip_d2cm_get_pdn_profile_ind_prv_struct bip; // ==== TO_BE_REMOVED ====
587 }prv;
588}d2cm_get_pdn_profile_ind_struct;
589
590
591// MSG_ID_D2CM_PDN_PROFILE_CHG_IND
592typedef d2cm_get_pdn_profile_ind_struct d2cm_pdn_profile_chg_ind_struct;
593
594
595// MSG_ID_D2CM_ACT_DATA_CALL_IND
596typedef struct
597{
598 cgev_event_enum cgev_event;
599 union
600 {
601 struct
602 {
603 kal_bool WLAN_Offload_present;
604 atcmd_WLAN_Offload_enum WLAN_Offload;
605 }nw_pdn_act;
606
607 struct
608 {
609 kal_bool reason_present;
610 atcmd_reason_enum reason;
611 kal_bool WLAN_Offload_present;
612 atcmd_WLAN_Offload_enum WLAN_Offload;
613 }me_pdn_act;
614
615 struct
616 {
617 kal_bool event_type_present;
618 atcmd_event_type_enum event_type;
619 kal_bool WLAN_Offload_present;
620 atcmd_WLAN_Offload_enum WLAN_Offload;
621 }nw_act;
622
623 struct
624 {
625 kal_bool event_type_present;
626 atcmd_event_type_enum event_type;
627 kal_bool WLAN_Offload_present;
628 atcmd_WLAN_Offload_enum WLAN_Offload;
629 }me_act;
630 }cgev_info;
631}d2at_d2cm_act_data_call_ind_prv_struct;
632
633typedef struct
634{
635 d2cm_act_data_call_ims_info_struct ims_info; // IMS information for p_cid
636}imsm_d2cm_act_data_call_ind_prv_struct;
637
638typedef struct
639{
640 D2CM_IND_LOCAL_PARA_HDR
641
642 /* common part */
643 kal_int32 cid, p_cid, fb_cid; // cid == fb_cid for fallback default bearer; cid == p_cid for default bearer; cid != p_cid for dedicated bearer
644 kal_uint8 p_ded_cid[D2CM_CID_BITMAP_SIZE], fb_ded_cid[D2CM_CID_BITMAP_SIZE]; // a bitmap
645 d2cm_act_data_call_ip_info_struct ip_info; // for IP address
646 d2cm_act_data_call_net_info_struct net_info; // for Internet information
647 d2cm_act_data_call_if_info_struct if_info; // for interface information
648 d2cm_act_data_call_ran_info_struct ran_info; // RAN info of non-3GPP
649 kal_int32 res;
rjw8e44aab2022-11-30 16:42:16 +0800650 res_info_struct res_info;
rjw6c1fd8f2022-11-30 14:33:01 +0800651
652 /* private part */
653 union
654 {
655 d2at_d2cm_act_data_call_ind_prv_struct d2at;
656 imsm_d2cm_act_data_call_ind_prv_struct imsm;
657 }prv;
658}d2cm_act_data_call_ind_struct;
659
660
661// MSG_ID_D2CM_DEACT_DATA_CALL_IND
662typedef struct
663{
664 cgev_event_enum cgev_event;
665 union
666 {
667 struct
668 {
669 kal_bool WLAN_Offload_present;
670 atcmd_WLAN_Offload_enum WLAN_Offload;
671 }nw_pdn_deact;
672
673 struct
674 {
675 int unused;
676 }me_pdn_deact;
677
678 struct
679 {
680 kal_bool event_type_present;
681 atcmd_event_type_enum event_type;
682 kal_bool WLAN_Offload_present;
683 atcmd_WLAN_Offload_enum WLAN_Offload;
684 }nw_deact;
685
686 struct
687 {
688 kal_bool event_type_present;
689 atcmd_event_type_enum event_type;
690 }me_deact;
691
692 struct
693 {
694 kal_bool PDP_type_present;
695 kal_uint8 PDP_type[PDP_TYPE_STRING_LEN];
696 kal_bool PDP_addr_present;
697 at_addr_struct PDP_addr;
698 }nw_react;
699 }cgev_info;
700}d2at_d2cm_deact_data_call_ind_prv_struct;
701
702typedef struct
703{
704 D2CM_IND_LOCAL_PARA_HDR
705
706 /* common part */
707 kal_int32 cid;
708 kal_int32 res;
709
710 deact_res_info_struct res_info;
711
712 /* private part */
713 union
714 {
715 d2at_d2cm_deact_data_call_ind_prv_struct d2at;
716 }prv;
717}d2cm_deact_data_call_ind_struct;
718
719
720// MSG_ID_D2CM_ABORT_DATA_CALL_IND
721typedef d2at_d2cm_deact_data_call_ind_prv_struct d2at_d2cm_abort_data_call_ind_prv_struct;
722
723typedef struct
724{
725 D2CM_IND_LOCAL_PARA_HDR
726
727 /* common part */
728 kal_char apn[APN_STRING_LEN];
729 kal_int32 apn_idx;
730 kal_bool cid_present;
731 kal_int32 cid;
732 kal_int32 res;
733
734 /* private part */
735 union
736 {
737 d2at_d2cm_abort_data_call_ind_prv_struct d2at;
738 }prv;
739}d2cm_abort_data_call_ind_struct;
740
741
742// MSG_ID_D2CM_MOD_DATA_CALL_IND
743typedef struct
744{
745 cgev_event_enum cgev_event;
746 union
747 {
748 struct
749 {
750 kal_bool change_reason_present;
751 kal_uint32 change_reason;
752 kal_bool event_type_present;
753 atcmd_event_type_enum event_type;
754 kal_bool WLAN_Offload_present;
755 atcmd_WLAN_Offload_enum WLAN_Offload;
756 }nw_mod;
757
758 struct
759 {
760 kal_bool change_reason_present;
761 kal_uint32 change_reason;
762 kal_bool event_type_present;
763 atcmd_event_type_enum event_type;
764 kal_bool WLAN_Offload_present;
765 atcmd_WLAN_Offload_enum WLAN_Offload;
766 }me_mod;
767 }cgev_info;
768}d2at_d2cm_mod_data_call_ind_prv_struct;
769
770typedef struct
771{
772 d2cm_act_data_call_ims_info_struct ims_info; // IMS information for cid
773}imsm_d2cm_mod_data_call_ind_prv_struct;
774
775typedef struct
776{
777 D2CM_IND_LOCAL_PARA_HDR
778
779 /* common part */
780 kal_int32 cid, p_cid;
781 d2cm_act_data_call_ip_info_struct ip_info; // for IP address
782 d2cm_act_data_call_net_info_struct net_info; // for Internet information
783 d2cm_act_data_call_if_info_struct if_info; // for interface information
784 d2cm_act_data_call_ran_info_struct ran_info; // RAN info of non-3GPP
785 kal_int32 res;
786
787 /* private part */
788 union
789 {
790 d2at_d2cm_mod_data_call_ind_prv_struct d2at;
791 imsm_d2cm_mod_data_call_ind_prv_struct imsm;
792 }prv;
793}d2cm_mod_data_call_ind_struct;
794
795
796// MSG_ID_D2CM_BYPASS_IND
797typedef struct
798{
799 D2CM_IND_LOCAL_PARA_HDR
800
801 /* common part */
802 // => unique key of APN
803 kal_bool apn_present;
804 kal_char apn[APN_STRING_LEN];
805 kal_int32 apn_idx;
806 // => unique key of CID
807 kal_bool cid_present;
808 kal_int32 cid;
809 d2cm_bypass_event_enum event;
810 local_para_struct *local_para_ptr; /* local_para pointer */
811 peer_buff_struct *peer_buff_ptr; /* peer_buff pointer */
812
813 /* private part */
814 // N/A
815}d2cm_bypass_ind_struct;
816
817
818// MSG_ID_D2CM_HO_IND
819typedef d2pm_d2rm_pdn_ho_notify_ind_struct d2cm_ho_ind_struct;
820typedef d2pm_d2rm_pdn_ho_notify_ind_struct d2cm_ho_data_call_ind_struct;
821
822// MSG_ID_D2CM_DATA_CALL_INFO_IND
823typedef struct
824{
825 D2CM_IND_LOCAL_PARA_HDR
826
827 /* common part */
828 kal_int32 ps_id;
829 kal_char prefix[APN_STRING_LEN];
830 kal_char info[APN_STRING_LEN >> 1];
831
832 /* private part */
833 union
834 {
835 kal_uint8 unused;
836 }prv;
837}d2cm_data_call_info_ind_struct;
838
839// MSG_ID_D2CM_RESET_RETRY_TMR_IND
840typedef struct
841{
842 D2CM_IND_LOCAL_PARA_HDR
843
844 /* common part */
845 kal_bool apn_present;
846 kal_char apn[APN_STRING_LEN];
847 kal_int32 apn_idx;
848 d2cm_reset_retry_tmr_retry_info_struct retry_info;
849
850 /* private part */
851 union
852 {
853 kal_uint8 unused;
854 }prv;
855}d2cm_reset_retry_tmr_ind_struct;
856
857// MSG_ID_D2CM_VOLTE_CFG_CHANGE_IND
858typedef struct
859{
860 D2CM_IND_LOCAL_PARA_HDR
861
862 /* common part */
863 kal_bool apn_present;
864 kal_char apn[APN_STRING_LEN];
865 kal_int32 apn_idx;
866 d2cm_reset_retry_tmr_retry_info_struct retry_info;
867
868}d2cm_volte_cfg_change_ind_struct;
869
870// MSG_ID_D2CM_EVENT_IND
871typedef struct
872{
873 D2CM_IND_LOCAL_PARA_HDR
874
875 /* common part */
876 d2cm_event_enum event;
877 struct
878 {
879 // unique key of APN
880 kal_bool apn_present;
881 kal_char apn[APN_STRING_LEN];
882 kal_int32 apn_idx;
883 // unique key of CID
884 kal_bool cid_present;
885 kal_int32 cid;
886 }info;
887}d2cm_event_ind_struct;
888
889
890/*******************************************************************************
891* User to D2CM RSP *
892*******************************************************************************/
893
894// MSG_ID_D2CM_ACT_DATA_CALL_RSP
895typedef struct
896{
897 D2CM_RSP_LOCAL_PARA_HDR
898
899 /* common part */
900 kal_int32 cid;
901 kal_int32 res;
902
903 /* private part */
904 union
905 {
906 kal_uint8 unused;
907 }prv;
908}d2cm_act_data_call_rsp_struct;
909
910
911// MSG_ID_D2CM_DEACT_DATA_CALL_RSP
912typedef struct
913{
914 D2CM_RSP_LOCAL_PARA_HDR
915
916 /* common part */
917 kal_int32 cid;
918 kal_int32 res;
919
920 /* private part */
921 union
922 {
923 kal_uint8 unused;
924 }prv;
925}d2cm_deact_data_call_rsp_struct;
926
927
928// MSG_ID_D2CM_BYPASS_RSP
929typedef struct
930{
931 D2CM_RSP_LOCAL_PARA_HDR
932
933 /* common part */
934 // => unique key of APN
935 kal_bool apn_present;
936 kal_char apn[APN_STRING_LEN];
937 kal_int32 apn_idx;
938 // => unique key of CID
939 kal_bool cid_present;
940 kal_int32 cid;
941 d2cm_bypass_event_enum event;
942 local_para_struct *local_para_ptr; /* local_para pointer */
943 peer_buff_struct *peer_buff_ptr; /* peer_buff pointer */
944
945 /* private part */
946 // N/A
947}d2cm_bypass_rsp_struct;
948
949
950/*******************************************************************************
951* D2CM NetIF by Verit Chen: Debug Dump *
952*******************************************************************************/
953
954typedef enum {
955 D2CM_NETIF_RA_ERROR = -1,
956 D2CM_NETIF_RA_DEFAULT = 0,
957 D2CM_NETIF_RA_SUCCESS = 1,
958 D2CM_NETIF_RA_INITIAL_FAIL = 2,
959 D2CM_NETIF_RA_REFRESH_FAIL = 3,
960 D2CM_NETIF_RA_OOXX = 0x7FFFFFFF
961} d2cm_netif_ra_state_enum;
962
963typedef enum {
964 D2CM_NETIF_IF_STATE_DOWN = 0,
965 D2CM_NETIF_IF_STATE_UP = 1,
966
967 D2CM_NETIF_IF_STATE_DOWNING = 10,
968 D2CM_NETIF_IF_STATE_UPING = 11,
969 D2CM_NETIF_IF_STATE_OOXX = 0x7FFFFFFF
970} d2cm_netif_interface_state_enum;
971
972typedef struct {
973 kal_uint32 is_set;
974 kal_uint8 addr[4];
975} d2cm_netif_interface_ipv4_info_t;
976
977typedef struct {
978 kal_uint32 is_set;
979 kal_uint8 addr[16];
980 kal_int32 prefix;
981} d2cm_netif_interface_ipv6_info_t;
982
983typedef struct {
984 d2cm_netif_interface_state_enum state;
985 kal_uint16 is_use;
986 kal_uint8 is_set_v4_addr;
987 kal_uint8 is_set_v6_addr;
988} d2cm_netif_interface_status;
989
990typedef struct {
991 d2cm_netif_interface_status md_if_status;
992 d2cm_netif_interface_status ap_if_status;
993
994 kal_int32 ap_addr_type;
995 d2cm_netif_ra_state_enum ra_state;
996
997 kal_bool mtu_present;
998 kal_uint32 mtu;
999
1000 d2cm_netif_interface_ipv4_info_t md_pco_v4;
1001 d2cm_netif_interface_ipv6_info_t md_pco_v6;
1002 d2cm_netif_interface_ipv6_info_t global_v6;
1003} d2cm_netif_interface_info_t;
1004
1005typedef struct {
1006 kal_uint8 is_used;
1007 kal_uint8 ps_id;
1008 kal_uint16 transaction_id;
1009 kal_uint32 interface_id;
1010 d2cm_netif_interface_info_t info;
1011} d2cm_netif_interface_dump_item_t;
1012
1013#define D2CM_NETIF_MAX_INTERFACE_ID (20)
1014#define D2CM_NETIF_MAX_DUMP_INTERFACE_ID (D2CM_NETIF_MAX_INTERFACE_ID) //(8)
1015
1016// MSG_ID_D2CM_NETIF_CONTEXT_DUMP_IND
1017typedef struct
1018{
1019 LOCAL_PARA_HDR
1020
1021 kal_int32 interface_id;
1022 kal_int32 num;
1023 kal_char str[32];
1024 d2cm_netif_interface_dump_item_t item[D2CM_NETIF_MAX_DUMP_INTERFACE_ID];
1025}d2cm_netif_context_dump_ind_struct;
1026
1027typedef struct {
1028 D2CM_IND_LOCAL_PARA_HDR
1029
1030 module_type mod_id; //send to which mod
1031
1032 kal_int32 cid;
1033 kal_char apn[APN_STRING_LEN];
1034 kal_int32 apn_idx;
1035 ddm_apn_type_enum apn_type;
1036
1037 ip_info_struct ip_info;
1038 net_info_struct net_info;
1039 if_info_struct if_info;
1040 kal_int32 res;
1041} l5updn_dup_act_data_call_ind_struct;
1042
1043typedef struct {
1044 D2CM_IND_LOCAL_PARA_HDR
1045
1046 module_type mod_id; //send to which mod
1047
1048 kal_int32 cid;
1049 kal_int32 res;
1050} l5updn_dup_deact_data_call_ind_struct;
1051#endif