diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index c212a7d0e3b2c2fabc550b81e112783c862f75b5..680f6356a9cf859eaf222da7bcf959c0b551706d 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -2597,7 +2597,7 @@ void phy_procedures_eNB_RX(unsigned char last_slot,PHY_VARS_eNB *phy_vars_eNB,u8 phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->first_rb, phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->nb_rb, phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->mcs, - phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS, + phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS, phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->rvidx, phy_vars_eNB->ulsch_eNB[i]->cyclicShift, phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->n_DMRS2, @@ -2755,7 +2755,7 @@ void phy_procedures_eNB_RX(unsigned char last_slot,PHY_VARS_eNB *phy_vars_eNB,u8 phy_vars_eNB->ulsch_eNB[i]->o_ACK[0], phy_vars_eNB->ulsch_eNB[i]->o_ACK[1]); - LOG_I(PHY,"[eNB] Frame %d, Subframe %d : ULSCH SDU (RX harq_pid %d) %d bytes:",phy_vars_eNB->frame,last_slot>>1, + LOG_I(PHY,"[eNB] Frame %d, Subframe %d : ULSCH SDU (RX harq_pid %d) %d bytes:\n",phy_vars_eNB->frame,last_slot>>1, harq_pid,phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS>>3); for (j=0;j<phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS>>3;j++) LOG_T(PHY,"%x.",phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->c[0][j]); @@ -2773,7 +2773,8 @@ void phy_procedures_eNB_RX(unsigned char last_slot,PHY_VARS_eNB *phy_vars_eNB,u8 phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->phich_active=0; phy_vars_eNB->eNB_UE_stats[i].ulsch_errors[harq_pid]++; phy_vars_eNB->eNB_UE_stats[i].ulsch_consecutive_errors[harq_pid]++; - mac_xface->macphy_exit(""); + //dump_ulsch(phy_vars_eNB, last_slot>>1, i); + //mac_xface->macphy_exit(""); } // If we've dropped the UE, go back to PRACH mode for this UE diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c index 12c61509d903ee7c16bce4d174bf5eef2f32bae3..00950fd7bf319e54d805efc8ea03716310b2a8ef 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler.c +++ b/openair2/LAYER2/MAC/eNB_scheduler.c @@ -2121,7 +2121,10 @@ void schedule_ulsch_rnti(u8 Mod_id, unsigned char cooperation_flag, u32 frame, u mcs = openair_daq_vars.target_ue_ul_mcs; } else { // increment RV - mcs = (round&3) + 28; + if ((round&3)==0) + mcs = openair_daq_vars.target_ue_ul_mcs; // same as inital transmission + else + mcs = (round&3) + 28; //not correct for round==4! } LOG_D(MAC,"[eNB %d] ULSCH scheduler: Ndi %d, mcs %d\n",Mod_id,ndi,mcs); @@ -2170,10 +2173,11 @@ void schedule_ulsch_rnti(u8 Mod_id, unsigned char cooperation_flag, u32 frame, u } //rb_table_index = 8; - LOG_I(MAC,"[eNB %d][PUSCH %d/%x] Frame %d subframe %d Scheduled UE (mcs %d, first rb %d, nb_rb %d, rb_table_index %d, TBS %d)\n", + LOG_I(MAC,"[eNB %d][PUSCH %d/%x] Frame %d subframe %d Scheduled UE (mcs %d, first rb %d, nb_rb %d, rb_table_index %d, TBS %d, harq_pid %d)\n", Mod_id,UE_id,rnti,frame,subframe,mcs, *first_rb,rb_table[rb_table_index], - rb_table_index,mac_xface->get_TBS_UL(mcs,rb_table[rb_table_index])); + rb_table_index,mac_xface->get_TBS_UL(mcs,rb_table[rb_table_index]), + harq_pid); rballoc = mac_xface->computeRIV(mac_xface->lte_frame_parms->N_RB_UL, *first_rb, @@ -2225,10 +2229,11 @@ void schedule_ulsch_rnti(u8 Mod_id, unsigned char cooperation_flag, u32 frame, u } // ndi==1 else { //we schedule a retransmission - LOG_I(MAC,"[eNB %d][PUSCH %d/%x] Frame %d subframe %d Scheduled UE retransmission (mcs %d, first rb %d, nb_rb %d, TBS %d)\n", + LOG_I(MAC,"[eNB %d][PUSCH %d/%x] Frame %d subframe %d Scheduled UE retransmission (mcs %d, first rb %d, nb_rb %d, TBS %d, harq_pid %d)\n", Mod_id,UE_id,rnti,frame,subframe,mcs, *first_rb,eNB_mac_inst[Mod_id].UE_template[UE_id].nb_rb_ul[harq_pid], - mac_xface->get_TBS_UL(mcs,eNB_mac_inst[Mod_id].UE_template[UE_id].nb_rb_ul[harq_pid])); + mac_xface->get_TBS_UL(mcs,eNB_mac_inst[Mod_id].UE_template[UE_id].nb_rb_ul[harq_pid]), + harq_pid); rballoc = mac_xface->computeRIV(mac_xface->lte_frame_parms->N_RB_UL, *first_rb, @@ -2487,7 +2492,7 @@ u32 allocate_prbs_sub(int nb_rb, u8 *rballoc) { LOG_D(MAC,"*****Check1RBALLOC****: %d%d%d%d (nb_rb %d,N_RBGS %d)\n", rballoc[3],rballoc[2],rballoc[1],rballoc[0],nb_rb,mac_xface->lte_frame_parms->N_RBGS); while((nb_rb >0) && (check < mac_xface->lte_frame_parms->N_RBGS)){ - printf("rballoc[%d] %d\n",check,rballoc[check]); + //printf("rballoc[%d] %d\n",check,rballoc[check]); if(rballoc[check] == 1){ rballoc_dci |= (1<<((mac_xface->lte_frame_parms->N_RBGS-1)-check)); switch (mac_xface->lte_frame_parms->N_RB_DL) { @@ -2510,7 +2515,7 @@ u32 allocate_prbs_sub(int nb_rb, u8 *rballoc) { break; } } - printf("rb_alloc %x\n",rballoc_dci); + //printf("rb_alloc %x\n",rballoc_dci); check = check+1; // check1 = check1+2; } @@ -3357,7 +3362,7 @@ void schedule_ue_spec(unsigned char Mod_id, dl_pow_off, pre_nb_available_rbs, mac_xface->lte_frame_parms->N_RBGS, - &rballoc_sub_UE[0][0]); + rballoc_sub_UE); for (UE_id=0;UE_id<granted_UEs;UE_id++) { diff --git a/targets/RTAI/USER/lte-softmodem.c b/targets/RTAI/USER/lte-softmodem.c index 75ffcdbfe12443cce41fa25926f20b374dacd85c..4fe43ba3e63dd51948b36c81e07186e3f0cbe97a 100644 --- a/targets/RTAI/USER/lte-softmodem.c +++ b/targets/RTAI/USER/lte-softmodem.c @@ -1128,6 +1128,8 @@ int main(int argc, char **argv) { N_ZC = (prach_fmt <4)?839:139; if (UE_flag==1) { + g_log->log_component[HW].level = LOG_DEBUG; + g_log->log_component[HW].flag = LOG_HIGH; #ifdef OPENAIR2 g_log->log_component[PHY].level = LOG_INFO; #else @@ -1221,6 +1223,8 @@ int main(int argc, char **argv) { printf("tx_max_power = %d -> amp %d\n",tx_max_power,get_tx_amp(tx_max_power,tx_max_power)); } else { //this is eNB + g_log->log_component[HW].level = LOG_DEBUG; + g_log->log_component[HW].flag = LOG_HIGH; #ifdef OPENAIR2 g_log->log_component[PHY].level = LOG_INFO; #else @@ -1265,7 +1269,7 @@ int main(int argc, char **argv) { openair_daq_vars.ue_dl_rb_alloc=0x1fff; openair_daq_vars.target_ue_dl_mcs=20; openair_daq_vars.ue_ul_nb_rb=6; - openair_daq_vars.target_ue_ul_mcs=9; + openair_daq_vars.target_ue_ul_mcs=11; // if AGC is off, the following values will be used // for (i=0;i<4;i++)