blob: 7344c829c8aeda3aa1b9e2ca93fd8a13008572a8 [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) 2012
*
* 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:
* ---------
* dmf_public_def.h
*
* Project:
* --------
* UMOLYA
*
* Description:
* ------------
* DM Framework public structure/enum definition
*
* Author:
* -------
* -------
*
*
* ==========================================================================
* $Log$
*
* 09 24 2020 jack-mh.tsai
* [MOLY00547250] 5G SA®I?»Ý¨D
*
* 09 18 2020 jack-mh.tsai
* [MOLY00570074] [Cayman][TMUS][Protocol][EchoLocate] Request to implement DataMetrics5gSa class API version 1
*
* 09 14 2020 jack-mh.tsai
* [MOLY00570074] [Cayman][TMUS][Protocol][EchoLocate] Request to implement DataMetrics5gSa class API version 1
*
* 08 25 2020 jack-mh.tsai
* [MOLY00562173] DMFªº«È¨î¤Æ»Ý¨D - ICD Backward Compatible - DMF Part
*
* 08 13 2020 titi.wu
* [MOLY00524839] 5G RF ®I?»Ý¨D
* EWSP0000141637
*
* 08 13 2020 titi.wu
* [MOLY00524839] 5G RF ®I?»Ý¨D
* EWSP0000141637
*
* 08 01 2020 kunkun.shao
* [MOLY00550497] [RDIT][NW KPI UTIT]Provide volte call id when report call related KPI information
*
* .
*
* 07 31 2020 kunkun.shao
* [MOLY00527050] [MP5 Excluded][NW KPI UTIT]modify invalid mo csfb info collect when mo csfb call happens
*
* .
*
* 07 06 2020 titi.wu
* [MOLY00541505] ¡i5G-A¡j¡iModem·sfeature¡j5G±µ¤J±±¨î???¦ô®I?
* .
*
* 06 29 2020 kunkun.shao
* [MOLY00536656] Modem¶Ë´óÊý¾ÝÊÕ¼¯:add scg SW part.
*
* .
*
* 05 22 2020 jack-mh.tsai
* [MOLY00511933] 5G¥\¯Ó®I?¤W?Éó¨î
*
* 05 18 2020 kunkun.shao
* [MOLY00522254] [MP5 Excluded][NW KPI UTIT][Margaux][MT6873]MT VoLTE callÔö¼ÓFail cause
*
* .
*
* 05 01 2020 kunkun.shao
* [MOLY00518537] [NW KPI UTIT][Margaux][MT6873]DMF add IMS related kpi handle for IMS fail
*
* .
*
* 04 22 2020 jack-mh.tsai
* [MOLY00516557] CS????DMFAPP??????(AT+URC 1001)(SWRD)
*
* 04 17 2020 kunkun.shao
* [MOLY00511342] Modem¶Ë´óÊý¾ÝÊÕ¼¯:DMF NW KPI SW DOMAIN
*
* 03 16 2020 jack-mh.tsai
* [MOLY00505503] [Gen97] OPPO DMF KPI requirement
*
* 01 18 2020 kunkun.shao
* [MOLY00475736] Modem¶Ë´óÊý¾ÝÊÕ¼¯:internal dmf
*
* 01 07 2020 jack-mh.tsai
* [MOLY00469943] DMF Customization Framework: DMF MISC16 1010(SWRD)
*
* 01 06 2020 jack-mh.tsai
* [MOLY00469943] DMF Customization Framework:Move event structure to public layer(SWRD)
*
*
****************************************************************************/
#ifndef _DMF_PUBLIC_DEF_H_
#define _DMF_PUBLIC_DEF_H_
#include "ps_public_enum.h"
#include "l3_inc_enums.h"
#include "ims_interface_md.h"
#include "em_vdm_public_struct.h"
#include "em_public_struct_xl1.h"
#include "em_public_struct_xl3.h"
#include "em_mcf_public_struct.h"
#include "em_sbp_public_struct.h"
#include "em_mm_public_struct.h"
#include "em_emm_public_struct.h"
#include "em_errc_public_struct.h"
#include "em_sim_public_struct.h"
#include "em_uas_public_struct.h"
#include "em_gmss_public_struct.h"
#include "em_esm_public_struct.h"
#define DMF_INFO_COLLECT_MAX_MCF_FILE_NAME EM_MCF_FILE_MAX_NAME_LEN
#define MAX_ICD_NL2_PDCP_CONFIGURATION_EVENT_STRUCT_V1_NUMBER_OF_RBS 37
#define MAX_ICD_NL2_PDCP_DL_STATS_STRUCT_V1_NUMBER_OF_RBS 37
#define MAX_ICD_NL2_PDCP_UL_STATS_STRUCT_V1_NUMBER_OF_RBS 37
#define FLEXIBLE_ARRAY_SIZE 1
#define ERRC_SCELL_NUM_MAX 7
#define NL1_SCELL_CONFIG_LIST_SIZE 1
#define MAX_ICD_NL2_RLC_DL_STATS_STRUCT_V1_NUMBER_OF_ENTITIES 75
#define MAX_ICD_NL2_RLC_UL_STATS_STRUCT_V1_NUMBER_OF_ENTITIES 75
#define DMF_KPI_MAX_COUNT_NUM 0xffffffff
#define DMF_ESM_MAX_PT_NUM 15 //same as ESM_MAX_PT_NUM
#define DMF_ESM_MAX_EPSB_NUM 11 //same as ESM_MAX_EPSB_NUM
#define DMF_MAX(x, y) (((x) > (y)) ? (x) : (y))
#define DMF_MIN(x, y) (((x) < (y)) ? (x) : (y))
#define DMF_AVG(x, y) (((x) + (y)) / 2)
typedef enum
{
DMF_PAGING_REASON_VOLTE,
DMF_PAGING_REASON_SMS,
DMF_PAGING_REASON_DETACH,
DMF_PAGING_REASON_PAGING_FAIL,
DMF_PAGING_REASON_UNSPECIFIED,
DMF_PAGING_REASON_MAX,
} dmf_info_collect_paging_reason_enum;
typedef enum
{
DMF_EMM_ATTACH_NONE,
DMF_EMM_ATTACH_REQUEST,
DMF_EMM_ATTACH_ACCEPT,
DMF_EMM_ATTACH_REJECT,
DMF_EMM_ATTACH_T3410_EXPIRY
} dmf_emm_attach_event_enum;
typedef enum
{
DMF_EMM_ATTACH_TAU_INVALID,
DMF_EMM_ATTACH_TYPE_EPS_ATTACH,
DMF_EMM_ATTACH_TYPE_COMBINED_ATTACH,
DMF_EMM_ATTACH_TYPE_EMERGENCY_ATTACH,
DMF_EMM_TAU_TYPE_TAU,
DMF_EMM_TAU_TYPE_COMBINED_TAU,
DMF_EMM_TAU_TYPE_COMBINED_TAU_IMSI_ATTACH,
DMF_EMM_TAU_TYPE_PERIODIC_TAU,
} dmf_emm_attach_tau_type_enum;
typedef enum
{
DMF_ESM_OTA_EVENT_NONE,
DMF_ESM_PDN_CONN_REQUEST,
DMF_ESM_PDN_CONN_REJECT,
DMF_ESM_PDN_DISCONN_REQUEST,
DMF_ESM_PDN_DISCONN_REJECT,
DMF_ESM_ACT_DEFAULT_BEARER_REQUEST,
DMF_ESM_ACT_DEFAULT_BEARER_ACCEPT,
DMF_ESM_ACT_DEFAULT_BEARER_REJECT,
DMF_ESM_ACT_DEDICATED_BEARER_REQUEST,
DMF_ESM_ACT_DEDICATED_BEARER_ACCEPT,
DMF_ESM_ACT_DEDICATED_BEARER_REJECT,
DMF_ESM_MODIFY_BEARER_REQUEST,
DMF_ESM_MODIFY_BEARER_ACCEPT,
DMF_ESM_MODIFY_BEARER_REJECT,
DMF_ESM_DEACT_BEARER_REQUEST,
DMF_ESM_DEACT_BEARER_ACCEPT,
DMF_ESM_BEARER_RSC_ALLOCATE_REQUEST,
DMF_ESM_BEARER_RSC_ALLOCATE_REJECT,
DMF_ESM_BEARER_RSC_MODIFY_REQUEST,
DMF_ESM_BEARER_RSC_MODIFY_REJECT,
DMF_ESM_INFO_REQUEST,
DMF_ESM_INFO_RESPONSE,
DMF_ESM_NOTIFICATION,
DMF_ESM_STATUS,
} dmf_esm_ota_event_enum;
typedef enum
{
DMF_ESM_APP_NONE,
DMF_ESM_APP_IMS,
DMF_ESM_APP_EMERGENCY,
} dmf_esm_app_type_enum;
typedef enum
{
DMF_ESM_TIMER_NONE,
DMF_ESM_TIMER_T3480,
DMF_ESM_TIMER_T3482,
DMF_ESM_TIMER_T3481,
DMF_ESM_TIMER_T3492,
} dmf_esm_timer_enum;
typedef enum
{
DMF_SM_PDP_NONE,
DMF_SM_PDP_ACT_REQUEST,
DMF_SM_PDP_ACT_ACCEPT,
DMF_SM_PDP_ACT_REJECT,
} dmf_sm_pdp_event_enum;
typedef enum
{
/*MT Begin*/
DMF_MM_MT_CS_BEGIN = 0,
DMF_MM_MT_CS_NONE = DMF_MM_MT_CS_BEGIN + EM_MM_MT_CS_NONE,
DMF_MM_MT_CS_SUCCESS = DMF_MM_MT_CS_BEGIN + EM_MM_MT_CS_SUCCESS,
DMF_MM_MT_CS_RR_REL_IND_RECEIVED = DMF_MM_MT_CS_BEGIN + EM_MM_RR_REL_IND_RECEIVED,
DMF_MM_MT_CS_FAIL_LU_ABNORMAL = DMF_MM_MT_CS_BEGIN + EM_MM_MT_CS_FAIL_LU_ABNORMAL,
DMF_MM_MT_CS_T3240_TIMEOUT = DMF_MM_MT_CS_BEGIN + EM_MM_T3240_TIMEOUT,
DMF_MM_MT_CS_PAGING_RESPONSE_SENT = DMF_MM_MT_CS_BEGIN + EM_MM_PAGING_RESPONSE_SENT,
DMF_MM_MT_CS_PAGING_BLOCKED_BY_ACCESS_BARRED = DMF_MM_MT_CS_BEGIN + EM_MM_PAGING_BLOCKED_BY_ACCESS_BARRED,
DMF_MM_MT_CS_AUTH_REJECT = DMF_MM_MT_CS_BEGIN + EM_MM_AUTH_REJECT,
DMF_MM_MT_CS_AUTH_FAIL = DMF_MM_MT_CS_BEGIN + EM_MM_AUTH_FAIL,
DMF_MM_MT_CS_PLMN_LOSS_IND_RECEIVED = DMF_MM_MT_CS_BEGIN + EM_MM_PLMN_LOSS_IND_RECEIVED,
DMF_MM_MT_CS_SIM_ERROR_IND_RECEIVED = DMF_MM_MT_CS_BEGIN + EM_MM_SIM_ERROR_IND_RECEIVED,
DMF_MM_MT_CS_CONN_EST_FAIL = DMF_MM_MT_CS_BEGIN + EM_MM_CONN_EST_FAIL,
/*MO Begin*/
DMF_MM_MO_CS_BEGIN = 100,
DMF_MM_MO_CS_NONE = DMF_MM_MO_CS_BEGIN + EM_MM_MO_CS_NONE,
DMF_MM_MO_CS_SUCCESS = DMF_MM_MO_CS_BEGIN + EM_MM_MO_CS_SUCCESS,
DMF_MM_MO_CS_RR_REL_IND_RECEIVED = DMF_MM_MO_CS_BEGIN + EM_MM_MO_RR_REL_IND_RECEIVED,
DMF_MM_MO_CS_FAIL_LU_ABNORMAL = DMF_MM_MO_CS_BEGIN + EM_MM_MO_CS_FAIL_LU_ABNORMAL,
DMF_MM_MO_CS_T3240_TIMEOUT = DMF_MM_MO_CS_BEGIN + EM_MM_MO_T3240_TIMEOUT,
DMF_MM_MO_CS_AUTH_REJECT = DMF_MM_MO_CS_BEGIN + EM_MM_MO_AUTH_REJECT,
DMF_MM_MO_CS_AUTH_FAIL = DMF_MM_MO_CS_BEGIN + EM_MM_MO_AUTH_FAIL,
DMF_MM_MO_CS_PLMN_LOSS_IND_RECEIVED = DMF_MM_MO_CS_BEGIN + EM_MM_MO_PLMN_LOSS_IND_RECEIVED,
DMF_MM_MO_CS_SIM_ERROR_IND_RECEIVED = DMF_MM_MO_CS_BEGIN + EM_MM_MO_SIM_ERROR_IND_RECEIVED,
DMF_MM_MO_CS_CONN_EST_FAIL = DMF_MM_MO_CS_BEGIN + EM_MM_MO_CONN_EST_FAIL,
DMF_MM_MO_CS_CM_SERV_REJECT = DMF_MM_MO_CS_BEGIN + EM_MM_MO_CM_SERV_REJECT,
} dmf_mm_cs_call_status_enum;
typedef enum
{
/* MM BEGIN */
DMF_CSFB_CALL_MM_MTCSFB_BEGIN = 0,
DMF_CSFB_CALL_MM_MTCSFB_NONE = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_NONE,
DMF_CSFB_CALL_MM_MTCSFB_START = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_START,
DMF_CSFB_CALL_MM_MTCSFB_SUCCESS = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_SUCCESS,
DMF_CSFB_CALL_MM_MTCSFB_FAIL = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL,
DMF_CSFB_CALL_MM_MTCSFB_FAIL_PAGING_GUARD_TIMER_EXPIRED = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_PAGING_GUARD_TIMER_EXPIRED,
DMF_CSFB_CALL_MM_MTCSFB_FAIL_T3240_TIMEOUT = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_T3240_TIMEOUT,
DMF_CSFB_CALL_MM_MTCSFB_FAIL_AUTH_FAIL = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_AUTH_FAIL,
DMF_CSFB_CALL_MM_MTCSFB_FAIL_CONN_EST_FAIL = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_CONN_EST_FAIL,
DMF_CSFB_CALL_MM_MTCSFB_FAIL_LAU_REJECT = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_LAU_REJECT,
DMF_CSFB_CALL_MM_MTCSFB_FAIL_RRC_REL_IND_RECEIVED = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_RRC_REL_IND_RECEIVED,
DMF_CSFB_CALL_MM_MTCSFB_LAU_ACCEPT = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_LAU_ACCEPT,
DMF_CSFB_CALL_MM_MTCSFB_FAIL_PLMN_LOSS_IND_RECEIVED = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_PLMN_LOSS_IND_RECEIVED,
DMF_CSFB_CALL_MM_MTCSFB_FAIL_SIM_ERROR_IND_RECEIVED = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_SIM_ERROR_IND_RECEIVED,
DMF_CSFB_CALL_MM_MTCSFB_PAGING_RESPONSE_SENT = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_PAGING_RESPONSE_SENT,
DMF_CSFB_CALL_MM_MTCSFB_PAGING_BLOCKED_BY_ACCESS_BARRED = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_PAGING_BLOCKED_BY_ACCESS_BARRED,
DMF_CSFB_CALL_MM_MOCSFB_BEGIN = 100,
DMF_CSFB_CALL_MM_MOCSFB_NONE = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_NONE,
DMF_CSFB_CALL_MM_MOCSFB_START = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_START,
DMF_CSFB_CALL_MM_MOCSFB_SUCCESS = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_SUCCESS,
DMF_CSFB_CALL_MM_MOCSFB_FAIL = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL,
DMF_CSFB_CALL_MM_MOCSFB_CM_SERV_REJECT = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_CM_SERV_REJECT,
DMF_CSFB_CALL_MM_MOCSFB_FAIL_T3240_TIMEOUT = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_T3240_TIMEOUT,
DMF_CSFB_CALL_MM_MOCSFB_FAIL_AUTH_FAIL = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_AUTH_FAIL,
DMF_CSFB_CALL_MM_MOCSFB_FAIL_CONN_EST_FAIL = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_CONN_EST_FAIL,
DMF_CSFB_CALL_MM_MOCSFB_FAIL_LAU_REJECT = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_LAU_REJECT,
DMF_CSFB_CALL_MM_MOCSFB_FAIL_RRC_REL_IND_RECEIVED = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_RRC_REL_IND_RECEIVED,
DMF_CSFB_CALL_MM_MOCSFB_LAU_ACCEPT = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_LAU_ACCEPT,
DMF_CSFB_CALL_MM_MOCSFB_FAIL_PLMN_LOSS_IND_RECEIVED = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_PLMN_LOSS_IND_RECEIVED,
DMF_CSFB_CALL_MM_MOCSFB_FAIL_SIM_ERROR_IND_RECEIVED = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_SIM_ERROR_IND_RECEIVED,
DMF_CSFB_CALL_MM_MOCSFB_ACCESS_CLASS_BARRED = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_ACCESS_CLASS_BARRED,
DMF_CSFB_CALL_MM_MOCSFB_FAIL_T3230_TIMEOUT = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_T3230_TIMEOUT,
/* EMM BEGIN */
DMF_CSFB_CALL_EMM_IGNORE_BEGIN = 200,
DMF_CSFB_CALL_EMM_IGNORE_NONE = DMF_CSFB_CALL_EMM_IGNORE_BEGIN + EM_EMM_CALL_IGNORE_PAGING_NONE,
DMF_CSFB_CALL_EMM_IGNORE_PAGING_UNEXPECTED_TYPE = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_UNEXPECTED_TYPE,
DMF_CSFB_CALL_EMM_IGNORE_PAGING_IMS_CALL_ONGOING = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_IMS_CALL_ONGOING,
DMF_CSFB_CALL_EMM_IGNORE_PAGING_CS_NOT_ALLOW = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_CS_NOT_ALLOW,
DMF_CSFB_CALL_EMM_IGNORE_PAGING_ID_ERROR = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_ID_ERROR,
DMF_CSFB_CALL_EMM_IGNORE_PAGING_NOT_SUITABLE_CELL = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_NOT_SUITABLE_CELL,
DMF_CSFB_CALL_EMM_IGNORE_PAGING_NO_CS_INSTANCE = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_NO_CS_INSTANCE,
DMF_CSFB_CALL_EMM_IGNORE_PAGING_INTERRAT = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_INTERRAT,
DMF_CSFB_CALL_EMM_IGNORE_PAGING_TMSI_ERROR = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_TMSI_ERROR,
DMF_CSFB_CALL_EMM_IGNORE_PAGING_WAIT_ATTACH_END = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_WAIT_ATTACH_END,
DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN = 300,
DMF_CSFB_CALL_EMM_FAIL_TRIG_SUCCESS = DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_SUCCESS,
DMF_CSFB_CALL_EMM_FAIL_TRIG_EST_FAIL = DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_EST_FAIL,
DMF_CSFB_CALL_EMM_FAIL_TRIG_REL_IND = DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_REL_IND,
DMF_CSFB_CALL_EMM_FAIL_TRIG_RETRANS = DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_RETRANS,
DMF_CSFB_CALL_EMM_FAIL_TRIG_REJECT = DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_REJECT,
DMF_CSFB_CALL_EMM_FAIL_TRIG_T3417TO = DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_T3417TO,
DMF_CSFB_CALL_EMM_FAIL_TRIG_AC_BARRED= DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_AC_BARRED,
DMF_CSFB_CALL_EMM_FAIL_TRIG_AUTH_REJ = DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_AUTH_REJ,
} dmf_csfb_call_state_enum;
typedef enum
{
DMF_ERRC_SRVCC_FAIL_MEAS_RPTE_NO_RESPONSE,
DMF_ERRC_SRVCC_FAIL_MEAS_RPT_SEND_FAIL,
DMF_ERRC_SRVCC_FAIL_THRESHOLD_NOT_PASS,
DMF_ERRC_SRVCC_FAIL_TTT_RECOUNT,
DMF_ERRC_SRVCC_FAIL_TTT_NOT_PASS,
DMF_ERRC_SRVCC_BSIC_DECODE_FAIL,
DMF_ERRC_NOT_IN_SRVCC_DURATION = 0xff,
} dmf_errc_srvcc_fail_type_enum;
typedef enum
{
DMF_IR_HO,
DMF_IR_RESELECT,
DMF_IR_REDIRECT,
DMF_IR_CCO,
DMF_HANDOVER,
DMF_CELL_RESELECT,
DMF_CELL_REDIRECT,
DMF_CELL_UPDATE
} dmf_info_collect_cell_update_event_enum;
typedef enum
{
DMF_RAT_NONE,
DMF_RAT_GSM,
DMF_RAT_UMTS,
DMF_RAT_LTE,
DMF_RAT_NR,
DMF_RAT_C2K
} dmf_info_collect_rat_enum;
typedef enum
{
DMF_RAT_3GPP_NONE,
DMF_RAT_3GPP_GSM,
DMF_RAT_3GPP_WCDMA,
DMF_RAT_3GPP_TDSCDMA,
DMF_RAT_3GPP_LTE,
DMF_RAT_3GPP_NR
} dmf_info_collect_3gpp_rat_enum;
typedef enum {
DMF_NO_TAU_RAU_LAU = 0,
DMF_LTE_TAU_REQUEST,
DMF_LTE_TAU_ACCEPT,
DMF_LTE_TAU_REJECT,
DMF_UMTS_RAU_REQUEST,
DMF_UMTS_RAU_ACCEPT,
DMF_UMTS_RAU_REJECT,
DMF_UMTS_LAU_REQUEST,
DMF_UMTS_LAU_ACCEPT,
DMF_UMTS_LAU_REJECT,
DMF_GSM_RAU_REQUEST,
DMF_GSM_RAU_ACCEPT,
DMF_GSM_RAU_REJECT,
DMF_GSM_LAU_REQUEST,
DMF_GSM_LAU_ACCEPT,
DMF_GSM_LAU_REJECT,
} dmf_tau_rau_lau_event_enum;
typedef struct{
kal_char plmn_id[7];
kal_uint16 lac;
kal_uint8 rac;
kal_uint32 tac;
kal_uint64 cell_id;
kal_uint16 specific_cell_id; //2G: BSIC, 3G: PSC, 4G:PCI dmf_info_collect_rat_enum active_rat;
dmf_info_collect_rat_enum active_rat;
dmf_info_collect_3gpp_rat_enum active_rat_3gpp;
kal_uint16 band;
kal_uint32 frequency;
kal_int16 sig1;
kal_int16 sig2;
kal_int16 rs_snr_in_qdb;
kal_uint32 dl_bandwidth;
kal_bool is_sib2_endc_support;
kal_bool is_endc_scg_connected;
} dmf_info_collect_current_serving_cell_info_struct;
typedef struct {
kal_bool is_data_sim;
dmf_info_collect_paging_reason_enum paging_reason;
} dmf_event_paging_info_struct;
typedef struct {
kal_uint32 volte_rb_idx;
kal_uint32 ims_disc_tmr_rpt;
kal_uint32 ims_ul_disc_cnt_rpt;
kal_uint32 ims_dl_disc_cnt_rpt;
} dmf_event_volte_pdcp_info_struct;
typedef struct
{
kal_uint8 ra_preamble_last_TXpower;
dmf_info_collect_rat_enum ra_fail_rat;
} dmf_event_em_emac_rach_finish_struct;
typedef struct {
em_lte_rrc_state_enum errc_state;
em_lte_rrc_cause_enum errc_cause;
} dmf_event_errc_state_struct;
typedef struct {
EARFCN pcell_earfcn;
kal_uint16 pcell_band;
kal_uint16 pcell_pci;
kal_uint8 pcell_bw;
kal_uint8 unused[3];
kal_bool is_scell_configured[EM_SCELL_MAX_NUM];
EARFCN scell_earfcn[EM_SCELL_MAX_NUM];
kal_uint16 scell_band[EM_SCELL_MAX_NUM];
kal_uint16 scell_pci[EM_SCELL_MAX_NUM];
kal_uint8 scell_bw[EM_SCELL_MAX_NUM];
kal_bool scell_belongs_to_stag[EM_SCELL_MAX_NUM];
} dmf_event_errc_conn_info_struct;
typedef struct {
em_errc_state_enum errc_sts;
} dmf_event_errc_state_info_struct;
typedef struct {
kal_bool is_attach;
dmf_emm_attach_tau_type_enum attach_tau_type;
emm_cause_enum emm_cause;
} dmf_event_emm_reject_info_struct;
typedef struct {
dmf_esm_ota_event_enum esm_ota_event;
dmf_esm_app_type_enum app_type;
} dmf_event_esm_ota_struct;
typedef struct {
dmf_esm_timer_enum timer_id;
dmf_esm_app_type_enum app_type;
} dmf_event_esm_timer_expiry_struct;
typedef struct {
kal_uint8 nsapi;
kal_bool is_ms_initial;
dmf_sm_pdp_event_enum pdp_request_event;
kal_bool is_ims_signaling_pdp;
kal_bool is_t3380_retry;
} dmf_event_sm_pdp_request_struct;
typedef struct {
em_c2k_call_type_enum type;
em_1xrtt_call_fail_reason_enum reason;
kal_char mcc[4];
kal_char imsi_11_12[4];
kal_uint16 sid;
kal_uint16 nid;
kal_uint16 bid;
kal_uint16 channel; /* It defines channel number. */
kal_uint16 band_class; /* It defines band class. */
kal_uint16 pilot_pn_offset; /* It defines pilot PN offset. */
kal_int8 rx_power; /* It defines rx power. */
kal_int8 pilot_ecio; /* Pilot Ec/Io. */
} dmf_event_c2k_call_fail_reason_struct;
typedef struct {
kal_bool is_mo_csfb_call;
dmf_csfb_call_state_enum csfb_status;
kal_uint8 mm_state;
kal_uint8 mm_cause;
} dmf_event_mm_csfb_call_status_struct;
typedef struct {
kal_bool is_mo_cs_call;
dmf_mm_cs_call_status_enum cs_status;
kal_uint8 mm_state;
kal_uint8 mm_cause;
} dmf_event_mm_cs_call_status_struct;
typedef struct
{
kal_bool is_mo_csfb_call;
dmf_csfb_call_state_enum csfb_state;
em_emm_cause_enum ext_service_reject_cause;
} dmf_event_emm_csfb_call_status_struct;
typedef struct
{
kal_bool is_mo_call;
kal_uint8 call_id;
em_vdm_call_state_enum call_state;
ims_disc_cause_enum disc_cause;
} dmf_event_vdm_call_status_struct;
typedef struct
{
em_mcf_trigger_type_enum trigger_type;
l4c_mcf_config_type_enum config_type;
kal_uint32 result;
kal_uint32 start_time;
kal_uint32 end_time;
l4c_mcf_path_type_enum path_type;
kal_char file_name[DMF_INFO_COLLECT_MAX_MCF_FILE_NAME];
} dmf_event_mcf_info_struct;
typedef struct
{
em_l4bsbp_trigger_type_enum trigger_type;
em_l4bsbp_mode_type_enum mode;
em_l4bsbp_result_type_enum result;
kal_uint32 sbp_id;
kal_uint32 sim_sbp_id;
kal_uint32 start_time_tick;
kal_uint32 end_time_tick;
} dmf_event_sbp_dsbp_info_struct;
typedef struct
{
LOCAL_PARA_HDR
em_info_enum em_info;
kal_uint32 error_cause_is_valid;
kal_uint32 error_cause;
} dmf_event_ims_pdn_fail_cause_struct;
typedef struct
{
LOCAL_PARA_HDR
em_info_enum em_info;
kal_uint32 error_apn_is_valid;
kal_uint8 error_apn[100];
}dmf_event_ims_pdn_fail_apn_struct;
typedef struct
{
kal_bool is_mo_call;
kal_uint8 call_id;
kal_uint8 call_state;
kal_bool is_cc_disc_cause_valid;
kal_uint16 cc_disc_cause;
} dmf_event_cc_call_info_struct;
typedef enum
{
DMF_SIP_EVENT_ID_BEGIN = 0,
DMF_SIP_MO_CALL_ATTEMPT = 1, /* 1 */
DMF_SIP_MO_CALL_SET_UP = 2,
DMF_SIP_MO_CALL_ESTABLISHED = 3,
DMF_SIP_MO_CALL_END = 4,
DMF_SIP_MO_CALL_DROPED = 5,
DMF_SIP_MO_CALL_FAILED = 6,
DMF_SIP_MO_CALL_EARLY_REL = 7,
DMF_SIP_MT_CALL_ATTEMPT = 51, /* 51 */
DMF_SIP_MT_CALL_SET_UP = 52,
DMF_SIP_MT_CALL_ESTABLISHED = 53,
DMF_SIP_MT_CALL_END = 54,
DMF_SIP_MT_CALL_DROPED = 55,
DMF_SIP_MT_CALL_FAILED = 56,
DMF_SIP_MT_CALL_EARLY_REL = 57,
DMF_SIP_MT_IMS_SMS_FAIL = 201,
DMF_SIP_INITIAL_REG_REQ = 501,
DMF_SIP_INITIAL_REG_401_RCV = 502,
DMF_SIP_INITIAL_REG_WITH_IPSEC = 503,
DMF_SIP_INITIAL_REG_SUCC = 504,
DMF_SIP_INITIAL_REG_FAIL = 505,
DMF_SIP_ID_MAX
} dmf_kpi_ims_event_id_enum;
typedef enum
{
DMF_IMS_SIP_MSG_TYPE_REQUEST = 0x00,
DMF_IMS_SIP_MSG_TYPE_RESPONSE = 0x01,
DMF_IMS_SIP_MSG_TYPE_MAX,
} dmf_ims_sip_msg_type_enum;
typedef enum
{
DMF_METHOD_SIP_REGISTER,
DMF_METHOD_SIP_INVITE,
DMF_METHOD_SIP_REFER,
DMF_METHOD_SIP_UPDATE,
DMF_METHOD_SIP_CANCEL,
DMF_METHOD_SIP_MESSAGE,
DMF_METHOD_SIP_ACK,
DMF_METHOD_SIP_BYE,
DMF_METHOD_SIP_OPTIONS,
DMF_METHOD_SIP_SUBSCRIBE,
DMF_METHOD_SIP_NOTIFY,
DMF_METHOD_SIP_PUBLISH,
DMF_METHOD_SIP_INFO,
DMF_METHOD_SIP_PRACK,
DMF_METHOD_HTTP_GET,
DMF_METHOD_HTTP_POST,
DMF_METHOD_HTTP_TRACE,
DMF_METHOD_HTTP_HEAD,
DMF_METHOD_HTTP_PUT,
DMF_METHOD_HTTP_DELETE,
DMF_METHOD_HTTP_CONNECT,
DMF_METHOD_RTSP_OPTIONS,
DMF_METHOD_RTSP_REDIRECT,
DMF_METHOD_RTSP_DESCRIBE,
DMF_METHOD_RTSP_SETUP,
DMF_METHOD_RTSP_PLAY,
DMF_METHOD_RTSP_PAUSE,
DMF_METHOD_RTSP_TEARDOWN,
DMF_METHOD_RTSP_SET_PARAMETER,
DMF_METHOD_PXY_DEBUG,
DMF_METHOD_UNRECOGNIZED,
DMF_METHOD_NUM,
} dmf_sip_method_enum;
typedef enum
{
DMF_SIP_FAIL_CAUSE_NOT_USERTRIGGERED = 0x01,
DMF_SIP_FAIL_CAUSE_NOT_ALERTED = 0x04,
} dmf_ims_sip_fail_cause_enum;
typedef enum
{
DMF_KPI_URC_SWITCH_OFF = 0,
DMF_KPI_URC_SWITCH_ON, /* 1*/
DMF_KPI_URC_SWITCH_STATUS_QUERY,
DMF_KPI_NETWORK_KPI_QUERY
} dmf_kpi_urc_query_enum;
typedef enum
{
DMF_GROUP_ID_BEGIN = 0,
DMF_GROUP_ID_CMCC_NETWORK_KPI, /* 1 */
DMF_GROUP_ID_CMCC_NR_NETWORK_KPI,
DMF_GROUP_ID_MAX
} dmf_group_id_enum;
typedef enum
{
//define kpi for cmcc network group
DMF_KPI_CAUSE_BEGIN = 0,
DMF_KPI_LTE_ATTACH_SUCC_RATE = 0x00000001, /* 1 */
DMF_KPI_DEFAULT_EPS_BEARER_ESTABLISH_SUCC_RATE = 0x00000002,
DMF_KPI_ESRVCC_SUCC_RATE = 0x00000004,
DMF_KPI_IMS_REGISTRATION_SUCC_RATE = 0x00000008,
DMF_KPI_VOLTE_CALL_DROP = 0x00000010,
DMF_KPI_MO_VOLTE_CALL_SUCC_RATE = 0x00000020,
DMF_KPI_MT_VOLTE_CALL_SUCC_RATE = 0x00000040,
DMF_KPI_TAU_SUCC_RATE = 0x00000080,
DMF_KPI_MO_CSFB_SUCC_RATE = 0x00000100,
DMF_KPI_MT_CSFB_SUCC_RATE = 0x00000200,
DMF_KPI_MO_SMS_OVER_SGS_SUCC_RATE = 0x00000400,
DMF_KPI_MT_SMS_OVER_SGS_SUCC_RATE = 0x00000800,
DMF_KPI_MO_SMS_OVER_IMS_SUCC_RATE = 0x00001000,
DMF_KPI_MT_SMS_OVER_IMS_SUCC_RATE = 0x00002000,
DMF_KPI_CAUSE_MAX
} dmf_nw_kpi_enum;
typedef enum
{
//define kpi for cmcc nr network group
DMF_NR_NW_KPI_BEGIN = 0,
DMF_KPI_ADD_SCG_SUCC_RATE = 0x00000001, /* 1 */
DMF_NR_NW_KPI_MAX
} dmf_nr_nw_kpi_enum;
typedef enum
{
DMF_CMCC_EPS_ATTACH_NONE,
DMF_CMCC_EPS_ATTACH_REQUEST,
DMF_CMCC_EPS_ATTACH_SUCCESS,
DMF_CMCC_EPS_ATTACH_FAIL,
} dmf_cmcc_eps_attach_event_enum;
typedef enum
{
DMF_CMCC_ACT_DEFAULT_EPS_BEARER_NONE,
DMF_CMCC_ACT_DEFAULT_EPS_BEARER_REQUEST_RECEIVED,
DMF_CMCC_ACT_DEFAULT_EPS_BEARER_ACCEPT_SENT,
DMF_CMCC_ACT_DEFAULT_EPS_BEARER_REJECT_SENT,
} dmf_cmcc_esm_eps_bearer_event_enum;
typedef enum
{
DMF_CMCC_SRVCC_NONE,
DMF_CMCC_SRVCC_HO_REQ_RECEIVED,
DMF_CMCC_SRVCC_HO_COMPLETE_SENT,
DMF_CMCC_SRVCC_HO_FAIL_SENT,
} dmf_cmcc_srvcc_event_enum;
typedef enum
{
DMF_CMCC_TAU_NONE,
DMF_CMCC_TAU_REQUEST_SENT,
DMF_CMCC_TAU_ACCEPT_RECEIVED,
DMF_CMCC_TAU_REJECT_RECEIVED,
} dmf_cmcc_tau_event_enum;
typedef enum
{
DMF_CMCC_CSFB_CALL_NONE,
DMF_CMCC_MO_CSFB_EXT_SR_REQ_SENT,
DMF_CMCC_MO_CSFB_SUCCESS,
DMF_CMCC_MO_CSFB_FAIL,
DMF_CMCC_MT_CSFB_CS_SERVICE_NOTIFICATION,
DMF_CMCC_MT_CSFB_CS_PAGING,
DMF_CMCC_MT_CSFB_SUCCESS,
DMF_CMCC_MT_CSFB_FAIL,
}dmf_cmcc_csfb_call_event_enum ;
typedef enum
{
DMF_CSFB_RESULT_NULL,
DMF_CSFB_RESULT_FAIL,
DMF_CSFB_RESULT_SUCCESS,
}dmf_csfb_result_enum ;
typedef enum
{
DMF_CMCC_SMS_NONE,
DMF_CMCC_SMS_OVER_SGS_MO_SMS_START,
DMF_CMCC_SMS_OVER_SGS_MO_SMS_SUCCESS,
DMF_CMCC_SMS_OVER_SGS_MO_SMS_FAIL,
DMF_CMCC_SMS_OVER_SGS_MT_SMS_START,
DMF_CMCC_SMS_OVER_SGS_MT_SMS_SUCCESS,
DMF_CMCC_SMS_OVER_SGS_MT_SMS_FAIL,
DMF_CMCC_SMS_OVER_IMS_MO_SMS_START,
DMF_CMCC_SMS_OVER_IMS_MO_SMS_SUCCESS,
DMF_CMCC_SMS_OVER_IMS_MO_SMS_FAIL,
DMF_CMCC_SMS_OVER_IMS_MT_SMS_START,
DMF_CMCC_SMS_OVER_IMS_MT_SMS_SUCCESS,
DMF_CMCC_SMS_OVER_IMS_MT_SMS_FAIL,
}dmf_cmcc_sms_event_enum ;
typedef enum
{
DMF_CMCC_ADD_SCG_NONE,
DMF_CMCC_ADD_SCG_BEGIN,
DMF_CMCC_ADD_SCG_SUCCESS,
DMF_CMCC_ADD_SCG_FAIL,
}dmf_cmcc_add_scg_event_enum ;
typedef struct
{
dmf_cmcc_tau_event_enum tau_event;
kal_uint32 tau_reject_cause;
} dmf_event_cmcc_tau_struct;
typedef struct
{
dmf_cmcc_csfb_call_event_enum call_event;
kal_uint16 fail_cause;
} dmf_event_cmcc_csfb_call_info_struct;
typedef struct
{
dmf_cmcc_sms_event_enum sms_event;
kal_uint32 fail_cause;
} dmf_event_cmcc_sms_info_struct;
typedef enum {
DMF_ANTENNA_LOWER = 0,
DMF_ANTENNA_UPPER = 1,
} dmf_ant_status_enum;
typedef struct
{
//em_esm_status_struct esm_status;
//em_esm_pt_struct esm_pt[ESM_MAX_PT_NUM];
//em_esm_epsbc_struct esm_epsbc[ESM_MAX_EPSB_NUM];
//em_esm_conn_status_struct esm_conn;
#if defined(__VOLTE_SUPPORT__)
//em_esm_ims_status_struct esm_ims;
#endif
// Vzw MDMI: Report events
kal_uint8 reported_pt_index;
kal_uint8 reported_epsbc_index;
} dmf_event_esm_esm_info_struct;
typedef struct {
kal_uint32 physical_cell_id:10; // range[0, 1007]
kal_uint32 dl_frequency_band:7; // range[1, 89]
kal_uint32 bwp_size:9; // range[0, 275]
kal_uint32 sub_carrier_spacing:3; // {0, 1, 2, 3, 4} indicates SCS={15, 30, 60, 120, 240} khz
} dmf_event_nl1_physical_configuration_struct;
typedef struct {
kal_uint32 resource_id:8; // range[0, 191]
kal_int16 rsrp;
kal_int8 rsrq;
kal_int8 sinr;
} dmf_event_nl1_serving_cell_csirs_measurement_struct;
typedef struct
{
dmf_cmcc_eps_attach_event_enum attach_event;
kal_uint32 attach_reject_cause;
} dmf_event_cmcc_eps_attach_struct;
typedef struct
{
dmf_cmcc_esm_eps_bearer_event_enum esm_eps_bearer_event;
kal_uint8 ebi;
kal_uint32 reject_cause;
} dmf_event_cmcc_eps_bearer_struct;
typedef struct
{
em_errc_success_rate_kpi_proc_enum proc_id;
em_kpi_status_enum status;
kal_bool srvcc_ho_flag;
} dmf_event_cmcc_esrvcc_struct;
typedef struct
{
em_ho_from_lte_type_enum ir_ho_type;
kal_bool srvcc_ho_flag;
} dmf_event_cmcc_errc_mfrom_struct;
typedef struct
{
kal_uint32 srvcc_fail_cause;
} dmf_event_cmcc_errc_srvcc_fail_struct;
typedef struct
{
kal_uint8 sip_msg_type;
kal_uint8 call_id;
kal_uint16 sip_method;
kal_uint32 sip_resp_code;
kal_uint32 event_id;
kal_uint32 fail_cause;
}dmf_event_cmcc_imc_ims_struct;
typedef struct
{
kal_uint32 tracking_area_code; // Track area code
kal_uint16 freq_band_indicator; // Frequency band indicator
kal_uint32 dl_frequency; // Downlink Frequency
kal_uint8 serv_rsrp; // RSRP of serving cell over last measurement period
kal_uint8 serv_rsrq; // RSRQ of serving cell over last measurement period
kal_uint16 mcc; // MCC part of PLMN
kal_uint16 mnc; // MNC part of PLMN
kal_uint8 num_of_mnc_digits; // Number of digits in MNC (e.g.2/3)
kal_uint32 cause;
} dmf_event_scg_failure_event_struct;
typedef struct
{
kal_uint32 tracking_area_code; // Track area code
kal_uint16 freq_band_indicator; // Frequency band indicator
kal_uint32 dl_frequency; // Downlink Frequency
kal_uint8 serv_rsrp; // RSRP of serving cell over last measurement period
kal_uint8 serv_rsrq; // RSRQ of serving cell over last measurement period
kal_uint16 mcc; // MCC part of PLMN
kal_uint16 mnc; // MNC part of PLMN
kal_uint8 num_of_mnc_digits; // Number of digits in MNC (e.g.2/3)
kal_uint32 cause;
} dmf_event_radio_link_failure_event_struct;
typedef struct
{
kal_uint32 tracking_area_code; // Track area code
kal_uint16 freq_band_indicator; // Frequency band indicator
kal_uint32 dl_frequency; // Downlink Frequency
kal_uint8 serv_rsrp; // RSRP of serving cell over last measurement period
kal_uint8 serv_rsrq; // RSRQ of serving cell over last measurement period
kal_uint16 mcc; // MCC part of PLMN
kal_uint16 mnc; // MNC part of PLMN
kal_uint8 num_of_mnc_digits; // Number of digits in MNC (e.g.2/3)
kal_uint8 lte_num_of_scells;
kal_uint32 lte_pcc_earfcn;
kal_uint32 lte_scc_earfcn[ERRC_SCELL_NUM_MAX];
kal_uint8 nr_number_of_scell;
kal_uint16 nr_spcell_dl_frequency_band;
kal_uint16 nr_scell_dl_frequency_band[NL1_SCELL_CONFIG_LIST_SIZE];
}dmf_event_other_5g_kpi_event_struct;
typedef enum
{
DMF_NL2_PDCP_THROUGHPUT_DL,
DMF_NL2_PDCP_THROUGHPUT_UL,
DMF_EL2_PDCP_THROUGHPUT_DL,
DMF_EL2_PDCP_THROUGHPUT_UL
}dmf_pdcp_throughput_direction_enum;
typedef struct {
dmf_pdcp_throughput_direction_enum type;
kal_uint32 version; // Log record structure ID
kal_uint32 pdcp_throughput; // DL/UL throughput measured on the PDCP layer(bps)
} dmf_event_pdcp_throughput_struct;
typedef enum {
DMF_CALL_EVENT_INACTIVE = 0, // call id not active
DMF_CALL_EVENT_MO_DIAL_NORMAL_CALL,
DMF_CALL_EVENT_MO_DIAL_EMERGENCY_CALL,
DMF_CALL_EVENT_MO_UPDATE_TO_EMERGENCY, // ATD then VDM judge it as emergency call
DMF_CALL_EVENT_MT_CALL_SETUP,
DMF_CALL_EVENT_CALL_SUCCESS,
DMF_CALL_EVENT_CALL_EST_FAIL,
DMF_CALL_EVENT_CALL_END, // Call ended with previous est success
} dmf_call_event_enum;
typedef struct
{
kal_uint8 call_id;
dmf_call_event_enum dmf_call_event;
} dmf_event_call_status_struct;
typedef struct
{
kal_uint8 ho_result;
} dmf_event_errc_ho_fail_struct;
typedef struct
{
dmf_info_collect_rat_enum ra_fail_rat;
} dmf_event_ra_fail_occur_struct;
typedef struct
{
kal_uint8 bar_cause;
kal_uint32 bar_time;
kal_uint32 ext_wait_time;
kal_uint8 est_type;
kal_uint8 ac_bar_type;
} dmf_event_errc_bar_info_struct;
typedef struct
{
kal_uint8 timer_type;
kal_uint32 timer_length;
} dmf_event_errc_reest_fail_timer_info_struct;
typedef struct
{
kal_uint16 pci;
kal_uint32 rsrp;
kal_uint32 rsrq;
}dmf_event_errc_cell_info_struct;
typedef struct
{
kal_uint32 serving_cell_freq;
dmf_event_errc_cell_info_struct serving_cell;
kal_uint8 neighbor_cell_num;
dmf_event_errc_cell_info_struct neighbor_cell[3];
} dmf_event_errc_interference_mod3_info_struct;
typedef enum
{
DMF_MM_AUTH_REJ,
DMF_GMM_AUTH_REJ,
DMF_EMM_AUTH_REJ
} dmf_mm_emm_auth_type_enum;
typedef struct
{
dmf_mm_emm_auth_type_enum type;
} dmf_event_mm_emm_auth_rej_info_struct;
typedef struct
{
kal_uint32 cid;
kal_uint16 err_cause;
} dmf_event_ddm_ia_fail_info_struct;
typedef struct
{
kal_uint32 cid;
kal_uint16 err_cause;
} dmf_event_ddm_deact_fail_info_struct;
typedef struct
{
kal_uint32 cid;
kal_uint16 err_cause;
} dmf_event_ddm_act_fail_info_struct;
typedef struct
{
errc_mob_em_bw_monitoring_info_struct conn_info;
errc_mob_em_bw_monitoring_info_struct idle_info;
} dmf_event_errc_bw_monitoring_info_struct;
typedef struct
{
sim_monitor_type event_type;
kal_uint32 count;
} dmf_event_sim_monitor_info_struct;
typedef struct {
tdd_em_rrc_conn_status_enum rrc_conn_status;
kal_uint8 est_cause;
tdd_em_rrc_cause_enum rrc_cause;
} dmf_event_tdd_rrce_conn_status_struct;
typedef struct {
kal_bool is_emm;
kal_uint16 event;
kal_uint16 reject_type;
kal_uint16 original_mm_emm_cause; // (based on is_emm) em_mm_cause_enum or em_emm_cause_enum
kal_uint16 converted_mm_emm_cause; // (based on is_emm) em_mm_cause_enum or em_emm_cause_enum
kal_bool is_ps_sim_valid;
kal_bool is_cs_sim_valid;
kal_uint8 reject_domain;
}dmf_event_mm_emm_cause_info_struct;
typedef struct
{
kal_int16 rsrp;
kal_int16 rsrq;
kal_int16 sinr;
kal_int32 jitter;
kal_uint8 tx_drop_rate;
kal_uint8 rx_drop_rate;
} dmf_event_volte_quality_info_struct;
typedef struct
{
MobEmMeasQty meas_quantity;
kal_int16 threshold;
kal_uint8 hysteresis;
kal_uint16 time_to_trigger;
} dmf_a2_config_struct;
typedef struct
{
dmf_a2_config_struct a2_config[ERRC_EM_MAX_A2_ONLY_MEAS_CONFIG_REPORT_NUM];
} dmf_event_errc_a2_config_event_struct;
typedef struct
{
MobEmMeasQty meas_quantity;
kal_int16 threshold;
MobEmMeasQty other_rat_meas_quantity;
kal_int16 other_rat_threshold;
kal_uint8 hysteresis;
kal_uint16 time_to_trigger;
} dmf_b2_config_struct;
typedef struct
{
dmf_b2_config_struct b2_config[ERRC_EM_MAX_B2_ONLY_MEAS_CONFIG_REPORT_NUM];
} dmf_event_errc_b2_config_event_struct;
typedef struct
{
em_gmss_hvolte_mode_enum hvolte_mode;
em_gmss_hvolte_mode_chg_cause_enum hvolte_mode_change_cause;
kal_bool is_silent_redial_start;
kal_bool is_after_silent_redial_return_lte_fail;
} dmf_event_gmss_hvolte_info_struct;
typedef struct {
kal_uint8 is_nr_cell_measured; // 0: No NR cell measured
// 1: NR cell measured
} dmf_event_errc_ir_nr_meas_result_info_struct;
typedef struct {
kal_uint32 ul_grant_valid:1; // 0: Not valid
// 1: Valid
kal_uint32 dci_format:1; // 0: 0_0
// 1: 0_1
kal_uint32 resource_allocation_type:1; // Resource allocation type in freq domain.
// 0: type 0, 1: type 1
kal_uint32 start_rb:9; // If resource allocation type is 0: RBGbmp LSBs;
// If resource allocation type is 1:
// The Start of RB for the assigned PUSCH.
// range[0, 274]
kal_uint32 num_rb:9; // If resource allocation type is 0: RBGbmp MSBs;
// If resource allocation type is 1:
// The length of RB for the assigned PUSCH.
// range[0, 275]
kal_uint32 slot_offset_k2:6; // Slot offset for DCI and the corresponding PUSCH.
// range[0, 32]
kal_uint32 sliv_start:4; // The start symbol index of the corresponding
// PUSCH. range[0, 13]
kal_uint32 reserved:1;
kal_uint32 sliv_length:4; // Symbol length of the corresponding PUSCH.
// range[1, 14]
kal_uint32 frequency_hopping_flag:1; // 0: no frequency hopping
// 1: frequency hopping
kal_uint32 modulation_type:3; // Modulation Order.
// 0: BPSK, 1: QPSK, 2: 16QAM, 3: 64QAM, 4: 256QAM
kal_uint32 mcs_index:5; // range[0, 31]
kal_uint32 ndi:1; // Indicate new transmission or re-transmission.
kal_uint32 rv:2; // Derive from MCS, range[0, 3]
kal_uint32 harq_id:4; // range[0, 15]
kal_uint32 pusch_tpc_command:2; // TPC command for scheduled PUSCH as defined in
// 7.1.1 of TS 38.213.
kal_uint32 ul_sul_indicator:1; // As defined in 7.3.1.1.1 of TS38.212.
// 0: The non-supplementary uplink
// 1: The supplementary uplink
kal_uint32 bandwidth_part_indicator:2; // Specific for DCI format 0_1.
kal_uint32 first_dai:2; // Specific for DCI format 0_1.
// As defined in 7.3.1.1.2 of TS38.212.
kal_uint32 second_dai:2; // Specific for DCI format 0_1.
// As defined in 7.3.1.1.2 of TS38.212.
kal_uint32 reserved_1:3;
kal_uint32 srs_resource_indicator:4; // range[0, 15]
kal_uint32 tpmi_indicator:3; // range[0, 5]
kal_uint32 number_of_layers:1; // 0: 1 layer, 1: 2 layers
kal_uint32 srs_request:3; // As defined in 7.3.1.1 of TS38.212.
kal_uint32 csi_request:6; // range[0, 63]
kal_uint32 ul_cbgti:8; // UL CBG transmission information bitmap.
// MSB correspondes to CBG#0.
kal_uint32 beta_offset_indicator:2; // range[0, 3]
kal_uint32 dmrs_sequence_initialization:1; // range[0, 1]
kal_uint32 reserved_2:4;
} dmf_nl1_ul_dci_info_record_v1;
typedef struct {
kal_uint32 dl_dci_valid:1; // 0: Not valid
// 1: Valid
kal_uint32 dci_format:1; // 0: 1_0
// 1: 1_1
kal_uint32 resource_allocation_type:1; // Resource allocation type in freq domain.
// 0: type 0, 1: type 1
kal_uint32 start_rb:9; // If resource allocation type is 0:
// RBGbmp LSBs;
// If resource allocation type is 1:
// The Start of RB of assigned PDSCH.
// range[0, 274]
kal_uint32 num_rb:9; // If resource allocation type is 0:
// RBGbmp MSBs;
// If resource allocation type is 1:
// The length of assigned PDSCH RB.
// range[0, 275]
kal_uint32 pdsch_mapping_type:1; // Time domain PDSCH mapping type.
// 0: type A, 1: type B
kal_uint32 slot_offset_k0:6; // Slot offset for DCI and the assigned PDSCH.
// range[0, 32]
kal_uint32 sliv_start:4; // The start symbol index of assigned PDSCH.
// range[0, 13]
kal_uint32 sliv_length:4; // Symbol length of the assigned PDSCH.
// range[1, 14]
kal_uint32 vrb_to_prb_mapping:1; // 0: Non-interleaved, 1: Interleaved
kal_uint32 ndi_1:1; // Indicate new transmission or re-transmission
// for TB1.
kal_uint32 rv_1:2; // Redundancy version for TB1. Derive from MCS.
// range[0, 3]
kal_uint32 mcs_type_1:2; // MCS type for TB1.
// 0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM
kal_uint32 ndi_2:1; // Indicate new transmission or re-transmission
// for TB2. Only valid for DCI format 1_1
// Only valid for DCI format 1_1 and when TB2
// is configured.
kal_uint32 rv_2:2; // Redundancy version for TB2. Derive from MCS.
// range[0, 3]
// Only valid for DCI format 1_1 and when TB2
// is configured.
kal_uint32 mcs_type_2:2; // MCS type for TB2.
// Only valid for DCI format 1_1 and when TB2
// is configured.
// 0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM
kal_uint32 harq_id:4; // range[0, 15]
kal_uint32 counter_dai:2; // As described in 9.1.3 of TS 38.213.
kal_uint32 total_dai:2; // Specific for DCI format 1_1.
kal_uint32 pucch_tpc_command:2; // As defined in 7.2.1 of TS 38.213.
kal_uint32 pdsch_harq_ack_codebook:1; // 0: Semistatic, 1: Dynamic
kal_uint32 pucch_resource_indicator:3; // As defined in 9.2.3 of TS 38.213.
// range[0, 7]
kal_uint32 pdsch_to_harq_feedback_timing_indicator:3; // As defined in 9.2.3 of TS 38.213.
// range[0, 7]
kal_uint32 bandwidth_part_indicator:2; // For acitve BWP change.
// Specific for DCI format 1_1.
kal_uint32 reserved:2;
kal_uint32 prb_bundling_size:3; // 0: bundle size n2, 1: bundle size n4,
// 2: wideband
kal_uint32 rate_matching_indicator:2; // Specific for DCI format 1_1.
kal_uint32 tci:3; // Transmission configuration indication for
// the TCI states as defined in 5.1.5 of
// TS 38.214.
// Specific for DCI format 1_1.
kal_uint32 srs_request:3; // As defined in 7.3.1.1 of TS 38.212.
// Specific for DCI format 1_1.
kal_uint32 cbgti:8; // CBG transmission information. As defined in
// 5.1.7 of TS 38.214.
// Specific for DCI format 1_1.
kal_uint32 cbgfi:1; // CBG flushing out information. As defined in
// 5.1.7 of TS 38.214.
// Specific for DCI format 1_1.
kal_uint32 num_ack_bit:2; // Received DL TB num. range[0, 2]
kal_uint32 dmrs_sequence_initialization:1; // Specific for DCI format 1_1.
kal_uint32 number_of_harq_process_for_pdsch:3; // 0: n2, 1: n4, 2: n6, 3: n8, 4: n10,
// 5: n12, 6: n16
kal_uint32 num_of_layers:2; // 0: 1 layer, 1: 2 layers, 2: 3 layers,
// 3: 4 layers
kal_uint32 mcs_index_1:5; // range[0, 31]
kal_uint32 mcs_index_2:5; // range[0, 31]
kal_uint32 reserved_1:22;
} dmf_nl1_dl_dci_info_record_v2;
typedef struct {
kal_uint32 sfn:10; // This is the SFN based on the occurrence
// of this record. range[0, 1023]
kal_uint32 subframe:4; // This is the SF based on the occurrence
// of this record. range[0, 9]
kal_uint32 slot_index:3; // Slot index within this SF. range[0, 7]
kal_uint32 reserved:15;
dmf_nl1_ul_dci_info_record_v1 ul_dci_info;
dmf_nl1_dl_dci_info_record_v2 dl_dci_info;
} dmf_nl1_dci_info_record_v2;
typedef struct {
kal_uint32 version:8; // Log record structure ID
kal_uint32 phys_cell_id:10; // range[0, 1007]
kal_uint32 carrier_index:3; // range[0, 7]
kal_uint32 number_of_records:5; // range[0, 20]
kal_uint32 reserved:6;
dmf_nl1_dci_info_record_v2 dci_info[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
} dmf_event_nl1_dci_info_struct;
typedef enum {
DMF_MM_NORMAL_LU = 0x00,
DMF_MM_PERIODIC_LU = 0x01,
DMF_MM_IMSI_ATTACH_LU = 0x02,
DMF_MM_NONE_ATTEMPTED
} dmf_mm_update_type_enum;
typedef struct
{
LOCAL_PARA_HDR
em_info_enum em_info;
kal_uint16 lu_attempt_num; //increase when LU is snet out
kal_uint16 lu_success_num; //increase when LU success
kal_uint16 lu_failure_num; //increase when LU failure
dmf_mm_update_type_enum lu_type;
em_mm_lr_status_enum lu_status;
em_lr_failure_cause_enum lu_failure_cause;
}dmf_em_mm_lu_info_ind_struct;
typedef struct
{
kal_uint32 buffer_packet_num;
kal_uint32 buffer_avg_time;
kal_uint32 buffer_max_time;
kal_uint32 sent_packet_num;
kal_uint32 num_sdu_acked;
kal_uint32 num_sdu_disc_all_type;
} dmf_event_lte_pdcp_status_struct;
typedef struct
{
kal_uint32 nack_num_by_nw;
kal_uint32 nack_num_by_ue;
kal_uint32 miss_num_by_ue;
kal_uint32 retx_num_by_ue;
kal_uint32 TxDataPdu;
kal_uint32 RxDataPdu;
} dmf_event_el2_rlc_status_struct;
typedef struct
{
dmf_info_collect_rat_enum update_rat;
kal_bool stop_tx;
} dmf_event_sig_info_struct;
typedef struct
{
dmf_info_collect_rat_enum rat;
kal_uint32 meas_duration_in_ms;
} dmf_event_idle_meas_time_struct;
typedef struct
{
dmf_info_collect_rat_enum rat;
kal_uint8 drx_factor;
kal_uint32 drx_cnt;
} dmf_event_drx_cnt_info_struct;
typedef struct
{
dmf_info_collect_rat_enum latest_oos_rat;
} dmf_event_oos_user_unaware_recovery_info_struct;
typedef struct
{
em_3g_rrc_state_enum umts_rrc_state;
} dmf_event_rrc_state_transition_struct;
typedef struct
{
kal_uint8 rr_state; /* NULL: 0, INACTIVE: 1, SELECTION: 2
* IDLE: 3, ACCESS: 4. PKT_TRANSFER: 5
* DEDICATED:6, RESELCTION: 7 */
} dmf_event_rr_state_transition_struct;
typedef struct
{
dmf_info_collect_rat_enum rat;
em_kpi_status_enum status;
kal_uint16 proc_id;
dmf_info_collect_rat_enum target_rat;
kal_uint32 frequency;
kal_uint16 pci;
} dmf_event_xas_kpi_info_struct;
typedef struct
{
em_errc_searching_state_enum state;
} dmf_event_errc_search_struct;
#if 0
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif
typedef struct
{
dmf_info_collect_rat_enum latest_oos_rac_rat;
} dmf_event_oos_delay_info_struct;
typedef struct
{
kal_char prev_plmn_id[7];
kal_char curr_plmn_id[7];
} dmf_event_plmn_change_struct;
typedef struct
{
kal_bool is_new_rat;
dmf_info_collect_rat_enum rat;
kal_uint8 sig1; // sig1 for l4c (note for LTE this is rsrq, different from DMF interpretation)
kal_uint8 sig2;
} dmf_event_l4c_sig_update_struct;
typedef struct
{
dmf_tau_rau_lau_event_enum event;
kal_bool is_combined_rau_lau;
} dmf_event_tau_rau_lau_info_struct;
typedef struct
{
kal_uint8 esm_active_epsb_num;
} dmf_event_esm_active_epsb_info_struct;
typedef struct {
kal_uint32 version:8; // Log record structure ID
kal_uint32 sfn:10; // This is the SFN based on reporting time of this record.
// Range [0,1023].
kal_uint32 subframe:4; // This is the SF based on reporting time of this record.
// Range [0,9].
kal_uint32 serving_cell_index:3; // Indicates this metric is reporting on which serving cell
// (not scell index configured by RRC). range[0, 7],
// Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7
kal_uint32 reserved:7;
kal_int16 target_pwr; // range [-50, 23]
// Target power for the Uplink Tx record for within 100 ms
kal_int16 pd_pwr; // range [-50, 23]
// PD power for the Uplink Tx record for within 100 ms
} dmf_event_el1_tx_pdpower_report_struct;
typedef struct {
kal_uint8 version; // Log event structure ID
kal_uint8 call_status; // Indicates IMS call status
// 0:Inactive
// 1:Active
// 2:Attmpting
// 3:Hold
// 4:Ringing
kal_uint8 call_type; // Bitmask of IMS call type
// Bit0:Voice
// Bit1:Video
// Bit2:Text
// Bit3:Emergency
kal_uint8 rat_information; // Indicates Rat information
// 0:LTE
// 1:NR
// 2:Wifi
kal_uint8 call_direction; // Indicates Call direction
// 0:MO
// 1:MT
kal_uint8 call_change_state_cause; // Indicates Call change state cause
// 0:notAvailable
// 1:normalCallClearing
// 2:callFail
// 3:callDrop
kal_uint16 reserved;
kal_int8 sip_call_id[100]; // Indicates the Call-ID in SIP message.
kal_int8 reason_text[128]; // Indicates the text of SIP reason header.
} dmf_ims_call_status_info_struct;
typedef struct {
kal_int32 drx_ondurationtimer;
kal_int32 drx_inactivitytimer;
kal_int32 drx_longcycle;
kal_int32 drx_shortcycle;
} dmf_errc_cdrx_info_struct;
#endif // _DMF_PUBLIC_DEF_H_