blob: 6d02f8bd19268e94d11eddb94638547b54fa933a [file] [log] [blame]
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2018
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*******************************************************************************
* Filename:
* ---------
* l4c_nrrc_struct.h
*
* Project:
* --------
*
*
* Description:
* ------------
* Messages and common definitions for L4C-NRRC interface
*
* Author:
* -------
* -------
*
****************************************************************************/
#ifndef _L4C_NRRC_STRUCT_H_
#define _L4C_NRRC_STRUCT_H_
#include "kal_general_types.h"
#include "kal_public_defs.h"
#include "ps_public_enum.h"
#include "ps_public_struct.h"
#include "mcd_l3_inc_struct.h"
#include "l3_inc_enums.h"
#include "nrrc_nvram_def.h"
#include "l4c_common_enum.h"
#include "l4c_as_inter_core_def.h"
#ifdef __NR_RAT__
#define MAX_CUSTOM_NR_COMB_LIST_MAX_LENGTH NVRAM_EF_NRRC_CUSTOM_ENDC_COMB_WHITE_LIST_MAX_LENGTH
#else
#define MAX_CUSTOM_NR_COMB_LIST_MAX_LENGTH 2048
#endif
typedef struct
{
LOCAL_PARA_HDR
kal_int32 ssRssi_in_qdbm;
kal_int32 ssRsrp_in_qdbm;
kal_int32 ssRsrq_in_qdb;
kal_int32 ssSinr_in_qdb;
kal_int32 csiRsrp_in_qdbm;
kal_int32 csiRsrq_in_qdb;
kal_int32 csiSinr_in_qdb;
kal_uint16 serv_nr_band;
l4c_signal_reporting_type_enum signal_report_type;
kal_uint8 thres_cross_signal_type; /* Applicable only if is_thres_cross is TRUE.
1 - ssRSRP, 2 - ssRSRQ, 3 - ssRSRP + ssRSRQ, 4 - ssSINR, 5 - RSRP + ssSINR, 6 - ssRSRQ + ssSINR, 7 - All three*/
kal_int16 ssSrxlev_in_qdb; /* range -32768 ~ 32767, invalid value:0x7fff */
kal_int16 ssSqual_in_qdb; /* range -32768 ~ 32767, invalid value:0x7fff */
} l4c_nrrc_cell_power_level_ind_struct;
typedef l4c_4g5g_etws_setting_req_struct l4c_nrrc_etws_setting_req_struct;
typedef l4c_4g5g_etws_information_ind_struct l4c_nrrc_etws_information_ind_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint32 rcv_tick; /* The time tick when SIB9 is received by NRRC */
kal_uint64 timeinfo_utc; /* 0~549755813887 */
kal_bool is_day_light_saving_time_valid;
kal_uint8 day_light_saving_time; /* 2 bits */
kal_bool is_leap_seconds_valid;
kal_int16 leap_seconds; /* -127~128 */
kal_bool is_localtime_offset_valid;
kal_int8 localtime_offset; /* -63~64 */
} l4c_nrrc_time_info_ind_struct;
typedef struct
{
kal_bool enable;
kal_uint32 t1; // The period to count number of SCG failure event (seconds)
kal_uint8 p1; // The specified number of SCG failure event
kal_uint32 t2; // Expired time - when to activate SCG after deactivation (seconds)
} scg_event_failure_config_struct;
typedef struct
{
kal_bool enable;
kal_uint32 t1; // The period to count number of SCG release event (seconds)
kal_uint8 p1; // The specified number of SCG release event
kal_uint32 t2; // Expired time - when to activate SCG after deactivation (seconds)
} scg_event_release_config_struct;
typedef union {
scg_event_failure_config_struct scg_event_failure_config;
scg_event_release_config_struct scg_event_release_config;
} scg_event_config_union;
typedef struct {
LOCAL_PARA_HDR
kal_bool allow_scg_add;
} l4c_nrrc_endc_deactivate_req_struct;
typedef struct {
LOCAL_PARA_HDR
scg_event_enum scg_event;
scg_event_config_union scg_event_config;
} l4c_nrrc_scg_event_config_req_struct;
typedef struct {
LOCAL_PARA_HDR
scg_event_enum scg_event;
kal_bool endc_deactivate;
kal_bool allow_scg_add;
} l4c_nrrc_scg_event_ind_struct;
typedef struct{
LOCAL_PARA_HDR
set_plmn_freq_operation_enum operation;
plmn_id_struct plmn_id;
kal_uint8 num_of_freq;
NRARFCN freq[MAX_LTE_SET_STORED_NUM];
} l4c_nrrc_set_plmn_stored_freq_req_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_bool vonr_enabled;
} l4c_nrrc_ims_config_req_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_bool is_voice_over_ims_ongoing;
} l4c_nrrc_ims_call_status_req_struct;
typedef struct
{
LOCAL_PARA_HDR
l4c_source_id_enum src_id;
kal_bool is_last;
ca_band_comb_list_cmd_type_enum cmd;
ca_band_comb_list_type_enum type;
kal_char ca_comb_list[MAX_CUSTOM_NR_COMB_LIST_MAX_LENGTH];
} l4c_nrrc_ca_band_comb_list_req_struct;
typedef struct
{
LOCAL_PARA_HDR
l4c_source_id_enum src_id;
ca_band_comb_list_cmd_type_enum cmd;
kal_bool result;
ca_band_comb_list_type_enum type;
kal_char ca_comb_list[MAX_CUSTOM_NR_COMB_LIST_MAX_LENGTH];
} l4c_nrrc_ca_band_comb_list_cnf_struct;
typedef enum
{
NRRC_L4C_CUSTOM_BAR_LIST_ACTION_ADD = 0,
NRRC_L4C_CUSTOM_BAR_LIST_ACTION_DELETE,
NRRC_L4C_CUSTOM_BAR_LIST_ACTION_QUERY,
NRRC_L4C_CUSTOM_BAR_LIST_ACTION_INVALID = 0xff
} nrrc_l4c_custom_bar_list_action_enum;
typedef enum
{
NRRC_L4C_CUSTOM_BAR_CAUSE_IDLE_CONNECTED,
NRRC_L4C_CUSTOM_BAR_CAUSE_CHECK_NEIGHBOR_SIGNAL
} nrrc_l4c_custom_bar_cause_enum;
typedef struct
{
kal_uint32 narfcn;
kal_uint16 bar_time; // Unit: sec
} nrrc_l4c_bar_freq_info_struct;
typedef struct
{
kal_uint32 narfcn;
kal_uint16 pci;
kal_uint16 bar_time; // Unit: sec
} nrrc_l4c_bar_cell_info_struct;
/* MSG_ID_L4C_NRRC_CUSTOM_BAR_LIST_REQ */
typedef struct
{
LOCAL_PARA_HDR
nrrc_l4c_custom_bar_list_action_enum action;
nrrc_l4c_custom_bar_cause_enum bar_cause;
kal_uint8 bar_freq_num;
nrrc_l4c_bar_freq_info_struct bar_freq_info[MAX_L4C_CUSTOM_BAR_FREQ_NUM];
kal_uint8 bar_cell_num;
nrrc_l4c_bar_cell_info_struct bar_cell_info[MAX_L4C_CUSTOM_BAR_CELL_NUM];
} l4c_nrrc_custom_bar_list_req_struct;
/* MSG_ID_L4C_NRRC_CUSTOM_BAR_LIST_CNF */
typedef struct
{
LOCAL_PARA_HDR
nrrc_l4c_custom_bar_list_action_enum action;
nrrc_l4c_custom_bar_cause_enum bar_cause;
kal_uint8 bar_freq_num;
nrrc_l4c_bar_freq_info_struct bar_freq_info[MAX_L4C_CUSTOM_BAR_FREQ_NUM];
kal_uint8 bar_cell_num;
nrrc_l4c_bar_cell_info_struct bar_cell_info[MAX_L4C_CUSTOM_BAR_CELL_NUM];
} l4c_nrrc_custom_bar_list_cnf_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_bool is_endc_drb_existent;
kal_bool is_nr_sa_drb_existent;
} l4c_nrrc_drb_info_ind_struct;
#endif /* _L4C_NRRC_STRUCT_H_ */