gNB: add nrOfLayers to sched_pdsch
This commit is contained in:
@@ -257,6 +257,7 @@ void nr_dlsim_preprocessor(module_id_t module_id,
|
||||
* configuration */
|
||||
ps->mcsTableIdx = g_mcsTableIdx;
|
||||
|
||||
sched_pdsch->nrOfLayers = g_nrOfLayers;
|
||||
sched_pdsch->Qm = nr_get_Qm_dl(sched_pdsch->mcs, ps->mcsTableIdx);
|
||||
sched_pdsch->R = nr_get_code_rate_dl(sched_pdsch->mcs, ps->mcsTableIdx);
|
||||
sched_pdsch->tb_size = nr_compute_tbs(sched_pdsch->Qm,
|
||||
@@ -266,7 +267,7 @@ void nr_dlsim_preprocessor(module_id_t module_id,
|
||||
ps->N_PRB_DMRS * ps->N_DMRS_SLOT,
|
||||
0 /* N_PRB_oh, 0 for initialBWP */,
|
||||
0 /* tb_scaling */,
|
||||
g_nrOfLayers)
|
||||
sched_pdsch->nrOfLayers)
|
||||
>> 3;
|
||||
|
||||
/* the simulator assumes the HARQ PID is equal to the slot number */
|
||||
@@ -1002,7 +1003,7 @@ int main(int argc, char **argv)
|
||||
gNB_mac->UE_info.num_pdcch_cand[0][i] = 0;
|
||||
|
||||
if (css_flag == 0) {
|
||||
nr_schedule_ue_spec(0, frame, slot, g_nrOfLayers);
|
||||
nr_schedule_ue_spec(0, frame, slot);
|
||||
} else {
|
||||
nr_schedule_css_dlsch_phytest(0,frame,slot);
|
||||
}
|
||||
|
||||
@@ -326,7 +326,6 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
|
||||
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, ENB_FLAG_YES, NOT_A_RNTI, frame, slot,module_idP);
|
||||
|
||||
const int bwp_id = 1;
|
||||
uint8_t nrOfLayers = 1;
|
||||
|
||||
gNB_MAC_INST *gNB = RC.nrmac[module_idP];
|
||||
NR_COMMON_channels_t *cc = gNB->common_channels;
|
||||
@@ -419,7 +418,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
|
||||
nr_schedule_ulsch(module_idP, frame, slot);
|
||||
|
||||
// This schedules the DCI for Downlink and PDSCH
|
||||
nr_schedule_ue_spec(module_idP, frame, slot, nrOfLayers);
|
||||
nr_schedule_ue_spec(module_idP, frame, slot);
|
||||
|
||||
nr_schedule_pucch(module_idP, frame, slot);
|
||||
|
||||
|
||||
@@ -571,6 +571,7 @@ void pf_dl(module_id_t module_id,
|
||||
|
||||
/* Calculate coeff */
|
||||
sched_pdsch->mcs = 9;
|
||||
sched_pdsch->nrOfLayers = 1;
|
||||
uint32_t tbs = pf_tbs[ps->mcsTableIdx][sched_pdsch->mcs];
|
||||
coeff_ue[UE_id] = (float) tbs / thr_ue[UE_id];
|
||||
LOG_D(MAC,"b %d, thr_ue[%d] %f, tbs %d, coeff_ue[%d] %f\n",
|
||||
@@ -747,8 +748,7 @@ nr_pp_impl_dl nr_init_fr1_dlsch_preprocessor(module_id_t module_id, int CC_id)
|
||||
|
||||
void nr_schedule_ue_spec(module_id_t module_id,
|
||||
frame_t frame,
|
||||
sub_frame_t slot,
|
||||
uint8_t nrOfLayers) {
|
||||
sub_frame_t slot) {
|
||||
gNB_MAC_INST *gNB_mac = RC.nrmac[module_id];
|
||||
if (!is_xlsch_in_slot(gNB_mac->dlsch_slot_bitmap[slot / 64], slot))
|
||||
return;
|
||||
@@ -783,6 +783,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
|
||||
const rnti_t rnti = UE_info->rnti[UE_id];
|
||||
|
||||
/* POST processing */
|
||||
const uint8_t nrOfLayers = sched_pdsch->nrOfLayers;
|
||||
const uint16_t R = sched_pdsch->R;
|
||||
const uint8_t Qm = sched_pdsch->Qm;
|
||||
const uint32_t TBS = sched_pdsch->tb_size;
|
||||
|
||||
@@ -370,6 +370,7 @@ void nr_preprocessor_phytest(module_id_t module_id,
|
||||
nr_set_pdsch_semi_static(
|
||||
scc, UE_info->secondaryCellGroup[UE_id], sched_ctrl->active_bwp, tda, num_dmrs_cdm_grps_no_data, ps);
|
||||
|
||||
sched_pdsch->nrOfLayers = 1;
|
||||
sched_pdsch->mcs = target_dl_mcs;
|
||||
sched_pdsch->Qm = nr_get_Qm_dl(sched_pdsch->mcs, ps->mcsTableIdx);
|
||||
sched_pdsch->R = nr_get_code_rate_dl(sched_pdsch->mcs, ps->mcsTableIdx);
|
||||
@@ -380,7 +381,7 @@ void nr_preprocessor_phytest(module_id_t module_id,
|
||||
ps->N_PRB_DMRS * ps->N_DMRS_SLOT,
|
||||
0 /* N_PRB_oh, 0 for initialBWP */,
|
||||
0 /* tb_scaling */,
|
||||
1 /* nrOfLayers */)
|
||||
sched_pdsch->nrOfLayers)
|
||||
>> 3;
|
||||
|
||||
/* get the PID of a HARQ process awaiting retransmission, or -1 otherwise */
|
||||
|
||||
@@ -72,8 +72,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
|
||||
* messages, statistics, HARQ handling, CEs, ... */
|
||||
void nr_schedule_ue_spec(module_id_t module_id,
|
||||
frame_t frame,
|
||||
sub_frame_t slot,
|
||||
uint8_t nrOfLayers);
|
||||
sub_frame_t slot);
|
||||
|
||||
/* \brief default FR1 DL preprocessor init routine, returns preprocessor to call */
|
||||
nr_pp_impl_dl nr_init_fr1_dlsch_preprocessor(module_id_t module_id, int CC_id);
|
||||
|
||||
@@ -382,6 +382,7 @@ typedef struct NR_sched_pdsch {
|
||||
uint8_t mcs;
|
||||
|
||||
/// TBS-related info
|
||||
uint8_t nrOfLayers;
|
||||
uint16_t R;
|
||||
uint8_t Qm;
|
||||
uint32_t tb_size;
|
||||
|
||||
Reference in New Issue
Block a user