Merge branch 'feature-127-protocol-split' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-127-protocol-split
This commit is contained in:
@@ -416,7 +416,7 @@ void RCconfig_macrlc(int macrlc_has_f1[MAX_MAC_INST]) {
|
||||
}
|
||||
|
||||
|
||||
int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) {
|
||||
int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
|
||||
int num_enbs = 0;
|
||||
|
||||
@@ -637,10 +637,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) {
|
||||
|
||||
LOG_I(RRC,"Instance %d: Southbound Transport %s\n",i,*(ENBParamList.paramarray[i][ENB_TRANSPORT_S_PREFERENCE_IDX].strptr));
|
||||
|
||||
if (strcmp(*(ENBParamList.paramarray[i][ENB_TRANSPORT_S_PREFERENCE_IDX].strptr), "local_mac") == 0) {
|
||||
rrc->node_type = ngran_eNB;
|
||||
}
|
||||
else if (strcmp(*(ENBParamList.paramarray[i][ENB_TRANSPORT_S_PREFERENCE_IDX].strptr), "f1") == 0) {
|
||||
if (strcmp(*(ENBParamList.paramarray[i][ENB_TRANSPORT_S_PREFERENCE_IDX].strptr), "f1") == 0) {
|
||||
|
||||
paramdef_t SCTPParams[] = SCTPPARAMS_DESC;
|
||||
char aprefix[MAX_OPTNAME_SIZE*2 + 8];
|
||||
@@ -675,9 +672,11 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) {
|
||||
|
||||
}
|
||||
|
||||
else { // no F1
|
||||
// set to ngran_eNB for now, it will get set to ngran_DU if macrlc entity which uses F1 is present
|
||||
rrc->node_type = ngran_eNB;
|
||||
else {
|
||||
// set to ngran_eNB for now, it will get set to ngran_eNB_DU if macrlc entity which uses F1 is present
|
||||
// Note: we will have to handle the case of ngran_ng_eNB_DU
|
||||
if (macrlc_has_f1 == 0) rrc->node_type = ngran_eNB;
|
||||
else rrc->node_type = ngran_eNB_DU;
|
||||
}
|
||||
|
||||
// MCC and MNC
|
||||
@@ -744,7 +743,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) {
|
||||
|
||||
nb_cc++;
|
||||
|
||||
if (rrc->node_type != ngran_eNB_CU && rrc->node_type != ngran_ng_eNB_CU) {
|
||||
if ( (rrc->node_type != ngran_eNB_CU) || (rrc->node_type != ngran_ng_eNB_CU) || (rrc->node_type != ngran_gNB_CU) ) {
|
||||
// Cell params, MIB/SIB1 in DU
|
||||
RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config;
|
||||
|
||||
@@ -822,7 +821,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = nb_antenna_ports;
|
||||
|
||||
}
|
||||
else {//this is CU, SIB2-20 in CU
|
||||
if (rrc->node_type != ngran_eNB_DU) {//this is CU or eNB, SIB2-20 in CU
|
||||
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
if (!pbch_repetition)
|
||||
@@ -1825,9 +1824,9 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[j] = discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused;
|
||||
|
||||
|
||||
}
|
||||
} // node_type!=ngran_eNB_DU
|
||||
}
|
||||
if (rrc->node_type == ngran_eNB_CU || rrc->node_type == ngran_ng_eNB_CU) {
|
||||
if ( (rrc->node_type == ngran_eNB_CU) || (rrc->node_type == ngran_ng_eNB_CU) || (rrc->node_type == ngran_gNB_CU) ) {
|
||||
char srb1path[MAX_OPTNAME_SIZE*2 + 8];
|
||||
sprintf(srb1path,"%s.%s",enbpath,ENB_CONFIG_STRING_SRB1);
|
||||
int npar = config_get( SRB1Params,sizeof(SRB1Params)/sizeof(paramdef_t), srb1path);
|
||||
@@ -2179,6 +2178,8 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) {
|
||||
#endif
|
||||
|
||||
}
|
||||
LOG_I(RRC,"Node type %d \n ", rrc->node_type);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3010,10 +3011,9 @@ void read_config_and_init()
|
||||
RC.rrc[enb_id] = malloc(sizeof(eNB_RRC_INST));
|
||||
AssertFatal(RC.rrc[enb_id], "RRC context for eNB %d not allocated\n", enb_id);
|
||||
memset((void *)RC.rrc[enb_id], 0, sizeof(eNB_RRC_INST));
|
||||
RCconfig_RRC(enb_id, RC.rrc[enb_id]);
|
||||
if (macrlc_has_f1[enb_id]) RC.rrc[enb_id]->node_type = ngran_eNB_DU;
|
||||
RCconfig_RRC(enb_id, RC.rrc[enb_id],macrlc_has_f1[enb_id]);
|
||||
}
|
||||
|
||||
if (RC.nb_macrlc_inst == 0)
|
||||
if (RC.rrc[0]->node_type != ngran_eNB_DU)
|
||||
pdcp_layer_init();
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@ extern void RCConfig(void);
|
||||
void enb_config_display(void);
|
||||
void ru_config_display(void);
|
||||
|
||||
int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc);
|
||||
int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1);
|
||||
int RCconfig_S1(MessageDef *msg_p, uint32_t i);
|
||||
|
||||
void read_config_and_init(void);
|
||||
|
||||
@@ -314,6 +314,7 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
|
||||
"Unknown message\n");
|
||||
break;
|
||||
}// switch case
|
||||
return(0);
|
||||
} else if (srb_id == 1) {
|
||||
// rrc_rlc_config_asn1_req(&ctxt,
|
||||
// SRB_configList,
|
||||
@@ -325,13 +326,96 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
|
||||
// # endif
|
||||
// );
|
||||
|
||||
LOG_I(DU_F1AP, "Received DL RRC Transfer on srb_id 1\n");
|
||||
rlc_op_status_t rlc_status;
|
||||
boolean_t ret = TRUE;
|
||||
mem_block_t *pdcp_pdu_p = NULL;
|
||||
pdcp_pdu_p = get_free_mem_block(rrc_dl_sdu_len, __func__);
|
||||
memset(&pdcp_pdu_p->data[0], 0, rrc_dl_sdu_len);
|
||||
memcpy(&pdcp_pdu_p->data[0], ie->value.choice.RRCContainer.buf, rrc_dl_sdu_len);
|
||||
DL_DCCH_Message_t* dl_dcch_msg=NULL;
|
||||
asn_dec_rval_t dec_rval;
|
||||
dec_rval = uper_decode(NULL,
|
||||
&asn_DEF_DL_DCCH_Message,
|
||||
(void**)&dl_dcch_msg,
|
||||
ie->value.choice.RRCContainer.buf,
|
||||
rrc_dl_sdu_len,0,0);
|
||||
|
||||
if (dl_dcch_msg->message.present == DL_DCCH_MessageType_PR_c1) {
|
||||
|
||||
switch (dl_dcch_msg->message.choice.c1.present) {
|
||||
|
||||
case DL_DCCH_MessageType__c1_PR_NOTHING:
|
||||
LOG_I(RRC, "Received PR_NOTHING on DL-DCCH-Message\n");
|
||||
return;
|
||||
|
||||
case DL_DCCH_MessageType__c1_PR_csfbParametersResponseCDMA2000:
|
||||
case DL_DCCH_MessageType__c1_PR_dlInformationTransfer:
|
||||
case DL_DCCH_MessageType__c1_PR_handoverFromEUTRAPreparationRequest:
|
||||
case DL_DCCH_MessageType__c1_PR_mobilityFromEUTRACommand:
|
||||
break;
|
||||
case DL_DCCH_MessageType__c1_PR_rrcConnectionReconfiguration:
|
||||
// handle RRCConnectionReconfiguration
|
||||
LOG_I(RRC,
|
||||
"Logical Channel DL-DCCH (SRB1), Received RRCConnectionReconfiguration DU_ID %x/RNTI %x\n",
|
||||
du_ue_f1ap_id,
|
||||
f1ap_get_rnti_by_du_id(&f1ap_du_ue[instance],du_ue_f1ap_id));
|
||||
|
||||
RRCConnectionReconfiguration_t* rrcConnectionReconfiguration = &dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration;
|
||||
|
||||
if (rrcConnectionReconfiguration->criticalExtensions.present == RRCConnectionReconfiguration__criticalExtensions_PR_c1) {
|
||||
if (rrcConnectionReconfiguration->criticalExtensions.choice.c1.present ==
|
||||
RRCConnectionReconfiguration__criticalExtensions__c1_PR_rrcConnectionReconfiguration_r8) {
|
||||
RRCConnectionReconfiguration_r8_IEs_t* rrcConnectionReconfiguration_r8 =
|
||||
&rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8;
|
||||
|
||||
if (rrcConnectionReconfiguration_r8->mobilityControlInfo) {
|
||||
LOG_I(RRC,"Mobility Control Information is present\n");
|
||||
AssertFatal(1==0,"Can't handle this yet in DU\n");
|
||||
}
|
||||
if (rrcConnectionReconfiguration_r8->measConfig != NULL) {
|
||||
LOG_I(RRC,"Measurement Configuration is present\n");
|
||||
|
||||
}
|
||||
|
||||
if (rrcConnectionReconfiguration_r8->radioResourceConfigDedicated) {
|
||||
LOG_I(RRC,"Radio Resource Configuration is present\n");
|
||||
RadioResourceConfigDedicated_t* radioResourceConfigDedicated = rrcConnectionReconfiguration_r8->radioResourceConfigDedicated;
|
||||
long SRB_id,DRB_id;
|
||||
int i,cnt;
|
||||
LogicalChannelConfig_t *SRB1_logicalChannelConfig,*SRB2_logicalChannelConfig;
|
||||
|
||||
// radioResourceConfigDedicated->physicalConfigDedicated;
|
||||
|
||||
}
|
||||
break;
|
||||
case DL_DCCH_MessageType__c1_PR_rrcConnectionRelease:
|
||||
// handle RRCConnectionRelease
|
||||
break;
|
||||
case DL_DCCH_MessageType__c1_PR_securityModeCommand:
|
||||
case DL_DCCH_MessageType__c1_PR_ueCapabilityEnquiry:
|
||||
case DL_DCCH_MessageType__c1_PR_counterCheck:
|
||||
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
|
||||
case DL_DCCH_MessageType__c1_PR_loggedMeasurementConfiguration_r10:
|
||||
case DL_DCCH_MessageType__c1_PR_rnReconfiguration_r10:
|
||||
#endif
|
||||
case DL_DCCH_MessageType__c1_PR_spare1:
|
||||
case DL_DCCH_MessageType__c1_PR_spare2:
|
||||
case DL_DCCH_MessageType__c1_PR_spare3:
|
||||
#if (RRC_VERSION < MAKE_VERSION(14, 0, 0))
|
||||
case DL_DCCH_MessageType__c1_PR_spare4:
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (srb_id == 2) {
|
||||
|
||||
}
|
||||
|
||||
LOG_I(DU_F1AP, "Received DL RRC Transfer on srb_id %d\n",srb_id);
|
||||
rlc_op_status_t rlc_status;
|
||||
boolean_t ret = TRUE;
|
||||
mem_block_t *pdcp_pdu_p = NULL;
|
||||
pdcp_pdu_p = get_free_mem_block(rrc_dl_sdu_len, __func__);
|
||||
memset(&pdcp_pdu_p->data[0], 0, rrc_dl_sdu_len);
|
||||
memcpy(&pdcp_pdu_p->data[0], ie->value.choice.RRCContainer.buf, rrc_dl_sdu_len);
|
||||
|
||||
if (pdcp_pdu_p != NULL) {
|
||||
rlc_status = rlc_data_req(&ctxt
|
||||
@@ -376,9 +460,7 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
|
||||
return ret;
|
||||
} // if pdcp_pdu_p
|
||||
|
||||
} else if (srb_id == 2) {
|
||||
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
|
||||
@@ -567,7 +649,7 @@ int DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER(module_id_t module_idP,
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void init_f1ap_du_ue_inst (void) {
|
||||
|
||||
|
||||
@@ -59,10 +59,12 @@ int proto_agent_start(mod_id_t mod_id, const cudu_params_t *p)
|
||||
{
|
||||
int channel_id;
|
||||
|
||||
DevAssert(p->local_ipv4_address);
|
||||
DevAssert(p->local_port > 1024); // "unprivileged" port
|
||||
DevAssert(p->remote_ipv4_address);
|
||||
DevAssert(p->remote_port > 1024); // "unprivileged" port
|
||||
// RS: CUDU does not work!
|
||||
//DevAssert(p->local_interface);
|
||||
//DevAssert(p->local_ipv4_address);
|
||||
//DevAssert(p->local_port > 1024); // "unprivileged" port
|
||||
//DevAssert(p->remote_ipv4_address);
|
||||
//DevAssert(p->remote_port > 1024); // "unprivileged" port
|
||||
|
||||
proto_agent[mod_id].mod_id = mod_id;
|
||||
|
||||
|
||||
@@ -150,7 +150,7 @@ mac_rrc_data_req(
|
||||
LOG_T(RRC,"[eNB %d] Frame %d CCCH request (Srb_id %d, rnti %x)\n",Mod_idP,frameP, Srb_id,rnti);
|
||||
|
||||
if(ue_p->Srb0.Active==0) {
|
||||
LOG_E(RRC,"[eNB %d] CCCH Not active\n",Mod_idP);
|
||||
LOG_E(RRC,"[eNB %d] CCCH Not active (%p, rnti %x)\n",Mod_idP,ue_p,ue_p->rnti);
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -304,9 +304,31 @@ mac_rrc_data_ind(
|
||||
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, ENB_FLAG_YES, rntiP, frameP, sub_frameP,0);
|
||||
|
||||
if((srb_idP & RAB_OFFSET) == CCCH) {
|
||||
LOG_D(RRC,"[eNB %d] Received SDU for CCCH on SRB 0\n",module_idP);
|
||||
LOG_I(RRC,"[eNB %d] Received SDU for CCCH on SRB 0 (%d,%x)\n",module_idP,
|
||||
ctxt.module_id,ctxt.rnti);
|
||||
|
||||
/*
|
||||
// create a ue_context with rnti as random value, will be updated when Attach Request is received
|
||||
struct rrc_eNB_ue_context_s *ue_context_p = rrc_eNB_get_next_free_ue_context(&ctxt,
|
||||
rntiP
|
||||
);
|
||||
|
||||
// msg("\n******INST %d Srb_info %p, Srb_id=%d****\n\n",Mod_id,Srb_info,Srb_info->Srb_id);
|
||||
eNB_RRC_UE_t *ue_p = &ue_context_p->ue_context;
|
||||
SRB_INFO *srb_info_p = &ue_p->Srb0;
|
||||
|
||||
LOG_I(RRC,"Decoding CCCH : inst %d, CC_id %d, ue_context %p (rnti %x), sib_info_p->Rx_buffer.payload_size %d\n",
|
||||
module_idP,CC_id,ue_p, ue_p->rnti,sdu_lenP);
|
||||
AssertFatal(sdu_lenP <= RRC_BUFFER_SIZE_MAX,
|
||||
"CCCH message has size %d > %d\n",sdu_lenP,RRC_BUFFER_SIZE_MAX);
|
||||
|
||||
|
||||
memcpy(srb_info_p->Rx_buffer.Payload,
|
||||
sduP,
|
||||
sdu_lenP);
|
||||
srb_info_p->Rx_buffer.payload_size = sdu_lenP;
|
||||
srb_info_p->Active = 1;
|
||||
*/
|
||||
|
||||
if (sdu_lenP > 0) rrc_eNB_decode_ccch(&ctxt, sduP, sdu_lenP, CC_id);
|
||||
|
||||
}
|
||||
|
||||
+276
-231
@@ -168,7 +168,10 @@ init_SI(
|
||||
AssertFatal(carrier->SIB1!=NULL,PROTOCOL_RRC_CTXT_FMT" init_SI: FATAL, no memory for SIB1 allocated\n",
|
||||
PROTOCOL_RRC_CTXT_ARGS(ctxt_pP));
|
||||
|
||||
if (rrc->node_type != ngran_eNB_CU && rrc->node_type != ngran_ng_eNB_CU) {
|
||||
LOG_I(RRC,"[eNB %d] Node type %d \n ", ctxt_pP->module_id, rrc->node_type);
|
||||
if ((rrc->node_type != ngran_eNB_CU) ||
|
||||
(rrc->node_type != ngran_ng_eNB_CU) ||
|
||||
(rrc->node_type != ngran_gNB_CU) ) {
|
||||
// copy basic Cell parameters
|
||||
carrier->physCellId = configuration->Nid_cell[CC_id];
|
||||
carrier->p_eNB = configuration->nb_antenna_ports[CC_id];
|
||||
@@ -204,8 +207,8 @@ init_SI(
|
||||
AssertFatal(carrier->sizeof_SIB1 != 255,"FATAL, RC.rrc[enb_mod_idP].carrier[CC_id].sizeof_SIB1 == 255");
|
||||
|
||||
}
|
||||
else if (rrc->node_type != ngran_eNB_DU) {
|
||||
|
||||
if ((rrc->node_type != ngran_eNB_DU) ||
|
||||
(rrc->node_type != ngran_gNB_DU)) {
|
||||
carrier->SIB23 = (uint8_t*) malloc16(64);
|
||||
AssertFatal(carrier->SIB23!=NULL,"cannot allocate memory for SIB");
|
||||
carrier->sizeof_SIB23 = do_SIB23(
|
||||
@@ -217,6 +220,8 @@ init_SI(
|
||||
#endif
|
||||
);
|
||||
|
||||
LOG_I(RRC,"do_SIB23, size %d \n ", carrier->sizeof_SIB23);
|
||||
|
||||
AssertFatal(carrier->sizeof_SIB23 != 255,"FATAL, RC.rrc[mod].carrier[CC_id].sizeof_SIB23 == 255");
|
||||
|
||||
|
||||
@@ -507,6 +512,8 @@ init_MCCH(
|
||||
|
||||
int sync_area = 0;
|
||||
// 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 =
|
||||
malloc(RC.rrc[enb_mod_idP]->carrier[CC_id].num_mbsfn_sync_area * sizeof(uint8_t*));
|
||||
|
||||
@@ -551,43 +558,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: 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,
|
||||
0,0,0,0,0,
|
||||
if (rrc->node_type == ngran_eNB) {
|
||||
rrc_mac_config_req_eNB(enb_mod_idP, CC_id,
|
||||
0,0,0,0,0,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
0,
|
||||
0,
|
||||
#endif
|
||||
0,//rnti
|
||||
(BCCH_BCH_Message_t *)NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
0,//rnti
|
||||
(BCCH_BCH_Message_t *)NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
#endif
|
||||
(struct PhysicalConfigDedicated *)NULL,
|
||||
(struct PhysicalConfigDedicated *)NULL,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
|
||||
(SCellToAddMod_r10_t *)NULL,
|
||||
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
(SCellToAddMod_r10_t *)NULL,
|
||||
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
#endif
|
||||
(MeasObjectToAddMod_t **) NULL,
|
||||
(MAC_MainConfig_t *) NULL,
|
||||
0,
|
||||
(struct LogicalChannelConfig *)NULL,
|
||||
(MeasGapConfig_t *) NULL,
|
||||
(TDD_Config_t *) NULL,
|
||||
(MobilityControlInfo_t *)NULL,
|
||||
(SchedulingInfoList_t *) NULL,
|
||||
0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
|
||||
(MeasObjectToAddMod_t **) NULL,
|
||||
(MAC_MainConfig_t *) NULL,
|
||||
0,
|
||||
(struct LogicalChannelConfig *)NULL,
|
||||
(MeasGapConfig_t *) NULL,
|
||||
(TDD_Config_t *) NULL,
|
||||
(MobilityControlInfo_t *)NULL,
|
||||
(SchedulingInfoList_t *) NULL,
|
||||
0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
|
||||
#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0))
|
||||
,
|
||||
0,
|
||||
(MBSFN_AreaInfoList_r9_t *) NULL,
|
||||
(PMCH_InfoList_r9_t *) & (RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9)
|
||||
,
|
||||
0,
|
||||
(MBSFN_AreaInfoList_r9_t *) NULL,
|
||||
(PMCH_InfoList_r9_t *) & (RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9)
|
||||
#endif
|
||||
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
|
||||
,
|
||||
(SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
,
|
||||
(SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
#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);
|
||||
|
||||
}
|
||||
@@ -621,18 +629,21 @@ static void init_MBMS(
|
||||
, &(RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9)
|
||||
#endif
|
||||
,NULL);
|
||||
|
||||
rrc_rlc_config_asn1_req(&ctxt,
|
||||
NULL, // SRB_ToAddModList
|
||||
NULL, // DRB_ToAddModList
|
||||
NULL, // DRB_ToReleaseList
|
||||
&(RC.rrc[enb_mod_idP]->carrier[CC_id].mcch_message->pmch_InfoList_r9)
|
||||
|
||||
if ( (RC.rrc[enb_mod_idP]->node_type != ngran_eNB_CU) ||
|
||||
(RC.rrc[enb_mod_idP]->node_type != ngran_ng_eNB_CU) ||
|
||||
(RC.rrc[enb_mod_idP]->node_type != ngran_gNB_CU) ) {
|
||||
rrc_rlc_config_asn1_req(&ctxt,
|
||||
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))
|
||||
,0, 0
|
||||
,0, 0
|
||||
#endif
|
||||
);
|
||||
|
||||
);
|
||||
}
|
||||
//rrc_mac_config_req();
|
||||
}
|
||||
}
|
||||
@@ -731,7 +742,7 @@ rrc_eNB_ue_context_stmsi_exist(
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// return a new ue context structure if ue_identityP, ctxt_pP->rnti not found in collection
|
||||
static struct rrc_eNB_ue_context_s*
|
||||
struct rrc_eNB_ue_context_s*
|
||||
rrc_eNB_get_next_free_ue_context(
|
||||
const protocol_ctxt_t* const ctxt_pP,
|
||||
const uint64_t ue_identityP
|
||||
@@ -769,6 +780,7 @@ rrc_eNB_get_next_free_ue_context(
|
||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
|
||||
return NULL;
|
||||
}
|
||||
return(ue_context_p);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -1332,39 +1344,41 @@ rrc_eNB_generate_RRCConnectionReestablishment(
|
||||
LOG_D(RRC,
|
||||
PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (SRB1) ---> MAC_eNB\n",
|
||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
|
||||
rrc_mac_config_req_eNB(ctxt_pP->module_id,
|
||||
ue_context_pP->ue_context.primaryCC_id,
|
||||
0,0,0,0,0,
|
||||
if (RC.rrc[ctxt_pP->module_id]->node_type == ngran_eNB) {
|
||||
rrc_mac_config_req_eNB(ctxt_pP->module_id,
|
||||
ue_context_pP->ue_context.primaryCC_id,
|
||||
0,0,0,0,0,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
0,
|
||||
0,
|
||||
#endif
|
||||
ctxt_pP->rnti,
|
||||
(BCCH_BCH_Message_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
ctxt_pP->rnti,
|
||||
(BCCH_BCH_Message_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
#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))
|
||||
(SCellToAddMod_r10_t *)NULL,
|
||||
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
(SCellToAddMod_r10_t *)NULL,
|
||||
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
#endif
|
||||
(MeasObjectToAddMod_t **) NULL,
|
||||
ue_context_pP->ue_context.mac_MainConfig,
|
||||
1,
|
||||
SRB1_logicalChannelConfig,
|
||||
ue_context_pP->ue_context.measGapConfig,
|
||||
(TDD_Config_t *) NULL,
|
||||
NULL,
|
||||
(SchedulingInfoList_t *) NULL,
|
||||
0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
|
||||
(MeasObjectToAddMod_t **) NULL,
|
||||
ue_context_pP->ue_context.mac_MainConfig,
|
||||
1,
|
||||
SRB1_logicalChannelConfig,
|
||||
ue_context_pP->ue_context.measGapConfig,
|
||||
(TDD_Config_t *) NULL,
|
||||
NULL,
|
||||
(SchedulingInfoList_t *) NULL,
|
||||
0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
|
||||
#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
|
||||
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
|
||||
,(SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
,(SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -4774,45 +4788,46 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover(
|
||||
LOG_D(RRC,
|
||||
"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);
|
||||
rrc_mac_config_req_eNB(
|
||||
ctxt_pP->module_id,
|
||||
ue_context_pP->ue_context.primaryCC_id,
|
||||
0,0,0,0,0,
|
||||
if (RC.rrc[ctxt_pP->module_id]->node_type == ngran_eNB) {
|
||||
rrc_mac_config_req_eNB(
|
||||
ctxt_pP->module_id,
|
||||
ue_context_pP->ue_context.primaryCC_id,
|
||||
0,0,0,0,0,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
0,
|
||||
0,
|
||||
#endif
|
||||
ue_context_pP->ue_context.rnti,
|
||||
(BCCH_BCH_Message_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t*) NULL,
|
||||
ue_context_pP->ue_context.rnti,
|
||||
(BCCH_BCH_Message_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t*) NULL,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
(RadioResourceConfigCommonSIB_t*) NULL,
|
||||
(RadioResourceConfigCommonSIB_t*) NULL,
|
||||
#endif
|
||||
ue_context_pP->ue_context.physicalConfigDedicated,
|
||||
ue_context_pP->ue_context.physicalConfigDedicated,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
|
||||
(SCellToAddMod_r10_t *)NULL,
|
||||
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
(SCellToAddMod_r10_t *)NULL,
|
||||
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
#endif
|
||||
(MeasObjectToAddMod_t **) NULL,
|
||||
ue_context_pP->ue_context.mac_MainConfig,
|
||||
1,
|
||||
SRB1_logicalChannelConfig,
|
||||
ue_context_pP->ue_context.measGapConfig,
|
||||
(TDD_Config_t*) NULL,
|
||||
(MobilityControlInfo_t*) NULL,
|
||||
(SchedulingInfoList_t*) NULL,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
(MBSFN_SubframeConfigList_t *) NULL
|
||||
(MeasObjectToAddMod_t **) NULL,
|
||||
ue_context_pP->ue_context.mac_MainConfig,
|
||||
1,
|
||||
SRB1_logicalChannelConfig,
|
||||
ue_context_pP->ue_context.measGapConfig,
|
||||
(TDD_Config_t*) NULL,
|
||||
(MobilityControlInfo_t*) NULL,
|
||||
(SchedulingInfoList_t*) NULL,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
(MBSFN_SubframeConfigList_t *) NULL
|
||||
#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
|
||||
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
|
||||
,
|
||||
(SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
,
|
||||
(SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
#endif
|
||||
);
|
||||
|
||||
);
|
||||
}
|
||||
// Configure target eNB SRB2
|
||||
/// SRB2
|
||||
SRB2_config = CALLOC(1, sizeof(*SRB2_config));
|
||||
@@ -5292,16 +5307,18 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover(
|
||||
, (PMCH_InfoList_r9_t *) NULL
|
||||
#endif
|
||||
,NULL);
|
||||
|
||||
rrc_rlc_config_asn1_req(&ctxt,
|
||||
ue_context_pP->ue_context.SRB_configList,
|
||||
(DRB_ToAddModList_t *) NULL, (DRB_ToReleaseList_t *) NULL
|
||||
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_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))
|
||||
, (PMCH_InfoList_r9_t *) NULL
|
||||
, 0, 0
|
||||
, (PMCH_InfoList_r9_t *) NULL
|
||||
, 0, 0
|
||||
#endif
|
||||
);
|
||||
|
||||
);
|
||||
}
|
||||
/* Initialize NAS list */
|
||||
dedicatedInfoNASList = NULL;
|
||||
|
||||
@@ -5362,41 +5379,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);
|
||||
//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(
|
||||
ctxt_pP->module_id,
|
||||
ue_context_pP->ue_context.primaryCC_id,
|
||||
0,0,0,0,0,
|
||||
if (RC.rrc[ctxt_pP->module_id]->node_type == ngran_eNB) {
|
||||
rrc_mac_config_req_eNB(
|
||||
ctxt_pP->module_id,
|
||||
ue_context_pP->ue_context.primaryCC_id,
|
||||
0,0,0,0,0,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
0,
|
||||
0,
|
||||
#endif
|
||||
ue_context_pP->ue_context.rnti,
|
||||
(BCCH_BCH_Message_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
ue_context_pP->ue_context.rnti,
|
||||
(BCCH_BCH_Message_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
#endif
|
||||
ue_context_pP->ue_context.physicalConfigDedicated,
|
||||
ue_context_pP->ue_context.physicalConfigDedicated,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
|
||||
(SCellToAddMod_r10_t *)NULL,
|
||||
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
(SCellToAddMod_r10_t *)NULL,
|
||||
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
#endif
|
||||
(MeasObjectToAddMod_t **) NULL,
|
||||
ue_context_pP->ue_context.mac_MainConfig,
|
||||
1,
|
||||
SRB1_logicalChannelConfig,
|
||||
ue_context_pP->ue_context.measGapConfig,
|
||||
(TDD_Config_t *) NULL,
|
||||
(MobilityControlInfo_t *) mobilityInfo,
|
||||
(SchedulingInfoList_t *) NULL, 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
|
||||
(MeasObjectToAddMod_t **) NULL,
|
||||
ue_context_pP->ue_context.mac_MainConfig,
|
||||
1,
|
||||
SRB1_logicalChannelConfig,
|
||||
ue_context_pP->ue_context.measGapConfig,
|
||||
(TDD_Config_t *) NULL,
|
||||
(MobilityControlInfo_t *) mobilityInfo,
|
||||
(SchedulingInfoList_t *) NULL, 0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
|
||||
#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
|
||||
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
|
||||
,
|
||||
(SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
,
|
||||
(SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
#endif
|
||||
);
|
||||
|
||||
);
|
||||
}
|
||||
/*
|
||||
handoverCommand.criticalExtensions.present = HandoverCommand__criticalExtensions_PR_c1;
|
||||
handoverCommand.criticalExtensions.choice.c1.present = HandoverCommand__criticalExtensions__c1_PR_handoverCommand_r8;
|
||||
@@ -5520,19 +5538,22 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
|
||||
, (PMCH_InfoList_r9_t *) NULL
|
||||
#endif
|
||||
,NULL);
|
||||
// Refresh SRBs/DRBs
|
||||
rrc_rlc_config_asn1_req(
|
||||
ctxt_pP,
|
||||
SRB_configList, // NULL, //LG-RK 14/05/2014 SRB_configList,
|
||||
DRB_configList,
|
||||
// (DRB_ToReleaseList_t *) NULL
|
||||
DRB_Release_configList2
|
||||
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) ) {
|
||||
// Refresh SRBs/DRBs
|
||||
rrc_rlc_config_asn1_req(
|
||||
ctxt_pP,
|
||||
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))
|
||||
, (PMCH_InfoList_r9_t *) NULL
|
||||
, 0, 0
|
||||
, (PMCH_InfoList_r9_t *) NULL
|
||||
, 0, 0
|
||||
#endif
|
||||
);
|
||||
|
||||
);
|
||||
}
|
||||
// set the SRB active in Ue context
|
||||
if (SRB_configList != NULL) {
|
||||
for (i = 0; (i < SRB_configList->list.count) && (i < 3); i++) {
|
||||
@@ -5634,100 +5655,107 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
|
||||
DRB2LCHAN[i] = (uint8_t) * DRB_configList->list.array[i]->logicalChannelIdentity;
|
||||
}
|
||||
|
||||
rrc_mac_config_req_eNB(
|
||||
ctxt_pP->module_id,
|
||||
ue_context_pP->ue_context.primaryCC_id,
|
||||
0,0,0,0,0,
|
||||
if (RC.rrc[ctxt_pP->module_id]->node_type == ngran_eNB) {
|
||||
rrc_mac_config_req_eNB(
|
||||
ctxt_pP->module_id,
|
||||
ue_context_pP->ue_context.primaryCC_id,
|
||||
0,0,0,0,0,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
0,
|
||||
0,
|
||||
#endif
|
||||
ue_context_pP->ue_context.rnti,
|
||||
(BCCH_BCH_Message_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
ue_context_pP->ue_context.rnti,
|
||||
(BCCH_BCH_Message_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
#endif
|
||||
ue_context_pP->ue_context.physicalConfigDedicated,
|
||||
ue_context_pP->ue_context.physicalConfigDedicated,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
|
||||
(SCellToAddMod_r10_t *)NULL,
|
||||
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
(SCellToAddMod_r10_t *)NULL,
|
||||
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
#endif
|
||||
(MeasObjectToAddMod_t **) NULL,
|
||||
ue_context_pP->ue_context.mac_MainConfig,
|
||||
DRB2LCHAN[i],
|
||||
DRB_configList->list.array[i]->logicalChannelConfig,
|
||||
ue_context_pP->ue_context.measGapConfig,
|
||||
(TDD_Config_t *) NULL,
|
||||
NULL,
|
||||
(SchedulingInfoList_t *) NULL,
|
||||
0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
|
||||
(MeasObjectToAddMod_t **) NULL,
|
||||
ue_context_pP->ue_context.mac_MainConfig,
|
||||
DRB2LCHAN[i],
|
||||
DRB_configList->list.array[i]->logicalChannelConfig,
|
||||
ue_context_pP->ue_context.measGapConfig,
|
||||
(TDD_Config_t *) NULL,
|
||||
NULL,
|
||||
(SchedulingInfoList_t *) NULL,
|
||||
0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
|
||||
#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
|
||||
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
|
||||
,
|
||||
(SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
,
|
||||
(SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
#endif
|
||||
);
|
||||
|
||||
} else { // remove LCHAN from MAC/PHY
|
||||
);
|
||||
}
|
||||
} else { // remove LCHAN from MAC/PHY
|
||||
|
||||
if (ue_context_pP->ue_context.DRB_active[drb_id] == 1) {
|
||||
// DRB has just been removed so remove RLC + PDCP for DRB
|
||||
/* rrc_pdcp_config_req (ctxt_pP->module_id, frameP, 1, CONFIG_ACTION_REMOVE,
|
||||
(ue_mod_idP * NB_RB_MAX) + DRB2LCHAN[i],UNDEF_SECURITY_MODE);
|
||||
*/
|
||||
rrc_rlc_config_req(
|
||||
ctxt_pP,
|
||||
SRB_FLAG_NO,
|
||||
MBMS_FLAG_NO,
|
||||
CONFIG_ACTION_REMOVE,
|
||||
DRB2LCHAN[i],
|
||||
Rlc_info_um);
|
||||
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_rlc_config_req(
|
||||
ctxt_pP,
|
||||
SRB_FLAG_NO,
|
||||
MBMS_FLAG_NO,
|
||||
CONFIG_ACTION_REMOVE,
|
||||
DRB2LCHAN[i],
|
||||
Rlc_info_um);
|
||||
}
|
||||
}
|
||||
|
||||
ue_context_pP->ue_context.DRB_active[drb_id] = 0;
|
||||
LOG_D(RRC,
|
||||
PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (DRB) ---> MAC_eNB\n",
|
||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
|
||||
rrc_mac_config_req_eNB(ctxt_pP->module_id,
|
||||
ue_context_pP->ue_context.primaryCC_id,
|
||||
0,0,0,0,0,
|
||||
if (RC.rrc[ctxt_pP->module_id]->node_type == ngran_eNB) {
|
||||
rrc_mac_config_req_eNB(ctxt_pP->module_id,
|
||||
ue_context_pP->ue_context.primaryCC_id,
|
||||
0,0,0,0,0,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
0,
|
||||
0,
|
||||
#endif
|
||||
ue_context_pP->ue_context.rnti,
|
||||
(BCCH_BCH_Message_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
ue_context_pP->ue_context.rnti,
|
||||
(BCCH_BCH_Message_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
#endif
|
||||
ue_context_pP->ue_context.physicalConfigDedicated,
|
||||
ue_context_pP->ue_context.physicalConfigDedicated,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
|
||||
(SCellToAddMod_r10_t *)NULL,
|
||||
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
(SCellToAddMod_r10_t *)NULL,
|
||||
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
#endif
|
||||
(MeasObjectToAddMod_t **) NULL,
|
||||
ue_context_pP->ue_context.mac_MainConfig,
|
||||
DRB2LCHAN[i],
|
||||
(LogicalChannelConfig_t *) NULL,
|
||||
(MeasGapConfig_t *) NULL,
|
||||
(TDD_Config_t *) NULL,
|
||||
NULL,
|
||||
(SchedulingInfoList_t *) NULL,
|
||||
0, NULL, NULL, NULL
|
||||
(MeasObjectToAddMod_t **) NULL,
|
||||
ue_context_pP->ue_context.mac_MainConfig,
|
||||
DRB2LCHAN[i],
|
||||
(LogicalChannelConfig_t *) NULL,
|
||||
(MeasGapConfig_t *) NULL,
|
||||
(TDD_Config_t *) NULL,
|
||||
NULL,
|
||||
(SchedulingInfoList_t *) NULL,
|
||||
0, NULL, NULL, NULL
|
||||
#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
|
||||
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
|
||||
,
|
||||
(SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
,
|
||||
(SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
free(DRB_configList);
|
||||
free(DRB_configList);
|
||||
ue_context_pP->ue_context.DRB_configList2[xid] = NULL;
|
||||
}
|
||||
|
||||
@@ -5832,41 +5860,43 @@ rrc_eNB_generate_RRCConnectionSetup(
|
||||
LOG_D(RRC,
|
||||
PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (SRB1) ---> MAC_eNB\n",
|
||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
|
||||
rrc_mac_config_req_eNB(
|
||||
ctxt_pP->module_id,
|
||||
ue_context_pP->ue_context.primaryCC_id,
|
||||
0,0,0,0,0,
|
||||
if (RC.rrc[ctxt_pP->module_id]->node_type == ngran_eNB) {
|
||||
rrc_mac_config_req_eNB(
|
||||
ctxt_pP->module_id,
|
||||
ue_context_pP->ue_context.primaryCC_id,
|
||||
0,0,0,0,0,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
0,
|
||||
0,
|
||||
#endif
|
||||
ue_context_pP->ue_context.rnti,
|
||||
(BCCH_BCH_Message_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
ue_context_pP->ue_context.rnti,
|
||||
(BCCH_BCH_Message_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
(RadioResourceConfigCommonSIB_t *) NULL,
|
||||
#endif
|
||||
ue_context_pP->ue_context.physicalConfigDedicated,
|
||||
ue_context_pP->ue_context.physicalConfigDedicated,
|
||||
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
|
||||
(SCellToAddMod_r10_t *)NULL,
|
||||
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
(SCellToAddMod_r10_t *)NULL,
|
||||
//(struct PhysicalConfigDedicatedSCell_r10 *)NULL,
|
||||
#endif
|
||||
(MeasObjectToAddMod_t **) NULL,
|
||||
ue_context_pP->ue_context.mac_MainConfig,
|
||||
1,
|
||||
SRB1_logicalChannelConfig,
|
||||
ue_context_pP->ue_context.measGapConfig,
|
||||
(TDD_Config_t *) NULL,
|
||||
NULL,
|
||||
(SchedulingInfoList_t *) NULL,
|
||||
0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
|
||||
(MeasObjectToAddMod_t **) NULL,
|
||||
ue_context_pP->ue_context.mac_MainConfig,
|
||||
1,
|
||||
SRB1_logicalChannelConfig,
|
||||
ue_context_pP->ue_context.measGapConfig,
|
||||
(TDD_Config_t *) NULL,
|
||||
NULL,
|
||||
(SchedulingInfoList_t *) NULL,
|
||||
0, NULL, NULL, (MBSFN_SubframeConfigList_t *) NULL
|
||||
#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
|
||||
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
|
||||
,
|
||||
(SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
,
|
||||
(SystemInformationBlockType1_v1310_IEs_t *)NULL
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6345,16 +6375,20 @@ rrc_eNB_decode_ccch(
|
||||
#endif
|
||||
,NULL);
|
||||
|
||||
|
||||
rrc_rlc_config_asn1_req(ctxt_pP,
|
||||
ue_context_p->ue_context.SRB_configList,
|
||||
(DRB_ToAddModList_t*) NULL,
|
||||
(DRB_ToReleaseList_t*) NULL
|
||||
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_rlc_config_asn1_req(ctxt_pP,
|
||||
ue_context_p->ue_context.SRB_configList,
|
||||
(DRB_ToAddModList_t*) NULL,
|
||||
(DRB_ToReleaseList_t*) NULL
|
||||
#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0))
|
||||
, (PMCH_InfoList_r9_t *) NULL,
|
||||
0,0
|
||||
, (PMCH_InfoList_r9_t *) NULL,
|
||||
0,0
|
||||
# endif
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
#endif //NO_RRM
|
||||
}
|
||||
break;
|
||||
@@ -6409,6 +6443,7 @@ rrc_eNB_decode_ccch(
|
||||
ue_context_p->ue_context.ul_failure_timer = 20000;
|
||||
}
|
||||
ue_context_p = rrc_eNB_get_next_free_ue_context(ctxt_pP, random_value);
|
||||
ue_context_p->ue_context.Srb0.Active=1;
|
||||
} else if (InitialUE_Identity_PR_s_TMSI == rrcConnectionRequest->ue_Identity.present) {
|
||||
/* Save s-TMSI */
|
||||
S_TMSI_t s_TMSI = rrcConnectionRequest->ue_Identity.choice.s_TMSI;
|
||||
@@ -6417,7 +6452,16 @@ rrc_eNB_decode_ccch(
|
||||
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))) {
|
||||
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;
|
||||
/* replace rnti in the context */
|
||||
/* for that, remove the context from the RB tree */
|
||||
@@ -7521,8 +7565,8 @@ rrc_enb_task(
|
||||
eNB_RRC_UE_t *ue_p = &ue_context_p->ue_context;
|
||||
srb_info_p = &ue_p->Srb0;
|
||||
|
||||
LOG_I(RRC,"Decoding CCCH : inst %d, CC_id %d, ctxt %p, sib_info_p->Rx_buffer.payload_size %d\n",
|
||||
rrc_inst,CC_id,&ctxt, RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size);
|
||||
LOG_I(RRC,"Decoding CCCH : inst %d, CC_id %d, ue_context %p (rnti %x), sib_info_p->Rx_buffer.payload_size %d\n",
|
||||
rrc_inst,CC_id,ue_p, ue_p->rnti,RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size);
|
||||
if (RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size >= RRC_BUFFER_SIZE_MAX) {
|
||||
LOG_I(RRC, "CCCH message has size %d > %d\n",RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size,RRC_BUFFER_SIZE_MAX);
|
||||
break;
|
||||
@@ -7531,6 +7575,7 @@ rrc_enb_task(
|
||||
RRC_MAC_CCCH_DATA_IND(msg_p).sdu,
|
||||
RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size);
|
||||
srb_info_p->Rx_buffer.payload_size = RRC_MAC_CCCH_DATA_IND(msg_p).sdu_size;
|
||||
srb_info_p->Active = 1;
|
||||
|
||||
rrc_eNB_decode_ccch(&ctxt, srb_info_p->Rx_buffer.Payload,srb_info_p->Rx_buffer.payload_size, CC_id);
|
||||
break;
|
||||
|
||||
@@ -24,12 +24,12 @@ eNBs =
|
||||
tr_s_preference = "f1"
|
||||
|
||||
local_s_if_name = "lo";
|
||||
remote_s_address = "127.0.0.1";
|
||||
local_s_address = "127.0.0.2";
|
||||
local_s_portc = 60001;
|
||||
remote_s_portc = 60000;
|
||||
local_s_portd = 60011;
|
||||
remote_s_portd = 60010;
|
||||
remote_s_address = "127.0.0.3";
|
||||
local_s_address = "127.0.0.4";
|
||||
local_s_portc = 501;
|
||||
remote_s_portc = 500;
|
||||
local_s_portd = 601;
|
||||
remote_s_portd = 600;
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
|
||||
@@ -13,9 +13,9 @@ eNBs =
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = "1";
|
||||
|
||||
mobile_country_code = "001";
|
||||
mobile_country_code = "208";
|
||||
|
||||
mobile_network_code = "01";
|
||||
mobile_network_code = "93";
|
||||
|
||||
nr_cellid = 12345678L
|
||||
|
||||
@@ -60,13 +60,13 @@ MACRLCs = (
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "f1";
|
||||
local_n_if_name = "vlan203";
|
||||
remote_n_address = "192.168.203.16";
|
||||
local_n_address = "192.168.203.242";
|
||||
local_n_portc = 60000;
|
||||
remote_n_portc = 60001;
|
||||
local_n_portd = 60010;
|
||||
remote_n_portd = 60011;
|
||||
local_n_if_name = "lo";
|
||||
remote_n_address = "127.0.0.4";
|
||||
local_n_address = "127.0.0.3";
|
||||
local_n_portc = 500;
|
||||
remote_n_portc = 501;
|
||||
local_n_portd = 600;
|
||||
remote_n_portd = 601;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -80,8 +80,8 @@ L1s = (
|
||||
RUs = (
|
||||
{
|
||||
local_if_name = "enp4s0f1";
|
||||
local_address = "192.168.41.3";
|
||||
remote_address = "192.168.41.1";
|
||||
local_address = "127.0.0.1";
|
||||
remote_address = "127.0.0.2";
|
||||
local_portc = 50000;
|
||||
remote_portc = 50000;
|
||||
local_portd = 50001;
|
||||
|
||||
Reference in New Issue
Block a user