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