blob: 4e98ef0133efc36cd352fe84edc89d3d0ca021cf [file] [log] [blame]
yu.dongc33b3072024-08-21 23:14:49 -07001/*****************************************************************************
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/*******************************************************************************
37 * Filename:
38 * ---------
39 * sase_if.h
40 *
41 * Project:
42 * --------
43 * VMOLY
44 *
45 * Description:
46 * ------------
47 *
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 * ==========================================================================
54 * $Log$
55 *
56 * 02 14 2022 shih-yu.chen
57 * [MOLY00663097] 【Clone from ALPS05378235】请协助评估实现SA功耗优化接口
58 *
59 * sa_silence merge to MD700.
60 *
61 * 03 23 2021 shih-yu.chen
62 * [MOLY00576678] 请协助评估实现SA功耗优化接口
63 *
64 * add sa_silence interface.
65 *
66 * 03 17 2021 shih-yu.chen
67 * [MOLY00613108] [TMOUS] disable 5GSA during VoWiFi feature enhancement
68 *
69 * add AT cmd for VoWiFiDisable5GSA.
70 *
71 * 11 13 2020 shih-yu.chen
72 * [MOLY00579031] [Colgin] SASE development
73 * [SASE] general vg_option control interface.
74 * patch back from T700
75 *
76 * 11 13 2020 shih-yu.chen
77 * [MOLY00589182] [Gen97][MP7][Memory reduction] Stage V - LTE POS preempt LTE/NR HARQ buffer
78 * [SASE] LTE POS interface.
79 *
80 * 09 18 2020 shih-yu.chen
81 * [MOLY00550233] [Cayman][ LGEFT][ TMO] Many unsolicited msg after NR SCG Fail continues
82 * (OA) [SASE] LGE patch back.
83 *
84 * 07 20 2020 can.lin
85 * [MOLY00540580] [Blocking][MT6885][Petrus][TMO-US][MP6][WWFT][Ericsson][New Jersey - n71][Philadelphia - n41][SA] - VoWifi to Cellular HO failed.
86 * [SASE] Add VG option control (SWRD)
87 * 1. [VzW] control by thermal/low power
88 * 2. [TMO] control by VoWii calling
89 *
90 * - Patch sync from CBr.W2030
91 *
92 * 07 17 2020 can.lin
93 * [MOLY00520469] [5G] Add MISC (0x0A) / LTE fallback Message (0x62).
94 * Enhance ENDC control for NR15.R3.MP (SWRD)
95 *
96 * 06 30 2020 can.lin
97 * [MOLY00532222] [Gen97][Operator Requirement][VzW][NSA FR1] Suspension of 5G NR During a VoLTE 911 Call
98 * [Call for sync to R3][VZW][Requirement] Suspension of 5G NR during a VoLTE 911 call (SWRD)
99 *
100 * 06 16 2020 can.lin
101 * [MOLY00532222] [Gen97][Operator Requirement][VzW][NSA FR1] Suspension of 5G NR During a VoLTE 911 Call
102 *
103 * [VZW][Requirement] Suspension of 5G NR during a VoLTE 911 call (SWRD)
104 *
105 * 05 29 2020 can.lin
106 * [MOLY00524979] [Gen97] modification for ENDC control API
107 * [NR15.R3.MP] Apply nvram function in SASE (SWRD)
108 *
109 *
110****************************************************************************/
111#ifndef _SASE_IF_H
112#define _SASE_IF_H
113
114#include "kal_public_defs.h"
115#include "ps_public_enum.h"
116#include "ps_public_struct.h"
117#include "sase_nvram_def.h"
118#include "ims_common_def.h"
119
120// operation bit
121#define SASE_BIT_OFF 0
122#define SASE_BIT_ON 1
123// SASE->NRRC SCG control bitamp
124#define SASE_NRRC_SCG_SEND_FAKE_SCG 1 << 0
125#define SASE_NRRC_SCG_ALLOW_SCG_ADD 1 << 1
126// SASE->NRRC MEAS control bitamp
127#define SASE_NRRC_MEAS_BLOCK_5G5 1 << 0
128#define SASE_NRRC_MEAS_SEND_A2 1 << 1
129// SASE->ERRC MEAS control bitamp
130#define SASE_ERRC_MEAS_DISABLE_4G5 1 << 0
131#define SASE_ERRC_MEAS_BLOCK_4G5_B1 1 << 1
132
133// SASE Client
134// New interface between SASE <-> NRRC
135typedef struct {
136 LOCAL_PARA_HDR
137 kal_uint8 scg_valid_bitmap;
138 kal_uint8 scg_action_bitmap;
139 kal_uint8 meas_valid_bitmap;
140 kal_uint8 meas_action_bitmap;
141 kal_bool is_test_sim_allowed;
142}sase_nrrc_endc_deactivate_req_struct;
143
144typedef struct {
145 LOCAL_PARA_HDR
146 kal_uint8 meas_valid_bitmap;
147 kal_uint8 meas_action_bitmap;
148 kal_bool is_test_sim_allowed;
149}sase_errc_endc_deactivate_req_struct;
150
151typedef struct {
152 LOCAL_PARA_HDR
153 scg_event_enum scg_event;
154 kal_bool endc_deactivate;
155 kal_bool allow_scg_add;
156}sase_nrrc_scg_event_ind_struct;
157
158typedef struct {
159 LOCAL_PARA_HDR
160 kal_bool sa_silence_on;
161} sase_nrrc_sa_silence_ctrl_req_struct;
162
163typedef struct {
164 LOCAL_PARA_HDR
165 kal_bool redirect_to_lte;
166} sase_nrrc_connection_release_ind_struct;
167
168typedef enum {
169 SASE_SASE_UE_SCG_SET = 0,
170 SASE_NRRC_NW_SCG_ADD, // NW_SCG_ADD
171 SASE_NRRC_NW_SCG_REL, // NW_SCG_REL and ERRC_NRRC_REL
172}sase_nrrc_scg_status_enum;
173
174typedef struct {
175 LOCAL_PARA_HDR
176 sase_nrrc_scg_status_enum scg_status;
177}sase_nrrc_scg_info_ind_struct;
178
179typedef enum {
180 SASE_ERROR_NONE = 0,
181 SASE_ERROR_DENY_BY_TIMER = 1,
182 SASE_ERROR_DENY_BY_VOLTE_E911_CALL = 2,
183 SASE_ERROR_DENY_BY_A2_IN_PROGRESS = 3,
184 SASE_ERROR_DENY_BY_LOW_PWR = 4,
185 SASE_ERROR_DENY_BY_HIGH_HEAT = 5,
186 SASE_ERROR_DENY_BY_IMS_CALLING = 6,
187 SASE_ERROR_DENY_BY_LTE_POS = 7,
188 SASE_ERROR_MAX,
189 SASE_ERROR_ENUM_MAX = 0x7FFFFFFF,
190}SASE_ERROR_CODE;
191
192typedef enum {
193 SASE_STATE_MACHINE_NONE,
194 SASE_STATE_MACHINE_NEXT_STATE,
195 SASE_STATE_MACHINE_CHANEGE_STATE,
196 SASE_STATE_MACHINE_STOP,
197}SASE_STATE_MACHINE_ACTION;
198
199typedef struct {
200 sase_cfg_t config;
201}SASE_CONFIG_INFO_STRUCT;
202
203typedef enum {
204 SASE_TMC_UE_STATUS_NONE = 0,
205 SASE_TMC_UE_STATUS_THERMAL_START,
206 SASE_TMC_UE_STATUS_THERMAL_END,
207 SASE_TMC_UE_STATUS_LOW_BATTERY,
208 SASE_TMC_UE_STATUS_RECHARGE,
209 SASE_TMC_UE_STATUS_SCG_ON,
210 SASE_TMC_UE_STATUS_SCG_OFF,
211 SASE_TMC_UE_STATUS_MAX = 0x7FFFFFFF,
212}sase_tmc_ue_status_enum;
213
214typedef struct {
215 LOCAL_PARA_HDR
216 sase_tmc_ue_status_enum ue_status;
217}sase_tmc_ue_status_ind_struct;
218
219typedef struct
220{
221 LOCAL_PARA_HDR
222 vg_option_enum vg_option_bitmap;
223 kal_bool is_need_local_release; // default is zero, whether to alter 5G option immediately, or wait until next mobility update
224} sase_l4c_vg_option_update_req_struct;
225
226typedef struct
227{
228 LOCAL_PARA_HDR
229 kal_bool result;
230 kal_uint8 cause;
231} sase_l4c_vg_option_update_cnf_struct;
232
233typedef struct
234{
235 LOCAL_PARA_HDR
236 kal_uint8 src_id;
237 vg_option_enum vg_option_bitmap;
238 kal_bool is_need_local_release;
239} sase_l4c_vg_option_check_ind_struct;
240
241typedef struct
242{
243 LOCAL_PARA_HDR
244 kal_uint8 src_id;
245 vg_option_enum valid_vg_option; // validated by SASE and will be stored
246 kal_bool is_need_local_release;
247} sase_l4c_vg_option_check_rsp_struct;
248
249typedef struct
250{
251 LOCAL_PARA_HDR
252 ims_reg_state_enum reg_state;
253 ims_reg_type_enum reg_type;
254 ims_access_rat_enum rat;
255} sase_l4c_ims_reg_status_update_ind_struct;
256
257typedef struct
258{
259 LOCAL_PARA_HDR
260 ims_cap_rat_enum ims_rat_cap;
261} sase_l4c_ims_config_ind_struct;
262
263typedef struct
264{
265 LOCAL_PARA_HDR
266 kal_bool DisableSA;
267} sase_iwlan_sa_mode_ntf_struct;
268
269typedef enum
270{
271 SASE_VG_OPTION_CONTROL_RECOVERY = 0,
272 SASE_VG_OPTION_CONTROL_LTE,
273 SASE_VG_OPTION_CONTROL_SA,
274 SASE_VG_OPTION_CONTROL_NSA,
275 SASE_VG_OPTION_CONTROL_MAX = 0x7FFFFFFF,
276} sase_vg_option_control_enum;
277
278typedef struct
279{
280 LOCAL_PARA_HDR
281 sase_vg_option_control_enum rat_info;
282} sase_vg_option_req_struct;
283
284typedef enum
285{
286 SASE_VG_OPTION_RESULT_SUCCESS = 0,
287 SASE_VG_OPTION_RESULT_MAX = 0x7FFFFFFF,
288} sase_vg_option_result_enum;
289
290typedef struct
291{
292 LOCAL_PARA_HDR
293 sase_vg_option_result_enum result;
294} sase_vg_option_cnf_struct;
295
296
297// Mapping L4C struct to SASE client
298typedef l4c_general_modem_configure_struct sase_client_general_modem_configure_struct;
299typedef l4c_general_modem_configure_query_req_struct sase_general_modem_configure_query_req;
300typedef l4c_general_modem_configure_query_cnf_struct sase_general_modem_configure_query_cnf;
301typedef l4c_general_modem_configure_set_req_struct sase_general_modem_configure_set_req_struct;
302typedef l4c_general_modem_configure_set_cnf_struct sase_general_modem_configure_set_cnf_struct;
303// Mapping interface between NRRC and SASE client
304typedef sase_nrrc_endc_deactivate_req_struct sase_nrrc_endc_deactivate_req_struct; // MSG_ID_SASE_NRRC_ENDC_DEACTIVATE_REQ
305typedef sase_nrrc_scg_event_ind_struct sase_nrrc_scg_event_ind_struct; // MSG_ID_SASE_NRRC_SCG_EVENT_IND
306// Mapping interface between TMC and SASE client
307typedef sase_tmc_ue_status_ind_struct sase_tmc_ue_status_ind_struct; // MSG_ID_SASE_TMC_UE_STATUS_IND
308typedef sase_nrrc_sa_silence_ctrl_req_struct sase_errc_sa_silence_ctrl_req_struct;
309typedef sase_general_modem_configure_query_req sase_general_modem_configure_query_req_struct; // MSG_ID_SASE_GENERAL_MODEM_CONFIGURE_QUERY_REQ
310typedef sase_general_modem_configure_query_cnf sase_general_modem_configure_query_cnf_struct; // MSG_ID_SASE_GENERAL_MODEM_CONFIGURE_QUERY_CNF
311#endif