blob: 7a864c09bb6bc3b6ea66c56a10ac6b0bd98cc64f [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
rjw04b9c952023-03-28 14:35:43 +0800397// MSG_ID_D2CM_ACT_DATA_CALL_CNF
398typedef struct
399{
400 kal_char nw_assigned_apn[APN_STRING_LEN];
401}l5updn_d2cm_act_data_call_cnf_prv_struct;
402
rjw6c1fd8f2022-11-30 14:33:01 +0800403typedef struct
404{
405 D2CM_CNF_LOCAL_PARA_HDR
406
407 /* common part */
408 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
409 kal_uint8 p_ded_cid[D2CM_CID_BITMAP_SIZE], fb_ded_cid[D2CM_CID_BITMAP_SIZE]; // a bitmap
410 d2cm_act_data_call_ip_info_struct ip_info; // IP address for p_cid
411 d2cm_act_data_call_net_info_struct net_info; // Internet information for p_cid
412 d2cm_act_data_call_if_info_struct if_info; // interface information for p_cid
413 d2cm_act_data_call_ran_info_struct ran_info; // RAN info of non-3GPP for p_cid
414 d2cm_act_data_call_ip_info_struct fb_ip_info; // IP address for fb_cid
415 d2cm_act_data_call_net_info_struct fb_net_info; // Internet information for fb_cid
416 d2cm_act_data_call_if_info_struct fb_if_info; // interface information for fb_cid
417 d2cm_act_data_call_ran_info_struct fb_ran_info; // RAN info of non-3GPP for fb_cid
418 d2cm_act_data_call_retry_info_struct retry_info; // retry timer for APN
419 kal_int32 res;
rjw8e44aab2022-11-30 16:42:16 +0800420 res_info_struct res_info;
rjw6c1fd8f2022-11-30 14:33:01 +0800421
422 /* private part */
423 union
424 {
425 imsm_d2cm_act_data_call_cnf_prv_struct imsm;
rjw04b9c952023-03-28 14:35:43 +0800426 l5updn_d2cm_act_data_call_cnf_prv_struct l5updn;
rjw6c1fd8f2022-11-30 14:33:01 +0800427 }prv;
428}d2cm_act_data_call_cnf_struct;
429/* IMSM_INTERMEDIATE_CNF share the same structure*/
430typedef d2cm_act_data_call_cnf_struct d2cm_netif_send_imsm_intermediate_cnf_struct;
431
432// MSG_ID_D2CM_DEACT_DATA_CALL_CNF
433typedef struct
434{
435 D2CM_CNF_LOCAL_PARA_HDR
436
437 /* common part */
438 kal_int32 cid;
439 kal_int32 res;
440
441 /* private part */
442 union
443 {
444 kal_uint8 unused;
445 }prv;
446}d2cm_deact_data_call_cnf_struct;
447
448
449// MSG_ID_D2CM_ABORT_DATA_CALL_CNF
450typedef struct
451{
452 D2CM_CNF_LOCAL_PARA_HDR
453
454 /* common part */
455 kal_char apn[APN_STRING_LEN];
456 kal_int32 apn_idx;
457 kal_bool cid_present;
458 kal_int32 cid;
459 kal_int32 res;
460
461 /* private part */
462 union
463 {
464 kal_uint8 unused;
465 }prv;
466}d2cm_abort_data_call_cnf_struct;
467
468
469#if 0
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/* under construction !*/
503/* under construction !*/
504/* under construction !*/
505/* under construction !*/
506/* under construction !*/
507/* under construction !*/
508/* under construction !*/
509#endif
510
511
512// MSG_ID_D2CM_RESET_RETRY_TMR_CNF
513typedef struct
514{
515 D2CM_CNF_LOCAL_PARA_HDR
516
517 /* common part */
518 kal_char apn[APN_STRING_LEN];
519 kal_int32 apn_idx;
520 kal_int32 res;
521
522 /* private part */
523 union
524 {
525 kal_uint8 unused;
526 }prv;
527}d2cm_reset_retry_tmr_cnf_struct;
528
529
530/*******************************************************************************
531* D2CM to User IND *
532*******************************************************************************/
533
534// MSG_ID_D2CM_GET_PDN_PROFILE_IND
535// ---- TO_BE_REMOVED ----
536typedef struct
537{
538 ran_info_struct ran_info;
539}bip_d2cm_get_pdn_profile_ind_prv_struct;
540// ++++ TO_BE_REMOVED ++++
541
542typedef struct
543{
544 D2CM_IND_LOCAL_PARA_HDR
545
546 /* static part */
547 kal_char apn[APN_STRING_LEN];
548 kal_int32 apn_idx;
549 kal_char apn_type[APN_TYPE_LIST_STRING_LEN];
550 kal_char pdp_type[PDP_TYPE_STRING_LEN];
551 kal_char roam_prot[ROAMING_IP_TYPE_STRING_LEN];
552 kal_char username[APN_STRING_LEN];
553 kal_char passwd[APN_STRING_LEN];
554 kal_int8 auth_type;
555 kal_uint32 bearer_bitmask;
556
557 /* dynamic part */
558 d2cm_pdn_state_enum state;
559 kal_uint32 flag;
560 kal_int32 p_cid, fb_cid;
561 kal_uint8 p_ded_cid[D2CM_CID_BITMAP_SIZE], fb_ded_cid[D2CM_CID_BITMAP_SIZE]; // a bitmap
562 kal_char real_apn[APN_STRING_LEN];
563 kal_int32 engaged_apn_idx;
564 kal_char engaged_apn_type[APN_TYPE_STRING_LEN];
565 kal_char engaged_pdp_type[PDP_TYPE_STRING_LEN];
566 kal_uint32 num_of_p_cid_usr;
567 module_type p_cid_usr_list[D2CM_MAX_NUM_OF_USR];
568 kal_uint32 num_of_fb_cid_usr;
569 module_type fb_cid_usr_list[D2CM_MAX_NUM_OF_USR];
570
571 /* operater part */
572 struct
573 {
574 struct
575 {
576 kal_uint32 wapn;
577 kal_uint32 apncl;
578 kal_uint32 apned;
579 kal_uint32 max_conn;
580 kal_uint32 max_conn_t;
581 kal_uint32 wait_time;
582 }vzw;
583
584 struct
585 {
586 kal_uint32 inact_time;
587 }sprint;
588 }op;
589
590 /* private part */
591 struct
592 {
593 bip_d2cm_get_pdn_profile_ind_prv_struct bip; // ==== TO_BE_REMOVED ====
594 }prv;
595}d2cm_get_pdn_profile_ind_struct;
596
597
598// MSG_ID_D2CM_PDN_PROFILE_CHG_IND
599typedef d2cm_get_pdn_profile_ind_struct d2cm_pdn_profile_chg_ind_struct;
600
601
602// MSG_ID_D2CM_ACT_DATA_CALL_IND
603typedef struct
604{
605 cgev_event_enum cgev_event;
606 union
607 {
608 struct
609 {
610 kal_bool WLAN_Offload_present;
611 atcmd_WLAN_Offload_enum WLAN_Offload;
612 }nw_pdn_act;
613
614 struct
615 {
616 kal_bool reason_present;
617 atcmd_reason_enum reason;
618 kal_bool WLAN_Offload_present;
619 atcmd_WLAN_Offload_enum WLAN_Offload;
620 }me_pdn_act;
621
622 struct
623 {
624 kal_bool event_type_present;
625 atcmd_event_type_enum event_type;
626 kal_bool WLAN_Offload_present;
627 atcmd_WLAN_Offload_enum WLAN_Offload;
628 }nw_act;
629
630 struct
631 {
632 kal_bool event_type_present;
633 atcmd_event_type_enum event_type;
634 kal_bool WLAN_Offload_present;
635 atcmd_WLAN_Offload_enum WLAN_Offload;
636 }me_act;
637 }cgev_info;
638}d2at_d2cm_act_data_call_ind_prv_struct;
639
640typedef struct
641{
642 d2cm_act_data_call_ims_info_struct ims_info; // IMS information for p_cid
643}imsm_d2cm_act_data_call_ind_prv_struct;
644
645typedef struct
646{
647 D2CM_IND_LOCAL_PARA_HDR
648
649 /* common part */
650 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
651 kal_uint8 p_ded_cid[D2CM_CID_BITMAP_SIZE], fb_ded_cid[D2CM_CID_BITMAP_SIZE]; // a bitmap
652 d2cm_act_data_call_ip_info_struct ip_info; // for IP address
653 d2cm_act_data_call_net_info_struct net_info; // for Internet information
654 d2cm_act_data_call_if_info_struct if_info; // for interface information
655 d2cm_act_data_call_ran_info_struct ran_info; // RAN info of non-3GPP
656 kal_int32 res;
rjw8e44aab2022-11-30 16:42:16 +0800657 res_info_struct res_info;
rjw6c1fd8f2022-11-30 14:33:01 +0800658
659 /* private part */
660 union
661 {
662 d2at_d2cm_act_data_call_ind_prv_struct d2at;
663 imsm_d2cm_act_data_call_ind_prv_struct imsm;
664 }prv;
665}d2cm_act_data_call_ind_struct;
666
667
668// MSG_ID_D2CM_DEACT_DATA_CALL_IND
669typedef struct
670{
671 cgev_event_enum cgev_event;
672 union
673 {
674 struct
675 {
676 kal_bool WLAN_Offload_present;
677 atcmd_WLAN_Offload_enum WLAN_Offload;
678 }nw_pdn_deact;
679
680 struct
681 {
682 int unused;
683 }me_pdn_deact;
684
685 struct
686 {
687 kal_bool event_type_present;
688 atcmd_event_type_enum event_type;
689 kal_bool WLAN_Offload_present;
690 atcmd_WLAN_Offload_enum WLAN_Offload;
691 }nw_deact;
692
693 struct
694 {
695 kal_bool event_type_present;
696 atcmd_event_type_enum event_type;
697 }me_deact;
698
699 struct
700 {
701 kal_bool PDP_type_present;
702 kal_uint8 PDP_type[PDP_TYPE_STRING_LEN];
703 kal_bool PDP_addr_present;
704 at_addr_struct PDP_addr;
705 }nw_react;
706 }cgev_info;
707}d2at_d2cm_deact_data_call_ind_prv_struct;
708
709typedef struct
710{
711 D2CM_IND_LOCAL_PARA_HDR
712
713 /* common part */
714 kal_int32 cid;
715 kal_int32 res;
716
717 deact_res_info_struct res_info;
718
719 /* private part */
720 union
721 {
722 d2at_d2cm_deact_data_call_ind_prv_struct d2at;
723 }prv;
724}d2cm_deact_data_call_ind_struct;
725
726
727// MSG_ID_D2CM_ABORT_DATA_CALL_IND
728typedef d2at_d2cm_deact_data_call_ind_prv_struct d2at_d2cm_abort_data_call_ind_prv_struct;
729
730typedef struct
731{
732 D2CM_IND_LOCAL_PARA_HDR
733
734 /* common part */
735 kal_char apn[APN_STRING_LEN];
736 kal_int32 apn_idx;
737 kal_bool cid_present;
738 kal_int32 cid;
739 kal_int32 res;
740
741 /* private part */
742 union
743 {
744 d2at_d2cm_abort_data_call_ind_prv_struct d2at;
745 }prv;
746}d2cm_abort_data_call_ind_struct;
747
748
749// MSG_ID_D2CM_MOD_DATA_CALL_IND
750typedef struct
751{
752 cgev_event_enum cgev_event;
753 union
754 {
755 struct
756 {
757 kal_bool change_reason_present;
758 kal_uint32 change_reason;
759 kal_bool event_type_present;
760 atcmd_event_type_enum event_type;
761 kal_bool WLAN_Offload_present;
762 atcmd_WLAN_Offload_enum WLAN_Offload;
763 }nw_mod;
764
765 struct
766 {
767 kal_bool change_reason_present;
768 kal_uint32 change_reason;
769 kal_bool event_type_present;
770 atcmd_event_type_enum event_type;
771 kal_bool WLAN_Offload_present;
772 atcmd_WLAN_Offload_enum WLAN_Offload;
773 }me_mod;
774 }cgev_info;
775}d2at_d2cm_mod_data_call_ind_prv_struct;
776
777typedef struct
778{
779 d2cm_act_data_call_ims_info_struct ims_info; // IMS information for cid
780}imsm_d2cm_mod_data_call_ind_prv_struct;
781
782typedef struct
783{
784 D2CM_IND_LOCAL_PARA_HDR
785
786 /* common part */
787 kal_int32 cid, p_cid;
788 d2cm_act_data_call_ip_info_struct ip_info; // for IP address
789 d2cm_act_data_call_net_info_struct net_info; // for Internet information
790 d2cm_act_data_call_if_info_struct if_info; // for interface information
791 d2cm_act_data_call_ran_info_struct ran_info; // RAN info of non-3GPP
792 kal_int32 res;
793
794 /* private part */
795 union
796 {
797 d2at_d2cm_mod_data_call_ind_prv_struct d2at;
798 imsm_d2cm_mod_data_call_ind_prv_struct imsm;
799 }prv;
800}d2cm_mod_data_call_ind_struct;
801
802
803// MSG_ID_D2CM_BYPASS_IND
804typedef struct
805{
806 D2CM_IND_LOCAL_PARA_HDR
807
808 /* common part */
809 // => unique key of APN
810 kal_bool apn_present;
811 kal_char apn[APN_STRING_LEN];
812 kal_int32 apn_idx;
813 // => unique key of CID
814 kal_bool cid_present;
815 kal_int32 cid;
816 d2cm_bypass_event_enum event;
817 local_para_struct *local_para_ptr; /* local_para pointer */
818 peer_buff_struct *peer_buff_ptr; /* peer_buff pointer */
819
820 /* private part */
821 // N/A
822}d2cm_bypass_ind_struct;
823
824
825// MSG_ID_D2CM_HO_IND
826typedef d2pm_d2rm_pdn_ho_notify_ind_struct d2cm_ho_ind_struct;
827typedef d2pm_d2rm_pdn_ho_notify_ind_struct d2cm_ho_data_call_ind_struct;
828
829// MSG_ID_D2CM_DATA_CALL_INFO_IND
830typedef struct
831{
832 D2CM_IND_LOCAL_PARA_HDR
833
834 /* common part */
835 kal_int32 ps_id;
836 kal_char prefix[APN_STRING_LEN];
837 kal_char info[APN_STRING_LEN >> 1];
838
839 /* private part */
840 union
841 {
842 kal_uint8 unused;
843 }prv;
844}d2cm_data_call_info_ind_struct;
845
846// MSG_ID_D2CM_RESET_RETRY_TMR_IND
847typedef struct
848{
849 D2CM_IND_LOCAL_PARA_HDR
850
851 /* common part */
852 kal_bool apn_present;
853 kal_char apn[APN_STRING_LEN];
854 kal_int32 apn_idx;
855 d2cm_reset_retry_tmr_retry_info_struct retry_info;
856
857 /* private part */
858 union
859 {
860 kal_uint8 unused;
861 }prv;
862}d2cm_reset_retry_tmr_ind_struct;
863
864// MSG_ID_D2CM_VOLTE_CFG_CHANGE_IND
865typedef struct
866{
867 D2CM_IND_LOCAL_PARA_HDR
868
869 /* common part */
870 kal_bool apn_present;
871 kal_char apn[APN_STRING_LEN];
872 kal_int32 apn_idx;
873 d2cm_reset_retry_tmr_retry_info_struct retry_info;
874
875}d2cm_volte_cfg_change_ind_struct;
876
877// MSG_ID_D2CM_EVENT_IND
878typedef struct
879{
880 D2CM_IND_LOCAL_PARA_HDR
881
882 /* common part */
883 d2cm_event_enum event;
884 struct
885 {
886 // unique key of APN
887 kal_bool apn_present;
888 kal_char apn[APN_STRING_LEN];
889 kal_int32 apn_idx;
890 // unique key of CID
891 kal_bool cid_present;
892 kal_int32 cid;
893 }info;
894}d2cm_event_ind_struct;
895
896
897/*******************************************************************************
898* User to D2CM RSP *
899*******************************************************************************/
900
901// MSG_ID_D2CM_ACT_DATA_CALL_RSP
902typedef struct
903{
904 D2CM_RSP_LOCAL_PARA_HDR
905
906 /* common part */
907 kal_int32 cid;
908 kal_int32 res;
909
910 /* private part */
911 union
912 {
913 kal_uint8 unused;
914 }prv;
915}d2cm_act_data_call_rsp_struct;
916
917
918// MSG_ID_D2CM_DEACT_DATA_CALL_RSP
919typedef struct
920{
921 D2CM_RSP_LOCAL_PARA_HDR
922
923 /* common part */
924 kal_int32 cid;
925 kal_int32 res;
926
927 /* private part */
928 union
929 {
930 kal_uint8 unused;
931 }prv;
932}d2cm_deact_data_call_rsp_struct;
933
934
935// MSG_ID_D2CM_BYPASS_RSP
936typedef struct
937{
938 D2CM_RSP_LOCAL_PARA_HDR
939
940 /* common part */
941 // => unique key of APN
942 kal_bool apn_present;
943 kal_char apn[APN_STRING_LEN];
944 kal_int32 apn_idx;
945 // => unique key of CID
946 kal_bool cid_present;
947 kal_int32 cid;
948 d2cm_bypass_event_enum event;
949 local_para_struct *local_para_ptr; /* local_para pointer */
950 peer_buff_struct *peer_buff_ptr; /* peer_buff pointer */
951
952 /* private part */
953 // N/A
954}d2cm_bypass_rsp_struct;
955
956
957/*******************************************************************************
958* D2CM NetIF by Verit Chen: Debug Dump *
959*******************************************************************************/
960
961typedef enum {
962 D2CM_NETIF_RA_ERROR = -1,
963 D2CM_NETIF_RA_DEFAULT = 0,
964 D2CM_NETIF_RA_SUCCESS = 1,
965 D2CM_NETIF_RA_INITIAL_FAIL = 2,
966 D2CM_NETIF_RA_REFRESH_FAIL = 3,
967 D2CM_NETIF_RA_OOXX = 0x7FFFFFFF
968} d2cm_netif_ra_state_enum;
969
970typedef enum {
971 D2CM_NETIF_IF_STATE_DOWN = 0,
972 D2CM_NETIF_IF_STATE_UP = 1,
973
974 D2CM_NETIF_IF_STATE_DOWNING = 10,
975 D2CM_NETIF_IF_STATE_UPING = 11,
976 D2CM_NETIF_IF_STATE_OOXX = 0x7FFFFFFF
977} d2cm_netif_interface_state_enum;
978
979typedef struct {
980 kal_uint32 is_set;
981 kal_uint8 addr[4];
982} d2cm_netif_interface_ipv4_info_t;
983
984typedef struct {
985 kal_uint32 is_set;
986 kal_uint8 addr[16];
987 kal_int32 prefix;
988} d2cm_netif_interface_ipv6_info_t;
989
990typedef struct {
991 d2cm_netif_interface_state_enum state;
992 kal_uint16 is_use;
993 kal_uint8 is_set_v4_addr;
994 kal_uint8 is_set_v6_addr;
995} d2cm_netif_interface_status;
996
997typedef struct {
998 d2cm_netif_interface_status md_if_status;
999 d2cm_netif_interface_status ap_if_status;
1000
1001 kal_int32 ap_addr_type;
1002 d2cm_netif_ra_state_enum ra_state;
1003
1004 kal_bool mtu_present;
1005 kal_uint32 mtu;
1006
1007 d2cm_netif_interface_ipv4_info_t md_pco_v4;
1008 d2cm_netif_interface_ipv6_info_t md_pco_v6;
1009 d2cm_netif_interface_ipv6_info_t global_v6;
1010} d2cm_netif_interface_info_t;
1011
1012typedef struct {
1013 kal_uint8 is_used;
1014 kal_uint8 ps_id;
1015 kal_uint16 transaction_id;
1016 kal_uint32 interface_id;
1017 d2cm_netif_interface_info_t info;
1018} d2cm_netif_interface_dump_item_t;
1019
1020#define D2CM_NETIF_MAX_INTERFACE_ID (20)
1021#define D2CM_NETIF_MAX_DUMP_INTERFACE_ID (D2CM_NETIF_MAX_INTERFACE_ID) //(8)
1022
1023// MSG_ID_D2CM_NETIF_CONTEXT_DUMP_IND
1024typedef struct
1025{
1026 LOCAL_PARA_HDR
1027
1028 kal_int32 interface_id;
1029 kal_int32 num;
1030 kal_char str[32];
1031 d2cm_netif_interface_dump_item_t item[D2CM_NETIF_MAX_DUMP_INTERFACE_ID];
1032}d2cm_netif_context_dump_ind_struct;
1033
1034typedef struct {
1035 D2CM_IND_LOCAL_PARA_HDR
1036
1037 module_type mod_id; //send to which mod
1038
1039 kal_int32 cid;
1040 kal_char apn[APN_STRING_LEN];
1041 kal_int32 apn_idx;
1042 ddm_apn_type_enum apn_type;
1043
1044 ip_info_struct ip_info;
1045 net_info_struct net_info;
1046 if_info_struct if_info;
1047 kal_int32 res;
1048} l5updn_dup_act_data_call_ind_struct;
1049
1050typedef struct {
1051 D2CM_IND_LOCAL_PARA_HDR
1052
1053 module_type mod_id; //send to which mod
1054
1055 kal_int32 cid;
1056 kal_int32 res;
1057} l5updn_dup_deact_data_call_ind_struct;
1058#endif