| /***************************************************************************** |
| * 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_ |