blob: 7361f4ea033a15261ed202487c7dc337bf577b7b [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) 2005
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 *
38 * Filename:
39 * ---------
40 * nbr_public_struct.h
41 *
42 * Project:
43 * --------
44 * MAUI
45 *
46 * Description:
47 * ------------
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 *============================================================================
54 * HISTORY
55 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
56 *------------------------------------------------------------------------------
57 * removed!
58 *
59 * removed!
60 * removed!
61 * removed!
62 * removed!
63 *
64 * removed!
65 * removed!
66 * removed!
67 * removed!
68 *
69 * removed!
70 * removed!
71 *
72 * removed!
73 * removed!
74 * removed!
75 * removed!
76 *
77 * removed!
78 * removed!
79 * removed!
80 * removed!
81 *
82 * removed!
83 * removed!
84 * removed!
85 * removed!
86 * removed!
87 *
88 * removed!
89 * removed!
90 * removed!
91 * removed!
92 *
93 * removed!
94 * removed!
95 * removed!
96 * removed!
97 * removed!
98 *
99 * removed!
100 * removed!
101 * removed!
102 * removed!
103 *
104 * removed!
105 * removed!
106 * removed!
107 *
108 * removed!
109 * removed!
110 * removed!
111 * removed!
112 *
113 * removed!
114 * removed!
115 * removed!
116 * removed!
117 *
118 * removed!
119 * removed!
120 * removed!
121 *
122 * removed!
123 * removed!
124 * removed!
125 * removed!
126 * removed!
127 *
128 * removed!
129 * removed!
130 * removed!
131 *
132 * removed!
133 * removed!
134 * removed!
135 *
136 * removed!
137 * removed!
138 *
139 * removed!
140 * removed!
141 * removed!
142 *
143 * removed!
144 * removed!
145 * removed!
146 *
147 * removed!
148 * removed!
149 *
150 * removed!
151 * removed!
152 * removed!
153 *
154 * removed!
155 * removed!
156 * removed!
157 *
158 * removed!
159 * removed!
160 * removed!
161 * removed!
162 * removed!
163 * removed!
164 * removed!
165 * removed!
166 * removed!
167 * removed!
168 * removed!
169 *
170 * removed!
171 * removed!
172 * removed!
173 *
174 * removed!
175 * removed!
176 * removed!
177 *
178 * removed!
179 * removed!
180 * removed!
181 *
182 * removed!
183 * removed!
184 * removed!
185 *
186 *
187 *------------------------------------------------------------------------------
188 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
189 *============================================================================
190 ****************************************************************************/
191
192/********************************************************************************
193* Copyright Statement:
194* --------------------
195*
196* This product has been developed using a protocol stack
197* developed by Sasken Communication Technologies Limited.
198*
199********************************************************************************/
200
201/*******************************************************************************
202* Copyright Statement:
203* --------------------
204* This software is protected by Copyright and the information contained
205* herein is confidential. The software may not be copied and the information
206* contained herein may not be used or disclosed except with the written
207* permission of MediaTek Inc. (C) 2002
208*
209*******************************************************************************
210 * FILENAME : nbr_public_struct.h
211 * SYNOPSIS :
212 *
213 * R E V I S I O N H I S T O R Y
214 *
215 */
216#ifndef _NBR_PUBLIC_STRUCT_H
217#define _NBR_PUBLIC_STRUCT_H
218
219#include "kal_general_types.h"
220#include "kal_public_defs.h"
221#include "global_type.h"
222
223#define GAS_MAX_MEASURED_CELL_NUM 6
224
225#define UAS_MAX_MEASURED_RESULTS_NUM 3
226#define UAS_MAX_CELL_MEASURED_RESULTS_NUM 6
227#define UAS_MAX_TIMESLOT_PER_SUBFRAME 7
228
229#define EAS_MAX_MEASURED_CELL_NUM 32
230
231#define NR_AS_MAX_SERVING_CELL_NUM 32
232#define NR_AS_MAX_MEASURED_CELL_NUM 32
233
234/*-----UAS cell info struct start-------------*/
235
236typedef struct
237{
238 kal_uint8 uarfcn_ul_used;
239 kal_uint16 uarfcn_ul;
240 kal_uint16 uarfcn_dl;
241} uas_freq_info_fdd_struct;
242
243typedef struct
244{
245 kal_uint16 uarfcn;
246} uas_freq_info_tdd_struct;
247
248typedef enum
249{
250 UAS_FREQ_INFO_MODE_FDD = 1,
251 UAS_FREQ_INFO_MODE_TDD,
252 UAS_FREQ_INFO_MODE_END
253} uas_freq_info_mode_enum;
254
255typedef struct uas_freq_info_mode_specific_info_struct
256{
257 kal_uint8 mode; // uas_freq_info_mode_enum
258 union
259 {
260 uas_freq_info_fdd_struct fdd;
261 uas_freq_info_tdd_struct tdd;
262 } choice;
263} uas_freq_info_mode_specific_info_struct;
264
265typedef struct
266{
267 uas_freq_info_mode_specific_info_struct mode_specific_info;
268} uas_freq_info_struct;
269
270/* Measurement results for FDD cell */
271typedef struct
272{
273 kal_uint16 psc;
274 kal_uint8 cpich_Ec_N0_used;
275 kal_uint8 cpich_Ec_N0;
276 kal_uint8 cpich_rscp_used;
277 kal_uint8 cpich_rscp;
278 kal_uint8 pathloss_used;
279 kal_uint8 pathloss;
280} uas_cell_measured_results_fdd_struct;
281
282/* Measurement results for TDD cell, not implemented now */
283typedef struct
284{
285 kal_uint8 num;
286 kal_uint8 element[2*UAS_MAX_TIMESLOT_PER_SUBFRAME];
287}uas_cell_measured_result_tdd_timeslot_iscp_struct;
288
289typedef struct
290{
291 kal_uint8 cellParameterId;
292 kal_uint8 tgsn_used;
293 kal_uint8 tgsn;
294 kal_uint8 pccpch_rscp_used;
295 kal_uint8 pccpch_rscp;
296 kal_uint8 pathloss_used;
297 kal_uint8 pathloss;
298 kal_uint8 timeSlot_iscp_used;
299 uas_cell_measured_result_tdd_timeslot_iscp_struct timeslot_iscp_list;
300
301} uas_cell_measured_results_tdd_struct;
302
303typedef enum
304{
305 UAS_CELL_MEASURED_RESULTS_MODE_FDD = 1,
306 UAS_CELL_MEASURED_RESULTS_MODE_TDD,
307 UAS_CELL_MEASURED_RESULTS_MODE_END
308} uas_cell_measured_results_mode_enum;
309
310typedef struct uas_cell_measured_results_mode_specific_info_struct
311{
312 kal_uint8 mode; // uas_cell_measured_results_mode_enum
313
314 union
315 {
316 uas_cell_measured_results_fdd_struct fdd;
317 uas_cell_measured_results_tdd_struct tdd;
318 } choice;
319} uas_cell_measured_results_mode_specific_info_struct;
320
321typedef struct
322{
323 kal_uint8 cell_id_used;
324 kal_uint32 cell_id;
325 uas_cell_measured_results_mode_specific_info_struct mode_specific_info;
326} uas_cell_measured_results_struct;
327
328/* Measured results of most 32 different cells in one UARFCN */
329typedef struct
330{
331 kal_uint8 num;
332 uas_cell_measured_results_struct element[UAS_MAX_CELL_MEASURED_RESULTS_NUM];
333} uas_cell_measured_results_list_struct;
334
335typedef struct
336{
337 kal_uint8 freq_info_used;
338 uas_freq_info_struct freq_info;
339 kal_uint8 utra_carrier_rssi_used;
340 kal_uint8 utra_carrier_rssi;
341 kal_uint8 cell_measured_results_list_used;
342 uas_cell_measured_results_list_struct cell_measured_results_list;
343} uas_measured_results_struct;
344
345/* Measurement results of most 8 different UARFCN's */
346typedef struct
347{
348 kal_uint8 num;
349 uas_measured_results_struct element[UAS_MAX_MEASURED_RESULTS_NUM];
350} uas_measured_results_list_struct;
351
352typedef struct uas_cell_plmn_id_struct
353{
354 kal_uint16 mcc;
355 kal_uint16 mnc;
356} uas_cell_plmn_id_struct;
357
358typedef struct
359{
360 kal_uint8 is_LAC_valid;
361 kal_uint16 lac;
362 kal_uint8 is_RAC_valid;
363 kal_uint8 rac;
364 kal_uint8 num_plmn_id;
365 uas_cell_plmn_id_struct plmn_id_list[6];
366} uas_cell_info_struct;
367
368typedef struct
369{
370 kal_uint8 num;
371 uas_cell_info_struct cell_info[UAS_MAX_CELL_MEASURED_RESULTS_NUM];
372} uas_cell_info_list_struct;
373
374typedef struct
375{
376 uas_cell_info_list_struct cell_info_list;
377} uas_cell_info_per_freq_struct;
378
379/* Measurement results of most 3 different UARFCN's */
380typedef struct
381{
382 kal_uint8 num_freq;
383 uas_cell_info_per_freq_struct cell_info_per_freq[UAS_MAX_MEASURED_RESULTS_NUM];
384} uas_cell_info_ext_struct;
385
386/* WCDMA cell info */
387typedef struct
388{
389 kal_uint16 mcc;
390 kal_uint16 mnc;
391 kal_uint32 uc;
392 kal_uint8 freq_info_used;
393 uas_freq_info_struct freq_info;
394 kal_uint8 psc_used;
395 kal_uint16 psc;
396 kal_uint8 measured_results_list_used;
397 uas_measured_results_list_struct measured_results_list;
398
399 // Extended information
400 uas_cell_measured_results_mode_specific_info_struct serving_meas_result;
401 uas_cell_info_struct serving_cell_ext_info;
yu.dong99f21a22023-05-30 22:15:37 -0700402 uas_cell_info_ext_struct cell_info_ext_list;
403 kal_uint8 band;
rjw6c1fd8f2022-11-30 14:33:01 +0800404} uas_nbr_cell_info_struct;
405
406/*-----UAS cell info struct end-------------*/
407
408
409// mtk02480
410/*-----GAS cell info struct--------- */
411typedef struct
412{
413 kal_uint16 arfcn;
414 kal_uint8 bsic;
415 kal_uint8 rxlev;
416 kal_int16 rssi_in_qdbm; /* 1 means invalid */
417}gas_nbr_cell_meas_struct;
418
419typedef struct
420{
421 kal_uint16 mcc;
422 kal_uint16 mnc;
423 kal_uint16 lac;
424 kal_uint16 ci;
425}global_cell_id_struct;
426
427typedef struct
428{
429 kal_int8 nbr_meas_num;
430 gas_nbr_cell_meas_struct nbr_cells[15];
431}gas_nbr_meas_struct;
432
433
434typedef struct
435{
436 global_cell_id_struct gci;
437 kal_uint8 nbr_meas_rslt_index;
438}gas_cell_info_struct;
439
440
441typedef struct
442{
443 gas_cell_info_struct serv_info;
444 kal_uint8 ta;
445/* 091125 shuang CVM_PWR_LEV add for CVM network command power level*/
446 kal_uint8 ordered_tx_pwr_lev;
447 kal_uint8 nbr_cell_num;
448 gas_cell_info_struct nbr_cell_info[GAS_MAX_MEASURED_CELL_NUM];
449 gas_nbr_meas_struct nbr_meas_rslt;
450}gas_nbr_cell_info_struct;
451
452/*-----GAS cell info struct--end------- */
453
454/*-----EAS cell info struct start-------------*/
455
456typedef struct
457{
458 EARFCN dl_freq;
459 kal_uint16 pci; //0~503
460 kal_uint8 rsrp; //0~97
461 kal_uint8 rsrq; //0~34
462
463 kal_uint8 is_cell_id_used;
464 kal_uint32 cell_id; //0~0x0FFFFFFF
465 kal_uint16 mcc; //0~999
466 kal_uint16 mnc; //0~999
467 kal_uint8 is_2_digit_mnc; //ncell cell plmn is 2 digits or 3 digits
468 kal_uint16 tac; //0~65535
469 kal_uint8 rssi; //0~31,99
470} eas_cell_measured_results_struct;
471
472typedef struct
473{
474 kal_uint16 ta;
475 kal_uint8 s_tag_id;
476} eas_s_tag_ta_struct;
477
478/* LTE cell info */
479typedef enum {
480 EAS_NR_PDCP_INVALID = 0, // Invalid value for initialization and check
481 EAS_NR_PDCP_PRESENCE = 1, // nr pdcp is configured
482 EAS_NR_PDCP_NOT_PRESENCE = 2, // nr pdcp is not configured
483 EAS_NR_PDCP_UNKNOWN = 3 // no valid result of nr pdcp presence
484} eas_nr_pdcp_presence_enum;
485
486typedef struct
487{
488 /* Serving cell info */
489 kal_uint16 mcc; //0~999
490 kal_uint16 mnc; //0~999
491 kal_uint8 is_2_digit_mnc; //serving cell plmn is 2 digits or 3 digits
492 kal_uint32 cell_id; //0~0x0FFFFFFF
493 EARFCN dl_freq;
494 kal_uint8 ul_freq_used;
495 EARFCN ul_freq;
496 kal_uint16 pci; //0~503
497 kal_uint8 is_ta_used;
498 kal_uint16 time_advance; //0~1282
499 kal_uint8 is_rsrp_valid;
500 kal_uint8 rsrp; //0~97
501 kal_uint8 is_rsrq_valid;
502 kal_uint8 rsrq; //0~34
503 kal_uint16 tac; //0~65535
504
505 /* Neighbor cell info */
506 kal_uint8 num_nbr_cell;
507 eas_cell_measured_results_struct nbr_cell_list[EAS_MAX_MEASURED_CELL_NUM];
508
509 /* Timing advance info for sTAG */
510 eas_s_tag_ta_struct s_tag_ta;
511 kal_bool s_tag_ta_is_valid;
512 kal_uint8 rssi; //0~31,99
513
514 kal_bool is_endc_available;
515 kal_bool is_b1_nr_report_send; //for 5G icon show
516 kal_bool is_nr_cell_measured; //for 5G icon show
517 kal_bool is_nr_cap_queried;
518 eas_nr_pdcp_presence_enum nr_pdcp_bearer; //request from L4, bypass information from CHM
519} eas_nbr_cell_info_struct;
520
521/*-----EAS cell info struct--end------- */
522
523/*-----NR_AS cell info struct start-------------*/
524
525typedef struct
526{
527 kal_bool is_rsrp_valid;
528 kal_uint8 rsrp; // 0~127
529
530 kal_bool is_rsrq_valid;
531 kal_uint8 rsrq; // 0~127
532
533 kal_bool is_sinr_valid;
534 kal_uint8 sinr; // 0~127
535} ssb_measurement_struct, csi_measurement_struct;
536
537
538/* NR serving cell info */
539typedef struct
540{
541 kal_uint8 ssb_id;
542 kal_bool is_rsrp_valid;
543 kal_uint8 rsrp;
544} nr_as_ssb_info_struct;
545
546typedef struct
547{
548 kal_uint32 phys_cell_id; // 0~1007
549 kal_uint32 arfcn; // 0~3279165
550 kal_uint8 scs; // 0~4: 0=15kHz, 1=30kHz, 2=60kHz, 3=120kHz, 4=240kHz
551 kal_uint16 dl_freq_band; // 1~1024
552 kal_uint32 center_arfcn; // 0~3279165
553 kal_uint32 cell_bandwidth; // 0~400000, kHz
554
555 // In case cell broadcasts several sets of NAS sysinfo, NR AS informs
556 // first set of NAS sysinfo in SIB1 of the cell.
557
558 // NAS sys info (mcc/mnc/cell_id/tac) validity
559 kal_bool is_nas_sysinfo_valid;
560
561 kal_uint16 primary_plmn_mcc; // 0~999
562
563 kal_bool is_2_digit_mnc;
564 kal_uint16 primary_plmn_mnc; // 0~999
565
566 kal_uint64 primary_plmn_cell_id; // 36-bit
567 kal_uint32 primary_plmn_tac; // 24-bit
568
569 kal_bool is_ssb_valid;
570 ssb_measurement_struct ssb;
571
572 kal_bool is_csi_valid;
573 csi_measurement_struct csi;
574
575 kal_bool is_ta_valid;
576 kal_uint16 ta;
577
578 kal_uint8 ssb_num;
579 nr_as_ssb_info_struct ssb_list[8];
580} nr_as_serving_cell_info_struct;
581
582/* NR neighbor cell info */
583typedef struct
584{
585 kal_uint32 phys_cell_id; // 0~1007
586 kal_uint32 arfcn; // 0~3279165
587 kal_uint8 scs; // 0~4: 0=15kHz, 1=30kHz, 2=60kHz, 3=120kHz, 4=240kHz
588 kal_uint16 dl_freq_band; // 1~1024
589
590 // In case cell broadcasts several sets of NAS sysinfo, NR AS informs
591 // first set of NAS sysinfo in SIB1 of the cell.
592
593 // NAS sys info (mcc/mnc/cell_id/tac) validity
594 kal_bool is_nas_sysinfo_valid;
595
596 kal_uint16 primary_plmn_mcc; // 0~999
597
598 kal_bool is_2_digit_mnc;
599 kal_uint16 primary_plmn_mnc; // 0~999
600
601 kal_uint64 primary_plmn_cell_id; // 36-bit
602 kal_uint32 primary_plmn_tac; // 24-bit
603
604 kal_bool is_ssb_valid;
605 ssb_measurement_struct ssb;
606
607 kal_bool is_csi_valid;
608 csi_measurement_struct csi;
609
610 kal_uint8 ssb_num;
611 nr_as_ssb_info_struct ssb_list[4];
612} nr_as_cell_measured_result_struct;
613
614/* NR cell info */
615typedef struct
616{
617 kal_uint8 num_serving_cell;
618 nr_as_serving_cell_info_struct nr_serving_cell_list[NR_AS_MAX_SERVING_CELL_NUM];
619
620 kal_uint8 num_nbr_cell;
621 nr_as_cell_measured_result_struct nbr_cell_list[NR_AS_MAX_MEASURED_CELL_NUM];
622} nr_as_nbr_cell_info_struct;
623
624/*-----NR_AS cell info struct--end------- */
625
626typedef struct
627{
628 kal_uint8 is_nbr_info_valid;
629 kal_uint8 is_eas_nbr_info_valid;
630 kal_uint8 is_nr_as_nbr_info_valid;
631 eas_nbr_cell_info_struct eas_nbr_cell_info;
632 nr_as_nbr_cell_info_struct nr_as_nbr_cell_info;
633} l4c_endc_nbr_cell_info_struct;
634
635typedef union
636{
637 gas_nbr_cell_info_struct gas_nbr_cell_info;
638 uas_nbr_cell_info_struct uas_nbr_cell_info;
639 eas_nbr_cell_info_struct eas_nbr_cell_info;
640 nr_as_nbr_cell_info_struct nr_as_nbr_cell_info;
641}ps_nbr_cell_info_union_type;
642
643typedef struct l4c_nbr_cell_info_reg_cnf_struct
644{
645 LOCAL_PARA_HDR
646 kal_uint8 rat_mode;
647 kal_uint8 is_nbr_info_valid;
648 ps_nbr_cell_info_union_type ps_nbr_cell_info_union;
649} l4c_nbr_cell_info_reg_cnf_struct,l4c_nbr_cell_info_ind_struct;
650
651typedef enum
652{
653 GSM_NW_BAND_850 = 0x0001,
654 GSM_NW_BAND_E_900 = 0x0002,
655 GSM_NW_BAND_DCS_1800 = 0x0004,
656 GSM_NW_BAND_PCS_1900 = 0x0008,
657 GSM_NW_BAND_P_900 = 0x0010,
658 GSM_NW_BAND_R_900 = 0x0020,
659 GSM_NW_BAND_450 = 0x0040,
660 GSM_NW_BAND_480 = 0x0080,
661 GSM_INVALID_BAND = 0xffff
662}gsm_nw_band_enum;
663
664typedef struct gas_nw_band_info_struct
665{
666 kal_uint16 serv_band;
667 kal_uint16 nbr_band_list; /* Band value mapped to gsm_nw_band_enum */
668
669 kal_bool umts_bands_valid;
670 kal_uint16 umts_nbr_band_list[2]; /* Each bit in nbr_band_list represent the band.
671 nbr_band_list[0] bit0 represents UMTS band1.. nbr_band_list[0] bit15 represents UMTS band16
672 nbr_band_list[1] bit0 represents UMTS band17.. nbr_band_list[1] bit5 represents UMTS band22.*/
673 kal_bool lte_bands_valid;
674 kal_uint16 lte_nbr_band_list[16]; /* Each bit in lte_nbr_band_list represent the band.
675 lte_nbr_band_list[0] bit0 represents LTE band1.. lte_nbr_band_list[0] bit15 represents LTE band16
676 lte_nbr_band_list[15] bit0 represents LTE band240.. lte_nbr_band_list[15] bit15 represents LTE band256.*/
677}gas_nw_band_info_struct;
678
679typedef struct uas_nw_band_info_struct
680{
681 kal_uint8 serv_band; /* Serving Band number */
682 kal_uint16 nbr_band_list[2]; /* Each bit in nbr_band_list represent the band.
683 nbr_band_list[0] bit0 represents UMTS band1.. nbr_band_list[0] bit15 represents UMTS band16
684 nbr_band_list[1] bit0 represents UMTS band17.. nbr_band_list[1] bit5 represents UMTS band22.*/
685 kal_bool lte_bands_valid;
686 kal_uint16 lte_nbr_band_list[16]; /* Each bit in lte_nbr_band_list represent the band.
687 lte_nbr_band_list[0] bit0 represents LTE band1.. lte_nbr_band_list[0] bit15 represents LTE band16
688 lte_nbr_band_list[15] bit0 represents LTE band240.. lte_nbr_band_list[15] bit15 represents LTE band256.*/
689
690 kal_bool gsm_bands_valid;
691 kal_uint16 gsm_nbr_band_list; /* Band value mapped to gsm_nw_band_enum */
692
693
694}uas_nw_band_info_struct;
695
696typedef struct eas_nw_band_info_struct
697{
698 kal_uint16 serv_band; /* Serving Band number */
699 kal_uint16 nbr_band_list[16]; /* Each bit in nbr_band_list represent the band.
700 nbr_band_list[0] bit0 represents LTE band1.. nbr_band_list[0] bit15 represents LTE band16
701 nbr_band_list[15] bit0 represents LTE band240.. nbr_band_list[15] bit15 represents LTE band256.*/
702 kal_bool umts_bands_valid;
703 kal_uint16 umts_nbr_band_list[2]; /* Each bit in nbr_band_list represent the band.
704 nbr_band_list[0] bit0 represents UMTS band1.. nbr_band_list[0] bit15 represents UMTS band16
705 nbr_band_list[1] bit0 represents UMTS band17.. nbr_band_list[1] bit5 represents UMTS band22.*/
706
707 kal_bool gsm_bands_valid;
708 kal_uint16 gsm_nbr_band_list; /* Band value mapped to gsm_nw_band_enum */
709
710}eas_nw_band_info_struct;
711
712
713typedef union
714{
715 gas_nw_band_info_struct gas_nw_band_info;
716#ifdef __UMTS_RAT__
717 uas_nw_band_info_struct uas_nw_band_info;
718#endif
719#ifdef __LTE_RAT__
720 eas_nw_band_info_struct eas_nw_band_info;
721#endif
722#if !defined(__UMTS_RAT__) && !defined(__LTE_RAT__)
723 kal_uint32 dummy_padding;
724#endif
725}ps_nw_band_info_union_type;
726
727typedef struct l4c_nw_band_info_ind_struct
728{
729 kal_uint8 ref_count;
730 kal_uint16 msg_len;
731 kal_uint8 rat_mode;
732 kal_uint8 is_nw_band_info_valid;
733 ps_nw_band_info_union_type ps_nw_band_info_union;
734} l4c_nw_band_info_ind_struct;
735
736#ifdef __CHR_AB_INFO__
737
738//Huawei Index8 requirement: Inidication of reason for Not moving to 4G.
739typedef enum
740{
741 AS_EUTRA_INFO_NOT_AVAILABLE, // LTE info not avaialble with AS to perform measurments.
742 AS_EUTRA_CELL_NOT_FOUND, // LTE info avaialbel and triggered meansurements, but no LTE cell found.
743 AS_EUTRA_RESEL_CRIT_NOT_MET, // UE in idle and LTE measurments are going on, but cell reselection criterin not met.
744 AS_CONN_MODE_NO_HO_CCO, // UE in connected and LTE measurments are going on, either event\periodical MR not sent or NW not redirecting to 4G.
745 AS_LTE_RESEL_FAIL_S_CRI_NOT_MET, // 4G resele failed due to s criteria not satisfied.
746 AS_LTE_RESEL_FAIL_SIB_READ_ERROR, // 4G resele failed due to sib reception failed.
747 AS_LTE_RESEL_FAIL_CELL_BARRED, // 4G resele failed due to cell is barred.
748 AS_LTE_RESEL_FAIL_PLMN_MISMATCH, // 4G resele failed due to target cell's PLMN doesn't match S/E PLMN.
749 AS_LTE_RESEL_FAIL_FORBIDDEN_TA, // 4G resele failed due to target cell is in forbidden tracking area.
750 AS_3G4_HO_FAIL_PHYSICAL_CHANNEL_FAILURE, // 3G to 4G HO fail due to physical channel failure.
751 AS_3G4_HO_FAIL_FREQUENCY_NOT_IMPLEMENTED, // 3G to 4G HO fail due to evalution fail.
752 AS_3G4_HO_FAIL_PROTOCOL_ERROR, // 3G to 4G HO fail due to inconsistent or missing parameters causing protocol error
753 AS_3G4_HO_FAIL_UNSUPPORTED_CONFIGURATION, // 3G to 4G HO fail due to predefined configuration not read or default configuration not implemented..
754 AS_3G4_HO_FAIL_UNSPECIFIED_ERROR, // 3G to 4G HO fail due to unspecified error.
755 AS_LTE_CCO_FAIL_TARGET_CELL_REJECT, // CCO to 4G failed due to target cell rejected the CCO procedure
756 AS_LTE_CCO_FAIL_TARGET_CELL_NO_RESPONSE, // CCO to 4G failed due to target cell no response.
757 AS_LTE_CCO_FAIL_NAS_ABORT // CCO to 4G failed due to NAS abort
758} as_reason_not_moving_to_lte_enum;
759
760typedef enum
761{
762 NAS_LTE_CAUSE_NONE, //NO CAUSE
763 NAS_NO_USIM, //NO USIM inserted
764 NAS_LTE_CAPABILITY_NOT_SET, //SET_RAT_MODE does not have LTE
765 NAS_LTE_PS_DETACHED, //PS Attach is not requested
766 NAS_LTE_CS_SERVICE_NOT_POSSIBLE, //LTE cannot get CS normal service
767 NAS_LTE_NORMAL_SERVICE_NOT_POSSIBLE, //LTE cannot get normal service
768 NAS_LTE_IRAT_FAILED, //IRAT failed to LTE
769 NAS_LTE_HIGH_PRIO_PLMN_NOT_FOUND, //LTE PLMN not found in HIGH_PRIORITY_SEARCH
770 NAS_CS_CALL_ONGOING, //CS_CALL ongoing
771 NAS_LTE_DISABLED, //EUTRAN capability is disabled for the current PLMN
772 NAS_LTE_ENABLED_NEED_RESELECTION, //EUTRAN is enabled, need AS to reselect
773 NAS_LTE_PLMN_LOSS, //LTE cell lost
774 NAS_LTE_PLMN_NOT_FOUND_DURING_SEARCH //LTE PLMN not found during search
775} nas_reason_not_moving_to_lte_enum;
776
777typedef struct
778{
779 as_reason_not_moving_to_lte_enum as_reason; // AS reason for not moving to 4G.
780 nas_reason_not_moving_to_lte_enum nas_reason; // NAS reason for not moving to 4G.
781} ps_reason_not_moving_to_lte_struct;
782#endif /* __CHR_AB_INFO__ */
783
784#endif /* _NBR_PUBLIC_STRUCT_H */