blob: 95401e969e38fb185a6dbf8006a047012948a15a [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) 2005
*
* 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:
* ---------
* esm_ratdm_struct.h
*
* Project:
* --------
*
*
* Description:
* ------------
*
*
* Author:
* -------
* -------
*
******************************************************************************
* $Log$
*
* 07 30 2021 stun.wu
* [MOLY00656536] [TMO EPSFB][P210420-00364] [Carrier VOC][A326U][TMB][UCF][MQL-TX][NR/BasicFunction/Call/EPSFB]Device "S1 mode not requested" failing EPSFB calls with 503
*
* .
*
* 03 26 2019 mike.lu
* [MOLY00393456] [Gen97][VMOLY] 45G InterRAT & interSystem feature
*
* .
*
* 11 29 2018 mike.lu
* [MOLY00361576] TS24.301 R15.4 Aligment
* .
*
* 10 29 2018 mike.lu
* [MOLY00361576] TS24.301 R15.4 Aligment
*
* [MOLY00346729] VMOLY_CBr patch back to VMOLY TRUNK
*
* .
*
* 06 05 2018 yu-hsin.lin
* [MOLY00325101] [UMOLYE][MT6761][Merlot][O1][MP3][MTBF][HQ][4GMM][Lab][Ericsson][Fatal error(task)] err_code1:0x00000305 err_code2:0x888802DA err_code3:0xCCCCCCCC
* [interface] is_emergency_bearer, enum, and msg struct for esm_ratdm_ac_bar_alleviate_req;
*
* 04 26 2018 willy-wj.chen
* [MOLY00322460] [UMOLYE]¡i??¡j¡i¦è¦w¡j¡i?«HVOLTE¡j¥d1?«H4G¥d2?«HVOLTE ¥d2¦b?«HVOLTE B5?¬q¤UMT??¡A??¥X?MT¥¢?
* [UMOLYE][EL2][Common]¡i??¡j¡i¦è¦w¡j¡i?«HVOLTE¡j¥d1?«H4G¥d2?«HVOLTE ¥d2¦b?«HVOLTE B5?¬q¤UMT??¡A??¥X?MT¥¢?.
*
* 04 20 2018 willy-wj.chen
* [MOLY00321469] [R2.TC16.SP][COMMON]¡i??¡j¡i¦è¦w¡j¡i?«HVOLTE¡j¥d1?«H4G¥d2?«HVOLTE ¥d2¦b?«HVOLTE B5?¬q¤UMT??¡A??¥X?MT¥¢?
* 01 16 2018 yu-hsin.lin
* [MOLY00302109] [MT6763][Bianco][N1][India FT][Chennai][WW FT][RCOM][TATA DOCOMO][TC_MTK_P1_4G_Gemini_13] [MP1.5] DUT long SMS to sim2 fails (common interface part)
* [Interface] modify ESM cause
*
*
* 01 16 2018 yu-hsin.lin
* [MOLY00302109] [MT6763][Bianco][N1][India FT][Chennai][WW FT][RCOM][TATA DOCOMO][TC_MTK_P1_4G_Gemini_13] [MP1.5] DUT long SMS to sim2 fails (common interface part)
* [Interface] modify ESM cause
*
* 12 18 2017 vera.yeh
* [MOLY00294275] [6293 Gemini][Common Interface][Switch data to VoLTE call SIM]: Switch data service to SIM which is with ongoing VoLTE call
* [ESM] __FORCE_LOCAL_RELEASE__ Add new cause GEMINI_FAILURE for IDLE_LEAVE_REJ
*
* 10 25 2016 steve.kao
* [MOLY00209600] [UMOLYA][RATDM-LTE] M-PS related code changes
* [UMOLYA_TRUNK][RATDM-LTE][MPS] Modify interface for IDLE_LEAVE_IND .
*
* 07 20 2016 head.hsu
* [MOLY00174746] [PH1_VZW][joint-camp][Radio_Protocol][hVoLTE] TC 2.2.13 fail: step8. wait for EMM SR timeout
*
* 02 01 2016 matti.moisanen
* [MOLY00145827] [R12] CR2024 Introducing new QCIs for MCPTT signaling
*
* 04 16 2015 carlson.lin
* [MOLY00091769] [GEMINI] Trigger TAU/SR after GEMINI resume
* Add iterface (OA Domain)
*
*
******************************************************************************/
#ifndef ESM_RATDM_STRUCT_H
#define ESM_RATDM_STRUCT_H
#include "kal_general_types.h"
#include "kal_public_defs.h"
#include "mcd_l3_inc_gprs_struct.h"
#include "l3_inc_local.h"
#include "qmu_bm.h"
/* the available EBI range is 5~15. The maximum number of EPS bearer is eleven. */
#define MAX_EPSB_NUMBER 11
typedef enum
{
ESM_QCI_RESERVED_VALUE_0 = 0, // Reserved
ESM_QCI_1 = 1, // QCI_1, Conversational Vocie
ESM_QCI_2 = 2, // QCI_2, Conversational Video (Live Streaming)
ESM_QCI_3 = 3, // QCI_3, Real Time Gaming
ESM_QCI_4 = 4, // QCI_4, Non-Conversational Video (Buffered Streaming)
ESM_QCI_5 = 5, // QCI_5, IMS Signaling
ESM_QCI_6 = 6, // QCI_6, Video (Buffered Streaming), TCP-based (e.g., www, e-mail, chat, ftp, p2p file sharing, progressive video, etc)
ESM_QCI_7 = 7, // QCI_7, Voice, Video (Live Streaming), Interactive Gaming
ESM_QCI_8 = 8, // QCI_8, Video (Buffered Streaming), TCP-based (e.g., www, e-mail, chat, ftp, p2p file sharing, progressive video, etc)
ESM_QCI_9 = 9, // QCI_9, Video (Buffered Streaming), TCP-based (e.g., www, e-mail, chat, ftp, p2p file sharing, progressive video, etc)
ESM_QCI_SPARE_VALUE_10 = 10, // Spare (10~64)
ESM_QCI_SPARE_VALUE_64 = 64, // Spare (10~64)
ESM_QCI_65 = 65, // QCI_65, Mission Critical user plane Push To Talk Voice (e.g., MCPTT)
ESM_QCI_66 = 66, // QCI_66, Non-Mission-Critical user plane Push To Talk Voice
ESM_QCI_67 = 67, // QCI_67, Mission Critical Video service
ESM_QCI_SPARE_VALUE_68 = 68, // Spare (68)
ESM_QCI_69 = 69, // QCI_69, Mission Critical delay sensitive signalling (e.g.,MC-PTT signalling)
ESM_QCI_70 = 70, // QCI_70, Mission Critical Data (e.g. example services are the same as QCI 6/8/9)
ESM_QCI_SPARE_VALUE_71 = 71, // Spare (71~127)
ESM_QCI_84 = 84, // QCI_84, e.g. Ultra-reliable and Low Latency Communications
ESM_QCI_85 = 85, // QCI_85, e.g. Ultra-reliable and Low Latency Communications
ESM_QCI_SPARE_VALUE_127 = 127, // Spare (71~127)
ESM_QCI_OPERATOR_SPECIFIC_QCI_MIN_VALUE = 128, // Operator-specific QCIs 128~254
ESM_QCI_OPERATOR_SPECIFIC_QCI_MAX_VALUE = 254, // Operator-specific QCIs 128~254
ESM_QCI_RESERVED_VALUE_255 = 255 // Reserved
} esm_qci_enum;
// R12 CR2063 QCI code values "spare for future use"
// Temporary definitions January-2016. When RATDM code is updated to use esm_qci_enum
// values then these definitions shall be deleted
#define ESM_QCI_RESERVED_VALUE_10 ESM_QCI_SPARE_VALUE_10
#define ESM_QCI_RESERVED_VALUE_127 ESM_QCI_SPARE_VALUE_127
typedef enum
{
ESM_IDLE_LEAVE_REJ_UNSPEFICIFIED = 0x01,
ESM_IDLE_LEAVE_REJ_DETACH = 0x02,
ESM_IDLE_LEAVE_REJ_COVERAGE_OUT = 0x10,
ESM_IDLE_LEAVE_REJ_AC_BARRED = 0x11,
ESM_IDLE_LEAVE_REJ_NW_REJECT = 0x12,
ESM_IDLE_LEAVE_REJ_GEMINI_SUSPEND = 0x13, //gemini SUSPEND due to CS semaphore occupied by another protocal stack, wait for resume
ESM_IDLE_LEAVE_REJ_T3346_CONGESTION = 0x14,
ESM_IDLE_LEAVE_REJ_T3417TO = 0x15,
ESM_IDLE_LEAVE_REJ_GEMINI_FAILURE = 0x16, //gemini failure due to PS(or higher) semaphore occupied by another protocal stack
ESM_IDLE_LEAVE_REJ_AC_BARRED_EMERGENCY = 0x17,
ESM_IDLE_LEAVE_REJ_AC_BARRED_NORMAL = 0x18,
ESM_IDLE_LEAVE_REJ_OTHERS = 0x20,
ESM_IDLE_LEAVE_REJ_TAU_CONN_FAIL = 0x21,
}idle_leave_rej_cause_enum;
typedef enum
{
ESM_ALLEVIATED_TYPE_EMERGENCY,
ESM_ALLEVIATED_TYPE_NORMAL,
}esm_alleviated_type_enum;
typedef struct
{
kal_uint8 ebi;
kal_uint8 rb_idx;
}ebi_rbidx_map_struct;
typedef struct
{
LOCAL_PARA_HDR
/* EPS bearer identity which ESM wants to initialize */
kal_uint8 ebi;
/*
* Default EPS bearer identity
* If the EPS bearer ESM wants to activate is a default EPS bearer,
* linked_ebi will be set to the same as ebi
*/
kal_uint8 linked_ebi;
/* Hardware channel id (choose by ERRC) */
kal_uint8 rb_idx;
esm_qci_enum qci;
/* 23G ralated parameters */
kal_bool is_llc_sapi_present;
kal_uint8 llc_sapi;
kal_bool is_ug_qos_present;
qos_struct ug_qos;
kal_bool is_radio_priority_present;
kal_uint8 radio_priority;
kal_bool is_pfi_present;
kal_uint8 pfi;
/* Bearer service type */
kal_bool is_emergency_bearer;
}esm_ratdm_epsb_init_req_struct;
typedef struct
{
LOCAL_PARA_HDR
/* EPS bearer identity which ESM wants to activate */
kal_uint8 ebi;
}esm_ratdm_epsb_act_req_struct;
typedef struct {
/* EPS bearer identity which ESM wants to initialize */
kal_uint8 ebi;
/*
* Default EPS bearer identity
* If the EPS bearer ESM wants to activate is a default EPS bearer,
* linked_ebi will be set to the same as ebi
*/
kal_uint8 linked_ebi;
/* Hardware channel id (choose by ERRC) */
kal_uint8 rb_idx;
esm_qci_enum qci;
/* 23G ralated parameters */
kal_bool is_llc_sapi_present;
kal_uint8 llc_sapi;
kal_bool is_ug_qos_present;
qos_struct ug_qos;
kal_bool is_radio_priority_present;
kal_uint8 radio_priority;
kal_bool is_pfi_present;
kal_uint8 pfi;
/* Bearer service type */
kal_bool is_emergency_bearer;
} epsb_info_struct;
typedef struct {
kal_uint8 from_psi;
kal_uint64 qfi_bitmap;
epsb_info_struct epsb;
} esm_ratdm_ebi_map_to_psi_info_struct;
/* MSG_ID_ESM_RATDM_5G4_CONTEXT_TRANSFER_REQ */
typedef struct {
LOCAL_PARA_HDR
kal_uint8 num_of_map_info;
esm_ratdm_ebi_map_to_psi_info_struct map_info[MAX_L4_PS_EBI_NUM];
} esm_ratdm_5g4_context_transfer_req_struct;
typedef struct
{
LOCAL_PARA_HDR
/* EPS bearer identity which ESM wants to deactivate */
kal_uint8 ebi;
}esm_ratdm_epsb_deact_req_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 ebi;
/* 4G ralated parameters */
esm_qci_enum qci;
/* 23G ralated parameters */
kal_bool is_llc_sapi_present;
kal_uint8 llc_sapi;
kal_bool is_ug_qos_present;
qos_struct ug_qos;
kal_bool is_radio_priority_present;
kal_uint8 radio_priority;
kal_bool is_pfi_present;
kal_uint8 pfi;
} esm_ratdm_epsb_modify_req_struct;
typedef struct
{
LOCAL_PARA_HDR
/* The total number of EPS bearer with DRB established after UE enter connected mode */
kal_uint8 epsb_num;
/* Mapping between EBI & RB index */
ebi_rbidx_map_struct ebi_rbidx_map[MAX_EPSB_NUMBER];
}esm_ratdm_idle_leave_req_struct;
typedef struct
{
LOCAL_PARA_HDR
/* The failure cause of leave idle */
idle_leave_rej_cause_enum idle_leave_rej_cause;
/* Backoff timer used with ESM_IDLE_LEAVE_REJ_TAU_CONN_FAIL */
kal_uint32 retry_time_ms;
}esm_ratdm_idle_leave_rej_struct;
typedef struct
{
LOCAL_PARA_HDR
/* Which EPS bearers has data */
kal_uint16 ebi_btmp;
/* whether the queue of ebi_btmp will be cleared upon Idle_Leave_Rej with gemini */
kal_bool is_drop_data_by_gemini_cause;
}esm_ratdm_idle_leave_ind_struct;
typedef struct
{
LOCAL_PARA_HDR
/* Whether UL data is coming */
kal_bool is_ul_data_coming;
}esm_ratdm_query_ul_data_status_cnf_struct;
typedef struct
{
LOCAL_PARA_HDR
/* type which is going to be alleviated due to ac bar in idle leave*/
esm_alleviated_type_enum alleviated_type;
}esm_ratdm_ac_bar_alleviate_req_struct;
/* Adaptation between ESM and LTM */
typedef esm_ratdm_epsb_init_req_struct esm_ltm_epsb_init_req_struct;
typedef esm_ratdm_epsb_act_req_struct esm_ltm_epsb_act_req_struct;
typedef esm_ratdm_epsb_deact_req_struct esm_ltm_epsb_deact_req_struct;
typedef esm_ratdm_epsb_modify_req_struct esm_ltm_epsb_modify_req_struct;
typedef esm_ratdm_idle_leave_req_struct esm_ltm_idle_leave_req_struct;
typedef esm_ratdm_idle_leave_rej_struct esm_ltm_idle_leave_rej_struct;
typedef esm_ratdm_idle_leave_ind_struct esm_ltm_idle_leave_ind_struct;
typedef esm_ratdm_query_ul_data_status_cnf_struct esm_ltm_query_ul_data_status_cnf_struct;
typedef esm_ratdm_ac_bar_alleviate_req_struct esm_ltm_ac_bar_alleviate_req_struct;
#endif /* ESM_RATDM_STRUCT_H */