blob: 2890b1bc174c61a2ec7c435621e79067e98c83b9 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001#ifndef _ATP_IWLAN_STRUCT_H
2#define _ATP_IWLAN_STRUCT_H
3
4#include "kal_general_types.h"
5#include "kal_public_defs.h"
6#include "ims_interface_md.h"
7#include "ims_common_def.h"
8#include "iwlan_public_defs.h"
9#include "atp_imc_struct.h"
10
11#define ATP_IWLAN_L4_CMD_IND_LOCAL_PARA_HDR \
12 LOCAL_PARA_HDR \
13 kal_uint32 src_id;
14
15#define ATP_IWLAN_L4_RSP_IND_LOCAL_PARA_HDR \
16 LOCAL_PARA_HDR \
17 kal_uint32 src_id; \
18 kal_bool is_success; \
19 kal_uint16 err_cause;
20
21#define IWLAN_STRSZL 128 // Move from iwlan_defs.h
22#define IWLAN_STRSZM 64
23#define IWLAN_STRSZS 32
24
25/*******************************************************************************
26* IWLAN V.S. ATP from AP *
27* atp_iwlan_cmd_table *
28*******************************************************************************/
29//MSG_ID_ATP_IWLAN_IMSCFG_REQ
30typedef struct {
31 LOCAL_PARA_HDR
32 ims_cap_rat_enum vo3gpp_enable;
33 ims_cap_rat_enum vi3gpp_enable;
34 kal_bool vowifi_enable;
35 kal_bool viwifi_enable;
36 kal_bool ims_sms_enable;
37 kal_bool eims_enable;
38} atp_iwlan_imscfg_req_struct;
39
40typedef enum {
41 STATE_IN_SERVICE = 0,
42 STATE_OUT_OF_SERVICE = 1,
43 STATE_EMERGENCY_ONLY = 2,
44 STATE_POWER_OFF = 3,
45}reg_sta_enum;
46
47typedef enum {
48 ROAMING_TYPE_NOT_ROAMING = 0,
49 ROAMING_TYPE_UNKNOWN = 1,
50 ROAMING_TYPE_DOMESTIC = 2,
51 ROAMING_TYPE_INTERNATIONAL = 3,
52}roam_type_enum;
53
54typedef enum {
55 REGISTRATION_STATE_NOT_REGISTERED_AND_NOT_SEARCHING = 0,
56 REGISTRATION_STATE_HOME_NETWORK = 1,
57 REGISTRATION_STATE_NOT_REGISTERED_AND_SEARCHING = 2,
58 REGISTRATION_STATE_REGISTRATION_DENIED = 3,
59 REGISTRATION_STATE_UNKNOWN = 4,
60 REGISTRATION_STATE_ROAMING = 5,
61 REGISTRATION_STATE_NOT_REGISTERED_AND_NOT_SEARCHING_EMERGENCY_CALL_ENABLED = 10,
62 REGISTRATION_STATE_NOT_REGISTERED_AND_SEARCHING_EMERGENCY_CALL_ENABLED = 12,
63 REGISTRATION_STATE_REGISTRATION_DENIED_EMERGENCY_CALL_ENABLED = 13,
64 REGISTRATION_STATE_UNKNOWN_EMERGENCY_CALL_ENABLED = 14,
65}ril_reg_state_enum;
66
67//MSG_ID_ATP_IWLAN_ESRVSTATE_REQ
68typedef struct {
69 LOCAL_PARA_HDR
70 reg_sta_enum voice_regstate;
71 reg_sta_enum data_regstate;
72 roam_type_enum voice_roamtype;
73 roam_type_enum data_roamtype;
74 ril_reg_state_enum ril_voice_regstate;
75 ril_reg_state_enum ril_data_regstate;
76} atp_iwlan_esrvstate_req_struct;
77
78//MSG_ID_ATP_IWLAN_ECNCFG_REQ
79typedef struct {
80 LOCAL_PARA_HDR
81 kal_uint8 mobile_data_en; //The value may be true, false, or NA. So, sue uint8 as type.
82 kal_uint8 data_roaming_en;
83 kal_uint8 data_domestic_roaming_en;
84 kal_uint8 data_international_roaming_en;
85} atp_iwlan_ecncfg_req_struct;
86
87typedef enum {
88 WIFIEN_REASON_NOT_DEFINE = 0,
89 WIFIEN_REASON_FLIGHTMODE = 1,
90 WIFIEN_REASON_RESERVE1,
91 WIFIEN_REASON_RESERVE2,
92 WIFIEN_REASON_RESERVE3,
93}wifien_reason_enum;
94
95
96//MSG_ID_ATP_IWLAN_EWIFIEN_REQ
97typedef struct {
98 LOCAL_PARA_HDR
99 kal_char ewifi_ifname[IWLAN_STRSZS];
100 kal_bool ewifi_en;
101 wifien_reason_enum ewifi_reason;
102} atp_iwlan_ewifien_req_struct;
103
104typedef enum {
105 WFCPREF_CELLULAR_ONLY = 0,
106 WFCPREF_WIFI_PREF = 1,
107 WFCPREF_CELLULAR_PREF = 2,
108 WFCPREF_WIFI_ONLY = 3,
109 WFCPREF_EPC = 4,
110 WFCPREF_IMS_CUR_RAN = 5,
111 WFCPREF_NA = 6,
112 WFCPREF_CNT,
113}wfcpref_mode_enum;
114
115
116//MSG_ID_ATP_IWLAN_EWFCPREF_REQ
117typedef struct {
118 LOCAL_PARA_HDR
119 kal_bool ewfcpref_en;
120 wfcpref_mode_enum ewfcpref_mode;
121 kal_uint8 sim_id;
122} atp_iwlan_ewfcpref_req_struct;
123
124//MSG_ID_ATP_IWLAN_EVODATA_REQ
125typedef struct {
126 LOCAL_PARA_HDR
127 kal_bool vodata_en;
128 kal_uint8 data_mode;
129 kal_uint8 allow_rat;
130} atp_iwlan_evodata_req_struct;
131
132//MSG_ID_ATP_IWLAN_EWIFIASC_REQ
133typedef struct {
134 LOCAL_PARA_HDR
135 kal_char ifname[IWLAN_STRSZS];
136 kal_bool assoc;
137 kal_uint8 ssid[IWLAN_STRSZS];
138 kal_uint8 mac[IWLAN_STRSZM];
139} atp_iwlan_ewifiasc_req_struct;
140
141//MSG_ID_ATP_IWLAN_ELOCAEN_REQ
142typedef struct {
143 LOCAL_PARA_HDR
144 kal_bool loc_en ;
145} atp_iwlan_elocaen_req_struct ;
146
147//MSG_ID_ATP_IWLAN_EWIFISIGLVL_REQ
148typedef struct {
149 LOCAL_PARA_HDR
150 kal_int32 rssi;
151} atp_iwlan_ewifisiglvl_req_struct;
152
153//MSG_ID_ATP_IWLAN_EIWLCFGSET_REQ
154typedef struct {
155 LOCAL_PARA_HDR
156 kal_char cfg_name[64];
157 kal_char cfg_value[256];
158} atp_iwlan_eiwlcfgset_req_struct;
159//MSG_ID_ATP_IWLAN_EIWLCFGGET_REQ
160typedef struct {
161 LOCAL_PARA_HDR
162 kal_char cfg_name[64];
163} atp_iwlan_eiwlcfgget_req_struct;
164
165//MSG_ID_ATP_IWLAN_EPVSSET_REQ
166typedef struct {
167 LOCAL_PARA_HDR
168 kal_char cfg_name[64];
169 kal_char cfg_value[256];
170} atp_iwlan_epvsset_req_struct;
171//MSG_ID_ATP_IWLAN_EPVSGET_REQ
172typedef struct {
173 LOCAL_PARA_HDR
174 kal_char cfg_name[64];
175} atp_iwlan_epvsget_req_struct;
176
177
178//MSG_ID_ATP_IWLAN_EIMSGEO_REQ
179typedef struct {
180 LOCAL_PARA_HDR
181 kal_int8 account_id; // (0~7: ims stack, 100: iwlan)
182 kal_int8 broadcast_flag;
183 kal_int32 latitude[2];
184 kal_int32 longitude[2];
185 kal_int32 accuracy;
186 kal_char method[16];
187 kal_char city[32];
188 kal_char state[32];
189 kal_char zip[8];
190 kal_char country_code[8];
191 kal_char mcc[MAX_GEO_MCC_NUM][MAX_MCC_STR_LEN];
192} atp_iwlan_eimsgeo_req_struct;
193
194typedef enum {
195 EIMSRCSCONN_STATUE_DISCONNECTED = 0, // 0 RCS session is disconnected.
196 EIMSRCSCONN_STATUE_CONNECTED = 1, // 1 RCS session is connected.
197 EIMSRCSCONN_STATUE_RESET = 254, // 254 Reset all RCS session.
198}eimsrcsconn_status_enum;
199
200
201//MSG_ID_ATP_IWLAN_EIMSRCSCONN_REQ
202typedef struct {
203 LOCAL_PARA_HDR
204 eimsrcsconn_status_enum status;
205}atp_iwlan_eimsrcsconn_req_struct;
206
207// MSG_ID_ATP_IWLAN_EIWLPLEN_REQ
208typedef struct {
209 LOCAL_PARA_HDR
210 kal_uint8 en;
211} atp_iwlan_eiwlplen_req_struct;
212
213//MSG_ID_ATP_IWLAN_EIWLPING_REQ
214typedef struct {
215 LOCAL_PARA_HDR
216 iwlan_ran_e rat_type;
217 kal_int32 ave_latency;
218 kal_int32 loss_rate;
219} atp_iwlan_eiwlping_req_struct;
220
221//MSG_ID_ATP_IWLAN_EFUN_REQ
222typedef struct {
223 LOCAL_PARA_HDR
224 kal_int8 state;
225} atp_iwlan_efun_req_struct; //phase out
226
227//MSG_ID_ATP_IWLAN_EAPMODE_REQ
228typedef struct {
229 LOCAL_PARA_HDR
230 kal_int8 mode;
231} atp_iwlan_eapmode_req_struct;
232
233// MSG_ID_ATP_IWLAN_SIP_CALL_PROGRESS_REQ
234typedef struct {
235 LOCAL_PARA_HDR
236 kal_uint8 call_id;
237 kal_uint8 dir;
238 kal_uint8 msg_type;
239 kal_uint8 method;
240 kal_uint16 response_code;
241 imcf_uint8 reason_text[IMC_MAX_REASON_TEXT_LENGTH]; //IWLAN only care about reason text
242} atp_iwlan_sip_call_progress_req_struct;
243
244typedef enum{
245 DRP_OP_FLUSH = 0, //no use now
246 DRP_OP_DUMP = 1,
247 DRP_OP_CNT,
248}drp_op_enum;
249
250
251//MSG_ID_ATP_IWLAN_DUMP_RUNTIME_PARA_REQ
252typedef struct {
253 LOCAL_PARA_HDR
254 drp_op_enum op; // 0: flush NVRAM 1: dump to NVRAM
255} atp_iwlan_dump_runtime_para_req_struct;
256
257
258/*******************************************************************************
259* IWLAN V.S. ATP to AP *
260* atp_iwlan_urc_to_ap_table *
261*******************************************************************************/
262#define IWLAN_WIFI_RSSI_CFG_NUM 16
263//MSG_ID_ATP_IWLAN_WIFIMON_CFG_IND
264typedef struct {
265 LOCAL_PARA_HDR
266 kal_bool en;
267 kal_uint8 cnt;
268 kal_int32 sig_thr[IWLAN_WIFI_RSSI_CFG_NUM];
269} atp_iwlan_wifimon_cfg_ind_struct;
270
271//MSG_ID_ATP_IWLAN_EWIFIPDNACT_IND
272typedef struct {
273 LOCAL_PARA_HDR
274 kal_uint8 cnt;
275} atp_iwlan_ewifipdnact_ind_struct;
276
277//MSG_ID_ATP_IWLAN_EIWLCFGSET_IND
278typedef struct {
279 LOCAL_PARA_HDR
280 kal_char cfg_name[64];
281 kal_int32 status;
282} atp_iwlan_eiwlcfgset_ind_struct;
283
284//MSG_ID_ATP_IWLAN_EIWLCFGGET_IND
285typedef struct {
286 LOCAL_PARA_HDR
287 kal_char cfg_name[64];
288 kal_char cfg_value[256];
289 kal_int32 status;
290} atp_iwlan_eiwlcfgget_ind_struct;
291
292//MSG_ID_ATP_IWLAN_EPVSSET_IND
293typedef struct {
294 LOCAL_PARA_HDR
295 kal_char cfg_name[64];
296 kal_int32 status;
297} atp_iwlan_epvsset_ind_struct;
298
299//MSG_ID_ATP_IWLAN_EPVSGET_IND
300typedef struct {
301 LOCAL_PARA_HDR
302 kal_char cfg_name[64];
303 kal_char cfg_value[256];
304 kal_int32 status;
305} atp_iwlan_epvsget_ind_struct;
306
307
308//MSG_ID_ATP_IWLAN_EIMSGEO_IND
309typedef atp_iwlan_eimsgeo_req_struct atp_iwlan_eimsgeo_ind_struct;
310
311//MSG_ID_ATP_IWLAN_EWFCRVOUT_IND
312typedef struct {
313 LOCAL_PARA_HDR
314 kal_char ifname[IWLAN_STRSZS]; // align ifname in atp_iwlan_ewifiasc_req_struct
315 kal_bool rvout_en;
316 kal_bool mobike_ind;
317} atp_iwlan_ewfcrvout_ind_struct;
318
319//MSG_ID_ATP_IWLAN_EIWLPING_IND
320typedef struct {
321 LOCAL_PARA_HDR
322 iwlan_ran_e rat_type;
323} atp_iwlan_eiwlping_ind_struct;
324
325// MSG_ID_ATP_IWLAN_EIWLPL_IND
326typedef struct {
327 LOCAL_PARA_HDR
328 kal_char cmd[8];
329 kal_char type[16];
330 kal_uint8 priority_for_setup;
331 kal_uint8 priority_for_cellular;
332 kal_uint8 priority_for_wifi;
333 kal_char description[32];
334 // For +EIWLPL ver.2
335 kal_uint8 verno;
336 kal_uint8 rat_num;
337 kal_uint8 rpl_row[RPL_RAN_PRIOR_MAX];
338} atp_iwlan_eiwlpl_ind_struct;
339
340// MSG_ID_ATP_IWLAN_CEUS_REQ
341typedef struct {
342 LOCAL_PARA_HDR
343 kal_uint8 centric_type;
344} atp_iwlan_ceus_req_struct;
345
346// MSG_ID_ATP_IWLAN_CEUS_IND
347typedef atp_iwlan_ceus_req_struct atp_iwlan_ceus_ind_struct;
348
349typedef struct
350{
351 LOCAL_PARA_HDR
352 ims_irat_status_enum irat_status;
353 kal_bool irat_result;
354} atp_iwlan_eirat_status_req_struct;
355
356/*******************************************************************************
357* IWLAN V.S. ATP from MD *
358* atp_urc_table *
359*******************************************************************************/
360
361//MSG_ID_ATP_IWLAN_L4_VOPS_URCRPT_REQ
362typedef struct {
363 ATP_IWLAN_L4_RSP_IND_LOCAL_PARA_HDR
364 kal_bool en;
365} atp_iwlan_l4_vops_urcrpt_req_struct;
366
367//MSG_ID_ATP_IWLAN_L4_ECEVDP_URCRPT_REQ
368typedef struct {
369 ATP_IWLAN_L4_RSP_IND_LOCAL_PARA_HDR
370 kal_uint8 vodm_pref;
371} atp_iwlan_l4_ecevdp_urcrpt_req_struct;
372
373//MSG_ID_ATP_IWLAN_L4_CELLSIG_URCRPT_REQ
374typedef struct {
375 ATP_IWLAN_L4_RSP_IND_LOCAL_PARA_HDR
376 kal_int32 sig1;
377 kal_int32 sig2;
378 kal_int32 rssi_qdbm;
379 kal_int32 rscp_qdbm;
380 kal_int32 ecn0_qdbm;
381 kal_int32 rsrq_qdbm;
382 kal_int32 rsrp_qdbm;
383 kal_uint32 act;
384 kal_int32 rs_snr_qdb;
385 kal_int32 band;
386 kal_int32 second_rsrp_qdbm;
387 kal_int32 second_rsrq_qdbm;
388 kal_int32 second_sig3;
389} atp_iwlan_l4_cellsig_urcrpt_req_struct;
390
391
392/*******************************************************************************
393* IWLAN V.S. ATP to MD *
394* atp_iwlan_request_table *
395*******************************************************************************/
396//MSG_ID_ATP_IWLAN_L4_IMSCFG_IND
397typedef atp_iwlan_imscfg_req_struct atp_iwlan_l4_imscfg_ind_struct;
398
399//MSG_ID_ATP_IWLAN_L4_IMSCFG_RSP
400typedef struct {
401 ATP_IWLAN_L4_RSP_IND_LOCAL_PARA_HDR
402} atp_iwlan_l4_imscfg_rsp_struct;
403
404
405//MSG_ID_ATP_IWLAN_L4_CELLSIG_QUERY_IND
406//<TBD>
407//MSG_ID_ATP_IWLAN_L4_CELLSIG_QUERY_RSP
408typedef atp_iwlan_l4_cellsig_urcrpt_req_struct atp_iwlan_l4_cellsig_query_rsp_struct;
409
410
411/****************************
412 * Get URC porting from IMC *
413 ****************************/
414/*
415 * Description
416 * - the primitive is used for PS to notify IWLAN rat_type, cell_id, PLMN_type
417 * Direction
418 * - PS -> IWLAN
419 */
420typedef struct {
421 LOCAL_PARA_HDR
422 ims_rat_type_enum rat_type;
423 kal_uint64 cell_id;
424 cell_service_enum cell_service;
425 plmn_id_struct plmn_id;
426 plmn_type_enum plmn_type;
427 kal_uint8 la_code[2];
428 kal_uint8 ta_code[3];
429 kal_bool limited_service_emc_support;
430 domain_id_enum domain;
431 kal_bool is_empty_cell;
432 /*ecall over IMS*/
433#ifdef __NG_ECALL_SUPPORT__
434 kal_bool support_ecl; /*newtork support ecall over ims or not*/
435#endif
436
437} atp_iwlan_eimsinfo_req_struct;
438
439/*
440 * @brief
441 * @note MSG_ID_ATP_IWLAN_EC2KREG_REQ
442 * +EC2KREG:<domain>, <state>, <service_type>
443 */
444typedef struct {
445 LOCAL_PARA_HDR
446 domain_id_enum domain;
447 c2k_cell_service_enum state;
448 c2k_rat_type_enum service_type;
449} atp_iwlan_ec2kreg_req_struct;
450
451/*
452 * @brief
453 * @note MSG_ID_ATP_IWLAN_EC2KCELL_REQ
454 * +EC2KINFO:<access_type>, <sid>, <nid>, <pzid>, <base_id>, <sectot_id>, <subnet_length>, <carrier_id>
455 */
456typedef struct {
457 LOCAL_PARA_HDR
458 c2k_rat_type_enum access_type;
459 kal_uint16 sid;
460 kal_uint16 nid;
461 kal_uint8 pzid;
462 kal_uint16 base_id;
463 kal_uint32 sectot_id[4];
464 kal_uint8 subnet_length;
465 kal_uint8 carrier_id[7];
466} atp_iwlan_ec2kcell_req_struct;
467
468/*
469 * @brief
470 * @note MSG_ID_ATP_IWLAN_EAFR_IND
471 * +EAFR=<afr_result>
472 */
473typedef struct {
474 LOCAL_PARA_HDR
475 kal_bool result;
476} atp_iwlan_eafr_ind_struct;
477
478/*
479 * @brief
480 * @note MSG_ID_ATP_IWLAN_ECMPCID_REQ
481 * +ECMPCID:<rat>,<ci>,<plmn_id>,<lac>,<tac>
482 */
483typedef struct {
484 LOCAL_PARA_HDR
485 ims_rat_type_enum rat_type;
486 kal_uint64 cell_id;
487 kal_uint8 plmn[MAX_PLMN_LEN + 1];
488 kal_uint16 la_code;
489 kal_uint32 ta_code;
490} atp_iwlan_ecmpcid_req_struct;
491
492/*
493 * @brief UE receive mt cs paging
494 * note MSG_ID_ATP_IWLAN_MT_CS_PAGING_IND
495 * +CIEV: 13
496 */
497typedef struct {
498 LOCAL_PARA_HDR
499} atp_iwlan_mt_cs_paging_ind_struct;
500
501/*
502 * @brief UE receive csfb fail ind
503 * note MSG_ID_ATP_IWLAN_CSFB_FAIL_IND
504 * +ECFFAIL
505 */
506typedef struct {
507 LOCAL_PARA_HDR
508} atp_iwlan_csfb_fail_ind_struct;
509
510/*
511 * @brief
512 * @note MSG_ID_ATP_IWLAN_CS_CALL_STATUS_IND
513 * +ECPI:<call_id>, <msg_type>, <is_ibt>, <is_tch>, <dir>, <call_mode>, <number>, <type>, "<pau>"[,<disc_cause>]
514 */
515typedef struct {
516 LOCAL_PARA_HDR
517 ims_cs_call_status_enum cs_call_status;
518} atp_iwlan_cs_call_status_ind_struct;
519
520/*
521 * Description
522 * - the primitive is used for NAS to notify IWLAN of the SIM Invalid event
523 * Direction
524 * - PS -> IWLAN
525 */
526typedef struct {
527 LOCAL_PARA_HDR
528 plmn_id_struct plmn_id;
529 kal_bool is_cs_invalid;
530 kal_bool is_ps_invalid;
531 kal_uint32 cause;
532} atp_iwlan_sim_invalid_req_struct;
533
534/*
535 * Description
536 * - the primitive is used for PS to notify IWLAN that the UE is in/out of limited service
537 * Direction
538 * - PS -> IWLAN
539 */
540typedef struct {
541 LOCAL_PARA_HDR
542} atp_iwlan_oos_start_req_struct;
543
544typedef struct {
545 LOCAL_PARA_HDR
546} atp_iwlan_oos_end_req_struct;
547
548#endif /* _ATP_IWLAN_STRUCT_H */