Commit e3f15a16 authored by Siddharth Rana's avatar Siddharth Rana

Merge branch '3GPP_TTCN_System_Simulator' into 6126_changes

parents 1b0db4e4 54c9059e
...@@ -336,7 +336,7 @@ typedef struct InterFreqCarrierFreqInfo_s { ...@@ -336,7 +336,7 @@ typedef struct InterFreqCarrierFreqInfo_s {
bool presenceAntennaPort1; bool presenceAntennaPort1;
bool cellReselectionPriority_Present; bool cellReselectionPriority_Present;
long *cellReselectionPriority;/* OPTIONAL */ long *cellReselectionPriority;/* OPTIONAL */
LTE_NeighCellConfig_t neighCellConfig; uint8_t neighCellConfig;
bool q_OffsetFreqPresent; bool q_OffsetFreqPresent;
e_LTE_Q_OffsetRange *q_OffsetFreq;/* OPTIONAL */ e_LTE_Q_OffsetRange *q_OffsetFreq;/* OPTIONAL */
bool interFreqNeighCellList_Present; bool interFreqNeighCellList_Present;
...@@ -477,6 +477,9 @@ typedef struct RrcConfigurationReq_s { ...@@ -477,6 +477,9 @@ typedef struct RrcConfigurationReq_s {
long cellReselectionPriority[MAX_NUM_CCs]; long cellReselectionPriority[MAX_NUM_CCs];
long sib3_q_RxLevMin[MAX_NUM_CCs]; long sib3_q_RxLevMin[MAX_NUM_CCs];
long t_ReselectionEUTRA[MAX_NUM_CCs]; long t_ReselectionEUTRA[MAX_NUM_CCs];
uint8_t neighCellConfig[MAX_NUM_CCs];
long *sib3_q_QualMin[MAX_NUM_CCs];
long *sib3_threshServingLowQ[MAX_NUM_CCs];
//SIB4 //SIB4
bool sib4_Present[MAX_NUM_CCs]; bool sib4_Present[MAX_NUM_CCs];
......
...@@ -1518,6 +1518,9 @@ int RCconfig_nr_parallel(void) { ...@@ -1518,6 +1518,9 @@ int RCconfig_nr_parallel(void) {
if(parallel_config == NULL) set_parallel_conf(parallel_conf); if(parallel_config == NULL) set_parallel_conf(parallel_conf);
if(worker_config == NULL) set_worker_conf(worker_conf); if(worker_config == NULL) set_worker_conf(worker_conf);
RRM_FREE(worker_conf);
RRM_FREE(parallel_conf);
return 0; return 0;
} }
......
...@@ -908,7 +908,7 @@ generate_Msg4(module_id_t module_idP, ...@@ -908,7 +908,7 @@ generate_Msg4(module_id_t module_idP,
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "LTE_MAC_DL_PDU", mac->frame, mac->subframe, mac_pkt, (uint8_t *)mac->UE_info.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], (int)ra->msg4_rrc_sdu_length); LOG_MAC_P(OAILOG_DEBUG, "LTE_MAC_DL_PDU", mac->frame, mac->subframe, mac_pkt, (uint8_t *)mac->UE_info.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], (int)ra->msg4_rrc_sdu_length);
} // Msg4 frame/subframe } // Msg4 frame/subframe
} // rach_resource_type > 0 } // rach_resource_type > 0
else { else {
...@@ -1112,7 +1112,7 @@ generate_Msg4(module_id_t module_idP, ...@@ -1112,7 +1112,7 @@ generate_Msg4(module_id_t module_idP,
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "LTE_MAC_DL_PDU", mac->frame, mac->subframe, mac_pkt, (uint8_t *)mac->UE_info.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], (int)rrc_sdu_length); LOG_MAC_P(OAILOG_DEBUG, "LTE_MAC_DL_PDU", mac->frame, mac->subframe, mac_pkt, (uint8_t *)mac->UE_info.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], (int)rrc_sdu_length);
if(RC.mac[module_idP]->scheduler_mode == SCHED_MODE_FAIR_RR) { if(RC.mac[module_idP]->scheduler_mode == SCHED_MODE_FAIR_RR) {
set_dl_ue_select_msg4(CC_idP, 4, UE_id, ra->rnti); set_dl_ue_select_msg4(CC_idP, 4, UE_id, ra->rnti);
} }
...@@ -1733,7 +1733,7 @@ generate_macCeRrcConnectionSetup(module_id_t module_idP, ...@@ -1733,7 +1733,7 @@ generate_macCeRrcConnectionSetup(module_id_t module_idP,
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "LTE_MAC_DL_PDU", mac->frame, mac->subframe, mac_pkt, (uint8_t *)mac->UE_info.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], (int)rrc_sdu_length); LOG_MAC_P(OAILOG_DEBUG, "LTE_MAC_DL_PDU", mac->frame, mac->subframe, mac_pkt, (uint8_t *)mac->UE_info.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], (int)rrc_sdu_length);
} }
} }
else else
......
...@@ -287,7 +287,7 @@ schedule_SIB1_MBMS(module_id_t module_idP, ...@@ -287,7 +287,7 @@ schedule_SIB1_MBMS(module_id_t module_idP,
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "LTE_MAC_DL_PDU", eNB->frame, eNB->subframe, mac_pkt, (uint8_t *)&cc->BCCH_BR_pdu[0].payload[0], (int)bcch_sdu_length); LOG_MAC_P(OAILOG_DEBUG, "LTE_MAC_DL_PDU", eNB->frame, eNB->subframe, mac_pkt, (uint8_t *)&cc->BCCH_BR_pdu[0].payload[0], (int)bcch_sdu_length);
if (cc->tdd_Config != NULL) { //TDD if (cc->tdd_Config != NULL) { //TDD
LOG_D(MAC, LOG_D(MAC,
...@@ -519,7 +519,7 @@ schedule_SIB1_BR(module_id_t module_idP, ...@@ -519,7 +519,7 @@ schedule_SIB1_BR(module_id_t module_idP,
mac_pkt.rnti = 0xffff; mac_pkt.rnti = 0xffff;
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "LTE_MAC_DL_PDU", eNB->frame, eNB->subframe, mac_pkt, (uint8_t *)&cc->BCCH_BR_pdu[0].payload[0], (int)bcch_sdu_length); LOG_MAC_P(OAILOG_DEBUG, "LTE_MAC_DL_PDU", eNB->frame, eNB->subframe, mac_pkt, (uint8_t *)&cc->BCCH_BR_pdu[0].payload[0], (int)bcch_sdu_length);
if (cc->tdd_Config != NULL) { //TDD if (cc->tdd_Config != NULL) { //TDD
LOG_D(MAC, LOG_D(MAC,
...@@ -711,7 +711,7 @@ schedule_SI_BR(module_id_t module_idP, frame_t frameP, ...@@ -711,7 +711,7 @@ schedule_SI_BR(module_id_t module_idP, frame_t frameP,
mac_pkt.rnti = 0xffff; mac_pkt.rnti = 0xffff;
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "LTE_MAC_DL_PDU", eNB->frame, eNB->subframe, mac_pkt, (uint8_t *)&cc->BCCH_BR_pdu[i+1].payload[0], (int)bcch_sdu_length); LOG_MAC_P(OAILOG_DEBUG, "LTE_MAC_DL_PDU", eNB->frame, eNB->subframe, mac_pkt, (uint8_t *)&cc->BCCH_BR_pdu[i+1].payload[0], (int)bcch_sdu_length);
if (cc->tdd_Config != NULL) { //TDD if (cc->tdd_Config != NULL) { //TDD
LOG_D(MAC, "[eNB] Frame %d : Scheduling BCCH-BR %d->DLSCH (TDD) for CC_id %d SI-BR %d bytes\n", LOG_D(MAC, "[eNB] Frame %d : Scheduling BCCH-BR %d->DLSCH (TDD) for CC_id %d SI-BR %d bytes\n",
...@@ -1245,7 +1245,7 @@ schedule_SI(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) ...@@ -1245,7 +1245,7 @@ schedule_SI(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP)
mac_pkt.rnti = 0xffff; mac_pkt.rnti = 0xffff;
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "LTE_MAC_DL_PDU", eNB->frame, eNB->subframe, mac_pkt, (uint8_t *)&cc->BCCH_pdu.payload[0], (int)bcch_sdu_length); LOG_MAC_P(OAILOG_TRACE, "LTE_MAC_DL_PDU", eNB->frame, eNB->subframe, mac_pkt, (uint8_t *)&cc->BCCH_pdu.payload[0], (int)bcch_sdu_length);
if (cc->tdd_Config != NULL) { //TDD if (cc->tdd_Config != NULL) { //TDD
LOG_D(MAC, LOG_D(MAC,
......
...@@ -1029,7 +1029,7 @@ schedule_ue_spec(module_id_t module_idP, ...@@ -1029,7 +1029,7 @@ schedule_ue_spec(module_id_t module_idP,
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "LTE_MAC_DL_PDU", eNB->frame, eNB->subframe, mac_pkt, (uint8_t *)dlsch_pdu->payload[0], (int)TBS); LOG_MAC_P(OAILOG_DEBUG, "LTE_MAC_DL_PDU", eNB->frame, eNB->subframe, mac_pkt, (uint8_t *)dlsch_pdu->payload[0], (int)TBS);
trace_pdu(DIRECTION_DOWNLINK, trace_pdu(DIRECTION_DOWNLINK,
(uint8_t *) dlsch_pdu->payload[0], (uint8_t *) dlsch_pdu->payload[0],
TBS, TBS,
...@@ -1702,7 +1702,7 @@ schedule_ue_spec_br(module_id_t module_idP, ...@@ -1702,7 +1702,7 @@ schedule_ue_spec_br(module_id_t module_idP,
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "LTE_MAC_DL_PDU", mac->frame, mac->subframe, mac_pkt, (uint8_t *)UE_info->DLSCH_pdu[CC_id][0][UE_id].payload[0], (int)TBS); LOG_MAC_P(OAILOG_DEBUG, "LTE_MAC_DL_PDU", mac->frame, mac->subframe, mac_pkt, (uint8_t *)UE_info->DLSCH_pdu[CC_id][0][UE_id].payload[0], (int)TBS);
trace_pdu(DIRECTION_DOWNLINK, trace_pdu(DIRECTION_DOWNLINK,
(uint8_t *)UE_info->DLSCH_pdu[CC_id][0][UE_id].payload[0], (uint8_t *)UE_info->DLSCH_pdu[CC_id][0][UE_id].payload[0],
TBS, TBS,
...@@ -1923,7 +1923,7 @@ schedule_ue_spec_br(module_id_t module_idP, ...@@ -1923,7 +1923,7 @@ schedule_ue_spec_br(module_id_t module_idP,
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "LTE_MAC_DL_PDU", frameP, subframeP, mac_pkt, (uint8_t *)mac->UE_info.DLSCH_pdu[CC_id][0][(unsigned char) UE_id].payload[0], (int)TX_req->pdu_length); LOG_MAC_P(OAILOG_DEBUG, "LTE_MAC_DL_PDU", frameP, subframeP, mac_pkt, (uint8_t *)mac->UE_info.DLSCH_pdu[CC_id][0][(unsigned char) UE_id].payload[0], (int)TX_req->pdu_length);
} // end else if ((subframeP == 7) && (round_DL < 8)) } // end else if ((subframeP == 7) && (round_DL < 8))
} // end loop on UE_id } // end loop on UE_id
} }
...@@ -2466,7 +2466,7 @@ schedule_PCH(module_id_t module_idP, ...@@ -2466,7 +2466,7 @@ schedule_PCH(module_id_t module_idP,
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "LTE_MAC_PCCH_PDU", eNB->frame, eNB->subframe, mac_pkt, (uint8_t *)&eNB->common_channels[CC_id].PCCH_pdu.payload[0], (int)pcch_sdu_length); LOG_MAC_P(OAILOG_DEBUG, "LTE_MAC_PCCH_PDU", eNB->frame, eNB->subframe, mac_pkt, (uint8_t *)&eNB->common_channels[CC_id].PCCH_pdu.payload[0], (int)pcch_sdu_length);
trace_pdu(DIRECTION_DOWNLINK, trace_pdu(DIRECTION_DOWNLINK,
&eNB->common_channels[CC_id].PCCH_pdu.payload[0], &eNB->common_channels[CC_id].PCCH_pdu.payload[0],
pcch_sdu_length, pcch_sdu_length,
......
...@@ -1943,7 +1943,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP, ...@@ -1943,7 +1943,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
mac_pkt.rnti = UE_RNTI(module_idP,UE_id); mac_pkt.rnti = UE_RNTI(module_idP,UE_id);
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "LTE_MAC_DL_PDU", eNB->frame, eNB->subframe, mac_pkt, (uint8_t *)UE_info->DLSCH_pdu[CC_id][0][UE_id].payload[0], (int)TBS); LOG_MAC_P(OAILOG_DEBUG, "LTE_MAC_DL_PDU", eNB->frame, eNB->subframe, mac_pkt, (uint8_t *)UE_info->DLSCH_pdu[CC_id][0][UE_id].payload[0], (int)TBS);
trace_pdu(DIRECTION_DOWNLINK, (uint8_t *)UE_info->DLSCH_pdu[CC_id][0][UE_id].payload[0], trace_pdu(DIRECTION_DOWNLINK, (uint8_t *)UE_info->DLSCH_pdu[CC_id][0][UE_id].payload[0],
TBS, module_idP, WS_C_RNTI, UE_RNTI(module_idP, UE_id), TBS, module_idP, WS_C_RNTI, UE_RNTI(module_idP, UE_id),
eNB->frame, eNB->subframe,0,0); eNB->frame, eNB->subframe,0,0);
......
...@@ -148,7 +148,7 @@ rx_sdu(const module_id_t enb_mod_idP, ...@@ -148,7 +148,7 @@ rx_sdu(const module_id_t enb_mod_idP,
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "LTE_MAC_UL_PDU", frameP, subframeP, mac_pkt, (uint8_t *)sduP, (int)sdu_lenP); LOG_MAC_P(OAILOG_DEBUG, "LTE_MAC_UL_PDU", frameP, subframeP, mac_pkt, (uint8_t *)sduP, (int)sdu_lenP);
if (UE_id != -1) { if (UE_id != -1) {
UE_scheduling_control = &UE_info->UE_sched_ctrl[UE_id]; UE_scheduling_control = &UE_info->UE_sched_ctrl[UE_id];
......
...@@ -1219,7 +1219,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra ...@@ -1219,7 +1219,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
long BWPStart = 0; long BWPStart = 0;
long BWPSize = 0; long BWPSize = 0;
NR_Type0_PDCCH_CSS_config_t *type0_PDCCH_CSS_config = NULL; NR_Type0_PDCCH_CSS_config_t *type0_PDCCH_CSS_config = NULL;
LOG_D(NR_MAC, "controlResourceSetId:%d locationAndBandwidth:%d genericParameters.locationAndBandwidth:%d \n", LOG_D(NR_MAC, "controlResourceSetId:%ld locationAndBandwidth:%ld genericParameters.locationAndBandwidth:%ld \n",
*ss->controlResourceSetId, *ss->controlResourceSetId,
genericParameters->locationAndBandwidth, genericParameters->locationAndBandwidth,
scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.locationAndBandwidth); scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.locationAndBandwidth);
...@@ -1488,7 +1488,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra ...@@ -1488,7 +1488,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
mac_pkt.rnti = ra->RA_rnti; mac_pkt.rnti = ra->RA_rnti;
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "MAC_DL_RAR_PDU", frameP, slotP, mac_pkt, (uint8_t *)&tx_req->TLVs[0].value.direct[0], (int)tx_req->TLVs[0].length); LOG_MAC_P(OAILOG_DEBUG, "MAC_DL_RAR_PDU", frameP, slotP, mac_pkt, (uint8_t *)&tx_req->TLVs[0].value.direct[0], (int)tx_req->TLVs[0].length);
tx_req->PDU_length = pdsch_pdu_rel15->TBSize[0]; tx_req->PDU_length = pdsch_pdu_rel15->TBSize[0];
tx_req->PDU_index = pduindex; tx_req->PDU_index = pduindex;
...@@ -1714,7 +1714,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra ...@@ -1714,7 +1714,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
rbSize, nrOfSymbols, N_PRB_DMRS * N_DMRS_SLOT, 0, tb_scaling,1) >> 3; rbSize, nrOfSymbols, N_PRB_DMRS * N_DMRS_SLOT, 0, tb_scaling,1) >> 3;
} while (harq->tb_size < ra->mac_pdu_length && mcsIndex<=28); } while (harq->tb_size < ra->mac_pdu_length && mcsIndex<=28);
LOG_D(NR_MAC, "rbSize:%d rbStart:%d BWPSize:%d BWPStart:%d startSymbolIndex:%d nrOfSymbols:%d\n", LOG_D(NR_MAC, "rbSize:%d rbStart:%d BWPSize:%ld BWPStart:%ld startSymbolIndex:%d nrOfSymbols:%d\n",
rbSize, rbSize,
rbStart, rbStart,
BWPSize, BWPSize,
...@@ -1896,7 +1896,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra ...@@ -1896,7 +1896,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
mac_pkt.rnti = ra->rnti; mac_pkt.rnti = ra->rnti;
mac_pkt.harq_pid = current_harq_pid; mac_pkt.harq_pid = current_harq_pid;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "MAC_DL_PDU", frameP, slotP, mac_pkt, (uint8_t *)harq->tb, (int)harq->tb_size); LOG_MAC_P(OAILOG_DEBUG, "MAC_DL_PDU", frameP, slotP, mac_pkt, (uint8_t *)harq->tb, (int)harq->tb_size);
// DL TX request // DL TX request
nfapi_nr_pdu_t *tx_req = &nr_mac->TX_req[CC_id].pdu_list[nr_mac->TX_req[CC_id].Number_of_PDUs]; nfapi_nr_pdu_t *tx_req = &nr_mac->TX_req[CC_id].pdu_list[nr_mac->TX_req[CC_id].Number_of_PDUs];
......
...@@ -700,7 +700,7 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP) ...@@ -700,7 +700,7 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
mac_pkt.rnti = SI_RNTI; mac_pkt.rnti = SI_RNTI;
mac_pkt.harq_pid = 0; mac_pkt.harq_pid = 0;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "MAC_DL_PDU", frameP, slotP, mac_pkt, (uint8_t *)sib1_payload, (int)sib1_sdu_length); LOG_MAC_P(OAILOG_DEBUG, "MAC_DL_PDU", frameP, slotP, mac_pkt, (uint8_t *)sib1_payload, (int)sib1_sdu_length);
} }
} }
} }
...@@ -1330,7 +1330,7 @@ void nr_schedule_ue_spec(module_id_t module_id, ...@@ -1330,7 +1330,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
mac_pkt.rnti = rnti; mac_pkt.rnti = rnti;
mac_pkt.harq_pid = current_harq_pid; mac_pkt.harq_pid = current_harq_pid;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "MAC_RETRANSMISSION_DL_PDU", frame, slot, mac_pkt, (uint8_t *)harq->tb, (int)TBS); LOG_MAC_P(OAILOG_DEBUG, "MAC_RETRANSMISSION_DL_PDU", frame, slot, mac_pkt, (uint8_t *)harq->tb, (int)TBS);
} else { /* initial transmission */ } else { /* initial transmission */
...@@ -1475,7 +1475,7 @@ void nr_schedule_ue_spec(module_id_t module_id, ...@@ -1475,7 +1475,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
mac_pkt.rnti = rnti; mac_pkt.rnti = rnti;
mac_pkt.harq_pid = current_harq_pid; mac_pkt.harq_pid = current_harq_pid;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "MAC_DL_PDU", frame, slot, mac_pkt, (uint8_t *)harq->tb, (int)TBS); LOG_MAC_P(OAILOG_DEBUG, "MAC_DL_PDU", frame, slot, mac_pkt, (uint8_t *)harq->tb, (int)TBS);
} }
const int ntx_req = gNB_mac->TX_req[CC_id].Number_of_PDUs; const int ntx_req = gNB_mac->TX_req[CC_id].Number_of_PDUs;
......
...@@ -688,7 +688,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP, ...@@ -688,7 +688,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
mac_pkt.rnti = current_rnti; mac_pkt.rnti = current_rnti;
mac_pkt.harq_pid = harq_pid; mac_pkt.harq_pid = harq_pid;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "MAC_UL_PDU", frameP, slotP, mac_pkt, (uint8_t *)sduP, (int)sdu_lenP); LOG_MAC_P(OAILOG_DEBUG, "MAC_UL_PDU", frameP, slotP, mac_pkt, (uint8_t *)sduP, (int)sdu_lenP);
} }
UE_info->mac_stats[UE_id].ulsch_total_bytes_rx += sdu_lenP; UE_info->mac_stats[UE_id].ulsch_total_bytes_rx += sdu_lenP;
...@@ -787,7 +787,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP, ...@@ -787,7 +787,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
mac_pkt.rnti = rntiP; mac_pkt.rnti = rntiP;
mac_pkt.harq_pid = -1; mac_pkt.harq_pid = -1;
mac_pkt.preamble = -1; /* TODO */ mac_pkt.preamble = -1; /* TODO */
LOG_MAC_P(OAILOG_INFO, "MAC_UL_PDU", frameP, slotP, mac_pkt, (uint8_t *)sduP, (int)sdu_lenP); LOG_MAC_P(OAILOG_DEBUG, "MAC_UL_PDU", frameP, slotP, mac_pkt, (uint8_t *)sduP, (int)sdu_lenP);
/* we don't know this UE (yet). Check whether there is a ongoing RA (Msg 3) /* we don't know this UE (yet). Check whether there is a ongoing RA (Msg 3)
* and check the corresponding UE's RNTI match, in which case we activate * and check the corresponding UE's RNTI match, in which case we activate
......
...@@ -268,7 +268,10 @@ static void do_pdcp_data_ind( ...@@ -268,7 +268,10 @@ static void do_pdcp_data_ind(
if (rb_id < 1 || rb_id > 2) if (rb_id < 1 || rb_id > 2)
rb = NULL; rb = NULL;
else { else {
rb = ue->srb[rb_id - 1]; if (ue != NULL && ue->srb[rb_id -1] != NULL)
{
rb = ue->srb[rb_id - 1];
}
(rb_id == 1)?(pdcp_pkt.bearerType = 4):(pdcp_pkt.bearerType = 1); (rb_id == 1)?(pdcp_pkt.bearerType = 4):(pdcp_pkt.bearerType = 1);
(rb_id == 1)?(pdcp_pkt.bearerId = 0):(pdcp_pkt.bearerId = 1); (rb_id == 1)?(pdcp_pkt.bearerId = 0):(pdcp_pkt.bearerId = 1);
pdcp_pkt.plane = 1; pdcp_pkt.plane = 1;
...@@ -277,7 +280,10 @@ static void do_pdcp_data_ind( ...@@ -277,7 +280,10 @@ static void do_pdcp_data_ind(
if (rb_id < 1 || rb_id > 5) if (rb_id < 1 || rb_id > 5)
rb = NULL; rb = NULL;
else { else {
rb = ue->drb[rb_id - 1]; if (ue != NULL)
{
rb = ue->drb[rb_id - 1];
}
pdcp_pkt.bearerType = 8; pdcp_pkt.bearerType = 8;
pdcp_pkt.bearerId = rb_id -1; pdcp_pkt.bearerId = rb_id -1;
pdcp_pkt.plane = 2; pdcp_pkt.plane = 2;
...@@ -1328,8 +1334,8 @@ static boolean_t pdcp_data_req_srb( ...@@ -1328,8 +1334,8 @@ static boolean_t pdcp_data_req_srb(
unsigned char *const sdu_buffer) unsigned char *const sdu_buffer)
{ {
LOG_D(PDCP, "%s() called, size %d\n", __func__, sdu_buffer_size); LOG_D(PDCP, "%s() called, size %d\n", __func__, sdu_buffer_size);
nr_pdcp_ue_t *ue; nr_pdcp_ue_t *ue = NULL;
nr_pdcp_entity_t *rb; nr_pdcp_entity_t *rb = NULL;
int rnti = ctxt_pP->rnti; int rnti = ctxt_pP->rnti;
if (ctxt_pP->module_id != 0 || if (ctxt_pP->module_id != 0 ||
...@@ -1344,24 +1350,24 @@ static boolean_t pdcp_data_req_srb( ...@@ -1344,24 +1350,24 @@ static boolean_t pdcp_data_req_srb(
/** TRACE PDCP PDU */ /** TRACE PDCP PDU */
if (NULL != ue && NULL != rb) { if (NULL != ue && NULL != rb) {
nr_pdcp_pkt_info_t pdcp_pkt; nr_pdcp_pkt_info_t pdcp_pkt;
pdcp_pkt.direction = 1; //PDCP_NR_DIRECTION_DOWNLINK memset(&pdcp_pkt, 0, sizeof(pdcp_pkt));
pdcp_pkt.ueid = ue->rnti; pdcp_pkt.direction = 1; //PDCP_NR_DIRECTION_DOWNLINK
pdcp_pkt.bearerType = 8; //TODO pdcp_pkt.ueid = ue->rnti;
pdcp_pkt.bearerId = rb_id - 1; pdcp_pkt.bearerType = 8; //TODO
pdcp_pkt.plane = (rb_id == 1)?4:1; pdcp_pkt.bearerId = rb_id - 1;
pdcp_pkt.plane = (rb_id == 1)?4:1;
pdcp_pkt.seqnum_length = rb->sn_size;
pdcp_pkt.maci_present = (rb->has_integrity)?1:0; pdcp_pkt.seqnum_length = rb->sn_size;
pdcp_pkt.ciphering_disabled = (rb->has_ciphering)?1:0; pdcp_pkt.maci_present = (rb->has_integrity)?1:0;
pdcp_pkt.sdap_header = (rb->has_sdapULheader)?1:0; pdcp_pkt.ciphering_disabled = (rb->has_ciphering)?1:0;
pdcp_pkt.is_retx = 0; pdcp_pkt.sdap_header = (rb->has_sdapULheader)?1:0;
pdcp_pkt.pdu_length = sdu_buffer_size; pdcp_pkt.is_retx = 0;
pdcp_pkt.pdu_length = sdu_buffer_size;
LOG_PDCP_P(OAILOG_INFO, "DL_PDCP_PDU", -1, -1, (pdcp_pkt), (unsigned char *)sdu_buffer, sdu_buffer_size);
LOG_PDCP_P(OAILOG_INFO, "DL_PDCP_PDU", -1, -1, (pdcp_pkt), (unsigned char *)sdu_buffer, sdu_buffer_size);
} }
nr_pdcp_manager_lock(nr_pdcp_ue_manager); nr_pdcp_manager_lock(nr_pdcp_ue_manager);
ue = nr_pdcp_manager_get_ue(nr_pdcp_ue_manager, rnti); ue = nr_pdcp_manager_get_ue(nr_pdcp_ue_manager, rnti);
...@@ -1428,20 +1434,25 @@ static boolean_t pdcp_data_req_drb( ...@@ -1428,20 +1434,25 @@ static boolean_t pdcp_data_req_drb(
/** TRACE PDCP PDU */ /** TRACE PDCP PDU */
nr_pdcp_pkt_info_t pdcp_pkt; nr_pdcp_pkt_info_t pdcp_pkt;
pdcp_pkt.direction = 1; //PDCP_NR_DIRECTION_DOWNLINK pdcp_pkt.direction = 1; //PDCP_NR_DIRECTION_DOWNLINK
pdcp_pkt.ueid = ue->rnti; if (ue != NULL)
{
pdcp_pkt.ueid = ue->rnti;
}
pdcp_pkt.bearerType = 8; //TODO pdcp_pkt.bearerType = 8; //TODO
pdcp_pkt.bearerId = rb_id - 1; pdcp_pkt.bearerId = rb_id - 1;
pdcp_pkt.plane = 2; pdcp_pkt.plane = 2;
pdcp_pkt.seqnum_length = rb->sn_size; if (rb != NULL)
pdcp_pkt.maci_present = (rb->has_integrity)?1:0; {
pdcp_pkt.ciphering_disabled = (rb->has_ciphering)?1:0; pdcp_pkt.seqnum_length = rb->sn_size;
pdcp_pkt.sdap_header = (rb->has_sdapULheader)?1:0; pdcp_pkt.maci_present = (rb->has_integrity)?1:0;
pdcp_pkt.ciphering_disabled = (rb->has_ciphering)?1:0;
pdcp_pkt.sdap_header = (rb->has_sdapULheader)?1:0;
}
pdcp_pkt.is_retx = 0; pdcp_pkt.is_retx = 0;
pdcp_pkt.pdu_length = sdu_buffer_size; pdcp_pkt.pdu_length = sdu_buffer_size;
LOG_PDCP_P(OAILOG_INFO, "DL_PDCP_PDU", -1, -1, (pdcp_pkt), (unsigned char *)sdu_buffer, sdu_buffer_size); LOG_PDCP_P(OAILOG_INFO, "DL_PDCP_PDU", -1, -1, (pdcp_pkt), (unsigned char *)sdu_buffer, sdu_buffer_size);
rb->recv_sdu(rb, (char *)sdu_buffer, sdu_buffer_size, muiP); rb->recv_sdu(rb, (char *)sdu_buffer, sdu_buffer_size, muiP);
nr_pdcp_manager_unlock(nr_pdcp_ue_manager); nr_pdcp_manager_unlock(nr_pdcp_ue_manager);
......
...@@ -1081,7 +1081,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, ...@@ -1081,7 +1081,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
} else { } else {
(*sib1)->systemInfoValueTag = 0; (*sib1)->systemInfoValueTag = 0;
} }
LOG_A(RRC,"Updating systemInfoValueTag Value: %d \n",(*sib1)->systemInfoValueTag); LOG_A(RRC,"Updating systemInfoValueTag Value: %ld \n",(*sib1)->systemInfoValueTag);
(*sib1)->nonCriticalExtension = calloc(1, sizeof(LTE_SystemInformationBlockType1_v890_IEs_t)); (*sib1)->nonCriticalExtension = calloc(1, sizeof(LTE_SystemInformationBlockType1_v890_IEs_t));
LTE_SystemInformationBlockType1_v890_IEs_t *sib1_890 = (*sib1)->nonCriticalExtension; LTE_SystemInformationBlockType1_v890_IEs_t *sib1_890 = (*sib1)->nonCriticalExtension;
sib1_890->lateNonCriticalExtension = NULL; sib1_890->lateNonCriticalExtension = NULL;
...@@ -1945,9 +1945,10 @@ uint8_t do_SIB23(uint8_t Mod_id, ...@@ -1945,9 +1945,10 @@ uint8_t do_SIB23(uint8_t Mod_id,
(*sib3)->intraFreqCellReselectionInfo.allowedMeasBandwidth=CALLOC(1,sizeof(*(*sib3)->intraFreqCellReselectionInfo.allowedMeasBandwidth)); (*sib3)->intraFreqCellReselectionInfo.allowedMeasBandwidth=CALLOC(1,sizeof(*(*sib3)->intraFreqCellReselectionInfo.allowedMeasBandwidth));
*(*sib3)->intraFreqCellReselectionInfo.allowedMeasBandwidth = LTE_AllowedMeasBandwidth_mbw6; *(*sib3)->intraFreqCellReselectionInfo.allowedMeasBandwidth = LTE_AllowedMeasBandwidth_mbw6;
(*sib3)->intraFreqCellReselectionInfo.presenceAntennaPort1 = 0; (*sib3)->intraFreqCellReselectionInfo.presenceAntennaPort1 = 0;
(*sib3)->intraFreqCellReselectionInfo.neighCellConfig.buf = CALLOC(8,1); LOG_A(RRC,"[eNB][SIB3] neighCellConfig:0x%x\n",configuration->neighCellConfig[CC_id]);
(*sib3)->intraFreqCellReselectionInfo.neighCellConfig.buf = CALLOC(1,sizeof(uint8_t));
(*sib3)->intraFreqCellReselectionInfo.neighCellConfig.size = 1; (*sib3)->intraFreqCellReselectionInfo.neighCellConfig.size = 1;
(*sib3)->intraFreqCellReselectionInfo.neighCellConfig.buf[0] = 1 << 6; (*sib3)->intraFreqCellReselectionInfo.neighCellConfig.buf[0] = configuration->neighCellConfig[CC_id] << 6;
(*sib3)->intraFreqCellReselectionInfo.neighCellConfig.bits_unused = 6; (*sib3)->intraFreqCellReselectionInfo.neighCellConfig.bits_unused = 6;
if (RC.ss.mode == SS_SOFTMODEM) { if (RC.ss.mode == SS_SOFTMODEM) {
(*sib3)->intraFreqCellReselectionInfo.t_ReselectionEUTRA = configuration->t_ReselectionEUTRA[CC_id]; (*sib3)->intraFreqCellReselectionInfo.t_ReselectionEUTRA = configuration->t_ReselectionEUTRA[CC_id];
...@@ -1955,10 +1956,22 @@ uint8_t do_SIB23(uint8_t Mod_id, ...@@ -1955,10 +1956,22 @@ uint8_t do_SIB23(uint8_t Mod_id,
(*sib3)->intraFreqCellReselectionInfo.t_ReselectionEUTRA = 1; (*sib3)->intraFreqCellReselectionInfo.t_ReselectionEUTRA = 1;
} }
(*sib3)->intraFreqCellReselectionInfo.t_ReselectionEUTRA_SF = (struct LTE_SpeedStateScaleFactors *)NULL; (*sib3)->intraFreqCellReselectionInfo.t_ReselectionEUTRA_SF = (struct LTE_SpeedStateScaleFactors *)NULL;
(*sib3)->ext1 = CALLOC(1, sizeof(struct LTE_SystemInformationBlockType3__ext1)); if(configuration->sib3_q_QualMin[CC_id] || configuration->sib3_threshServingLowQ[CC_id]){
(*sib3)->ext1 = CALLOC(1, sizeof(struct LTE_SystemInformationBlockType3__ext1));
}
/*
(*sib3)->ext1->s_IntraSearch_v920 = CALLOC(1, sizeof(struct LTE_SystemInformationBlockType3__ext1__s_IntraSearch_v920)); (*sib3)->ext1->s_IntraSearch_v920 = CALLOC(1, sizeof(struct LTE_SystemInformationBlockType3__ext1__s_IntraSearch_v920));
(*sib3)->ext1->s_IntraSearch_v920->s_IntraSearchP_r9 = 31; // FIXME (*sib3)->ext1->s_IntraSearch_v920->s_IntraSearchP_r9 = 31; // FIXME
(*sib3)->ext1->s_IntraSearch_v920->s_IntraSearchQ_r9 = 4; (*sib3)->ext1->s_IntraSearch_v920->s_IntraSearchQ_r9 = 4;
*/
if(configuration->sib3_q_QualMin[CC_id]){
(*sib3)->ext1->q_QualMin_r9 = CALLOC(1,sizeof(LTE_Q_QualMin_r9_t));
*((*sib3)->ext1->q_QualMin_r9) = *(configuration->sib3_q_QualMin[CC_id]);
}
if(configuration->sib3_threshServingLowQ[CC_id]){
(*sib3)->ext1->threshServingLowQ_r9 = CALLOC(1,sizeof(LTE_ReselectionThresholdQ_r9_t));
*((*sib3)->ext1->threshServingLowQ_r9) = *(configuration->sib3_threshServingLowQ[CC_id]);
}
(*sib3)->ext4 = CALLOC(1, sizeof(struct LTE_SystemInformationBlockType3__ext4)); (*sib3)->ext4 = CALLOC(1, sizeof(struct LTE_SystemInformationBlockType3__ext4));
(*sib3)->ext4->cellSelectionInfoCE_r13 = CALLOC(1, sizeof(LTE_CellSelectionInfoCE_r13_t)); (*sib3)->ext4->cellSelectionInfoCE_r13 = CALLOC(1, sizeof(LTE_CellSelectionInfoCE_r13_t));
(*sib3)->ext4->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = -70; (*sib3)->ext4->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = -70;
...@@ -2457,20 +2470,20 @@ uint8_t do_SIB5(uint8_t Mod_id, ...@@ -2457,20 +2470,20 @@ uint8_t do_SIB5(uint8_t Mod_id,
if(true == configuration->InterFreqCarrierFreqInfo[CC_id][i].cellReselectionPriority_Present) { if(true == configuration->InterFreqCarrierFreqInfo[CC_id][i].cellReselectionPriority_Present) {
InterFreqCarrierInfo->cellReselectionPriority = configuration->InterFreqCarrierFreqInfo[CC_id][i].cellReselectionPriority; InterFreqCarrierInfo->cellReselectionPriority = configuration->InterFreqCarrierFreqInfo[CC_id][i].cellReselectionPriority;
} }
// TODO: Need to handle neighCellConfig IE properly LOG_A(RRC,"[eNB][SIB5] CC_id:%d neighCellConfig:0x%x\n",CC_id,configuration->InterFreqCarrierFreqInfo[CC_id][i].neighCellConfig);
InterFreqCarrierInfo->neighCellConfig.size = 0;//1; InterFreqCarrierInfo->neighCellConfig.buf = CALLOC(1,sizeof(uint8_t));
//InterFreqCarrierInfo->neighCellConfig.buf = CALLOC(1,1); InterFreqCarrierInfo->neighCellConfig.size = 1;
InterFreqCarrierInfo->neighCellConfig.bits_unused = 0; InterFreqCarrierInfo->neighCellConfig.buf[0] = configuration->InterFreqCarrierFreqInfo[CC_id][i].neighCellConfig<< 6;
InterFreqCarrierInfo->neighCellConfig.buf = NULL;//[0] = 0x01<<4; InterFreqCarrierInfo->neighCellConfig.bits_unused = 6;
if(true == configuration->InterFreqCarrierFreqInfo[CC_id][i].q_OffsetFreqPresent) { if(true == configuration->InterFreqCarrierFreqInfo[CC_id][i].q_OffsetFreqPresent) {
InterFreqCarrierInfo->q_OffsetFreq = configuration->InterFreqCarrierFreqInfo[CC_id][i].q_OffsetFreq; InterFreqCarrierInfo->q_OffsetFreq = configuration->InterFreqCarrierFreqInfo[CC_id][i].q_OffsetFreq;
} }
if(true == configuration->InterFreqCarrierFreqInfo[CC_id][i].interFreqNeighCellList_Present) { if(true == configuration->InterFreqCarrierFreqInfo[CC_id][i].interFreqNeighCellList_Present) {
InterFreqCarrierInfo->interFreqNeighCellList = CALLOC(1,sizeof(struct LTE_InterFreqNeighCellList)); //InterFreqCarrierInfo->interFreqNeighCellList = CALLOC(1,sizeof(struct LTE_InterFreqNeighCellList));
InterFreqCarrierInfo->interFreqNeighCellList = configuration->InterFreqCarrierFreqInfo[CC_id][i].interFreqNeighCellList; InterFreqCarrierInfo->interFreqNeighCellList = configuration->InterFreqCarrierFreqInfo[CC_id][i].interFreqNeighCellList;
} }
if(true == configuration->InterFreqCarrierFreqInfo[CC_id][i].interFreqBlackCellList_Present) { if(true == configuration->InterFreqCarrierFreqInfo[CC_id][i].interFreqBlackCellList_Present) {
InterFreqCarrierInfo->interFreqBlackCellList = CALLOC(1,sizeof(struct LTE_InterFreqBlackCellList)); //InterFreqCarrierInfo->interFreqBlackCellList = CALLOC(1,sizeof(struct LTE_InterFreqBlackCellList));
InterFreqCarrierInfo->interFreqBlackCellList = configuration->InterFreqCarrierFreqInfo[CC_id][i].interFreqBlackCellList; InterFreqCarrierInfo->interFreqBlackCellList = configuration->InterFreqCarrierFreqInfo[CC_id][i].interFreqBlackCellList;
} }
if ((true == configuration->InterFreqCarrierFreqInfo[CC_id][i].threshX_Q_r9_Present) || if ((true == configuration->InterFreqCarrierFreqInfo[CC_id][i].threshX_Q_r9_Present) ||
...@@ -2479,7 +2492,7 @@ uint8_t do_SIB5(uint8_t Mod_id, ...@@ -2479,7 +2492,7 @@ uint8_t do_SIB5(uint8_t Mod_id,
LOG_A(RRC,"add ext1 for CC_ID %d\n ",CC_id); LOG_A(RRC,"add ext1 for CC_ID %d\n ",CC_id);
} }
if(true == configuration->InterFreqCarrierFreqInfo[CC_id][i].q_QualMin_r9_Present) { if(true == configuration->InterFreqCarrierFreqInfo[CC_id][i].q_QualMin_r9_Present) {
InterFreqCarrierInfo->ext1->q_QualMin_r9 = CALLOC(1,sizeof(LTE_Q_QualMin_r9_t)); //InterFreqCarrierInfo->ext1->q_QualMin_r9 = CALLOC(1,sizeof(LTE_Q_QualMin_r9_t));
InterFreqCarrierInfo->ext1->q_QualMin_r9 = configuration->InterFreqCarrierFreqInfo[CC_id][i].q_QualMin_r9; InterFreqCarrierInfo->ext1->q_QualMin_r9 = configuration->InterFreqCarrierFreqInfo[CC_id][i].q_QualMin_r9;
} }
if(true == configuration->InterFreqCarrierFreqInfo[CC_id][i].threshX_Q_r9_Present) { if(true == configuration->InterFreqCarrierFreqInfo[CC_id][i].threshX_Q_r9_Present) {
...@@ -2492,7 +2505,7 @@ uint8_t do_SIB5(uint8_t Mod_id, ...@@ -2492,7 +2505,7 @@ uint8_t do_SIB5(uint8_t Mod_id,
} }
if(true == configuration->InterFreqCarrierFreqInfo[CC_id][i].q_QualMinWB_r11_Present) { if(true == configuration->InterFreqCarrierFreqInfo[CC_id][i].q_QualMinWB_r11_Present) {
InterFreqCarrierInfo->ext2 = CALLOC(1,sizeof(struct LTE_InterFreqCarrierFreqInfo__ext2)); InterFreqCarrierInfo->ext2 = CALLOC(1,sizeof(struct LTE_InterFreqCarrierFreqInfo__ext2));
InterFreqCarrierInfo->ext2->q_QualMinWB_r11 = CALLOC(1,sizeof(LTE_Q_QualMin_r9_t)); //InterFreqCarrierInfo->ext2->q_QualMinWB_r11 = CALLOC(1,sizeof(LTE_Q_QualMin_r9_t));
InterFreqCarrierInfo->ext2->q_QualMinWB_r11 = configuration->InterFreqCarrierFreqInfo[CC_id][i].q_QualMinWB_r11; InterFreqCarrierInfo->ext2->q_QualMinWB_r11 = configuration->InterFreqCarrierFreqInfo[CC_id][i].q_QualMinWB_r11;
} }
ASN_SEQUENCE_ADD(&(*sib5)->interFreqCarrierFreqList,InterFreqCarrierInfo); ASN_SEQUENCE_ADD(&(*sib5)->interFreqCarrierFreqList,InterFreqCarrierInfo);
......
...@@ -666,6 +666,9 @@ typedef struct eNB_RRC_UE_s { ...@@ -666,6 +666,9 @@ typedef struct eNB_RRC_UE_s {
int8_t reestablishment_xid; int8_t reestablishment_xid;
int does_nr; int does_nr;
int nr_capabilities_requested; int nr_capabilities_requested;
uint32_t sdu_size; /* This is size of SDU received from TTCN */
uint8_t sdu[SDU_SIZE]; /* This is sdu received from ttcn */
} eNB_RRC_UE_t; } eNB_RRC_UE_t;
typedef uid_t ue_uid_t; typedef uid_t ue_uid_t;
......
This diff is collapsed.
...@@ -341,6 +341,10 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier, ...@@ -341,6 +341,10 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
*mnc1=(mnc/10)%10; *mnc1=(mnc/10)%10;
asn1cSequenceAdd(nr_plmn->mnc.list, NR_MCC_MNC_Digit_t, mnc2); asn1cSequenceAdd(nr_plmn->mnc.list, NR_MCC_MNC_Digit_t, mnc2);
*mnc2=(mnc)%10; *mnc2=(mnc)%10;
if (nr_plmn->mcc != NULL)
RRM_FREE(nr_plmn->mcc);
}//end plmn loop }//end plmn loop
nr_plmn_info->cellIdentity.buf = CALLOC(1,5); nr_plmn_info->cellIdentity.buf = CALLOC(1,5);
...@@ -419,7 +423,7 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier, ...@@ -419,7 +423,7 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
uint32_t absolute_diff = 0; uint32_t absolute_diff = 0;
if (RC.ss.mode == SS_SOFTMODEM) if (RC.ss.mode == SS_SOFTMODEM)
{ {
LOG_A(NR_RRC, "fxn:%s absoluteFrequencySSB:%d ", __FUNCTION__, absoluteFrequencySSB); LOG_A(NR_RRC, "fxn:%s absoluteFrequencySSB:%ld ", __FUNCTION__, absoluteFrequencySSB);
absoluteFrequencySSB = *RC.nrrrc[0]->configuration.scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencySSB; absoluteFrequencySSB = *RC.nrrrc[0]->configuration.scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencySSB;
absolute_diff = absoluteFrequencySSB - configuration->scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencyPointA; absolute_diff = absoluteFrequencySSB - configuration->scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencyPointA;
} }
...@@ -547,7 +551,7 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier, ...@@ -547,7 +551,7 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
asn1cSequenceAdd(Z8->list, asn1cSequenceAdd(Z8->list,
long, long,
ZoneEight); ZoneEight);
asn1cCallocOne(ZoneEight, 0); //asn1cCallocOne(ZoneEight, 0);
asn1cCalloc(ServCellCom->uplinkConfigCommon, UL) asn1cCalloc(ServCellCom->uplinkConfigCommon, UL)
asn_set_empty(&UL->frequencyInfoUL.scs_SpecificCarrierList.list); asn_set_empty(&UL->frequencyInfoUL.scs_SpecificCarrierList.list);
...@@ -674,6 +678,47 @@ The first/ leftmost bit corresponds to the first SS/PBCH block index in the grou ...@@ -674,6 +678,47 @@ The first/ leftmost bit corresponds to the first SS/PBCH block index in the grou
return(-1); return(-1);
} }
if (sib1->ue_TimersAndConstants != NULL)
RRM_FREE(sib1->ue_TimersAndConstants);
if (ServCellCom->tdd_UL_DL_ConfigurationCommon != NULL)
RRM_FREE(ServCellCom->tdd_UL_DL_ConfigurationCommon);
if (ServCellCom->ssb_PositionsInBurst.groupPresence != NULL)
RRM_FREE(ServCellCom->ssb_PositionsInBurst.groupPresence);
if (ZoneEight != NULL)
RRM_FREE(ZoneEight);
if (Z8 != NULL)
RRM_FREE(Z8);
if (P0 != NULL)
RRM_FREE(P0);
if (sib1->servingCellConfigCommon)
RRM_FREE(sib1->servingCellConfigCommon);
if (nr_plmn_info->trackingAreaCode->buf != NULL)
RRM_FREE(nr_plmn_info->trackingAreaCode->buf);
if (nr_plmn_info->trackingAreaCode != NULL)
RRM_FREE(nr_plmn_info->trackingAreaCode);
if (nr_plmn_info->cellIdentity.buf != NULL)
RRM_FREE(nr_plmn_info->cellIdentity.buf);
if (sib1->cellSelectionInfo != NULL)
RRM_FREE(sib1->cellSelectionInfo);
if (sib1_message->message.choice.c1->choice.systemInformationBlockType1 != NULL)
RRM_FREE(sib1_message->message.choice.c1->choice.systemInformationBlockType1);
if (sib1_message->message.choice.c1)
RRM_FREE(sib1_message->message.choice.c1);
if (sib1_message != NULL)
RRM_FREE(sib1_message);
return((enc_rval.encoded+7)/8); return((enc_rval.encoded+7)/8);
} }
...@@ -723,6 +768,27 @@ uint8_t do_SIB23_NR(rrc_gNB_carrier_data_t *carrier, ...@@ -723,6 +768,27 @@ uint8_t do_SIB23_NR(rrc_gNB_carrier_data_t *carrier,
LOG_D(RRC,"[eNB] SystemInformation Encoded %zd bits (%zd bytes)\n", enc_rval.encoded, (enc_rval.encoded+7)/8); LOG_D(RRC,"[eNB] SystemInformation Encoded %zd bits (%zd bytes)\n", enc_rval.encoded, (enc_rval.encoded+7)/8);
LOG_P(OAILOG_INFO, "BCCH_DL_SCH_Message", (uint8_t *)carrier->SIB23, 100); LOG_P(OAILOG_INFO, "BCCH_DL_SCH_Message", (uint8_t *)carrier->SIB23, 100);
if (sib3->choice.sib3 != NULL)
RRM_FREE(sib3->choice.sib3);
if (sib3 != NULL)
RRM_FREE(sib3);
if (sib2->choice.sib2 != NULL)
RRM_FREE(sib2->choice.sib2);
if (sib2 != NULL)
RRM_FREE(sib2);
if (sib->criticalExtensions.choice.systemInformation != NULL)
RRM_FREE(sib->criticalExtensions.choice.systemInformation);
if (sib_message->message.choice.c1 != NULL)
RRM_FREE(sib_message->message.choice.c1);
if (sib_message != NULL)
RRM_FREE(sib_message);
if (enc_rval.encoded==-1) { if (enc_rval.encoded==-1) {
return(-1); return(-1);
} }
......
...@@ -224,7 +224,7 @@ char openair_rrc_gNB_configuration(const module_id_t gnb_mod_idP, gNB_RrcConfigu ...@@ -224,7 +224,7 @@ char openair_rrc_gNB_configuration(const module_id_t gnb_mod_idP, gNB_RrcConfigu
rrc->carrier.sib1_tda = configuration->sib1_tda; rrc->carrier.sib1_tda = configuration->sib1_tda;
rrc->carrier.do_CSIRS = configuration->do_CSIRS; rrc->carrier.do_CSIRS = configuration->do_CSIRS;
rrc->carrier.do_SRS = configuration->do_SRS; rrc->carrier.do_SRS = configuration->do_SRS;
LOG_A(NR_RRC, "fxn:%s rrc->carrier:pci:%d rrc->configuration:pci:%d gnb_mod_idP:%d", __FUNCTION__, rrc->carrier.physCellId, *rrc->configuration.scc->physCellId, gnb_mod_idP); LOG_A(NR_RRC, "fxn:%s rrc->carrier:pci:%d rrc->configuration:pci:%ld gnb_mod_idP:%d", __FUNCTION__, rrc->carrier.physCellId, *rrc->configuration.scc->physCellId, gnb_mod_idP);
nr_rrc_config_ul_tda(configuration->scc,configuration->minRXTXTIME); nr_rrc_config_ul_tda(configuration->scc,configuration->minRXTXTIME);
/// System Information INIT /// System Information INIT
pthread_mutex_init(&rrc->cell_info_mutex,NULL); pthread_mutex_init(&rrc->cell_info_mutex,NULL);
......
...@@ -146,36 +146,36 @@ static void ss_send_drb_data(ss_drb_pdu_ind_t *pdu_ind, int cell_index){ ...@@ -146,36 +146,36 @@ static void ss_send_drb_data(ss_drb_pdu_ind_t *pdu_ind, int cell_index){
static void ss_task_handle_drb_pdu_req(struct DRB_COMMON_REQ *req,int cell_index) static void ss_task_handle_drb_pdu_req(struct DRB_COMMON_REQ *req,int cell_index)
{ {
assert(req); assert(req);
MessageDef *message_p = itti_alloc_new_message(TASK_PDCP_ENB, 0, SS_DRB_PDU_REQ); MessageDef *message_p = itti_alloc_new_message(TASK_PDCP_ENB, 0, SS_DRB_PDU_REQ);
assert(message_p); assert(message_p);
if (message_p) if (message_p)
{ {
/* Populate the message and send to eNB */ /* Populate the message and send to eNB */
SS_DRB_PDU_REQ(message_p).drb_id = req->Common.RoutingInfo.v.RadioBearerId.v.Drb; SS_DRB_PDU_REQ(message_p).drb_id = req->Common.RoutingInfo.v.RadioBearerId.v.Drb;
memset(SS_DRB_PDU_REQ(message_p).sdu, 0, SDU_SIZE); memset(SS_DRB_PDU_REQ(message_p).sdu, 0, SDU_SIZE);
for(int i = 0; i < req->U_Plane.SubframeDataList.d; i++){ for(int i = 0; i < req->U_Plane.SubframeDataList.d; i++){
if(req->U_Plane.SubframeDataList.v[i].PduSduList.d == L2DataList_Type_PdcpSdu){ if(req->U_Plane.SubframeDataList.v[i].PduSduList.d == L2DataList_Type_PdcpSdu){
LOG_A(ENB_APP, "PDCP SDU Received in DRB_COMMON_REQ"); LOG_A(ENB_SS, "PDCP SDU Received in DRB_COMMON_REQ");
for(int j = 0; j < req->U_Plane.SubframeDataList.v[i].PduSduList.v.PdcpSdu.d; j++){ for(int j = 0; j < req->U_Plane.SubframeDataList.v[i].PduSduList.v.PdcpSdu.d; j++){
SS_DRB_PDU_REQ(message_p).sdu_size = req->U_Plane.SubframeDataList.v[i].PduSduList.v.PdcpSdu.v[j].d; SS_DRB_PDU_REQ(message_p).sdu_size = req->U_Plane.SubframeDataList.v[i].PduSduList.v.PdcpSdu.v[j].d;
LOG_A(ENB_APP, "Length of PDCP SDU received in DRB_COMMON_REQ: %lu\n", req->U_Plane.SubframeDataList.v[i].PduSduList.v.PdcpSdu.v[j].d); LOG_A(ENB_SS, "Length of PDCP SDU received in DRB_COMMON_REQ: %lu\n", req->U_Plane.SubframeDataList.v[i].PduSduList.v.PdcpSdu.v[j].d);
memcpy(SS_DRB_PDU_REQ(message_p).sdu, req->U_Plane.SubframeDataList.v[i].PduSduList.v.PdcpSdu.v[j].v, req->U_Plane.SubframeDataList.v[i].PduSduList.v.PdcpSdu.v[j].d); memcpy(SS_DRB_PDU_REQ(message_p).sdu, req->U_Plane.SubframeDataList.v[i].PduSduList.v.PdcpSdu.v[j].v, req->U_Plane.SubframeDataList.v[i].PduSduList.v.PdcpSdu.v[j].d);
} }
} }
} }
} }
SS_DRB_PDU_REQ(message_p).rnti = SS_context.SSCell_list[cell_index].ss_rnti_g; SS_DRB_PDU_REQ(message_p).rnti = SS_context.SSCell_list[cell_index].ss_rnti_g;
int send_res = itti_send_msg_to_task(TASK_RRC_ENB, instance_g, message_p); int send_res = itti_send_msg_to_task(TASK_RRC_ENB, instance_g, message_p);
if (send_res < 0) if (send_res < 0)
{ {
LOG_A(ENB_APP, "[SS_DRB] Error in itti_send_msg_to_task"); LOG_A(ENB_APP, "[SS_DRB] Error in itti_send_msg_to_task");
} }
LOG_A(ENB_APP, "Send res: %d", send_res); LOG_A(ENB_APP, "Send res: %d", send_res);
} }
......
...@@ -213,7 +213,7 @@ static void ss_task_handle_rrc_pdu_req(struct EUTRA_RRC_PDU_REQ *req) ...@@ -213,7 +213,7 @@ static void ss_task_handle_rrc_pdu_req(struct EUTRA_RRC_PDU_REQ *req)
assert(req); assert(req);
LTE_DL_DCCH_Message_t *dl_dcch_msg=NULL; LTE_DL_DCCH_Message_t *dl_dcch_msg=NULL;
LTE_DL_CCCH_Message_t *dl_ccch_msg=NULL; LTE_DL_CCCH_Message_t *dl_ccch_msg=NULL;
MessageDef *message_p = itti_alloc_new_message(TASK_RRC_ENB, 0, SS_RRC_PDU_REQ); MessageDef *message_p = itti_alloc_new_message(TASK_RRC_ENB, 0, SS_RRC_PDU_REQ);
assert(message_p); assert(message_p);
instance_g = 0; instance_g = 0;
if (message_p) if (message_p)
...@@ -443,61 +443,61 @@ void ss_eNB_srb_init(void) ...@@ -443,61 +443,61 @@ void ss_eNB_srb_init(void)
*/ */
void *ss_eNB_srb_process_itti_msg(void *notUsed) void *ss_eNB_srb_process_itti_msg(void *notUsed)
{ {
MessageDef *received_msg = NULL; MessageDef *received_msg = NULL;
int result = 0; int result = 0;
int cell_index = 0; int cell_index = 0;
itti_receive_msg(TASK_SS_SRB, &received_msg); itti_receive_msg(TASK_SS_SRB, &received_msg);
/* Check if there is a packet to handle */ /* Check if there is a packet to handle */
if (received_msg != NULL) if (received_msg != NULL)
{ {
switch (ITTI_MSG_ID(received_msg)) switch (ITTI_MSG_ID(received_msg))
{ {
case SS_RRC_PDU_IND: case SS_RRC_PDU_IND:
{ {
task_id_t origin_task = ITTI_MSG_ORIGIN_ID(received_msg); task_id_t origin_task = ITTI_MSG_ORIGIN_ID(received_msg);
if(received_msg->ittiMsg.ss_rrc_pdu_ind.physCellId){ if(received_msg->ittiMsg.ss_rrc_pdu_ind.physCellId){
cell_index = get_cell_index_pci(received_msg->ittiMsg.ss_rrc_pdu_ind.physCellId, SS_context.SSCell_list); cell_index = get_cell_index_pci(received_msg->ittiMsg.ss_rrc_pdu_ind.physCellId, SS_context.SSCell_list);
LOG_A(ENB_SS,"[SS_SRB] cell_index in SS_RRC_PDU_IND: %d PhysicalCellId: %d \n",cell_index,SS_context.SSCell_list[cell_index].PhysicalCellId); LOG_A(ENB_SS,"[SS_SRB] cell_index in SS_RRC_PDU_IND: %d PhysicalCellId: %d \n",cell_index,SS_context.SSCell_list[cell_index].PhysicalCellId);
} }
if (origin_task == TASK_SS_PORTMAN) if (origin_task == TASK_SS_PORTMAN)
{ {
LOG_D(ENB_APP, "[SS_SRB] DUMMY WAKEUP receviedfrom PORTMAN state %d \n", SS_context.SSCell_list[cell_index].State); LOG_D(ENB_APP, "[SS_SRB] DUMMY WAKEUP receviedfrom PORTMAN state %d \n", SS_context.SSCell_list[cell_index].State);
} }
else else
{ {
LOG_A(ENB_SS, "[SS_SRB] Received SS_RRC_PDU_IND from RRC\n"); LOG_A(ENB_SS, "[SS_SRB] Received SS_RRC_PDU_IND from RRC\n");
if (SS_context.SSCell_list[cell_index].State >= SS_STATE_CELL_ACTIVE) if (SS_context.SSCell_list[cell_index].State >= SS_STATE_CELL_ACTIVE)
{ {
instance_g = ITTI_MSG_DESTINATION_INSTANCE(received_msg); instance_g = ITTI_MSG_DESTINATION_INSTANCE(received_msg);
ss_send_srb_data(&received_msg->ittiMsg.ss_rrc_pdu_ind,cell_index); ss_send_srb_data(&received_msg->ittiMsg.ss_rrc_pdu_ind,cell_index);
} }
else else
{ {
LOG_A(ENB_SS, "ERROR [SS_SRB][EUTRA_RRC_PDU_IND] received in SS state %d \n", SS_context.SSCell_list[cell_index].State); LOG_A(ENB_SS, "ERROR [SS_SRB][EUTRA_RRC_PDU_IND] received in SS state %d \n", SS_context.SSCell_list[cell_index].State);
} }
} }
result = itti_free(ITTI_MSG_ORIGIN_ID(received_msg), received_msg); result = itti_free(ITTI_MSG_ORIGIN_ID(received_msg), received_msg);
AssertFatal(result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); AssertFatal(result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result);
received_msg = NULL; received_msg = NULL;
} }
break; break;
case TERMINATE_MESSAGE: case TERMINATE_MESSAGE:
LOG_A(ENB_SS, "[SS_SRB] Received TERMINATE_MESSAGE \n"); LOG_A(ENB_SS, "[SS_SRB] Received TERMINATE_MESSAGE \n");
itti_exit_task(); itti_exit_task();
break; break;
default: default:
LOG_A(ENB_SS, "[SS_SRB] Received unhandled message %d:%s\n", LOG_A(ENB_SS, "[SS_SRB] Received unhandled message %d:%s\n",
ITTI_MSG_ID(received_msg), ITTI_MSG_NAME(received_msg)); ITTI_MSG_ID(received_msg), ITTI_MSG_NAME(received_msg));
break; break;
} }
} }
return NULL; return NULL;
} }
/* /*
......
...@@ -487,6 +487,23 @@ int sys_add_reconfig_cell(struct CellConfigInfo_Type *AddOrReconfigure) ...@@ -487,6 +487,23 @@ int sys_add_reconfig_cell(struct CellConfigInfo_Type *AddOrReconfigure)
RRC_CONFIGURATION_REQ(msg_p).cellReselectionPriority[cell_index] = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib3.cellReselectionServingFreqInfo.cellReselectionPriority; RRC_CONFIGURATION_REQ(msg_p).cellReselectionPriority[cell_index] = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib3.cellReselectionServingFreqInfo.cellReselectionPriority;
RRC_CONFIGURATION_REQ(msg_p).sib3_q_RxLevMin[cell_index] = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib3.intraFreqCellReselectionInfo.q_RxLevMin; RRC_CONFIGURATION_REQ(msg_p).sib3_q_RxLevMin[cell_index] = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib3.intraFreqCellReselectionInfo.q_RxLevMin;
RRC_CONFIGURATION_REQ(msg_p).t_ReselectionEUTRA[cell_index] = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib3.intraFreqCellReselectionInfo.t_ReselectionEUTRA; RRC_CONFIGURATION_REQ(msg_p).t_ReselectionEUTRA[cell_index] = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib3.intraFreqCellReselectionInfo.t_ReselectionEUTRA;
RRC_CONFIGURATION_REQ(msg_p).neighCellConfig[cell_index] = (uint8_t)bin_to_int(AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib3.intraFreqCellReselectionInfo.neighCellConfig,2);
if(RRC_CONFIGURATION_REQ(msg_p).sib3_q_QualMin[cell_index]){
free(RRC_CONFIGURATION_REQ(msg_p).sib3_q_QualMin[cell_index]);
RRC_CONFIGURATION_REQ(msg_p).sib3_q_QualMin[cell_index] = NULL;
}
if(AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib3.q_QualMin_r9.d){
RRC_CONFIGURATION_REQ(msg_p).sib3_q_QualMin[cell_index] = calloc(1,sizeof(long));
*(RRC_CONFIGURATION_REQ(msg_p).sib3_q_QualMin[cell_index]) = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib3.q_QualMin_r9.v;
}
if(RRC_CONFIGURATION_REQ(msg_p).sib3_threshServingLowQ[cell_index]){
free(RRC_CONFIGURATION_REQ(msg_p).sib3_threshServingLowQ[cell_index]);
RRC_CONFIGURATION_REQ(msg_p).sib3_threshServingLowQ[cell_index] = NULL;
}
if(AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib3.threshServingLowQ_r9.d){
RRC_CONFIGURATION_REQ(msg_p).sib3_threshServingLowQ[cell_index] = calloc(1,sizeof(long));
*(RRC_CONFIGURATION_REQ(msg_p).sib3_threshServingLowQ[cell_index]) = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib3.threshServingLowQ_r9.v;
}
} }
/* SIB4: Received SIB4 from TTCN */ /* SIB4: Received SIB4 from TTCN */
if(SQN_SystemInformation_r8_IEs_sib_TypeAndInfo_s_sib4 == AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].d) { if(SQN_SystemInformation_r8_IEs_sib_TypeAndInfo_s_sib4 == AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].d) {
...@@ -528,7 +545,7 @@ int sys_add_reconfig_cell(struct CellConfigInfo_Type *AddOrReconfigure) ...@@ -528,7 +545,7 @@ int sys_add_reconfig_cell(struct CellConfigInfo_Type *AddOrReconfigure)
RRC_CONFIGURATION_REQ(msg_p).InterFreqCarrierFreqInfo[cell_index][k].cellReselectionPriority_Present = true; RRC_CONFIGURATION_REQ(msg_p).InterFreqCarrierFreqInfo[cell_index][k].cellReselectionPriority_Present = true;
*(RRC_CONFIGURATION_REQ(msg_p).InterFreqCarrierFreqInfo[cell_index][k].cellReselectionPriority) = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib5.interFreqCarrierFreqList.v[k].cellReselectionPriority.v; *(RRC_CONFIGURATION_REQ(msg_p).InterFreqCarrierFreqInfo[cell_index][k].cellReselectionPriority) = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib5.interFreqCarrierFreqList.v[k].cellReselectionPriority.v;
} }
//RRC_CONFIGURATION_REQ(msg_p).InterFreqCarrierFreqInfo[k].neighCellConfig = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib5.interFreqCarrierFreqList.v[k].neighCellConfig; RRC_CONFIGURATION_REQ(msg_p).InterFreqCarrierFreqInfo[cell_index][k].neighCellConfig = (uint8_t)bin_to_int(AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib5.interFreqCarrierFreqList.v[k].neighCellConfig,2);
if(AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib5.interFreqCarrierFreqList.v[k].q_OffsetFreq.d) { if(AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib5.interFreqCarrierFreqList.v[k].q_OffsetFreq.d) {
RRC_CONFIGURATION_REQ(msg_p).InterFreqCarrierFreqInfo[cell_index][k].q_OffsetFreqPresent = true; RRC_CONFIGURATION_REQ(msg_p).InterFreqCarrierFreqInfo[cell_index][k].q_OffsetFreqPresent = true;
RRC_CONFIGURATION_REQ(msg_p).InterFreqCarrierFreqInfo[cell_index][k].q_OffsetFreq = CALLOC(1,sizeof(enum LTE_Q_OffsetRange)); RRC_CONFIGURATION_REQ(msg_p).InterFreqCarrierFreqInfo[cell_index][k].q_OffsetFreq = CALLOC(1,sizeof(enum LTE_Q_OffsetRange));
......
This diff is collapsed.
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