blob: a6edc11f8152ba48788a9310a5050f4144866afb [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 _D2RM_WO_STRUCT_H
37#define _D2RM_WO_STRUCT_H
38
39#include "kal_general_types.h"
40#include "kal_public_defs.h"
41#include "netinfo_common_struct.h"
42
43#include "d2pm_wo_struct.h"
44#include "wo_public_defs.h"
45#include "pdn_public_defs.h"
46
47/*MD common type redefinition*/
48typedef ip_info_struct d2rm_wo_ip_info_struct;
49typedef net_info_struct d2rm_wo_net_info_struct;
50typedef retry_info_struct d2rm_wo_retry_info_struct;
51typedef atcmd_request_type_enum d2rm_wo_act_data_call_req_type_enum;
52typedef iwlan_ran_e d2rm_wo_ran_enum;
53typedef d2rm_ho_state_e d2rm_wo_ho_state_enum;
54typedef enum {
55 WO_PROTO_IPV4 = 1,
56 WO_PROTO_IPV6,
57 WO_PROTO_IPV4V6,
58} wo_protocol_enum;
59
60typedef enum
61{
62 // a single CID or the final CID
63 WO_RES_NONE = D2PM_RES_NONE,
64 WO_RES_FAIL = D2PM_RES_FAIL,
65 WO_RES_SUCC = D2PM_RES_SUCC,
66 // a subsequent CID
67 WO_RES_FAIL_ABORT = D2PM_RES_FAIL_ABORT,
68 WO_RES_SUCC_ABORT = D2PM_RES_SUCC_ABORT,
69 WO_RES_MAX = 0x7FFFFFFF
70} wo_res_enum;
71
72typedef enum {
73 WO_RETRY_NO_SUGGEST = -2,
74 WO_RETRY_NO_RETRY = -1,
75} wo_retry_enum;
76
77// Implementation
78/*******************************************************************************
79* D2RM to WO REQ *
80*******************************************************************************/
81// MSG_ID_D2RM_WO_ACT_DATA_CALL_REQ
82typedef struct
83{
84 kal_bool isIMS;
85 kal_bool isEmergency;
86 wo_protocol_enum protocol;
87}d2rm_wo_act_data_call_req_prv_struct;
88
89typedef struct
90{
91 LOCAL_PARA_HDR
92
93 /* common part */
94 kal_uint32 cid;
95 kal_uint8 apn[APN_STRING_LEN];
96 d2rm_wo_act_data_call_req_type_enum req_type;
97 /* private part */
98 d2rm_wo_act_data_call_req_prv_struct d2rm_wo_prv;
99 d2pm_wo_act_data_call_req_prv_struct d2pm_wo_prv;
100}d2rm_wo_act_data_call_req_struct;
101
102// MSG_ID_D2RM_WO_DEACT_DATA_CALL_REQ
103typedef struct
104{
105 kal_uint8 apn[APN_STRING_LEN];
106}d2rm_wo_comm_prv_struct;
107
108typedef d2rm_wo_comm_prv_struct d2rm_wo_deact_data_call_req_prv_struct;
109typedef struct
110{
111 LOCAL_PARA_HDR
112
113 /* common part */
114 kal_uint32 cid;
115 /* private part */
116 d2rm_wo_deact_data_call_req_prv_struct d2rm_wo_prv;
117 d2pm_wo_deact_data_call_req_prv_struct d2pm_wo_prv;
118}d2rm_wo_deact_data_call_req_struct;
119
120// MSG_ID_D2RM_WO_ABORT_DATA_CALL_REQ
121typedef d2rm_wo_comm_prv_struct d2rm_wo_abort_data_call_req_prv_struct;
122typedef struct
123{
124 LOCAL_PARA_HDR
125 /* common part */
126 kal_uint32 cid;
127 /* private part */
128 d2rm_wo_abort_data_call_req_prv_struct d2rm_wo_prv;
129 d2pm_wo_abort_data_call_req_prv_struct d2pm_wo_prv;
130}d2rm_wo_abort_data_call_req_struct;
131
132// MSG_ID_D2RM_WO_PDN_HO_NOTIFY_REQ
133typedef d2rm_wo_comm_prv_struct d2rm_wo_pdn_ho_notify_req_prv_struct;
134typedef struct
135{
136 LOCAL_PARA_HDR
137 /* common part */
138 kal_uint32 cid;
139 d2rm_wo_ho_state_enum hostate;
140 kal_uint8 is_succ;
141 d2rm_wo_ran_enum src_ran;
142 d2rm_wo_ran_enum tgt_ran;
143 /* private part */
144 d2rm_wo_pdn_ho_notify_req_prv_struct d2rm_wo_prv;
145}d2rm_wo_pdn_ho_notify_req_struct;
146
147typedef struct
148{
149 LOCAL_PARA_HDR
150
151 kal_bool is_all;
152 kal_uint32 cid;
153 d2rm_wo_comm_prv_struct d2rm_wo_prv;
154 d2pm_wo_comm_prv_struct d2pm_wo_prv;
155}d2rm_wo_get_pdn_info_req_struct;
156
157// MSG_ID_D2RM_WO_GET_DATA_CALL_LIST_REQ: query PDN active status per cid/apn
158typedef d2rm_wo_get_pdn_info_req_struct d2rm_wo_get_data_call_list_req_struct;
159// MSG_ID_D2RM_WO_GET_DYNAMIC_PARAM_REQ
160typedef d2rm_wo_get_pdn_info_req_struct d2rm_wo_get_dynamic_param_req_struct;
161// MSG_ID_D2RM_WO_GET_PDP_ADDRESS_REQ
162typedef d2rm_wo_get_pdn_info_req_struct d2rm_wo_get_pdp_address_req_struct;
163// MSG_ID_D2RM_WO_GET_SECONDARY_DYNAMIC_PARAM_REQ
164typedef d2rm_wo_get_pdn_info_req_struct d2rm_wo_get_secondary_dynamic_param_req_struct;
165// MSG_ID_D2RM_WO_GET_QOS_REQ
166typedef d2rm_wo_get_pdn_info_req_struct d2rm_wo_get_qos_req_struct;
167// MSG_ID_D2RM_WO_GET_TFT_REQ
168typedef d2rm_wo_get_pdn_info_req_struct d2rm_wo_get_tft_req_struct;
169// MSG_ID_D2RM_WO_GET_PACKET_FILTER_REQ
170typedef d2rm_wo_get_pdn_info_req_struct d2rm_wo_get_packet_filter_req_struct;
171
172// MSG_ID_D2RM_WO_SET_PACKET_FILTER_REQ
173typedef struct
174{
175 LOCAL_PARA_HDR
176
177 kal_uint32 cid;
178 d2pm_wo_set_packet_filter_req_prv_struct d2pm_wo_prv;
179}d2rm_wo_set_packet_filter_req_struct;
180
181// MSG_ID_D2RM_WO_MODIFY_DATA_CALL_REQ
182typedef struct
183{
184 LOCAL_PARA_HDR
185
186 kal_uint32 cid;
187 d2pm_wo_mod_data_call_req_prv_struct d2pm_wo_prv;
188}d2rm_wo_modify_data_call_req_struct;
189
190// MSG_ID_D2RM_WO_GET_RETRYTMR_REQ
191typedef struct
192{
193 LOCAL_PARA_HDR
194
195 /* common part */
196 kal_char apn[APN_STRING_LEN];
197
198 /* private part */
199 d2pm_wo_comm_prv_struct d2pm_wo_prv;
200}d2rm_wo_get_retrytmr_req_struct;
201
202// MSG_ID_D2RM_WO_SET_RETRYTMR_REQ
203typedef struct
204{
205 LOCAL_PARA_HDR
206
207 /* common part */
208 kal_char apn[APN_STRING_LEN];
209 kal_uint8 cmd;
210
211 /* private part */
212 d2pm_wo_comm_prv_struct d2pm_wo_prv;
213}d2rm_wo_set_retrytmr_req_struct;
214
215/*******************************************************************************
216* WO TO D2RM CNF *
217*******************************************************************************/
218// MSG_ID_D2RM_WO_ACT_DATA_CALL_CNF
219typedef struct
220{
221 kal_bool errcause_present;
222 wo_status_enum errcause;
223 kal_bool sub_errcause_present;
224 wo_ike_err_status_enum sub_errcause;
225 kal_bool is_visited;
226}d2rm_wo_act_data_call_cnf_prv_struct;
227
228typedef struct
229{
230 LOCAL_PARA_HDR
231
232 /*common part*/
233 kal_uint32 cid;
234 kal_uint8 apn[APN_STRING_LEN];
235 d2rm_wo_ip_info_struct ip_info;
236 d2rm_wo_net_info_struct net_info;
237 d2rm_wo_retry_info_struct retry_info;
238 kal_bool is_succ;
239 wo_res_enum res_code;
240 /* private part */
241 d2rm_wo_act_data_call_cnf_prv_struct d2rm_wo_prv;
242 d2pm_wo_act_data_call_cnf_prv_struct d2pm_wo_prv;
243}d2rm_wo_act_data_call_cnf_struct;
244
245// MSG_ID_D2RM_WO_DEACT_DATA_CALL_CNF
246typedef d2rm_wo_comm_prv_struct d2rm_wo_deact_data_call_cnf_prv_struct;
247typedef struct
248{
249 LOCAL_PARA_HDR
250
251 /* common part */
252 kal_uint32 cid;
253 kal_bool is_succ;
254 /* private part */
255 d2rm_wo_deact_data_call_cnf_prv_struct d2rm_wo_prv;
256 d2pm_wo_deact_data_call_cnf_prv_struct d2pm_wo_prv;
257}d2rm_wo_deact_data_call_cnf_struct;
258
259// MSG_ID_D2RM_WO_ABORT_DATA_CALL_CNF
260typedef d2rm_wo_comm_prv_struct d2rm_wo_abort_data_call_cnf_prv_struct;
261typedef struct
262{
263 LOCAL_PARA_HDR
264
265 /* common part */
266 kal_uint32 cid;
267 kal_bool is_succ;
268 /* private part */
269 d2rm_wo_abort_data_call_cnf_prv_struct d2rm_wo_prv;
270 d2pm_wo_abort_data_call_cnf_prv_struct d2pm_wo_prv;
271}d2rm_wo_abort_data_call_cnf_struct;
272
273typedef struct
274{
275 LOCAL_PARA_HDR
276
277 kal_bool is_succ;
278 d2pm_wo_comm_prv_struct d2pm_wo_prv;
279}d2rm_wo_get_pdn_info_cnf_struct;
280
281typedef d2rm_wo_get_pdn_info_cnf_struct d2rm_wo_configure_pdn_cnf_struct;
282
283// MSG_ID_D2RM_WO_GET_DATA_CALL_LIST_CNF
284typedef d2rm_wo_get_pdn_info_cnf_struct d2rm_wo_get_data_call_list_cnf_struct;
285// MSG_ID_D2RM_WO_GET_DYNAMIC_PARAM_CNF
286typedef d2rm_wo_get_pdn_info_cnf_struct d2rm_wo_get_dynamic_param_cnf_struct;
287// MSG_ID_D2RM_WO_GET_PDP_ADDRESS_CNF
288typedef d2rm_wo_get_pdn_info_cnf_struct d2rm_wo_get_pdp_address_cnf_struct;
289//MSG_ID_D2RM_WO_GET_SECONDARY_DYNAMIC_PARAM_CNF
290typedef d2rm_wo_get_pdn_info_cnf_struct d2rm_wo_get_secondary_dynamic_param_cnf_struct;
291// MSG_ID_D2RM_WO_GET_QOS_CNF
292typedef d2rm_wo_get_pdn_info_cnf_struct d2rm_wo_get_qos_cnf_struct;
293// MSG_ID_D2RM_WO_GET_TFT_CNF
294typedef d2rm_wo_get_pdn_info_cnf_struct d2rm_wo_get_tft_cnf_struct;
295// MSG_ID_D2RM_WO_GET_PACKET_FILTER_CNF
296typedef d2rm_wo_get_pdn_info_cnf_struct d2rm_wo_get_packet_filter_cnf_struct;
297
298// MSG_ID_D2RM_WO_SET_PACKET_FILTER_CNF
299typedef d2rm_wo_configure_pdn_cnf_struct d2rm_wo_set_packet_filter_cnf_struct;
300// MSG_ID_D2RM_WO_MODIFY_DATA_CALL_CNF
301typedef d2rm_wo_configure_pdn_cnf_struct d2rm_wo_modify_data_call_cnf_struct;
302
303// MSG_ID_D2RM_WO_GET_RETRYTMR_CNF
304typedef struct
305{
306 LOCAL_PARA_HDR
307
308 /* common part */
309 kal_char apn[APN_STRING_LEN];
310 d2rm_wo_retry_info_struct retry_info;
311
312 /* private part */
313 d2pm_wo_comm_prv_struct d2pm_wo_prv;
314}d2rm_wo_get_retrytmr_cnf_struct;
315
316// MSG_ID_D2RM_WO_SET_RETRYTMR_CNF
317typedef struct
318{
319 LOCAL_PARA_HDR
320
321 /* common part */
322 kal_char apn[APN_STRING_LEN];
323 kal_bool is_succ;
324
325 /* private part */
326 d2pm_wo_comm_prv_struct d2pm_wo_prv;
327}d2rm_wo_set_retrytmr_cnf_struct;
328
329/*******************************************************************************
330* WO TO D2RM IND *
331*******************************************************************************/
332// MSG_ID_D2RM_WO_PDN_DISCONN_IND
333typedef struct
334{
335 wo_status_enum errcause;
336 wo_ike_err_status_enum sub_errcause;
337}d2rm_wo_pdn_disconn_ind_prv_struct;
338
339typedef struct
340{
341 LOCAL_PARA_HDR
342
343 kal_uint32 cid;
344 kal_bool apn_present; //can be removed
345 kal_uint8 apn[APN_STRING_LEN];
346 /*private part */
347 d2rm_wo_pdn_disconn_ind_prv_struct d2rm_wo_prv;
348 d2pm_wo_pdn_disconn_ind_prv_struct d2pm_wo_prv;
349}d2rm_wo_pdn_disconn_ind_struct;
350
351// MSG_ID_D2RM_WO_GET_DATA_CALL_LIST_IND
352typedef struct
353{
354 LOCAL_PARA_HDR
355
356 kal_uint32 cid;
357 kal_uint8 is_act;
358 d2pm_wo_get_data_call_list_ind_prv_struct d2pm_wo_prv;
359}d2rm_wo_get_data_call_list_ind_struct;
360
361// MSG_ID_D2RM_WO_GET_DYNAMIC_PARAM_IND
362typedef struct
363{
364 LOCAL_PARA_HDR
365
366 kal_uint32 cid;
367 d2pm_wo_get_dynamic_param_ind_prv_struct d2pm_wo_prv;
368}d2rm_wo_get_dynamic_param_ind_struct;
369
370// MSG_ID_D2RM_WO_GET_PDP_ADDRESS_IND
371typedef struct
372{
373 LOCAL_PARA_HDR
374
375 kal_uint32 cid;
376 d2pm_wo_get_pdp_address_ind_prv_struct d2pm_wo_prv;
377}d2rm_wo_get_pdp_address_ind_struct;
378
379//MSG_ID_D2RM_WO_GET_SECONDARY_DYNAMIC_PARAM_IND
380typedef struct
381{
382 LOCAL_PARA_HDR
383
384 // TODO: content
385 d2pm_wo_get_secondary_dynamic_param_ind_prv_struct d2pm_wo_prv;
386}d2rm_wo_get_secondary_dynamic_param_ind_struct;
387
388// MSG_ID_D2RM_WO_GET_QOS_IND
389typedef struct
390{
391 LOCAL_PARA_HDR
392
393 // TODO: content
394 d2pm_wo_get_qos_ind_prv_struct d2pm_wo_prv;
395}d2rm_wo_get_qos_ind_struct;
396
397// MSG_ID_D2RM_WO_GET_TFT_IND
398typedef struct
399{
400 LOCAL_PARA_HDR
401
402 // TODO: content
403 d2pm_wo_get_tft_ind_prv_struct d2pm_wo_prv;
404}d2rm_wo_get_tft_ind_struct;
405
406//MSG_ID_D2RM_WO_GET_PACKET_FILTER_IND
407typedef struct
408{
409 LOCAL_PARA_HDR
410
411 // TODO: content
412 kal_uint32 cid;
413 d2pm_wo_get_packet_filter_ind_prv_struct d2pm_wo_prv;
414}d2rm_wo_get_packet_filter_ind_struct;
415
416//MSG_ID_D2RM_WO_PING_STATUS_IND
417typedef struct
418{
419 LOCAL_PARA_HDR
420
421 kal_uint32 avg_latency;
422 kal_uint8 pkt_loss_rate;
423 kal_bool need_ho;
424}d2rm_wo_ping_status_ind_struct;
425
426// MSG_ID_D2RM_WO_MODIFY_DATA_CALL_IND
427typedef struct
428{
429 LOCAL_PARA_HDR
430
431 /*common part*/
432 kal_uint32 cid;
433 kal_uint8 apn[APN_STRING_LEN];
434 d2rm_wo_ip_info_struct ip_info;
435 d2rm_wo_net_info_struct net_info;
436
437 /* private part */
438 d2pm_wo_mod_data_call_ind_prv_struct d2pm_wo_prv;
439}d2rm_wo_modify_data_call_ind_struct;
440
441// MSG_ID_D2RM_WO_RST_RETRYTMR_IND
442typedef struct{
443 LOCAL_PARA_HDR
444
445 /* common part */
446 kal_bool apn_present;
447 kal_char apn[APN_STRING_LEN];
448 kal_uint32 cause; //TBD: if needed
449
450 /* private part */
451 d2pm_wo_comm_prv_struct d2pm_wo_prv;
452}d2rm_wo_rst_retrytmr_ind_struct;
453
454/*******************************************************************************
455* WO to D2RM REQ *
456*******************************************************************************/
457// MSG_ID_WO_D2RM_GET_EPDG_INFO_REQ
458typedef struct
459{
460 LOCAL_PARA_HDR
461
462 kal_uint32 cid;
463}wo_d2rm_get_epdg_info_req_struct;
464
465/*******************************************************************************
466* WO to D2RM CNF *
467*******************************************************************************/
468// MSG_ID_WO_D2RM_GET_EPDG_INFO_CNF
469typedef struct
470{
471 LOCAL_PARA_HDR
472
473 kal_uint32 cid;
474 kal_bool is_succ;
475}wo_d2rm_get_epdg_info_cnf_struct;
476
477/*******************************************************************************
478* WO to D2RM IND *
479*******************************************************************************/
480// MSG_ID_WO_D2RM_GET_EPDG_INFO_IND
481typedef struct
482{
483 LOCAL_PARA_HDR
484
485 kal_uint32 cid;
486 d2rm_wo_ip_info_struct ip_info;
487}wo_d2rm_get_epdg_info_ind_struct;
488
489
490typedef struct {
491 LOCAL_PARA_HDR
492 kal_uint32 context_id;
493 kal_uint32 network_interface_id;
494 apn_type_info_struct apn_type_info;
495} d2rm_wo_pdn_bind_req_struct;
496
497typedef struct {
498 LOCAL_PARA_HDR
499 kal_uint32 context_id;
500 kal_bool is_successful;
501 ps_cause_enum error_result;
502} d2rm_wo_pdn_bind_cnf_struct;
503
504typedef struct {
505 LOCAL_PARA_HDR
506 kal_uint32 context_id;
507} d2rm_wo_pdn_unbind_req_struct;
508
509typedef struct {
510 LOCAL_PARA_HDR
511 kal_uint32 context_id;
512 kal_bool is_successful;
513 ps_cause_enum error_result;
514} d2rm_wo_pdn_unbind_cnf_struct;
515
516#endif //_D2RM_WO_STRUCT_H