apply last diff from ssr to local orange_cdrx branch. Remove SSR comments
This commit is contained in:
@@ -36,7 +36,7 @@
|
||||
#include "LTE_SystemInformationBlockType2.h"
|
||||
#include "LTE_SL-OffsetIndicator-r12.h"
|
||||
#include "LTE_SubframeBitmapSL-r12.h"
|
||||
#include "LTE_DRX-Config.h" // Add DRX SSR 2018-10
|
||||
#include "LTE_DRX-Config.h"
|
||||
#include "LTE_SL-CP-Len-r12.h"
|
||||
#include "LTE_SL-PeriodComm-r12.h"
|
||||
#include "LTE_SL-DiscResourcePool-r12.h"
|
||||
@@ -142,14 +142,14 @@ typedef struct RadioResourceConfig_s {
|
||||
long bcch_modificationPeriodCoeff;
|
||||
long pcch_defaultPagingCycle;
|
||||
long pcch_nB;
|
||||
LTE_DRX_Config_PR drx_Config_present; // Add DRX SSR 2018-10
|
||||
long drx_onDurationTimer; // Add DRX SSR 2018-10
|
||||
long drx_InactivityTimer; // Add DRX SSR 2018-10
|
||||
long drx_RetransmissionTimer; // Add DRX SSR 2018-10
|
||||
LTE_DRX_Config__setup__longDRX_CycleStartOffset_PR drx_longDrx_CycleStartOffset_present; // Add DRX SSR 2018-10
|
||||
long drx_longDrx_CycleStartOffset; // Add DRX SSR 2018-10
|
||||
long drx_shortDrx_Cycle; // Add DRX SSR 2018-10
|
||||
long drx_shortDrx_ShortCycleTimer; // Add DRX SSR 2018-10
|
||||
LTE_DRX_Config_PR drx_Config_present;
|
||||
long drx_onDurationTimer;
|
||||
long drx_InactivityTimer;
|
||||
long drx_RetransmissionTimer;
|
||||
LTE_DRX_Config__setup__longDRX_CycleStartOffset_PR drx_longDrx_CycleStartOffset_present;
|
||||
long drx_longDrx_CycleStartOffset;
|
||||
long drx_shortDrx_Cycle;
|
||||
long drx_shortDrx_ShortCycleTimer;
|
||||
long ue_TimersAndConstants_t300;
|
||||
long ue_TimersAndConstants_t301;
|
||||
long ue_TimersAndConstants_t310;
|
||||
|
||||
@@ -363,14 +363,14 @@ typedef enum {
|
||||
#define ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX "rach_maxHARQ_Msg3Tx"
|
||||
#define ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE "pcch_default_PagingCycle"
|
||||
#define ENB_CONFIG_STRING_PCCH_NB "pcch_nB"
|
||||
#define ENB_CONFIG_STRING_DRX_CONFIG_PRESENT "drx_Config_present" // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_ONDURATIONTIMER "drx_onDurationTimer" // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_INACTIVITYTIMER "drx_InactivityTimer" // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER "drx_RetransmissionTimer" // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT "drx_longDrx_CycleStartOffset_present" // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET "drx_longDrx_CycleStartOffset" // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE "drx_shortDrx_Cycle" // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER "drx_shortDrx_ShortCycleTimer" // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_CONFIG_PRESENT "drx_Config_present"
|
||||
#define ENB_CONFIG_STRING_DRX_ONDURATIONTIMER "drx_onDurationTimer"
|
||||
#define ENB_CONFIG_STRING_DRX_INACTIVITYTIMER "drx_InactivityTimer"
|
||||
#define ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER "drx_RetransmissionTimer"
|
||||
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT "drx_longDrx_CycleStartOffset_present"
|
||||
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET "drx_longDrx_CycleStartOffset"
|
||||
#define ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE "drx_shortDrx_Cycle"
|
||||
#define ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER "drx_shortDrx_ShortCycleTimer"
|
||||
#define ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF "bcch_modificationPeriodCoeff"
|
||||
#define ENB_CONFIG_STRING_UETIMERS_T300 "ue_TimersAndConstants_t300"
|
||||
#define ENB_CONFIG_STRING_UETIMERS_T301 "ue_TimersAndConstants_t301"
|
||||
@@ -589,14 +589,14 @@ typedef struct ccparams_lte_s {
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , /* Add DRX SSR 2018-10 */ \
|
||||
{ .s5= {NULL }} , /* Add DRX SSR 2018-10 */ \
|
||||
{ .s5= {NULL }} , /* Add DRX SSR 2018-10 */ \
|
||||
{ .s5= {NULL }} , /* Add DRX SSR 2018-10 */ \
|
||||
{ .s5= {NULL }} , /* Add DRX SSR 2018-10 */ \
|
||||
{ .s5= {NULL }} , /* Add DRX SSR 2018-10 */ \
|
||||
{ .s5= {NULL }} , /* Add DRX SSR 2018-10 */ \
|
||||
{ .s5= {NULL }} , /* Add DRX SSR 2018-10 */ \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s1a= { config_check_modify_integer, UETIMER_T300_OKVALUES, UETIMER_T300_MODVALUES,8}} , \
|
||||
{ .s1a= { config_check_modify_integer, UETIMER_T301_OKVALUES, UETIMER_T301_MODVALUES,8}} , \
|
||||
@@ -711,14 +711,14 @@ typedef struct ccparams_lte_s {
|
||||
{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&ccparams.rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \
|
||||
{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&ccparams.pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \
|
||||
{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&ccparams.pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \
|
||||
{ENB_CONFIG_STRING_DRX_CONFIG_PRESENT, NULL, 0, strptr:&ccparams.drx_Config_present, defstrval:"prNothing", TYPE_STRING, 0}, /* Add DRX SSR 2018-10 */ \
|
||||
{ENB_CONFIG_STRING_DRX_ONDURATIONTIMER, NULL, 0, strptr:&ccparams.drx_onDurationTimer, defstrval:"psf10", TYPE_STRING, 0}, /* Add DRX SSR 2018-10 */ \
|
||||
{ENB_CONFIG_STRING_DRX_INACTIVITYTIMER, NULL, 0, strptr:&ccparams.drx_InactivityTimer, defstrval:"psf10", TYPE_STRING, 0}, /* Add DRX SSR 2018-10 */ \
|
||||
{ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER, NULL, 0, strptr:&ccparams.drx_RetransmissionTimer, defstrval:"psf8", TYPE_STRING, 0}, /* Add DRX SSR 2018-10 */ \
|
||||
{ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT, NULL, 0, strptr:&ccparams.drx_longDrx_CycleStartOffset_present, defstrval:"prSf128", TYPE_STRING, 0}, /* Add DRX SSR 2018-10 */ \
|
||||
{ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET, NULL, 0, iptr:&ccparams.drx_longDrx_CycleStartOffset, defintval:0, TYPE_UINT, 0}, /* Add DRX SSR 2018-10 */ \
|
||||
{ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE, NULL, 0, strptr:&ccparams.drx_shortDrx_Cycle, defstrval:"sf32", TYPE_STRING, 0}, /* Add DRX SSR 2018-10 */ \
|
||||
{ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER, NULL, 0, iptr:&ccparams.drx_shortDrx_ShortCycleTimer, defintval:3, TYPE_UINT, 0}, /* Add DRX SSR 2018-10 */ \
|
||||
{ENB_CONFIG_STRING_DRX_CONFIG_PRESENT, NULL, 0, strptr:&ccparams.drx_Config_present, defstrval:"prNothing", TYPE_STRING, 0}, \
|
||||
{ENB_CONFIG_STRING_DRX_ONDURATIONTIMER, NULL, 0, strptr:&ccparams.drx_onDurationTimer, defstrval:"psf10", TYPE_STRING, 0}, \
|
||||
{ENB_CONFIG_STRING_DRX_INACTIVITYTIMER, NULL, 0, strptr:&ccparams.drx_InactivityTimer, defstrval:"psf10", TYPE_STRING, 0}, \
|
||||
{ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER, NULL, 0, strptr:&ccparams.drx_RetransmissionTimer, defstrval:"psf8", TYPE_STRING, 0}, \
|
||||
{ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT, NULL, 0, strptr:&ccparams.drx_longDrx_CycleStartOffset_present, defstrval:"prSf128", TYPE_STRING, 0}, \
|
||||
{ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET, NULL, 0, iptr:&ccparams.drx_longDrx_CycleStartOffset, defintval:0, TYPE_UINT, 0}, \
|
||||
{ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE, NULL, 0, strptr:&ccparams.drx_shortDrx_Cycle, defstrval:"sf32", TYPE_STRING, 0}, \
|
||||
{ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER, NULL, 0, iptr:&ccparams.drx_shortDrx_ShortCycleTimer, defintval:3, TYPE_UINT, 0}, \
|
||||
{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&ccparams.bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \
|
||||
{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&ccparams.ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \
|
||||
{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&ccparams.ue_TimersAndConstants_t301, defintval:1000, TYPE_UINT, 0}, \
|
||||
@@ -792,22 +792,22 @@ typedef struct ccparams_lte_s {
|
||||
#define ENB_CONFIG_RACH_MAXHARQMSG3TX_IDX 57
|
||||
#define ENB_CONFIG_PCCH_DEFAULT_PAGING_CYCLE_IDX 58
|
||||
#define ENB_CONFIG_PCCH_NB_IDX 59
|
||||
#define ENB_CONFIG_STRING_DRX_CONFIG_PRESENT_IDX 60 // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_ONDURATIONTIMER_IDX 61 // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_INACTIVITYTIMER_IDX 62 // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER_IDX 63 // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT_IDX 64 // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_IDX 65 // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE_IDX 66 // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER_IDX 67 // Add DRX SSR 2018-10
|
||||
#define ENB_CONFIG_BCCH_MODIFICATIONPERIODCOEFF_IDX 68 // Modif DRX SSR 2018-10
|
||||
#define ENB_CONFIG_UETIMERS_T300_IDX 69 // Modif DRX SSR 2018-10
|
||||
#define ENB_CONFIG_UETIMERS_T301_IDX 70 // Modif DRX SSR 2018-10
|
||||
#define ENB_CONFIG_UETIMERS_T310_IDX 71 // Modif DRX SSR 2018-10
|
||||
#define ENB_CONFIG_UETIMERS_T311_IDX 72 // Modif DRX SSR 2018-10
|
||||
#define ENB_CONFIG_UETIMERS_N310_IDX 73 // Modif DRX SSR 2018-10
|
||||
#define ENB_CONFIG_UETIMERS_N311_IDX 74 // Modif DRX SSR 2018-10
|
||||
#define ENB_CONFIG_UE_TRANSMISSION_MODE_IDX 75 // Modif DRX SSR 2018-10
|
||||
#define ENB_CONFIG_STRING_DRX_CONFIG_PRESENT_IDX 60
|
||||
#define ENB_CONFIG_STRING_DRX_ONDURATIONTIMER_IDX 61
|
||||
#define ENB_CONFIG_STRING_DRX_INACTIVITYTIMER_IDX 62
|
||||
#define ENB_CONFIG_STRING_DRX_RETRANSMISSIONTIMER_IDX 63
|
||||
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_PRESENT_IDX 64
|
||||
#define ENB_CONFIG_STRING_DRX_LONGDRX_CYCLESTARTOFFSET_IDX 65
|
||||
#define ENB_CONFIG_STRING_DRX_SHORTDRX_CYCLE_IDX 66
|
||||
#define ENB_CONFIG_STRING_DRX_SHORTDRX_SHORTCYCLETIMER_IDX 67
|
||||
#define ENB_CONFIG_BCCH_MODIFICATIONPERIODCOEFF_IDX 68
|
||||
#define ENB_CONFIG_UETIMERS_T300_IDX 69
|
||||
#define ENB_CONFIG_UETIMERS_T301_IDX 70
|
||||
#define ENB_CONFIG_UETIMERS_T310_IDX 71
|
||||
#define ENB_CONFIG_UETIMERS_T311_IDX 72
|
||||
#define ENB_CONFIG_UETIMERS_N310_IDX 73
|
||||
#define ENB_CONFIG_UETIMERS_N311_IDX 74
|
||||
#define ENB_CONFIG_UE_TRANSMISSION_MODE_IDX 75
|
||||
|
||||
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||
/* SRB1 configuration parameters section name */
|
||||
|
||||
@@ -1653,7 +1653,7 @@ void ulsch_scheduler_pre_processor(module_id_t module_idP,
|
||||
UE_sched_ctrl *ue_sched_ctl;
|
||||
int N_RB_UL = 0;
|
||||
uint16_t available_rbs, first_rb_offset;
|
||||
rnti_t rntiTable[MAX_MOBILES_PER_ENB]; // Rnti array => Add SSR 12-2018
|
||||
rnti_t rntiTable[MAX_MOBILES_PER_ENB];
|
||||
|
||||
// sort ues
|
||||
LOG_D(MAC, "In ulsch_preprocessor: sort ue \n");
|
||||
|
||||
@@ -317,10 +317,9 @@ uint8_t do_MIB_SL(const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index,
|
||||
return((enc_rval.encoded+7)/8);
|
||||
}
|
||||
|
||||
// Begin add DRX SSR 2018-11
|
||||
|
||||
LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, int CC_id, RrcConfigurationReq *configuration, LTE_UE_EUTRA_Capability_t *UEcap)
|
||||
{
|
||||
// Begin add DRX SSR 2018-12
|
||||
LTE_DRX_Config_t *drxConfig = NULL;
|
||||
BIT_STRING_t *featureGroupIndicators = NULL;
|
||||
bool ueSupportCdrxShortFlag = false;
|
||||
@@ -335,7 +334,6 @@ LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, int CC_id, RrcConfigurationReq *c
|
||||
} else LOG_W(RRC,"[do_DrxConfig] Not enough featureGroupIndicators bits\n");
|
||||
} else LOG_W(RRC,"[do_DrxConfig] No featureGroupIndicators pointer\n");
|
||||
} else LOG_W(RRC,"[do_DrxConfig] No UEcap pointer\n");
|
||||
// End add DRX SSR 2018-12
|
||||
|
||||
drxConfig = (LTE_DRX_Config_t *) malloc(sizeof(LTE_DRX_Config_t));
|
||||
if (drxConfig == NULL) return NULL;
|
||||
@@ -419,8 +417,6 @@ LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, int CC_id, RrcConfigurationReq *c
|
||||
}
|
||||
return drxConfig;
|
||||
}
|
||||
// End add DRX SSR 2018-11
|
||||
|
||||
|
||||
uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
|
||||
int Mod_id,int CC_id
|
||||
|
||||
@@ -71,7 +71,7 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich
|
||||
);
|
||||
|
||||
/**
|
||||
\brief Generate configuration for DRX_Config (Add DRX SSR 2018-11)
|
||||
\brief Generate configuration for DRX_Config
|
||||
@param Mod_id Instance of eNB
|
||||
@param CC_id Id of component to configure
|
||||
@param configuration Pointer Configuration Request structure
|
||||
|
||||
@@ -200,7 +200,7 @@ void *send_UE_status_notification(void *);
|
||||
/* for ImsiMobileIdentity_t */
|
||||
#include "MobileIdentity.h"
|
||||
|
||||
#include "LTE_DRX-Config.h" // Add DRX SSR 2018-11
|
||||
#include "LTE_DRX-Config.h"
|
||||
|
||||
/* correct Rel(8|10)/Rel14 differences
|
||||
* the code is in favor of Rel14, those defines do the translation
|
||||
|
||||
+91
-79
@@ -1286,123 +1286,136 @@ rrc_eNB_generate_RRCConnectionReestablishment(
|
||||
const int CC_id)
|
||||
//-----------------------------------------------------------------------------
|
||||
{
|
||||
LTE_LogicalChannelConfig_t *SRB1_logicalChannelConfig;
|
||||
LTE_SRB_ToAddModList_t **SRB_configList;
|
||||
LTE_SRB_ToAddMod_t *SRB1_config;
|
||||
int cnt;
|
||||
T(T_ENB_RRC_CONNECTION_REESTABLISHMENT, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
|
||||
T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
|
||||
int UE_id = -1;
|
||||
LTE_LogicalChannelConfig_t *SRB1_logicalChannelConfig = NULL;
|
||||
LTE_SRB_ToAddModList_t **SRB_configList;
|
||||
LTE_SRB_ToAddMod_t *SRB1_config = NULL;
|
||||
rrc_eNB_carrier_data_t *carrier = NULL;
|
||||
eNB_RRC_UE_t *ue_context = NULL;
|
||||
|
||||
eNB_RRC_UE_t *ue_p = &ue_context_pP->ue_context;
|
||||
module_id_t module_id = ctxt_pP->module_id;
|
||||
uint16_t rnti = ctxt_pP->rnti;
|
||||
|
||||
SRB_configList = &ue_p->SRB_configList;
|
||||
T(T_ENB_RRC_CONNECTION_REESTABLISHMENT,
|
||||
T_INT(module_id),
|
||||
T_INT(ctxt_pP->frame),
|
||||
T_INT(ctxt_pP->subframe),
|
||||
T_INT(rnti));
|
||||
|
||||
ue_p->Srb0.Tx_buffer.payload_size =
|
||||
do_RRCConnectionReestablishment(ctxt_pP,
|
||||
ue_context_pP,
|
||||
CC_id,
|
||||
(uint8_t *) ue_p->Srb0.Tx_buffer.Payload,
|
||||
(uint8_t) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, //at this point we do not have the UE capability information, so it can only be TM1 or TM2
|
||||
rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id),
|
||||
SRB_configList,
|
||||
&ue_context_pP->ue_context.physicalConfigDedicated);
|
||||
LOG_DUMPMSG(RRC,DEBUG_RRC,
|
||||
(char *)(ue_p->Srb0.Tx_buffer.Payload),
|
||||
ue_p->Srb0.Tx_buffer.payload_size,
|
||||
"[MSG] RRCConnectionReestablishment\n"
|
||||
);
|
||||
// configure SRB1 for UE
|
||||
SRB_configList = &(ue_context_pP->ue_context.SRB_configList);
|
||||
carrier = &(RC.rrc[ctxt_pP->module_id]->carrier[CC_id]);
|
||||
ue_context = &(ue_context_pP->ue_context);
|
||||
|
||||
carrier->Srb0.Tx_buffer.payload_size = do_RRCConnectionReestablishment(ctxt_pP,
|
||||
ue_context_pP,
|
||||
CC_id,
|
||||
(uint8_t *) carrier->Srb0.Tx_buffer.Payload,
|
||||
(uint8_t) carrier->p_eNB, // at this point we do not have the UE capability information, so it can only be TM1 or TM2
|
||||
rrc_eNB_get_next_transaction_identifier(module_id),
|
||||
SRB_configList,
|
||||
&(ue_context->physicalConfigDedicated));
|
||||
|
||||
LOG_DUMPMSG(RRC, DEBUG_RRC,
|
||||
(char *)(carrier->Srb0.Tx_buffer.Payload),
|
||||
carrier->Srb0.Tx_buffer.payload_size,
|
||||
"[MSG] RRCConnectionReestablishment \n");
|
||||
|
||||
/* Configure SRB1 for UE */
|
||||
if (*SRB_configList != NULL) {
|
||||
for (cnt = 0; cnt < (*SRB_configList)->list.count; cnt++) {
|
||||
for (int cnt = 0; cnt < (*SRB_configList)->list.count; cnt++) {
|
||||
if ((*SRB_configList)->list.array[cnt]->srb_Identity == 1) {
|
||||
SRB1_config = (*SRB_configList)->list.array[cnt];
|
||||
|
||||
if (SRB1_config->logicalChannelConfig) {
|
||||
if (SRB1_config->logicalChannelConfig->present ==
|
||||
LTE_SRB_ToAddMod__logicalChannelConfig_PR_explicitValue) {
|
||||
SRB1_logicalChannelConfig = &SRB1_config->logicalChannelConfig->choice.explicitValue;
|
||||
if (SRB1_config->logicalChannelConfig->present == LTE_SRB_ToAddMod__logicalChannelConfig_PR_explicitValue) {
|
||||
SRB1_logicalChannelConfig = &(SRB1_config->logicalChannelConfig->choice.explicitValue);
|
||||
} else {
|
||||
SRB1_logicalChannelConfig = &SRB1_logicalChannelConfig_defaultValue;
|
||||
SRB1_logicalChannelConfig = &(SRB1_logicalChannelConfig_defaultValue);
|
||||
}
|
||||
} else {
|
||||
SRB1_logicalChannelConfig = &SRB1_logicalChannelConfig_defaultValue;
|
||||
SRB1_logicalChannelConfig = &(SRB1_logicalChannelConfig_defaultValue);
|
||||
}
|
||||
|
||||
LOG_D(RRC,
|
||||
PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (SRB1) ---> MAC_eNB\n",
|
||||
LOG_D(RRC, PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (SRB1) ---> MAC_eNB\n",
|
||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
|
||||
if (NODE_IS_MONOLITHIC(RC.rrc[ctxt_pP->module_id]->node_type)) {
|
||||
rrc_mac_config_req_eNB(ctxt_pP->module_id,
|
||||
ue_context_pP->ue_context.primaryCC_id,
|
||||
0,0,0,0,0,
|
||||
rrc_mac_config_req_eNB(module_id,
|
||||
ue_context->primaryCC_id,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
0,
|
||||
#endif
|
||||
ctxt_pP->rnti,
|
||||
rnti,
|
||||
(LTE_BCCH_BCH_Message_t *) NULL,
|
||||
(LTE_RadioResourceConfigCommonSIB_t *) NULL,
|
||||
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
(LTE_RadioResourceConfigCommonSIB_t *) NULL,
|
||||
#endif
|
||||
(struct LTE_PhysicalConfigDedicated * ) ue_context_pP->ue_context.physicalConfigDedicated,
|
||||
(struct LTE_PhysicalConfigDedicated * ) ue_context->physicalConfigDedicated,
|
||||
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
|
||||
(LTE_SCellToAddMod_r10_t *)NULL,
|
||||
//(struct LTE_PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
#endif
|
||||
(LTE_MeasObjectToAddMod_t **) NULL,
|
||||
ue_context_pP->ue_context.mac_MainConfig,
|
||||
ue_context->mac_MainConfig,
|
||||
1,
|
||||
SRB1_logicalChannelConfig,
|
||||
ue_context_pP->ue_context.measGapConfig,
|
||||
ue_context->measGapConfig,
|
||||
(LTE_TDD_Config_t *) NULL,
|
||||
NULL,
|
||||
(LTE_SchedulingInfoList_t *) NULL,
|
||||
0, NULL, NULL, (LTE_MBSFN_SubframeConfigList_t *) NULL
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
(LTE_MBSFN_SubframeConfigList_t *) NULL
|
||||
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
|
||||
, 0, (LTE_MBSFN_AreaInfoList_r9_t *) NULL, (LTE_PMCH_InfoList_r9_t *) NULL
|
||||
, 0,
|
||||
(LTE_MBSFN_AreaInfoList_r9_t *) NULL,
|
||||
(LTE_PMCH_InfoList_r9_t *) NULL
|
||||
#endif
|
||||
#if (LTE_RRC_VERSION >= MAKE_VERSION(13, 0, 0))
|
||||
,(LTE_SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
,(LTE_SystemInformationBlockType1_v1310_IEs_t *) NULL
|
||||
#endif
|
||||
);
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} // if ((*SRB_configList)->list.array[cnt]->srb_Identity == 1)
|
||||
} // for (int cnt = 0; cnt < (*SRB_configList)->list.count; cnt++)
|
||||
} // if (*SRB_configList != NULL)
|
||||
|
||||
MSC_LOG_TX_MESSAGE(MSC_RRC_ENB,
|
||||
MSC_RRC_UE,
|
||||
ue_p->Srb0.Tx_buffer.Header,
|
||||
ue_p->Srb0.Tx_buffer.payload_size,
|
||||
carrier->Srb0.Tx_buffer.Header,
|
||||
carrier->Srb0.Tx_buffer.payload_size,
|
||||
MSC_AS_TIME_FMT" LTE_RRCConnectionReestablishment UE %x size %u",
|
||||
MSC_AS_TIME_ARGS(ctxt_pP),
|
||||
ue_context_pP->ue_context.rnti,
|
||||
ue_p->Srb0.Tx_buffer.payload_size);
|
||||
ue_context->rnti,
|
||||
carrier->Srb0.Tx_buffer.payload_size);
|
||||
|
||||
LOG_I(RRC,
|
||||
PROTOCOL_RRC_CTXT_UE_FMT" [RAPROC] Logical Channel DL-CCCH, Generating LTE_RRCConnectionReestablishment (bytes %d)\n",
|
||||
LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT" [RAPROC] Logical Channel DL-CCCH, Generating LTE_RRCConnectionReestablishment (bytes %d)\n",
|
||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),
|
||||
ue_p->Srb0.Tx_buffer.payload_size);
|
||||
if (!NODE_IS_CU(RC.rrc[ctxt_pP->module_id]->node_type)) {
|
||||
int UE_id = find_UE_id(ctxt_pP->module_id, ctxt_pP->rnti);
|
||||
if(UE_id != -1){
|
||||
// activate release timer, if RRCComplete not received after 100 frames, remove UE
|
||||
RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 1;
|
||||
// remove UE after 100 frames after RRCConnectionReestablishmentRelease is triggered
|
||||
RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer_thres = 1000;
|
||||
} else{
|
||||
LOG_E(RRC,
|
||||
PROTOCOL_RRC_CTXT_UE_FMT" Generating LTE_RRCConnectionReestablishment without UE_id(MAC) rnti %x\n",
|
||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), ctxt_pP->rnti);
|
||||
}
|
||||
}
|
||||
// activate release timer, if RRCComplete not received after 100 frames, remove UE
|
||||
ue_context_pP->ue_context.ue_reestablishment_timer = 1;
|
||||
// remove UE after 100 frames after LTE_RRCConnectionReestablishmentRelease is triggered
|
||||
ue_context_pP->ue_context.ue_reestablishment_timer_thres = 1000;
|
||||
carrier->Srb0.Tx_buffer.payload_size);
|
||||
|
||||
UE_id = find_UE_id(module_id, rnti);
|
||||
|
||||
if (UE_id != -1) {
|
||||
/* Activate reject timer, if RRCComplete not received after 10 frames, reject UE */
|
||||
RC.mac[module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 1;
|
||||
/* Reject UE after 10 frames, LTE_RRCConnectionReestablishmentReject is triggered */
|
||||
RC.mac[module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer_thres = 100;
|
||||
} else {
|
||||
LOG_E(RRC, PROTOCOL_RRC_CTXT_UE_FMT" Generating LTE_RRCConnectionReestablishment without UE_id(MAC) rnti %x\n",
|
||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),
|
||||
rnti);
|
||||
}
|
||||
|
||||
/* Activate release timer, if RRCComplete not received after 100 frames, remove UE */
|
||||
ue_context_pP->ue_context.ue_reestablishment_timer = 1;
|
||||
/* Remove UE after 100 frames after LTE_RRCConnectionReestablishmentReject is triggered */
|
||||
ue_context_pP->ue_context.ue_reestablishment_timer_thres = 1000;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -2782,8 +2795,8 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t *cons
|
||||
LTE_C_RNTI_t *cba_RNTI = NULL;
|
||||
int x2_enabled;
|
||||
uint8_t xid = rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id); //Transaction_id,
|
||||
uint8_t cc_id = ue_context_pP->ue_context.primaryCC_id; // Add DRX SSR 2018-11 => CC id
|
||||
LTE_UE_EUTRA_Capability_t *UEcap = ue_context_pP->ue_context.UE_Capability; // Add DRX SSR 2018-12
|
||||
uint8_t cc_id = ue_context_pP->ue_context.primaryCC_id;
|
||||
LTE_UE_EUTRA_Capability_t *UEcap = ue_context_pP->ue_context.UE_Capability;
|
||||
#ifdef CBA
|
||||
//struct PUSCH_CBAConfigDedicated_vlola *pusch_CBAConfigDedicated_vlola;
|
||||
uint8_t *cba_RNTI_buf;
|
||||
@@ -2956,7 +2969,6 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t *cons
|
||||
mac_MainConfig->phr_Config->choice.setup.prohibitPHR_Timer = LTE_MAC_MainConfig__phr_Config__setup__prohibitPHR_Timer_sf200; // sf20 = 20 subframes // LTE_MAC_MainConfig__phr_Config__setup__prohibitPHR_Timer_sf1000
|
||||
mac_MainConfig->phr_Config->choice.setup.dl_PathlossChange = LTE_MAC_MainConfig__phr_Config__setup__dl_PathlossChange_dB3; // Value dB1 =1 dB, dB3 = 3 dB
|
||||
|
||||
// Begin add DRX SSR 2018-11
|
||||
if (rrc_inst->carrier[cc_id].sib1->tdd_Config == NULL) { // CDRX configured in case of FDD
|
||||
LOG_D(RRC, "Processing the DRX configuration in RRC Connection Reconfiguration\n");
|
||||
|
||||
@@ -3016,7 +3028,6 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t *cons
|
||||
} else { // CDRX not ready for TDD
|
||||
mac_MainConfig->drx_Config = NULL;
|
||||
}
|
||||
// End add DRX SSR 2018-11
|
||||
|
||||
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
|
||||
sr_ProhibitTimer_r9 = CALLOC(1, sizeof(long));
|
||||
@@ -5481,7 +5492,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
|
||||
)
|
||||
//-----------------------------------------------------------------------------
|
||||
{
|
||||
int drb_id;
|
||||
int i, drb_id;
|
||||
int oip_ifup = 0;
|
||||
int dest_ip_offset = 0;
|
||||
uint8_t *kRRCenc = NULL;
|
||||
@@ -5505,6 +5516,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
|
||||
T_INT(ctxt_pP->subframe),
|
||||
T_INT(ctxt_pP->rnti));
|
||||
|
||||
#if defined(ENABLE_SECURITY)
|
||||
/* Derive the keys from kenb */
|
||||
if (DRB_configList != NULL) {
|
||||
derive_key_up_enc(ue_context_pP->ue_context.ciphering_algorithm,
|
||||
@@ -5826,10 +5838,10 @@ rrc_eNB_generate_RRCConnectionSetup(
|
||||
SRB_configList,
|
||||
&ue_context_pP->ue_context.physicalConfigDedicated);
|
||||
}
|
||||
LOG_DUMPMSG(RRC,DEBUG_RRC,
|
||||
(char *)(ue_p->Srb0.Tx_buffer.Payload),
|
||||
ue_p->Srb0.Tx_buffer.payload_size,
|
||||
"[MSG] RRC Connection Setup\n");
|
||||
LOG_DUMPMSG(RRC,DEBUG_RRC,
|
||||
(char *)(ue_p->Srb0.Tx_buffer.Payload),
|
||||
ue_p->Srb0.Tx_buffer.payload_size,
|
||||
"[MSG] RRC Connection Setup\n");
|
||||
|
||||
// configure SRB1/SRB2, PhysicalConfigDedicated, MAC_MainConfig for UE
|
||||
switch (RC.rrc[ctxt_pP->module_id]->node_type){
|
||||
|
||||
Reference in New Issue
Block a user