blob: 75b59d47318b7a0d8f41cc09906387d792cf2254 [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) 2018
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 * l4c_nrrc_struct.h
40 *
41 * Project:
42 * --------
yu.dong3b07b072024-06-18 02:33:01 -070043 *
rjw6c1fd8f2022-11-30 14:33:01 +080044 *
45 * Description:
46 * ------------
47 * Messages and common definitions for L4C-NRRC interface
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 ****************************************************************************/
54
55#ifndef _L4C_NRRC_STRUCT_H_
56#define _L4C_NRRC_STRUCT_H_
57
58#include "kal_general_types.h"
59#include "kal_public_defs.h"
60#include "ps_public_enum.h"
61#include "ps_public_struct.h"
62#include "mcd_l3_inc_struct.h"
63#include "l3_inc_enums.h"
64#include "nrrc_nvram_def.h"
65#include "l4c_common_enum.h"
66#include "l4c_as_inter_core_def.h"
yu.dongc279f972024-06-18 02:22:06 -070067#include "vdm_l4c_struct.h"
rjw6c1fd8f2022-11-30 14:33:01 +080068
69#ifdef __NR_RAT__
70#define MAX_CUSTOM_NR_COMB_LIST_MAX_LENGTH NVRAM_EF_NRRC_CUSTOM_ENDC_COMB_WHITE_LIST_MAX_LENGTH
71#else
72#define MAX_CUSTOM_NR_COMB_LIST_MAX_LENGTH 2048
73#endif
74
75typedef struct
76{
77 LOCAL_PARA_HDR
78
79 kal_int32 ssRssi_in_qdbm;
80 kal_int32 ssRsrp_in_qdbm;
81 kal_int32 ssRsrq_in_qdb;
82 kal_int32 ssSinr_in_qdb;
83
84 kal_int32 csiRsrp_in_qdbm;
85 kal_int32 csiRsrq_in_qdb;
86 kal_int32 csiSinr_in_qdb;
87
88 kal_uint16 serv_nr_band;
89 l4c_signal_reporting_type_enum signal_report_type;
yu.dong3b07b072024-06-18 02:33:01 -070090 kal_uint8 thres_cross_signal_type; /* Applicable only if is_thres_cross is TRUE.
rjw6c1fd8f2022-11-30 14:33:01 +080091 1 - ssRSRP, 2 - ssRSRQ, 3 - ssRSRP + ssRSRQ, 4 - ssSINR, 5 - RSRP + ssSINR, 6 - ssRSRQ + ssSINR, 7 - All three*/
92 kal_int16 ssSrxlev_in_qdb; /* range -32768 ~ 32767, invalid value:0x7fff */
93 kal_int16 ssSqual_in_qdb; /* range -32768 ~ 32767, invalid value:0x7fff */
94} l4c_nrrc_cell_power_level_ind_struct;
95
96
97
98typedef l4c_4g5g_etws_setting_req_struct l4c_nrrc_etws_setting_req_struct;
99
100typedef l4c_4g5g_etws_information_ind_struct l4c_nrrc_etws_information_ind_struct;
101
102
103typedef struct {
104 LOCAL_PARA_HDR
105 kal_uint32 rcv_tick; /* The time tick when SIB9 is received by NRRC */
106 kal_uint64 timeinfo_utc; /* 0~549755813887 */
107 kal_bool is_day_light_saving_time_valid;
108 kal_uint8 day_light_saving_time; /* 2 bits */
109 kal_bool is_leap_seconds_valid;
110 kal_int16 leap_seconds; /* -127~128 */
111 kal_bool is_localtime_offset_valid;
112 kal_int8 localtime_offset; /* -63~64 */
113} l4c_nrrc_time_info_ind_struct;
114
115
116typedef struct
117{
118 kal_bool enable;
119 kal_uint32 t1; // The period to count number of SCG failure event (seconds)
120 kal_uint8 p1; // The specified number of SCG failure event
121 kal_uint32 t2; // Expired time - when to activate SCG after deactivation (seconds)
122} scg_event_failure_config_struct;
123
124typedef struct
125{
126 kal_bool enable;
127 kal_uint32 t1; // The period to count number of SCG release event (seconds)
128 kal_uint8 p1; // The specified number of SCG release event
129 kal_uint32 t2; // Expired time - when to activate SCG after deactivation (seconds)
130} scg_event_release_config_struct;
131
132typedef union {
133 scg_event_failure_config_struct scg_event_failure_config;
134 scg_event_release_config_struct scg_event_release_config;
135} scg_event_config_union;
136
137
138typedef struct {
139 LOCAL_PARA_HDR
140 kal_bool allow_scg_add;
141} l4c_nrrc_endc_deactivate_req_struct;
142
143typedef struct {
144 LOCAL_PARA_HDR
145 scg_event_enum scg_event;
146 scg_event_config_union scg_event_config;
147} l4c_nrrc_scg_event_config_req_struct;
148
149
150typedef struct {
151 LOCAL_PARA_HDR
152 scg_event_enum scg_event;
153 kal_bool endc_deactivate;
154 kal_bool allow_scg_add;
155} l4c_nrrc_scg_event_ind_struct;
156
157typedef struct{
158 LOCAL_PARA_HDR
159 set_plmn_freq_operation_enum operation;
160 plmn_id_struct plmn_id;
161 kal_uint8 num_of_freq;
162 NRARFCN freq[MAX_LTE_SET_STORED_NUM];
163} l4c_nrrc_set_plmn_stored_freq_req_struct;
164
165typedef struct
166{
167 LOCAL_PARA_HDR
168 kal_bool vonr_enabled;
169} l4c_nrrc_ims_config_req_struct;
170
171typedef struct
172{
173 LOCAL_PARA_HDR
174 kal_bool is_voice_over_ims_ongoing;
175} l4c_nrrc_ims_call_status_req_struct;
176
177typedef struct
178{
179 LOCAL_PARA_HDR
yu.dongc279f972024-06-18 02:22:06 -0700180 kal_uint8 call_id;
181 kal_uint8 msg_type;
182 l4c_ecpi_info_struct ecpi_info;
183} l4c_nrrc_ims_call_progress_req_struct;
184
185typedef struct
186{
187 LOCAL_PARA_HDR
rjw6c1fd8f2022-11-30 14:33:01 +0800188 l4c_source_id_enum src_id;
189 kal_bool is_last;
190 ca_band_comb_list_cmd_type_enum cmd;
191 ca_band_comb_list_type_enum type;
192 kal_char ca_comb_list[MAX_CUSTOM_NR_COMB_LIST_MAX_LENGTH];
193} l4c_nrrc_ca_band_comb_list_req_struct;
194
195typedef struct
196{
197 LOCAL_PARA_HDR
198 l4c_source_id_enum src_id;
199 ca_band_comb_list_cmd_type_enum cmd;
200 kal_bool result;
201 ca_band_comb_list_type_enum type;
202 kal_char ca_comb_list[MAX_CUSTOM_NR_COMB_LIST_MAX_LENGTH];
203} l4c_nrrc_ca_band_comb_list_cnf_struct;
204
205typedef enum
206{
207 NRRC_L4C_CUSTOM_BAR_LIST_ACTION_ADD = 0,
208 NRRC_L4C_CUSTOM_BAR_LIST_ACTION_DELETE,
209 NRRC_L4C_CUSTOM_BAR_LIST_ACTION_QUERY,
210 NRRC_L4C_CUSTOM_BAR_LIST_ACTION_INVALID = 0xff
211} nrrc_l4c_custom_bar_list_action_enum;
212
213typedef enum
214{
215 NRRC_L4C_CUSTOM_BAR_CAUSE_IDLE_CONNECTED,
216 NRRC_L4C_CUSTOM_BAR_CAUSE_CHECK_NEIGHBOR_SIGNAL
217} nrrc_l4c_custom_bar_cause_enum;
218
219typedef struct
220{
221 kal_uint32 narfcn;
222 kal_uint16 bar_time; // Unit: sec
223} nrrc_l4c_bar_freq_info_struct;
224
225typedef struct
226{
227 kal_uint32 narfcn;
228 kal_uint16 pci;
229 kal_uint16 bar_time; // Unit: sec
230} nrrc_l4c_bar_cell_info_struct;
231
232/* MSG_ID_L4C_NRRC_CUSTOM_BAR_LIST_REQ */
233typedef struct
234{
235 LOCAL_PARA_HDR
236 nrrc_l4c_custom_bar_list_action_enum action;
237 nrrc_l4c_custom_bar_cause_enum bar_cause;
238 kal_uint8 bar_freq_num;
239 nrrc_l4c_bar_freq_info_struct bar_freq_info[MAX_L4C_CUSTOM_BAR_FREQ_NUM];
240 kal_uint8 bar_cell_num;
241 nrrc_l4c_bar_cell_info_struct bar_cell_info[MAX_L4C_CUSTOM_BAR_CELL_NUM];
242} l4c_nrrc_custom_bar_list_req_struct;
243
244/* MSG_ID_L4C_NRRC_CUSTOM_BAR_LIST_CNF */
245typedef struct
246{
247 LOCAL_PARA_HDR
248 nrrc_l4c_custom_bar_list_action_enum action;
249 nrrc_l4c_custom_bar_cause_enum bar_cause;
250 kal_uint8 bar_freq_num;
251 nrrc_l4c_bar_freq_info_struct bar_freq_info[MAX_L4C_CUSTOM_BAR_FREQ_NUM];
252 kal_uint8 bar_cell_num;
253 nrrc_l4c_bar_cell_info_struct bar_cell_info[MAX_L4C_CUSTOM_BAR_CELL_NUM];
254} l4c_nrrc_custom_bar_list_cnf_struct;
255
yu.dong3b07b072024-06-18 02:33:01 -0700256typedef struct
rjw6c1fd8f2022-11-30 14:33:01 +0800257{
yu.dong3b07b072024-06-18 02:33:01 -0700258 LOCAL_PARA_HDR
rjw6c1fd8f2022-11-30 14:33:01 +0800259 kal_bool is_endc_drb_existent;
260 kal_bool is_nr_sa_drb_existent;
261} l4c_nrrc_drb_info_ind_struct;
262
yu.dong3b07b072024-06-18 02:33:01 -0700263typedef l4c_configured_band_unsupport_ind_struct l4c_nrrc_configured_band_unsupport_ind_struct;
264
265
rjw6c1fd8f2022-11-30 14:33:01 +0800266#endif /* _L4C_NRRC_STRUCT_H_ */