Commit 8a11e8dd authored by Raymond Knopp's avatar Raymond Knopp

protection of RLC configuration in case of CU

parent eacd1cfb
...@@ -507,6 +507,8 @@ init_MCCH( ...@@ -507,6 +507,8 @@ init_MCCH(
int sync_area = 0; int sync_area = 0;
// initialize RRC_eNB_INST MCCH entry // initialize RRC_eNB_INST MCCH entry
eNB_RRC_INST *rrc = RC.rrc[enb_mod_idP];
RC.rrc[enb_mod_idP]->carrier[CC_id].MCCH_MESSAGE = RC.rrc[enb_mod_idP]->carrier[CC_id].MCCH_MESSAGE =
malloc(RC.rrc[enb_mod_idP]->carrier[CC_id].num_mbsfn_sync_area * sizeof(uint8_t*)); malloc(RC.rrc[enb_mod_idP]->carrier[CC_id].num_mbsfn_sync_area * sizeof(uint8_t*));
...@@ -551,43 +553,44 @@ init_MCCH( ...@@ -551,43 +553,44 @@ init_MCCH(
// LOG_I(RRC, "DUY: serviceID is %d\n",RC.rrc[enb_mod_idP]->mcch_message->pmch_InfoList_r9.list.array[0]->mbms_SessionInfoList_r9.list.array[0]->tmgi_r9.serviceId_r9.buf[2]); // LOG_I(RRC, "DUY: serviceID is %d\n",RC.rrc[enb_mod_idP]->mcch_message->pmch_InfoList_r9.list.array[0]->mbms_SessionInfoList_r9.list.array[0]->tmgi_r9.serviceId_r9.buf[2]);
// LOG_I(RRC, "DUY: session ID is %d\n",RC.rrc[enb_mod_idP]->mcch_message->pmch_InfoList_r9.list.array[0]->mbms_SessionInfoList_r9.list.array[0]->sessionId_r9->buf[0]); // LOG_I(RRC, "DUY: session ID is %d\n",RC.rrc[enb_mod_idP]->mcch_message->pmch_InfoList_r9.list.array[0]->mbms_SessionInfoList_r9.list.array[0]->sessionId_r9->buf[0]);
rrc_mac_config_req_eNB(enb_mod_idP, CC_id, if (rrc->node_type == ngran_eNB) {
0,0,0,0,0, rrc_mac_config_req_eNB(enb_mod_idP, CC_id,
0,0,0,0,0,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
0, 0,
#endif #endif
0,//rnti 0,//rnti
(BCCH_BCH_Message_t *)NULL, (BCCH_BCH_Message_t *)NULL,
(RadioResourceConfigCommonSIB_t *) NULL, (RadioResourceConfigCommonSIB_t *) NULL,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
(RadioResourceConfigCommonSIB_t *) NULL, (RadioResourceConfigCommonSIB_t *) NULL,
#endif #endif
(struct PhysicalConfigDedicated *)NULL, (struct PhysicalConfigDedicated *)NULL,
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
(SCellToAddMod_r10_t *)NULL, (SCellToAddMod_r10_t *)NULL,
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL, //(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
#endif #endif
(MeasObjectToAddMod_t **) NULL, (MeasObjectToAddMod_t **) NULL,
(MAC_MainConfig_t *) NULL, (MAC_MainConfig_t *) NULL,
0, 0,
(struct LogicalChannelConfig *)NULL, (struct LogicalChannelConfig *)NULL,
(MeasGapConfig_t *) NULL, (MeasGapConfig_t *) NULL,
(TDD_Config_t *) NULL, (TDD_Config_t *) NULL,
(MobilityControlInfo_t *)NULL, (MobilityControlInfo_t *)NULL,
(SchedulingInfoList_t *) NULL, (SchedulingInfoList_t *) NULL,
0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0))
, ,
0, 0,
(MBSFN_AreaInfoList_r9_t *) NULL, (MBSFN_AreaInfoList_r9_t *) NULL,
(PMCH_InfoList_r9_t *) & (RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9) (PMCH_InfoList_r9_t *) & (RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9)
#endif #endif
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
, ,
(SystemInformationBlockType1_v1310_IEs_t *)NULL (SystemInformationBlockType1_v1310_IEs_t *)NULL
#endif #endif
); );
}
//LOG_I(RRC,"DUY: lcid after rrc_mac_config_req is %02d\n",RC.rrc[enb_mod_idP]->mcch_message->pmch_InfoList_r9.list.array[0]->mbms_SessionInfoList_r9.list.array[0]->logicalChannelIdentity_r9); //LOG_I(RRC,"DUY: lcid after rrc_mac_config_req is %02d\n",RC.rrc[enb_mod_idP]->mcch_message->pmch_InfoList_r9.list.array[0]->mbms_SessionInfoList_r9.list.array[0]->logicalChannelIdentity_r9);
} }
...@@ -621,18 +624,21 @@ static void init_MBMS( ...@@ -621,18 +624,21 @@ static void init_MBMS(
, &(RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9) , &(RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9)
#endif #endif
,NULL); ,NULL);
rrc_rlc_config_asn1_req(&ctxt, if ( (RC.rrc[ctxt_pP->module_id]->node_type != ngran_eNB_CU) ||
NULL, // SRB_ToAddModList (RC.rrc[ctxt_pP->module_id]->node_type != ngran_ng_eNB_CU) ||
NULL, // DRB_ToAddModList (RC.rrc[ctxt_pP->module_id]->node_type != ngran_gNB_CU) ) {
NULL, // DRB_ToReleaseList rrc_rlc_config_asn1_req(&ctxt,
&(RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9) NULL, // SRB_ToAddModList
NULL, // DRB_ToAddModList
NULL, // DRB_ToReleaseList
&(RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9)
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,0, 0 ,0, 0
#endif #endif
); );
}
//rrc_mac_config_req(); //rrc_mac_config_req();
} }
} }
...@@ -1330,39 +1336,41 @@ rrc_eNB_generate_RRCConnectionReestablishment( ...@@ -1330,39 +1336,41 @@ rrc_eNB_generate_RRCConnectionReestablishment(
LOG_D(RRC, LOG_D(RRC,
PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (SRB1) ---> MAC_eNB\n", PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (SRB1) ---> MAC_eNB\n",
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP)); PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
rrc_mac_config_req_eNB(ctxt_pP->module_id, if (rrc->node_type == ngran_eNB) {
ue_context_pP->ue_context.primaryCC_id, rrc_mac_config_req_eNB(ctxt_pP->module_id,
0,0,0,0,0, ue_context_pP->ue_context.primaryCC_id,
0,0,0,0,0,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
0, 0,
#endif #endif
ctxt_pP->rnti, ctxt_pP->rnti,
(BCCH_BCH_Message_t *) NULL, (BCCH_BCH_Message_t *) NULL,
(RadioResourceConfigCommonSIB_t *) NULL, (RadioResourceConfigCommonSIB_t *) NULL,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
(RadioResourceConfigCommonSIB_t *) NULL, (RadioResourceConfigCommonSIB_t *) NULL,
#endif #endif
(struct PhysicalConfigDedicated* ) ue_context_pP->ue_context.physicalConfigDedicated, (struct PhysicalConfigDedicated* ) ue_context_pP->ue_context.physicalConfigDedicated,
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
(SCellToAddMod_r10_t *)NULL, (SCellToAddMod_r10_t *)NULL,
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL, //(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
#endif #endif
(MeasObjectToAddMod_t **) NULL, (MeasObjectToAddMod_t **) NULL,
ue_context_pP->ue_context.mac_MainConfig, ue_context_pP->ue_context.mac_MainConfig,
1, 1,
SRB1_logicalChannelConfig, SRB1_logicalChannelConfig,
ue_context_pP->ue_context.measGapConfig, ue_context_pP->ue_context.measGapConfig,
(TDD_Config_t *) NULL, (TDD_Config_t *) NULL,
NULL, NULL,
(SchedulingInfoList_t *) NULL, (SchedulingInfoList_t *) NULL,
0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
, 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL
#endif #endif
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
,(SystemInformationBlockType1_v1310_IEs_t *)NULL ,(SystemInformationBlockType1_v1310_IEs_t *)NULL
#endif #endif
); );
}
break; break;
} }
} }
...@@ -4772,45 +4780,46 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover( ...@@ -4772,45 +4780,46 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover(
LOG_D(RRC, LOG_D(RRC,
"handover_config [FRAME %05d][RRC_eNB][MOD %02d][][--- MAC_CONFIG_REQ (SRB1 UE %x) --->][MAC_eNB][MOD %02d][]\n", "handover_config [FRAME %05d][RRC_eNB][MOD %02d][][--- MAC_CONFIG_REQ (SRB1 UE %x) --->][MAC_eNB][MOD %02d][]\n",
ctxt_pP->frame, ctxt_pP->module_id, ue_context_pP->ue_context.rnti, ctxt_pP->module_id); ctxt_pP->frame, ctxt_pP->module_id, ue_context_pP->ue_context.rnti, ctxt_pP->module_id);
rrc_mac_config_req_eNB( if (rrc->node_type == ngran_eNB) {
ctxt_pP->module_id, rrc_mac_config_req_eNB(
ue_context_pP->ue_context.primaryCC_id, ctxt_pP->module_id,
0,0,0,0,0, ue_context_pP->ue_context.primaryCC_id,
0,0,0,0,0,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
0, 0,
#endif #endif
ue_context_pP->ue_context.rnti, ue_context_pP->ue_context.rnti,
(BCCH_BCH_Message_t *) NULL, (BCCH_BCH_Message_t *) NULL,
(RadioResourceConfigCommonSIB_t*) NULL, (RadioResourceConfigCommonSIB_t*) NULL,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
(RadioResourceConfigCommonSIB_t*) NULL, (RadioResourceConfigCommonSIB_t*) NULL,
#endif #endif
ue_context_pP->ue_context.physicalConfigDedicated, ue_context_pP->ue_context.physicalConfigDedicated,
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
(SCellToAddMod_r10_t *)NULL, (SCellToAddMod_r10_t *)NULL,
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL, //(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
#endif #endif
(MeasObjectToAddMod_t **) NULL, (MeasObjectToAddMod_t **) NULL,
ue_context_pP->ue_context.mac_MainConfig, ue_context_pP->ue_context.mac_MainConfig,
1, 1,
SRB1_logicalChannelConfig, SRB1_logicalChannelConfig,
ue_context_pP->ue_context.measGapConfig, ue_context_pP->ue_context.measGapConfig,
(TDD_Config_t*) NULL, (TDD_Config_t*) NULL,
(MobilityControlInfo_t*) NULL, (MobilityControlInfo_t*) NULL,
(SchedulingInfoList_t*) NULL, (SchedulingInfoList_t*) NULL,
0, 0,
NULL, NULL,
NULL, NULL,
(MBSFN_SubframeConfigList_t *) NULL (MBSFN_SubframeConfigList_t *) NULL
#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0))
, 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL
#endif #endif
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
, ,
(SystemInformationBlockType1_v1310_IEs_t *)NULL (SystemInformationBlockType1_v1310_IEs_t *)NULL
#endif #endif
); );
}
// Configure target eNB SRB2 // Configure target eNB SRB2
/// SRB2 /// SRB2
SRB2_config = CALLOC(1, sizeof(*SRB2_config)); SRB2_config = CALLOC(1, sizeof(*SRB2_config));
...@@ -5290,16 +5299,18 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover( ...@@ -5290,16 +5299,18 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover(
, (PMCH_InfoList_r9_t *) NULL , (PMCH_InfoList_r9_t *) NULL
#endif #endif
,NULL); ,NULL);
if ( (RC.rrc[ctxt_pP->module_id]->node_type != ngran_eNB_CU) ||
rrc_rlc_config_asn1_req(&ctxt, (RC.rrc[ctxt_pP->module_id]->node_type != ngran_ng_eNB_CU) ||
ue_context_pP->ue_context.SRB_configList, (RC.rrc[ctxt_pP->module_id]->node_type != ngran_gNB_CU) ) {
(DRB_ToAddModList_t *) NULL, (DRB_ToReleaseList_t *) NULL rrc_rlc_config_asn1_req(&ctxt,
ue_context_pP->ue_context.SRB_configList,
(DRB_ToAddModList_t *) NULL, (DRB_ToReleaseList_t *) NULL
#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0))
, (PMCH_InfoList_r9_t *) NULL , (PMCH_InfoList_r9_t *) NULL
, 0, 0 , 0, 0
#endif #endif
); );
}
/* Initialize NAS list */ /* Initialize NAS list */
dedicatedInfoNASList = NULL; dedicatedInfoNASList = NULL;
...@@ -5360,41 +5371,42 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover( ...@@ -5360,41 +5371,42 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover(
//rrc_rlc_data_req(ctxt_pP->module_id,frameP, 1,(ue_mod_idP*NB_RB_MAX)+DCCH,rrc_eNB_mui++,0,size,(char*)buffer); //rrc_rlc_data_req(ctxt_pP->module_id,frameP, 1,(ue_mod_idP*NB_RB_MAX)+DCCH,rrc_eNB_mui++,0,size,(char*)buffer);
//pdcp_data_req (ctxt_pP->module_id, frameP, 1, (ue_mod_idP * NB_RB_MAX) + DCCH,rrc_eNB_mui++, 0, size, (char *) buffer, 1); //pdcp_data_req (ctxt_pP->module_id, frameP, 1, (ue_mod_idP * NB_RB_MAX) + DCCH,rrc_eNB_mui++, 0, size, (char *) buffer, 1);
rrc_mac_config_req_eNB( if (rrc->node_type == ngran_eNB) {
ctxt_pP->module_id, rrc_mac_config_req_eNB(
ue_context_pP->ue_context.primaryCC_id, ctxt_pP->module_id,
0,0,0,0,0, ue_context_pP->ue_context.primaryCC_id,
0,0,0,0,0,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
0, 0,
#endif #endif
ue_context_pP->ue_context.rnti, ue_context_pP->ue_context.rnti,
(BCCH_BCH_Message_t *) NULL, (BCCH_BCH_Message_t *) NULL,
(RadioResourceConfigCommonSIB_t *) NULL, (RadioResourceConfigCommonSIB_t *) NULL,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
(RadioResourceConfigCommonSIB_t *) NULL, (RadioResourceConfigCommonSIB_t *) NULL,
#endif #endif
ue_context_pP->ue_context.physicalConfigDedicated, ue_context_pP->ue_context.physicalConfigDedicated,
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
(SCellToAddMod_r10_t *)NULL, (SCellToAddMod_r10_t *)NULL,
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL, //(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
#endif #endif
(MeasObjectToAddMod_t **) NULL, (MeasObjectToAddMod_t **) NULL,
ue_context_pP->ue_context.mac_MainConfig, ue_context_pP->ue_context.mac_MainConfig,
1, 1,
SRB1_logicalChannelConfig, SRB1_logicalChannelConfig,
ue_context_pP->ue_context.measGapConfig, ue_context_pP->ue_context.measGapConfig,
(TDD_Config_t *) NULL, (TDD_Config_t *) NULL,
(MobilityControlInfo_t *) mobilityInfo, (MobilityControlInfo_t *) mobilityInfo,
(SchedulingInfoList_t *) NULL, 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL (SchedulingInfoList_t *) NULL, 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0))
, 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL
#endif #endif
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
, ,
(SystemInformationBlockType1_v1310_IEs_t *)NULL (SystemInformationBlockType1_v1310_IEs_t *)NULL
#endif #endif
); );
}
/* /*
handoverCommand.criticalExtensions.present = HandoverCommand__criticalExtensions_PR_c1; handoverCommand.criticalExtensions.present = HandoverCommand__criticalExtensions_PR_c1;
handoverCommand.criticalExtensions.choice.c1.present = HandoverCommand__criticalExtensions__c1_PR_handoverCommand_r8; handoverCommand.criticalExtensions.choice.c1.present = HandoverCommand__criticalExtensions__c1_PR_handoverCommand_r8;
...@@ -5518,19 +5530,22 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete( ...@@ -5518,19 +5530,22 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
, (PMCH_InfoList_r9_t *) NULL , (PMCH_InfoList_r9_t *) NULL
#endif #endif
,NULL); ,NULL);
// Refresh SRBs/DRBs if ( (RC.rrc[ctxt_pP->module_id]->node_type != ngran_eNB_CU) ||
rrc_rlc_config_asn1_req( (RC.rrc[ctxt_pP->module_id]->node_type != ngran_ng_eNB_CU) ||
ctxt_pP, (RC.rrc[ctxt_pP->module_id]->node_type != ngran_gNB_CU) ) {
SRB_configList, // NULL, //LG-RK 14/05/2014 SRB_configList, // Refresh SRBs/DRBs
DRB_configList, rrc_rlc_config_asn1_req(
// (DRB_ToReleaseList_t *) NULL ctxt_pP,
DRB_Release_configList2 SRB_configList, // NULL, //LG-RK 14/05/2014 SRB_configList,
DRB_configList,
// (DRB_ToReleaseList_t *) NULL
DRB_Release_configList2
#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0))
, (PMCH_InfoList_r9_t *) NULL , (PMCH_InfoList_r9_t *) NULL
, 0, 0 , 0, 0
#endif #endif
); );
}
// set the SRB active in Ue context // set the SRB active in Ue context
if (SRB_configList != NULL) { if (SRB_configList != NULL) {
for (i = 0; (i < SRB_configList->list.count) && (i < 3); i++) { for (i = 0; (i < SRB_configList->list.count) && (i < 3); i++) {
...@@ -5632,100 +5647,107 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete( ...@@ -5632,100 +5647,107 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
DRB2LCHAN[i] = (uint8_t) * DRB_configList->list.array[i]->logicalChannelIdentity; DRB2LCHAN[i] = (uint8_t) * DRB_configList->list.array[i]->logicalChannelIdentity;
} }
rrc_mac_config_req_eNB( if (rrc->node_type == ngran_eNB) {
ctxt_pP->module_id, rrc_mac_config_req_eNB(
ue_context_pP->ue_context.primaryCC_id, ctxt_pP->module_id,
0,0,0,0,0, ue_context_pP->ue_context.primaryCC_id,
0,0,0,0,0,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
0, 0,
#endif #endif
ue_context_pP->ue_context.rnti, ue_context_pP->ue_context.rnti,
(BCCH_BCH_Message_t *) NULL, (BCCH_BCH_Message_t *) NULL,
(RadioResourceConfigCommonSIB_t *) NULL, (RadioResourceConfigCommonSIB_t *) NULL,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
(RadioResourceConfigCommonSIB_t *) NULL, (RadioResourceConfigCommonSIB_t *) NULL,
#endif #endif
ue_context_pP->ue_context.physicalConfigDedicated, ue_context_pP->ue_context.physicalConfigDedicated,
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
(SCellToAddMod_r10_t *)NULL, (SCellToAddMod_r10_t *)NULL,
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL, //(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
#endif #endif
(MeasObjectToAddMod_t **) NULL, (MeasObjectToAddMod_t **) NULL,
ue_context_pP->ue_context.mac_MainConfig, ue_context_pP->ue_context.mac_MainConfig,
DRB2LCHAN[i], DRB2LCHAN[i],
DRB_configList->list.array[i]->logicalChannelConfig, DRB_configList->list.array[i]->logicalChannelConfig,
ue_context_pP->ue_context.measGapConfig, ue_context_pP->ue_context.measGapConfig,
(TDD_Config_t *) NULL, (TDD_Config_t *) NULL,
NULL, NULL,
(SchedulingInfoList_t *) NULL, (SchedulingInfoList_t *) NULL,
0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0))
, 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL
#endif #endif
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
, ,
(SystemInformationBlockType1_v1310_IEs_t *)NULL (SystemInformationBlockType1_v1310_IEs_t *)NULL
#endif #endif
); );
}
} else { // remove LCHAN from MAC/PHY } else { // remove LCHAN from MAC/PHY
if (ue_context_pP->ue_context.DRB_active[drb_id] == 1) { if (ue_context_pP->ue_context.DRB_active[drb_id] == 1) {
// DRB has just been removed so remove RLC + PDCP for DRB // DRB has just been removed so remove RLC + PDCP for DRB
/* rrc_pdcp_config_req (ctxt_pP->module_id, frameP, 1, CONFIG_ACTION_REMOVE, /* rrc_pdcp_config_req (ctxt_pP->module_id, frameP, 1, CONFIG_ACTION_REMOVE,
(ue_mod_idP * NB_RB_MAX) + DRB2LCHAN[i],UNDEF_SECURITY_MODE); (ue_mod_idP * NB_RB_MAX) + DRB2LCHAN[i],UNDEF_SECURITY_MODE);
*/ */
rrc_rlc_config_req( if ( (RC.rrc[ctxt_pP->module_id]->node_type != ngran_eNB_CU) ||
ctxt_pP, (RC.rrc[ctxt_pP->module_id]->node_type != ngran_ng_eNB_CU) ||
SRB_FLAG_NO, (RC.rrc[ctxt_pP->module_id]->node_type != ngran_gNB_CU) ) {
MBMS_FLAG_NO, rrc_rlc_config_req(
CONFIG_ACTION_REMOVE, ctxt_pP,
DRB2LCHAN[i], SRB_FLAG_NO,
Rlc_info_um); MBMS_FLAG_NO,
CONFIG_ACTION_REMOVE,
DRB2LCHAN[i],
Rlc_info_um);
}
} }
ue_context_pP->ue_context.DRB_active[drb_id] = 0; ue_context_pP->ue_context.DRB_active[drb_id] = 0;
LOG_D(RRC, LOG_D(RRC,
PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (DRB) ---> MAC_eNB\n", PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (DRB) ---> MAC_eNB\n",
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP)); PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
rrc_mac_config_req_eNB(ctxt_pP->module_id, if (rrc->node_type == ngran_eNB) {
ue_context_pP->ue_context.primaryCC_id, rrc_mac_config_req_eNB(ctxt_pP->module_id,
0,0,0,0,0, ue_context_pP->ue_context.primaryCC_id,
0,0,0,0,0,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
0, 0,
#endif #endif
ue_context_pP->ue_context.rnti, ue_context_pP->ue_context.rnti,
(BCCH_BCH_Message_t *) NULL, (BCCH_BCH_Message_t *) NULL,
(RadioResourceConfigCommonSIB_t *) NULL, (RadioResourceConfigCommonSIB_t *) NULL,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
(RadioResourceConfigCommonSIB_t *) NULL, (RadioResourceConfigCommonSIB_t *) NULL,
#endif #endif
ue_context_pP->ue_context.physicalConfigDedicated, ue_context_pP->ue_context.physicalConfigDedicated,
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
(SCellToAddMod_r10_t *)NULL, (SCellToAddMod_r10_t *)NULL,
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL, //(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
#endif #endif
(MeasObjectToAddMod_t **) NULL, (MeasObjectToAddMod_t **) NULL,
ue_context_pP->ue_context.mac_MainConfig, ue_context_pP->ue_context.mac_MainConfig,
DRB2LCHAN[i], DRB2LCHAN[i],
(LogicalChannelConfig_t *) NULL, (LogicalChannelConfig_t *) NULL,
(MeasGapConfig_t *) NULL, (MeasGapConfig_t *) NULL,
(TDD_Config_t *) NULL, (TDD_Config_t *) NULL,
NULL, NULL,
(SchedulingInfoList_t *) NULL, (SchedulingInfoList_t *) NULL,
0, NULL, NULL, NULL 0, NULL, NULL, NULL
#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0))
, 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL
#endif #endif
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
, ,
(SystemInformationBlockType1_v1310_IEs_t *)NULL (SystemInformationBlockType1_v1310_IEs_t *)NULL
#endif #endif
); );
}
} }
} }
} }
free(DRB_configList); free(DRB_configList);
ue_context_pP->ue_context.DRB_configList2[xid] = NULL; ue_context_pP->ue_context.DRB_configList2[xid] = NULL;
} }
...@@ -5830,41 +5852,43 @@ rrc_eNB_generate_RRCConnectionSetup( ...@@ -5830,41 +5852,43 @@ rrc_eNB_generate_RRCConnectionSetup(
LOG_D(RRC, LOG_D(RRC,
PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (SRB1) ---> MAC_eNB\n", PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (SRB1) ---> MAC_eNB\n",
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP)); PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
rrc_mac_config_req_eNB( if (rrc->node_type == ngran_eNB) {
ctxt_pP->module_id, rrc_mac_config_req_eNB(
ue_context_pP->ue_context.primaryCC_id, ctxt_pP->module_id,
0,0,0,0,0, ue_context_pP->ue_context.primaryCC_id,
0,0,0,0,0,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
0, 0,
#endif #endif
ue_context_pP->ue_context.rnti, ue_context_pP->ue_context.rnti,
(BCCH_BCH_Message_t *) NULL, (BCCH_BCH_Message_t *) NULL,
(RadioResourceConfigCommonSIB_t *) NULL, (RadioResourceConfigCommonSIB_t *) NULL,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
(RadioResourceConfigCommonSIB_t *) NULL, (RadioResourceConfigCommonSIB_t *) NULL,
#endif #endif
ue_context_pP->ue_context.physicalConfigDedicated, ue_context_pP->ue_context.physicalConfigDedicated,
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
(SCellToAddMod_r10_t *)NULL, (SCellToAddMod_r10_t *)NULL,
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL, //(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
#endif #endif
(MeasObjectToAddMod_t **) NULL, (MeasObjectToAddMod_t **) NULL,
ue_context_pP->ue_context.mac_MainConfig, ue_context_pP->ue_context.mac_MainConfig,
1, 1,
SRB1_logicalChannelConfig, SRB1_logicalChannelConfig,
ue_context_pP->ue_context.measGapConfig, ue_context_pP->ue_context.measGapConfig,
(TDD_Config_t *) NULL, (TDD_Config_t *) NULL,
NULL, NULL,
(SchedulingInfoList_t *) NULL, (SchedulingInfoList_t *) NULL,
0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0))
, 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL , 0, (MBSFN_AreaInfoList_r9_t *) NULL, (PMCH_InfoList_r9_t *) NULL
#endif #endif
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
, ,
(SystemInformationBlockType1_v1310_IEs_t *)NULL (SystemInformationBlockType1_v1310_IEs_t *)NULL
#endif #endif
); );
}
} }
} }
} }
...@@ -6343,16 +6367,20 @@ rrc_eNB_decode_ccch( ...@@ -6343,16 +6367,20 @@ rrc_eNB_decode_ccch(
#endif #endif
,NULL); ,NULL);
if ( (RC.rrc[ctxt_pP->module_id]->node_type != ngran_eNB_CU) ||
rrc_rlc_config_asn1_req(ctxt_pP, (RC.rrc[ctxt_pP->module_id]->node_type != ngran_ng_eNB_CU) ||
ue_context_p->ue_context.SRB_configList, (RC.rrc[ctxt_pP->module_id]->node_type != ngran_gNB_CU) ) {
(DRB_ToAddModList_t*) NULL, rrc_rlc_config_asn1_req(ctxt_pP,
(DRB_ToReleaseList_t*) NULL ue_context_p->ue_context.SRB_configList,
(DRB_ToAddModList_t*) NULL,
(DRB_ToReleaseList_t*) NULL
#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0))
, (PMCH_InfoList_r9_t *) NULL, , (PMCH_InfoList_r9_t *) NULL,
0,0 0,0
# endif # endif
); );
}
#endif //NO_RRM #endif //NO_RRM
} }
break; break;
...@@ -6415,7 +6443,16 @@ rrc_eNB_decode_ccch( ...@@ -6415,7 +6443,16 @@ rrc_eNB_decode_ccch(
random_value = (((uint64_t)mme_code) << 32) | m_tmsi; random_value = (((uint64_t)mme_code) << 32) | m_tmsi;
if ((ue_context_p = rrc_eNB_ue_context_stmsi_exist(ctxt_pP, mme_code, m_tmsi))) { if ((ue_context_p = rrc_eNB_ue_context_stmsi_exist(ctxt_pP, mme_code, m_tmsi))) {
LOG_I(RRC," S-TMSI exists, ue_context_p %p, old rnti %x => %x\n",ue_context_p,ue_context_p->ue_context.rnti,ctxt_pP->rnti); LOG_I(RRC," S-TMSI exists, ue_context_p %p, old rnti %x => %x\n",ue_context_p,ue_context_p->ue_context.rnti,ctxt_pP->rnti);
rrc_mac_remove_ue(ctxt_pP->module_id, ue_context_p->ue_context.rnti);
if ( (RC.rrc[ctxt_pP->module_id]->node_type != ngran_eNB_CU) ||
(RC.rrc[ctxt_pP->module_id]->node_type != ngran_ng_eNB_CU) ||
(RC.rrc[ctxt_pP->module_id]->node_type != ngran_gNB_CU) ) {
rrc_mac_remove_ue(ctxt_pP->module_id, ue_context_p->ue_context.rnti);
}
else {
// send message to DU to remove context
AssertFatal(1==0,"Need to added context removal\n");
}
stmsi_received=1; stmsi_received=1;
/* replace rnti in the context */ /* replace rnti in the context */
/* for that, remove the context from the RB tree */ /* for that, remove the context from the RB tree */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment