blob: 4439920ec0d94e00208f27609b78d9c5fb2bcae3 [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) 2007
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/*******************************************************************************
37 * Filename:
38 * ---------
39 * gas_eas_struct.h
40 *
41 * Project:
42 * --------
43 * MONZA
44 *
45 * Description:
46 * ------------
47 *
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 * ==========================================================================
54 * $Log:$
55 *
56 * 05 27 2021 ot_renuka.madane
57 * [MOLY00643309] ????? MOLY00617181 ? MOLY.NR15.R3.MP.V1.6
58 *
59 * [CODE SYNC] BLIND FR trigger based on 4G signal strength.
60 *
61 * 12 09 2019 icy.li
62 * [MOLY00464630] Gen97 Elevator Mode feature
63 *
64 * .
65 *
66 * 05 07 2019 sapna.ks
67 * [MOLY00397094] [CODE SYNC] [Gen95 patch back] Modem??SRVCC HO fail cause
68 * .
69 *
70 * 02 18 2019 nalin.chovatia
71 * [MOLY00384995] [VMOLY] GEMINI 3.0, AFR, Unify Frequency scan, BGSEARCH
72 * .gemini_afr_bg
73 *
74 * 10 03 2018 nalin.chovatia
75 * [MOLY00356286] [Gen97] background search feature
76 * .vmoly BG
77 *
78 * 09 15 2017 abhinav.agarwal
79 * [MOLY00278198] [CODE SYNC] [LR11 MP3][GAS] [Interface]New feature requirement: SRVCC fail????
80 * .
81 *
82 * 10 24 2016 dennis.weng
83 * [MOLY00208768] [MT6293] [B66] Band66 porting (ERRC part)
84 * .
85 *
86 * 03 10 2016 mark.ng
87 * [MOLY00165947] [6291 HSR] Protocol Enhancement (Header/Interface)
88 * [HSR UMOLY] cel interface
89 *
90 * 02 26 2016 srihari.maddipati
91 * [MOLY00162461] ¦bAndroid???Modem??Logªº»Ý¨D
92 * .
93 *
94 * 06 01 2015 henry.lai
95 * [MOLY00092508] [MT6291][LTE-C2K] AS Inter RAT feature
96 * .
97 *
98 * 05 26 2015 chun-fan.tsai
99 * [MOLY00097098] [6291][CONN] Code Sync from MOLY to UMOLY
100 * Sync MOLY00097502 to UMOLY (GAS-EAS interface)
101 *
102 * 05 15 2015 songsong.jia
103 * [MOLY00084416] [eCSFB]LU Reduction feature
104 * .
105 *
106 * 12 12 2014 yuhhwang.yu
107 * [MOLY00087211] [CISE] add CSG fingerprint compile option and bug fix
108 * . CISE codes
109 *
110 * 11 14 2014 henry.lai
111 * [MOLY00079072] [MT6291] Change EARFCN from kal_uint16 to kal_uint32 for CEL part
112 * .
113 *
114 * 11 11 2014 shin.chen
115 * [MOLY00080357] [GAS] Extend earfcn to U32 for GAS
116 * .
117 *
118 * 06 09 2014 aaron.liu
119 * [MOLY00068770] [HZ]5.4.1 solution
120 * EAS part:Add interface
121 *
122 * 06 05 2014 xiaochi.zhao
123 * [MOLY00067770] [New SBP feature request] 4G background search - remove compile option __4G_BACKGROUND_SEARCH__
124 * .
125 *
126 * 05 05 2014 xiaochi.zhao
127 * [MOLY00064429] [MT6290LTE][CSFB][ERRC]New Feature : 2G4 Background Search
128 * .
129 *
130 * 01 21 2014 wcpuser_integrator
131 * [MOLY00054475] SGLTE option rename
132 * .
133 *
134 * 12 31 2013 stanleyhy.chen
135 * [MOLY00048478] [MT6290E1][LTG][GCF][CMW500][MM][Pre-Test][case 9.2.3.3.4][Band 38] Fail
136 * Add a flag prohibit_apply_n_layer
137 *
138 * 11 13 2013 vend_simon.huang
139 * [MOLY00046027] [MT6290E1][MMDS_DC] MMDC feature patch back to MOLY trunk
140 * CEL OA part
141 *
142 * 07 24 2013 rujing.zhao
143 * [MOLY00031020] [MMDS_DC] Merge MMDC interface to MOLY
144 * .2->34G NBR transfer
145 *
146 * 07 23 2013 henry.lai
147 * [MOLY00023935] [MT6290E1][W/G][Target IT] Meas result is received so frequently when priority measurement and drx measurement are on-going
148 * .
149 *
150 * 03 14 2013 morton.lin
151 * [MOLY00011957] [MT6290] Multimode IT CBr merge back to MOLY
152 * Multimode IT CBr merge back to MOLY - stage 1
153 *
154 * 01 23 2013 henry.lai
155 * [MOLY00009222] [GAS][Multi-Mode Development] Merge GAS multi-mode development to MOLY
156 * .
157 *
158 * 01 11 2013 henry.lai
159 * [Henry][Multi-Mode Development] GAS Development and R8 CR Sync
160 *
161 * Add copyright header.
162 ****************************************************************************/
163
164#ifndef _GAS_EAS_STRUCT_H
165#define _GAS_EAS_STRUCT_H
166
167#include "uas_gas_enums.h"
168#include "gas_eas_enums.h"
169#include "kal_general_types.h"
170#include "csi_umts_asn.h"
171#include "l3_inc_enums.h"
172#include "mcd_l3_inc_struct.h"
173#include "csi_gsm_asn.h"
174#include "irat_common_struct.h"
175#include "irat_common_enums.h"
176#include "global_type.h"
177#include "mrs_as_struct.h"
178#include "gas_eas_inter_core_struct.h"
179
180
181typedef struct {
182 LOCAL_PARA_HDR
183 te_ir_cell_change_trigger ir_cell_change_trigger;
184 plmn_search_type_enum plmn_search_type;
185 GSM_TargetCellInfo target_gcell_info;
186}eas_gas_evaluate_gcell_req_struct;
187
188typedef struct {
189 LOCAL_PARA_HDR
190 te_ir_cell_reselection_status ir_cell_eval_status;
191 ts_eval_activate_fail_handle eval_activate_fail_handle;
192}eas_gas_evaluate_gcell_cnf_struct;
193
194typedef struct {
195 LOCAL_PARA_HDR
196}eas_gas_evaluate_gcell_stop_req_struct;
197
198typedef struct {
199 LOCAL_PARA_HDR
200}eas_gas_evaluate_gcell_stop_cnf_struct;
201
202typedef struct {
203 LOCAL_PARA_HDR
204 te_ir_cell_change_trigger ir_cell_change_trigger;
205 plmn_search_type_enum plmn_search_type;
206 GSM_TargetCell_Info_union target_gcell_info;
207 GSM_TargetCell_SI_Info_union target_gcell_si_info;
208 kal_uint32 cell_change_activation_time; /* milli-seconds, */
209 kal_uint32 cell_change_timeout; /* value in milli-seconds or zero when not required */
210 kal_uint32 wait_time; /* milli-Seconds: 0~15000ms, GAS should not reselect back to UMTS/LTE within "wait_time" period */
211 kal_bool nc_mode_present; /* if TRUE nc_mode is present */
212 kal_uint8 nc_mode; /* Optional, present if nc_mode_present is TRUE */
213 ir_lte_scell_struct lte_scell_inf; /* cell info of the source LTE cell */
214}eas_gas_activate_gcell_req_struct;
215
216typedef struct {
217 LOCAL_PARA_HDR
218 te_ir_cell_reselection_status ir_cell_activation_status;
219 ts_eval_activate_fail_handle eval_activate_fail_handle;
220 te_ir_cell_change_fail_reason_enum ir_cell_change_failed_reason;
221}eas_gas_activate_gcell_cnf_struct;
222
223typedef struct {
224 LOCAL_PARA_HDR
225 te_ir_cell_change_complete_status ir_cell_change_complete_status;
226 te_ir_cell_change_fail_reason_enum ir_cell_change_failed_reason;
227}eas_gas_gcell_change_complete_ind_struct;
228
229typedef struct {
230 LOCAL_PARA_HDR
231 ts_ciphering_info ciphering_info;
232 plmn_search_type_enum plmn_search_type;
233 te_gsm_band_indicator band_indicator;
234 kal_uint16 message_length;
235}eas_gas_handover_gcell_req_struct;
236
237typedef struct {
238 LOCAL_PARA_HDR
239 te_ir_handover_status ir_handover_to_gsm_status;
240 te_ir_handover_cipher_algo ir_handover_to_gsm_cipher_algo;
241 ho_from_lte_type_enum lte_ho_type;
242#ifdef __SRVCC_CELL_INFO__
243 kal_uint16 bcch_arfcn;
244#endif
245}eas_gas_handover_gcell_cnf_struct;
246
247typedef struct {
248 LOCAL_PARA_HDR
249 kal_uint8 t3212_timer_val;
250 kal_bool att_flag;
251 kal_uint32 wait_time;
252 /* __ALPS02506878_SUPPORT__ */
253 te_ir_call_type call_type;
254}eas_gas_ho_activate_gcell_req_struct;
255
256typedef struct {
257 LOCAL_PARA_HDR
258 te_ir_handover_status ir_handover_to_gsm_status;
259 #ifdef __SRVCC_CELL_INFO__
260 te_ir_handover_phy_fail_subcause ir_handover_to_gsm_phy_fail_subcause;
261 #endif /*__SRVCC_CELL_INFO__*/
262}eas_gas_ho_activate_gcell_cnf_struct;
263
264
265typedef struct {
266 LOCAL_PARA_HDR
267 eas_target_cell_info target_cell;
268 plmn_search_type_enum plmn_search_type;
269/* __4G_BACKGROUND_SEARCH__ begin */
270 /*2G4 background search parameter*/
271 kal_bool is_background_search_trigger;
272 gas_cell_info serving_cell_info;
273/* __4G_BACKGROUND_SEARCH__ end */
274
275} gas_eas_evaluate_ecell_req_struct;
276
277typedef struct {
278 LOCAL_PARA_HDR
279 te_ir_cell_reselection_status eval_status;
280 ts_eval_activate_fail_handle eval_activate_fail_handle;
281} gas_eas_evaluate_ecell_cnf_struct;
282
283typedef struct {
284 LOCAL_PARA_HDR
285 te_ir_cell_change_trigger trigger;
286 kal_uint32 remain_wait_time;
287 eas_target_cell_info target_cell;
288 kal_uint32 cell_change_timeout;
289 plmn_search_type_enum plmn_search_type;
290 kal_uint8 redirect_freq_num;
291 lte_redirect_info redirect_freq_info [MAX_GAS_EAS_REDIRECT_FREQ_NUM];
292 kal_bool is_gas_cell_inf_valid;
293 mrs_gas_cell_inf_struct gas_cell_inf;
294 kal_uint32 remaining_time_afr; /*value in milli-seconds valid in case of AFR*/
295 kal_bool is_elevator_mode;
296 kal_bool is_custom_threshold_need;
297} gas_eas_activate_ecell_req_struct;
298
299typedef struct {
300 LOCAL_PARA_HDR
301 te_ir_cell_reselection_status active_status;
302 ts_eval_activate_fail_handle eval_activate_fail_handle;
303 te_ir_cell_change_fail_reason_enum ir_cell_change_failed_reason;
304} gas_eas_activate_ecell_cnf_struct;
305
306typedef struct {
307 LOCAL_PARA_HDR
308 /* No parameters here */
309} gas_eas_evaluate_ecell_stop_req_struct;
310
311typedef struct {
312 LOCAL_PARA_HDR
313 /* No parameters here */
314} gas_eas_evaluate_ecell_stop_cnf_struct;
315
316typedef struct {
317 LOCAL_PARA_HDR
318 te_ir_cell_change_complete_status cell_change_complete_status;
319 te_ir_cell_change_fail_reason_enum cell_change_failed_reason;
320}gas_eas_ecell_change_complete_ind_struct;
321
322
323typedef struct{
324 LOCAL_PARA_HDR
325 plmn_search_type_enum plmn_search_type;
326 auto_search_cmd_enum auto_search_cmd;
327 kal_uint8 num_freq;
328 EARFCN freq_list[MAX_NUM_CSG_FREQ];
329} gas_eas_search_csg_ecell_req_struct;
330
331typedef struct{
332 LOCAL_PARA_HDR
333 search_status_enum search_status;
334 kal_uint8 num_csg_freq_search_result;
335 csg_freq_search_result_struct csg_freq_search_result_list[MAX_NUM_CSG_FREQ];
336} gas_eas_search_csg_ecell_cnf_struct;
337
338
339typedef struct{
340 LOCAL_PARA_HDR
341 plmn_search_type_enum plmn_search_type;
342 auto_search_cmd_enum auto_search_cmd;
343 kal_uint8 num_freq;
344 EARFCN freq_list[MAX_NUM_CSG_FREQ];
345} gas_eas_evaluate_csg_ecell_req_struct;
346
347typedef struct{
348 LOCAL_PARA_HDR
349 search_status_enum search_status;
350 kal_uint8 num_csg_freq_search_result;
351 csg_freq_search_result_struct csg_freq_search_result_list[MAX_NUM_CSG_FREQ];
352} gas_eas_evaluate_csg_ecell_cnf_struct;
353
354/*4G2 CSG FINGERPRINT */
355typedef struct {
356 LOCAL_PARA_HDR
357 plmn_id_struct csg_plmn;
358 kal_uint32 csg_id;
359 kal_uint32 csg_cell_id;
360 EARFCN csg_frequency;
361 kal_uint16 csg_physical_cell_id;
362} eas_gas_build_fingerprint_req_struct;
363
364typedef struct {
365 LOCAL_PARA_HDR
366} eas_gas_build_fingerprint_cnf_struct;
367
368typedef struct {
369 LOCAL_PARA_HDR
370} eas_gas_abort_fingerprint_ind_struct;
371
372/* LTE to GAS IR Measurement */
373typedef struct
374{
375 LOCAL_PARA_HDR
376} eas_gas_config_gcell_prio_meas_cnf_struct;
377
378typedef struct
379{
380 LOCAL_PARA_HDR
381} eas_gas_config_gcell_meas_cnf_struct;
382
383/* GAS to LTE IR Measurement */
384typedef struct
385{
386 LOCAL_PARA_HDR
387 kal_uint8 tid;
388 kal_bool hps_flag;
389 kal_uint8 prio_meas_period;
390 kal_uint8 freq_num;
391 eas_meas_freq_info_struct freq[MAX_MEAS_IRAT_FREQ];
392} gas_eas_lte_measurement_req_struct;
393
394typedef struct {
395 LOCAL_PARA_HDR
396} gas_eas_lte_measurement_cnf_struct;
397
398typedef struct
399{
400 LOCAL_PARA_HDR
401 kal_uint8 freq_num;
402 eas_hps_qualify_struct freq[MAX_MEAS_IRAT_FREQ];
403 /* This flag is used to indicate whether measurement period should be reset
404 * immediately. (TRUE: meas is performed in the first DRX.
405 * FALSE: meas is performed in the first T-meas occasion)
406 * In current design, the following rules should be followed.
407 * (1)If freq_num != 0, this flag will be set as FALSE only if tmeasure measurement
408 * is triggered when priority measurement is on-going (i.e., at
409 * least one of LTE cells hits priority reselection criteria for
410 * priority based measurement reselection). If any improvement is
411 * needed, the usage limitation for this flag should be confirmed
412 * with EL1's colleague.
413 * (2) If freq_num == 0, this flag will alwyas be set as FALSE;
414 */
415 kal_bool is_meas_period_reset;
416} gas_eas_lte_hps_qualify_cell_ind_struct;
417
418typedef struct
419{
420 LOCAL_PARA_HDR
421 kal_uint8 tid;
422 kal_uint8 freq_num;
423 eas_meas_freq_rslt_struct freq[MAX_MEAS_IRAT_FREQ];
424#ifdef UNIT_TEST
425 kal_uint32 meas_ind_ms_diff;
426#endif /* UNIT_TEST */
427} gas_eas_lte_measurement_ind_struct;
428
429/* LTE to GAS CGI Collection */
430typedef struct {
431 LOCAL_PARA_HDR
432 kal_uint8 tid;
433 report_cgi_req_type_enum report_cgi_req_type;
434 te_gsm_band_indicator gsm_band_indicator;
435 kal_uint16 arfcn;
436 kal_uint8 bsic;
437} eas_gas_report_cgi_req_struct;
438
439typedef struct {
440 kal_bool is_rac_valid;
441 kal_uint8 rac;
442} gcell_cgi_info_optional_struct;
443
444typedef struct {
445 cgi_info_status_enum cgi_info_status;
446 kal_uint16 arfcn;
447 kal_uint8 bsic;
448 kal_int16 rssi_in_quarter_dbm;
449 kal_uint16 cell_id;
450 plmn_id_struct plmn_id;
451 kal_uint16 lac;
452 gcell_cgi_info_optional_struct optional_field;
453} gcell_cgi_info_struct;
454
455typedef struct {
456 LOCAL_PARA_HDR
457 kal_uint8 tid;
458 gcell_cgi_info_struct gcell_cgi_info;
459} eas_gas_report_cgi_cnf_struct;
460
461typedef struct {
462 LOCAL_PARA_HDR
463 /* KAL_TRUE : ready timer timeout during 2G4 IR CCO procedure.
464 * KAL_FALSE : 2G4 IR CCO procedure is rejected by NAS and
465 * ready timer timeout is not required to handle by
466 * EAS.
467 */
468 kal_bool is_handling_needed;
469} gas_eas_ready_timer_status_ind_struct;
470
471
472/* __4G_BACKGROUND_SEARCH__ begin */
473/*2G4 background search*/
474typedef struct {
475 LOCAL_PARA_HDR
476 /* No parameters here */
477} gas_eas_background_search_start_req_struct;
478
479typedef struct {
480 LOCAL_PARA_HDR
481 /* No parameters here */
482} gas_eas_background_search_start_cnf_struct;
483
484typedef struct {
485 LOCAL_PARA_HDR
486 /* No parameters here */
487} gas_eas_background_search_stop_req_struct;
488
489typedef struct {
490 LOCAL_PARA_HDR
491 /* LTE detected cell info */
492 EARFCN earfcn;
493 kal_uint16 pci;
494} eas_gas_background_search_found_ind_struct;
495/* __4G_BACKGROUND_SEARCH__ end */
496
497/* HSR_SNIFF_SEARCH */
498typedef struct {
499 LOCAL_PARA_HDR
500 /* LTE detected cell info */
501 EARFCN earfcn;
502 kal_uint16 pci;
503} eas_gas_hsr_cell_found_ind_struct;
504#endif /* _GAS_EAS_STRUCT_H */
505
506