diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index d368ca6b18435bfb9722fc96489eaa7ce3745c5b..a567d8af9bd4c70a3c28b047467808f18115ec35 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -140,10 +140,10 @@ uint8_t find_active_UEs(module_id_t module_idP){ if (((rnti=eNB_mac_inst[module_idP].UE_template[ue_mod_id].rnti) !=0)&&(eNB_mac_inst[module_idP].UE_template[ue_mod_id].ul_active==TRUE)){ if (mac_xface->get_eNB_UE_stats(module_idP,rnti) != NULL){ // check at the phy enb_ue state for this rnti - nb_active_ue++; + nb_active_ue++; } else { // this ue is removed at the phy => remove it at the mac as well - mac_remove_ue(module_idP, ue_mod_id); + mac_remove_ue(module_idP, ue_mod_id); } } } @@ -239,7 +239,8 @@ void SR_indication(module_id_t enb_mod_idP, frame_t frameP, rnti_t rntiP, sub_fr eNB_mac_inst[enb_mod_idP].UE_template[ue_mod_id].ul_active = TRUE; } else { // AssertFatal(0, "find_UE_id(%u,rnti %d) not found", enb_mod_idP, rntiP); - AssertError(0, 0, "Frame %d: find_UE_id(%u,rnti %d) not found\n", frameP, enb_mod_idP, rntiP); + // AssertError(0, 0, "Frame %d: find_UE_id(%u,rnti %d) not found\n", frameP, enb_mod_idP, rntiP); + LOG_D(MAC,"[eNB %d][SR %x] Frame %d subframeP %d Signaling SR for UE %d (unknown UEid) \n",enb_mod_idP,rntiP,frameP,subframeP, ue_mod_id); } } diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c index f472e633c0a2bd1e53aff6a78689c73276be389a..46fe22f64a3083ff925a02cff25cbba9ed291fad 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -293,6 +293,7 @@ void schedule_ulsch_rnti(module_id_t module_idP, uint32_t buffer_occupancy; uint32_t tmp_bsr; uint32_t cqi_req,cshift,ndi,mcs,rballoc; + int rvidx_tab[4] = {0,3,1,2}; for (ue_mod_id=0;ue_mod_id<granted_UEs && (*nCCE_available > (1<<aggregation));ue_mod_id++) { @@ -346,7 +347,7 @@ void schedule_ulsch_rnti(module_id_t module_idP, if (round > 0) { ndi = eNB_mac_inst[module_idP].UE_template[ue_mod_id].oldNDI_UL[harq_pid]; - mcs = (round&3) + 28; //not correct for round==4! + mcs = (rvidx_tab[round&3]) + 29; //not correct for round==4! } else { ndi = 1-eNB_mac_inst[module_idP].UE_template[ue_mod_id].oldNDI_UL[harq_pid]; @@ -461,14 +462,14 @@ void schedule_ulsch_rnti(module_id_t module_idP, } // ndi==1 else { //we schedule a retransmission LOG_I(MAC,"[eNB %d][PUSCH %d/%x] Frame %d subframeP %d Scheduled UE retransmission (mcs %d, first rb %d, nb_rb %d, TBS %d, harq_pid %d)\n", - module_idP,ue_mod_id,rnti,frameP,subframeP,mcs, + module_idP,harq_pid,rnti,frameP,subframeP,mcs, *first_rb,eNB_mac_inst[module_idP].UE_template[ue_mod_id].nb_rb_ul[harq_pid], mac_xface->get_TBS_UL(mcs,eNB_mac_inst[module_idP].UE_template[ue_mod_id].nb_rb_ul[harq_pid]), harq_pid); rballoc = mac_xface->computeRIV(mac_xface->lte_frame_parms->N_RB_UL, - *first_rb, - eNB_mac_inst[module_idP].UE_template[ue_mod_id].nb_rb_ul[harq_pid]); + *first_rb, + eNB_mac_inst[module_idP].UE_template[ue_mod_id].nb_rb_ul[harq_pid]); *first_rb+=eNB_mac_inst[module_idP].UE_template[ue_mod_id].nb_rb_ul[harq_pid]; // increment for next UE allocation } diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index e579281552c2856dcdb68c892fa0713338f49712..9a1e5ec10836632137e5033f5fad9c4dd17bad62 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -899,8 +899,8 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_FreqOffset = 2; // PDSCH-Config -#ifdef EXMIMO - (*sib2)->radioResourceConfigCommon.pdsch_ConfigCommon.referenceSignalPower=-32; +#ifdef EXMIMO // This corresponds to raw output of ExpressMIMO2 v2 + (*sib2)->radioResourceConfigCommon.pdsch_ConfigCommon.referenceSignalPower=-24; #else (*sib2)->radioResourceConfigCommon.pdsch_ConfigCommon.referenceSignalPower=15; #endif