blob: ced76fa1b7a12df9a112199b2ee562038a3be769 [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:
* ---------
* errc_epdcp_msg.h
*
* Project:
* --------
* MOLY
*
* Description:
* ------------
* eRRC-ePDCP SAP message structure definition
*
* Author:
* -------
* -------
*
* ==========================================================================
* $Log$
*
* 07 24 2018 cammie.yang
* [MOLY00341790] [MT6295] UDC feature patch back
* [UDC][95FPB][Phase 3] UDC feature patch back -- common structures and interfaces
*
* 07 18 2018 steve.kao
* [MOLY00339307] The handling of energy depletion attack by STMSI paging from fake cell
* Inactivity Detection Timer 2
*
* 02 06 2018 yi-shing.liou
* [MOLY00299866] [UMOLYE][ERRC/El2][R13]FeMDT UL PDCP delay measurement report
* [EPDCP] PDCP queuing delay (EMDT), common part.
*
* 10 31 2017 mazi.yu
* [MOLY00286412] [MT6293] Change EPDCP ERRC RB add/mod interface
* Change epdcp_rb_addmod_struct interface and support new qci value
*
* 09 18 2017 timothy.yao
* [MOLY00274939] patch back bugfix of RoHC-TCP IOT
* for UL-ROHC:
* 1) RoHC TCP bugfix patch
* 2) UL-ROHC interface
*
* 07 13 2017 steve.kao
* [MOLY00264004] [6293] EPDCP R-SIM code changes and UT with bugfixes
*
* [UMOLYA][TRUNK] EPDCP changes for L+L, R-SIM, UT, and bugfixes.
*
* 02 10 2017 steve.kao
* [MOLY00228972] [UMOLYA][EPDCP][R-SIM] Interface with ERRC for Remote SIM
* [EPDCP][R-SIM] Interface with ERRC for Remote SIM.
*
* 11 15 2016 cammie.yang
* [MOLY00211938] [UMOLYA][EM][AT&T] EUTRA air message
* [TRUNK][EPDCP]
* 1. Modification of ERRC-EPDCP interface for change of RRC buffer type (non-cachable AFM will be used)
* 2. Add handling for NULL Alogrithm in EPDCP UL
*
* 11 10 2016 steve.kao
* [MOLY00195563] [6293][EL2][UPCM][RATDM][EPDCP] Initial feature integrations
* [UMOLYA_TRUNK][EPDCP] Fix MCCH delivery interface.
*
* 09 26 2016 cammie.yang
* [MOLY00195563] [6293][EL2][UPCM][RATDM][EPDCP] Initial feature integrations
* [TRUNK] UPCM/RATDM/EPDCP feature integrations from PS.DEV
*
* 01 21 2016 mingtsung.sun
* [MOLY00160421] [MT6292] ePDCP CE RAM Optimization
* [EPDCP] CE RAM OPT
*
* 01 04 2016 tero.miettinen
* [MOLY00155820] ERRC UMOLY updates
* NVRAM IF, ERRC - EL2 IF and ERRC update for 15 bit RLC LI field length.
*
* 06 03 2015 mingtsung.sun
* [MOLY00118161] [MT6291] EPDCP CR Sync - Early reestablishment to prevent certain kind of VoLTE call drop
* LTE domain
*
* 02 05 2015 cooper.lin
* [MOLY00090532] [MT6291] Change Feature Check-in
* Code sync from MOLY (W15.06)
* 1. Not check in C2K related code because 91 C2K is under implementation and not checked in yet
* 2. Not check in VSIM related code, need to further discuss
* 3. Comment some DETECTION_TIMER related code, will confirm soon and patch it
*
* 11 12 2014 chi-chung.lin
* [MOLY00068710] [MT6291_DEV] Sync MOLY to MT6291_DEV
* [CHM] code sync from MT6291_DEV to UMOLY
*
* 11 11 2014 andrew.wu
* [MOLY00084096] [UMOLY]MT6291_DEV sync to UMOLY TRUNK
* MT6291_DEV sync to UMOLY
*
* 02 25 2013 timothy.yao
* [MOLY00007127] [MT7208] EL2 enhancement in MOLY
* [merged from L1SL2S-IT CBr]
* 1. modify the MACROs checking SIT index in ePDCP.
* 2. [bugfix] update BD chksum after removing PDCP header.
* 3. [bugfix] fix assert when deactivating loopback test mode
* -> also fix UT cases.
* 4. [bugfix] cache flush for the scaled data
* 5. [modify] patch the random method in freerun.
* 6. [modify] set the padding enums as 0x7fffffff for cgen.
****************************************************************************/
/*
* mtk02353, 2011/07/28
*
* eRRC-ePDCP SAP message structure definition
*
* - the file only defines the message structure.
* - naming rule : similar to message id
* (a) exclude the prefix "MSG_ID_"
* (b) add the postfix "_struct"
* - message id is defined in epdcp_sap.h
* MSG_ID_ERRC_EPDCP_DCCH_DATA_REQ,
* MSG_ID_ERRC_EPDCP_DCCH_DATA_CNF,
* MSG_ID_ERRC_EPDCP_DCCH_DATA_IND,
* MSG_ID_ERRC_EPDCP_DCCH_DATA_RES,
* MSG_ID_ERRC_EPDCP_TEST_REQ,
* MSG_ID_ERRC_EPDCP_TEST_CNF,
* MSG_ID_ERRC_EPDCP_CONFIG_REQ,
* MSG_ID_ERRC_EPDCP_CONFIG_CNF,
* MSG_ID_ERRC_EPDCP_CNTINFO_REQ,
* MSG_ID_ERRC_EPDCP_CNTINFO_CNF,
* MSG_ID_ERRC_EPDCP_EXCESS_DELAY_IND
*
* history:
* 2011/11/16 - timothy
* seperate the configuration array of CONFIG_REQ into 2 arrays,
* one is for add_and_modify, and the other is for deletion.
*/
#ifndef _LTE_ERRC_EPDCP_SAP_STRUCT_DEF_H_
#define _LTE_ERRC_EPDCP_SAP_STRUCT_DEF_H_
#include "kal_public_api.h"
#include "qmu_bm.h"
#include "el2_sap_common.h"
#include "common_def.h"
/*****************************************************************************
* constants
*****************************************************************************/
/* numbers */
#define EPDCP_SAP_MAX_NUM_CFG_RB (10) //2 //2 SRB + 8 DRBs
#define EPDCP_SAP_MAX_NUM_DRB (8) //8 DRBs
#define EPDCP_SAP_MAX_NUM_ROHC_PROF (9)
#define EPDCP_SAP_MAX_NUM_QUEUING_DELAY_RSLT (6)
/* RB types */
//#define EPDCP_SAP_DRB_TYPE_DRB_AM (1)
//#define EPDCP_SAP_DRB_TYPE_DRB_UM (2)
/*****************************************************************************
* enum types
*****************************************************************************/
/*
* dcch_data_req flag_bmp bit index definition
*/
typedef enum
{
EPDCP_SAP_DATAREQ_FLAG_SMC = 0,
EPDCP_SAP_DATAREQ_FLAG_DRX_NO_WAKEUP = 1,
EPDCP_SAP_DATAREQ_FLAG_TIME_BOUND = 2
} epdcp_datareq_flag_enum;
/*
* dcch_data_req result
*/
typedef enum
{
EPDCP_SAP_DATAREQ_OK = 0,
EPDCP_SAP_DATAREQ_FAILURE,
EPDCP_SAP_DATAREQ_UNSENT,
EPDCP_SAP_DATAREQ_PAD = 0x7fffffff
}epdcp_datareq_result_enum;
/*
* integrity check result
*/
typedef enum
{
EPDCP_SAP_INTCHK_OK = 0,
EPDCP_SAP_INTCHK_FAILURE, //integrity check failure
EPDCP_SAP_INTCHK_SKIPPED, //integrity check is not applied
EPDCP_SAP_INTCHK_PAD = 0x7fffffff
} epdcp_intchk_result_enum;
/* QoS label of RB */
typedef enum
{
EPDCP_SAP_RB_QOS_0 = 0, //none (SRB)
EPDCP_SAP_RB_QOS_1, //high (DRB)
EPDCP_SAP_RB_QOS_2, //middle (DRB)
EPDCP_SAP_RB_QOS_3, //low (DRB)
EPDCP_SAP_RB_QOS_NUM,
EPDCP_SAP_RB_QOS_PAD = 0x7fffffff
} epdcp_rb_qos_enum;
/* command for RB */
typedef enum
{
EPDCP_SAP_RB_CMD_ESTABLISH = 0,
EPDCP_SAP_RB_CMD_EST_N_SUSP,
EPDCP_SAP_RB_CMD_SUSPEND,
EPDCP_SAP_RB_CMD_RECONFIG,
EPDCP_SAP_RB_CMD_HO_IND,
EPDCP_SAP_RB_CMD_RESUME,
EPDCP_SAP_RB_CMD_RELEASE,
EPDCP_SAP_RB_CMD_RELEASE_FROM_LTE, //inter-RAT (from LTE)
EPDCP_SAP_RB_CMD_NUM,
EPDCP_SAP_RB_CMD_PAD = 0x7fffffff
} epdcp_rb_cmd_enum;
/* LB command for PDCP */
typedef enum
{
EPDCP_SAP_LB_CMD_MODE_A_DEACTIVATE = 0,
EPDCP_SAP_LB_CMD_MODE_A_ACTIVATE,
EPDCP_SAP_LB_CMD_MODE_B_DEACTIVATE,
EPDCP_SAP_LB_CMD_MODE_B_ACTIVATE,
EPDCP_SAP_LB_CMD_MODE_C_DEACTIVATE,
EPDCP_SAP_LB_CMD_MODE_C_ACTIVATE,
EPDCP_SAP_LB_CMD_NUM,
EPDCP_SAP_LB_CMD_PAD = 0x7fffffff
} epdcp_lb_cmd_enum;
/* integrity algorithm enum */
typedef enum
{
EPDCP_SAP_INT_ALG_EIA0 = 0,
EPDCP_SAP_INT_ALG_EIA1,
EPDCP_SAP_INT_ALG_EIA2,
EPDCP_SAP_INT_ALG_EIA3, // ZUC algorithm
EPDCP_SAP_INT_ALG_NUM,
EPDCP_SAP_INT_ALG_PAD = 0x7fffffff
} epdcp_int_alg_enum;
/* cipher algorithm enum */
typedef enum
{
EPDCP_SAP_CIP_ALG_EEA0 = 0,
EPDCP_SAP_CIP_ALG_EEA1, // SNOW 3G
EPDCP_SAP_CIP_ALG_EEA2, // AES-based
EPDCP_SAP_CIP_ALG_EEA3, // ZUC algorithm
EPDCP_SAP_CIP_ALG_NUM,
EPDCP_SAP_CIP_ALG_PAD = 0x7fffffff
} epdcp_cip_alg_enum;
typedef enum
{
EPDCP_SAP_MEASUREMENT_OFF = 0,
EPDCP_SAP_MEASUREMENT_ON,
EPDCP_SAP_MEASUREMENT_MODIFY
} epdcp_delay_measurement_enum;
typedef enum
{
EPDCP_SAP_DELAY_THRESH_MS_30 = 0,
EPDCP_SAP_DELAY_THRESH_MS_40,
EPDCP_SAP_DELAY_THRESH_MS_50,
EPDCP_SAP_DELAY_THRESH_MS_60,
EPDCP_SAP_DELAY_THRESH_MS_70,
EPDCP_SAP_DELAY_THRESH_MS_80,
EPDCP_SAP_DELAY_THRESH_MS_90,
EPDCP_SAP_DELAY_THRESH_MS_100,
EPDCP_SAP_DELAY_THRESH_MS_150,
EPDCP_SAP_DELAY_THRESH_MS_300,
EPDCP_SAP_DELAY_THRESH_MS_500,
EPDCP_SAP_DELAY_THRESH_MS_750,
EPDCP_SAP_DELAY_THRESH_MS_PAD = 0x7fffffff
} epdcp_delay_thresh_enum;
typedef enum
{
EPDCP_SAP_DELAY_RPT_INTV_MS_1024 = 0,
EPDCP_SAP_DELAY_RPT_INTV_MS_2048,
EPDCP_SAP_DELAY_RPT_INTV_MS_5120,
EPDCP_SAP_DELAY_RPT_INTV_MS_10240,
EPDCP_SAP_DELAY_RPT_INTV_PAD = 0x7fffffff
} epdcp_delay_rpt_intv_enum;
/* UDC enum */
typedef enum
{
EPDCP_SAP_UDC_BUF_SZ_KBYTE_2 = 0,
EPDCP_SAP_UDC_BUF_SZ_KBYTE_4,
EPDCP_SAP_UDC_BUF_SZ_KBYTE_8,
EPDCP_SAP_UDC_BUF_SZ_KBYTE_PAD = 0x7fffffff
} epdcp_udc_buf_sz_enum;
typedef enum
{
EPDCP_SAP_UDC_DIC_INVALID = 0,
EPDCP_SAP_UDC_DIC_STANDARD,
EPDCP_SAP_UDC_DIC_OPERATOR,
EPDCP_SAP_UDC_DIC_PAD = 0x7fffffff
} epdcp_udc_dic_enum;
/* discard timer enum */
typedef enum
{
EPDCP_SAP_DISC_TMR_MS_50 = 0,
EPDCP_SAP_DISC_TMR_MS_100,
EPDCP_SAP_DISC_TMR_MS_150,
EPDCP_SAP_DISC_TMR_MS_300,
EPDCP_SAP_DISC_TMR_MS_500,
EPDCP_SAP_DISC_TMR_MS_750,
EPDCP_SAP_DISC_TMR_MS_1500,
EPDCP_SAP_DISC_TMR_MS_INFINITY,
EPDCP_SAP_DISC_TMR_MS_PAD = 0x7fffffff
} epdcp_disc_tmr_enum;
typedef enum
{
EPDCP_SAP_ROHC_EN_DISABLED = 0,
EPDCP_SAP_ROHC_EN_ENABLED_BIDIR,
EPDCP_SAP_ROHC_EN_ENABLED_UL_ONLY
} epdcp_rohc_en_enum;
typedef enum
{
EPDCP_SAP_DRB_TYPE_LTE = 0,
EPDCP_SAP_DRB_TYPE_LWA
} epdcp_drb_type_enum;
typedef enum
{
EPDCP_SAP_STUS_PDU_ON_POLL_TYPE_1 = 0,
EPDCP_SAP_STUS_PDU_ON_POLL_TYPE_2
} epdcp_stus_rpt_type_on_poll_enum;
/* DRB direction definition */
#define EPDCP_DRB_DIR_UL (0x01)
#define EPDCP_DRB_DIR_DL (0x02)
#define EPDCP_DRB_DIR_ULDL (EPDCP_DRB_DIR_UL | EPDCP_DRB_DIR_DL)
/*****************************************************************************
* structures
*****************************************************************************/
typedef struct
{
/* polling param */
kal_bool type_on_poll_valid;
epdcp_stus_rpt_type_on_poll_enum type_on_poll;
/* periodic param */
kal_bool type1_periodicity_valid;
kal_bool type2_periodicity_valid;
kal_bool offset_valid;
kal_bool type1_periodicity_recfg;
kal_bool type2_periodicity_recfg;
kal_uint32 type1_periodicity;
kal_uint32 type2_periodicity;
kal_uint32 offset;
} epdcp_stus_rpt_param_struct;
/* PDCP-config (RB property) */
typedef struct
{
epdcp_drb_type_enum drb_type;
kal_uint8 flag_rlc_um;
kal_uint8 flag_um_long_sn; // UM only
kal_uint8 bmp_um_dir; // UM only : bit#0:UL, bit#1:DL
kal_uint8 flag_am_stus_rpt; // AM only
kal_uint8 flag_am_long_sn; // AM only
kal_bool flag_am_rlc_li_field_15_bit; // AM only
kal_uint8 pad1;
epdcp_rohc_en_enum rohc_enabled;
kal_uint16 rohc_max_cid;
kal_uint8 rohc_profs[EPDCP_SAP_MAX_NUM_ROHC_PROF];
kal_bool udc_enabled;
epdcp_udc_buf_sz_enum udc_buf_sz;
epdcp_udc_dic_enum udc_dic;
kal_bool reorder_tmr_is_valid;
kal_uint32 reorder_tmr;
epdcp_disc_tmr_enum disc_tmr; // spec-enum
epdcp_stus_rpt_param_struct stus_rpt_param;
} epdcp_drb_attr_struct;
/* RB addition/modification config structure */
typedef struct
{
kal_uint8 rb_idx; //primary index
kal_uint8 rb_id;
kal_uint8 eps_br_id;
kal_uint8 qci;
kal_bool is_gbr_bearer;
epdcp_rb_cmd_enum cmd;
epdcp_drb_attr_struct drb_attr;
} epdcp_rb_addmod_struct;
/* RB deletion config */
typedef struct
{
kal_uint8 rb_idx;
kal_uint8 rb_id;
kal_uint8 ho_failure; //if failure, remove the new RB.
kal_uint8 pad;
epdcp_rb_cmd_enum cmd;
} epdcp_rb_del_struct;
/* PDCP security config structure */
typedef struct
{
kal_uint8 valid;
kal_uint8 cip_key_up_idx;
kal_uint8 cip_key_cp_idx;
kal_uint8 int_key_idx;
epdcp_int_alg_enum int_alg; //integrity algorithm
epdcp_cip_alg_enum cip_alg; //cipher algorithm
} epdcp_sec_cfg_struct;
/* queuing delay result structure */
typedef struct
{
kal_uint8 qci;
kal_uint32 excess_delay_num;
kal_uint32 total_num;
} epdcp_delay_result_struct;
/* PDCP queuing delay config structure */
typedef struct{
kal_bool valid;
epdcp_delay_measurement_enum measurement_status; // if valid=false, delay_theshold and delay_report_interval should be ignored
epdcp_delay_thresh_enum threshold;
epdcp_delay_rpt_intv_enum report_interval;
} epdcp_delay_cfg_struct;
/* RB loopback config structure */
typedef struct
{
kal_uint8 rb_idx; //RB index
kal_uint8 rb_id;
kal_uint8 pad;
kal_uint8 scaling; //need scaling or not?
kal_uint16 size; //scaling size
} epdcp_rb_lbcfg_struct;
/* RB COUNT info structure */
typedef struct
{
kal_uint8 rb_idx; //RB index
kal_uint8 rb_id;
kal_uint16 pad;
kal_uint32 rx_count; //HFN + SN
kal_uint32 tx_count; //HFN + SN
} epdcp_rb_cntinfo_struct;
typedef struct
{
kal_uint8 mbsfn_area_id; // 0~255
kal_uint8 mcch_idx; //numbered by eRRC(not from NW), range 0~7
}epdcp_mcch_add_struct;
typedef struct
{
kal_uint8 mbsfn_area_id; // 0~255, currently for debug purpose only
kal_uint8 mcch_idx;
}epdcp_mcch_del_struct;
typedef struct
{
kal_uint8 mbsfn_area_id;
kal_uint8 pmch_id; //0~15
kal_uint16 sessionId; // 0xFFFF means no configure session id
kal_uint8 TMGI[6];
kal_uint8 lc_id; //0~28
kal_uint8 mrb_idx; //numbered by eRRC(not from NW), range depends on L2 HW capability
}epdcp_mrb_add_struct;
typedef struct
{
kal_uint8 mbsfn_area_id; //currently for debug usage only
kal_uint8 pmch_id; //0~15, currently for debug usage only
kal_uint16 sessionId; //currently for debug usage only
kal_uint8 TMGI[6]; //currently for debug usage only
kal_uint8 lc_id; //0~28, currently for debug usage only
kal_uint8 mrb_idx;
}epdcp_mrb_del_struct;
/*****************************************************************************
* message structure
*****************************************************************************/
//MSG_ID_ERRC_EPDCP_CONFIG_REQ,
typedef struct
{
LOCAL_PARA_HDR
kal_uint8 add_num;
kal_uint8 mod_num;
kal_uint8 del_num;
kal_bool drb_continue_rohc;
epdcp_rb_addmod_struct rb_add[EPDCP_SAP_MAX_NUM_CFG_RB];
epdcp_rb_addmod_struct rb_mod[EPDCP_SAP_MAX_NUM_CFG_RB];
epdcp_rb_del_struct rb_del[EPDCP_SAP_MAX_NUM_CFG_RB];
epdcp_sec_cfg_struct sec_cfg;
epdcp_delay_cfg_struct delay_cfg;
//for eMBMS related
kal_uint8 mcch_add_num[MAX_EMBMS_FREQ_SUPPORT];
kal_uint8 mcch_del_num[MAX_EMBMS_FREQ_SUPPORT];
epdcp_mcch_add_struct mcch_add[MAX_EMBMS_FREQ_SUPPORT][MAX_EMBMS_MCCH_SUPPORT];
epdcp_mcch_del_struct mcch_del[MAX_EMBMS_FREQ_SUPPORT][MAX_EMBMS_MCCH_SUPPORT];
kal_uint8 mrb_add_num[MAX_EMBMS_FREQ_SUPPORT];
kal_uint8 mrb_del_num[MAX_EMBMS_FREQ_SUPPORT];
epdcp_mrb_add_struct mrb_add[MAX_EMBMS_FREQ_SUPPORT][MAX_EMBMS_MRB_SUPPORT];
epdcp_mrb_del_struct mrb_del[MAX_EMBMS_FREQ_SUPPORT][MAX_EMBMS_MRB_SUPPORT];
} errc_epdcp_config_req_struct;
//MSG_ID_ERRC_EPDCP_CONFIG_CNF,
typedef struct
{
LOCAL_PARA_HDR
errc_el2_cfg_result_enum result;
} errc_epdcp_config_cnf_struct;
//MSG_ID_ERRC_EPDCP_SWITCH_VIRTUAL_CONNECTED_REQ
typedef struct
{
LOCAL_PARA_HDR
errc_el2_switch_virtual_connected_enum status;
} errc_epdcp_switch_virtual_connected_req_struct;
/*
* MSG_ID_ERRC_EPDCP_DCCH_DATA_REQ
*
* note: read peer_buffer_pointer to get tgpd pointer.
*/
typedef struct
{
LOCAL_PARA_HDR
kal_uint8 rb_id;
kal_uint8 rb_idx;
kal_uint16 trans_id;
kal_uint16 flag_bmp;
void *p_addr;
kal_uint32 data_len;
// this is used during buffer release
KAL_AFM_ID afm_id;
} errc_epdcp_dcch_data_req_struct;
//MSG_ID_ERRC_EPDCP_DCCH_DATA_CNF,
typedef struct
{
LOCAL_PARA_HDR
kal_uint8 rb_id;
kal_uint8 rb_idx;
kal_uint16 trans_id;
epdcp_datareq_result_enum result;
} errc_epdcp_dcch_data_cnf_struct;
/*
* MSG_ID_ERRC_EPDCP_DCCH_DATA_IND,
*
* note: read peer_buffer_pointer to get rgpd pointer
*/
typedef struct
{
LOCAL_PARA_HDR
kal_uint8 rb_id;
kal_uint8 rb_idx;
kal_uint16 pad02;
epdcp_intchk_result_enum result;
kal_uint32 pdcp_count; // XXX: not needed if DL security is activated?
void *p_data;
kal_uint32 data_len; // including RRC message & MAC-I
qbm_gpd *p_rgpd; //TODO: to be removed
} errc_epdcp_dcch_data_ind_struct;
/*
* MSG_ID_ERRC_EPDCP_MCCH_DATA_IND,
*/
typedef struct
{
LOCAL_PARA_HDR
kal_uint8 ci; //0~MAX_EMBMS_FREQ_SUPPORT-1
kal_uint8 mcch_idx;
kal_uint8 mcch_mp_id;
kal_uint8 pad0;
void *p_data;
kal_uint32 data_len; // including RRC message & MAC-I
} errc_epdcp_mcch_data_ind_struct;
//MSG_ID_ERRC_EPDCP_DCCH_DATA_RES,
typedef struct
{
LOCAL_PARA_HDR
kal_uint8 rb_id;
kal_uint8 rb_idx;
kal_uint16 pad02;
} errc_epdcp_dcch_data_res_struct;
//MSG_ID_ERRC_EPDCP_TEST_REQ,
typedef struct
{
LOCAL_PARA_HDR
kal_uint8 rb_num; // only valid for mode A
kal_uint8 pad0;
kal_uint16 pad1;
epdcp_rb_lbcfg_struct rb_cfg[EPDCP_SAP_MAX_NUM_DRB]; // only valid for mode A
kal_uint8 mbsfn_area_id; //0~255, only valid for mode C
kal_uint8 pmch_id; //0~15, only valid for mode C
kal_uint8 lcid; //0~28, only valid for mode C
kal_uint8 ci; //0~MAX_EMBMS_FREQ_SUPPORT-1, only valid for mode C
epdcp_lb_cmd_enum cmd;
} errc_epdcp_test_req_struct;
//MSG_ID_ERRC_EPDCP_TEST_CNF,
typedef struct
{
LOCAL_PARA_HDR
errc_el2_cfg_result_enum result;
} errc_epdcp_test_cnf_struct;
/*
* MSG_ID_ERRC_EPDCP_CNTINFO_REQ
*
* - null message
*/
typedef struct
{
LOCAL_PARA_HDR
/* nothing */
} errc_epdcp_cntinfo_req_struct;
/*
* MSG_ID_ERRC_EPDCP_CNTINFO_CNF
*
* - return the PDCP COUNT of each DRB
*/
typedef struct
{
LOCAL_PARA_HDR
kal_uint8 rb_num;
kal_uint8 pad01;
kal_uint16 pad02;
epdcp_rb_cntinfo_struct rb_cntinfo[EPDCP_SAP_MAX_NUM_DRB];
} errc_epdcp_cntinfo_cnf_struct;
/*
* MSG_ID_ERRC_EPDCP_DETECTION_TIMER_START_REQ,
*
* note: ERRC configure EPDPC detection timer value
*/
typedef struct
{
LOCAL_PARA_HDR
kal_uint32 detection_time_value; // in seconds
} errc_epdcp_detection_timer_start_req_struct;
/*
* MSG_ID_ERRC_EPDCP_DETECTION_TIMER_2_START_REQ,
*
* note: ERRC configure EPDPC detection timer value
*/
typedef struct
{
LOCAL_PARA_HDR
kal_uint32 detection_time_value; // in seconds
} errc_epdcp_detection_timer_2_start_req_struct;
/*
* MSG_ID_ERRC_EPDCP_PS_DATA_INACTIVE_TIME_IND,
*
* note: EPDCP response ERRC the inactive time of last PS data
*/
typedef struct
{
LOCAL_PARA_HDR
kal_uint32 inactive_time;
} errc_epdcp_ps_data_inactive_time_ind_struct;
/*
* MSG_ID_ERRC_EPDCP_MTCH_PC_CNF
*
* - return the PDCP COUNT of each DRB
*/
typedef struct
{
LOCAL_PARA_HDR
kal_uint32 packet_count;
} errc_epdcp_mtch_pc_cnf_struct;
/*
* MSG_ID_ERRC_EPDCP_EXCESS_DELAY_IND
*/
typedef struct
{
LOCAL_PARA_HDR
kal_uint8 list_num;
epdcp_delay_result_struct result_list[EPDCP_SAP_MAX_NUM_QUEUING_DELAY_RSLT];
epdcp_delay_thresh_enum threshold;
epdcp_delay_rpt_intv_enum report_interval;
} errc_epdcp_excess_delay_ind_struct;
#endif //_LTE_ERRC_EPDCP_SAP_STRUCT_DEF_H_