fix: set mcs, TBS and Qm only if round == 0
Not sure at all about this one, seemed necessary to me, but I don't get the full logic in there. To be refined.
This commit is contained in:
@@ -4712,8 +4712,6 @@ int generate_ue_dlsch_params_from_dci(int frame,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dlsch0_harq->mcs = mcs;
|
|
||||||
|
|
||||||
// this a retransmission
|
// this a retransmission
|
||||||
if(dlsch0_harq->round)
|
if(dlsch0_harq->round)
|
||||||
{
|
{
|
||||||
@@ -4728,17 +4726,25 @@ int generate_ue_dlsch_params_from_dci(int frame,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dlsch0_harq->TBS = TBStable[get_I_TBS(mcs)][NPRB-1];
|
|
||||||
if (mcs <= 28)
|
|
||||||
dlsch0_harq->Qm = get_Qm(mcs);
|
|
||||||
else if (mcs<=31)
|
|
||||||
dlsch0_harq->Qm = (mcs-28)<<1;
|
|
||||||
else
|
|
||||||
LOG_E(PHY,"invalid mcs %d\n",mcs);
|
|
||||||
// printf("test: MCS %d, NPRB %d, TBS %d\n",mcs,NPRB,dlsch0_harq->TBS);
|
// printf("test: MCS %d, NPRB %d, TBS %d\n",mcs,NPRB,dlsch0_harq->TBS);
|
||||||
|
|
||||||
dlsch[0]->active = 1;
|
dlsch[0]->active = 1;
|
||||||
|
|
||||||
|
if (dlsch0_harq->round == 0) {
|
||||||
|
dlsch0_harq->status = ACTIVE;
|
||||||
|
// printf("Setting DLSCH process %d to ACTIVE\n",harq_pid);
|
||||||
|
// MCS and TBS don't change across HARQ rounds
|
||||||
|
dlsch0_harq->mcs = mcs;
|
||||||
|
dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][NPRB-1];
|
||||||
|
|
||||||
|
if (mcs <= 28)
|
||||||
|
dlsch0_harq->Qm = get_Qm(mcs);
|
||||||
|
else if (mcs<=31)
|
||||||
|
dlsch0_harq->Qm = (mcs-28)<<1;
|
||||||
|
else
|
||||||
|
LOG_E(PHY,"invalid mcs %d\n",mcs);
|
||||||
|
}
|
||||||
|
|
||||||
dlsch[0]->rnti = rnti;
|
dlsch[0]->rnti = rnti;
|
||||||
|
|
||||||
if (beamforming_mode == 0)
|
if (beamforming_mode == 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user