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