Merge branch 'NR_UL_scheduling' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_UL_scheduling
This commit is contained in:
@@ -122,7 +122,11 @@ void nr_fill_cce_list(PHY_VARS_gNB *gNB, uint8_t m) {
|
|||||||
|
|
||||||
nr_cce_t* cce;
|
nr_cce_t* cce;
|
||||||
nr_reg_t* reg;
|
nr_reg_t* reg;
|
||||||
nfapi_nr_dl_tti_pdcch_pdu_rel15_t* pdcch_pdu_rel15 = &gNB->pdcch_pdu->pdcch_pdu_rel15;
|
nfapi_nr_dl_tti_pdcch_pdu_rel15_t* pdcch_pdu_rel15;
|
||||||
|
if (gNB->pdcch_pdu != NULL)
|
||||||
|
pdcch_pdu_rel15 = &gNB->pdcch_pdu->pdcch_pdu_rel15;
|
||||||
|
else
|
||||||
|
pdcch_pdu_rel15 = &gNB->ul_dci_pdu->pdcch_pdu.pdcch_pdu_rel15;
|
||||||
int bsize = pdcch_pdu_rel15->RegBundleSize;
|
int bsize = pdcch_pdu_rel15->RegBundleSize;
|
||||||
int R = pdcch_pdu_rel15->InterleaverSize;
|
int R = pdcch_pdu_rel15->InterleaverSize;
|
||||||
int n_shift = pdcch_pdu_rel15->ShiftIndex;
|
int n_shift = pdcch_pdu_rel15->ShiftIndex;
|
||||||
@@ -251,7 +255,7 @@ void nr_fill_ul_dci(PHY_VARS_gNB *gNB,
|
|||||||
//uint64_t *dci_pdu = (uint64_t*)pdcch_pdu_rel15->dci_pdu.Payload[i];
|
//uint64_t *dci_pdu = (uint64_t*)pdcch_pdu_rel15->dci_pdu.Payload[i];
|
||||||
|
|
||||||
// if there's no DL DCI then generate CCE list
|
// if there's no DL DCI then generate CCE list
|
||||||
if (gNB->pdcch_pdu) nr_fill_cce_list(gNB,0);
|
nr_fill_cce_list(gNB,0);
|
||||||
/*
|
/*
|
||||||
LOG_D(PHY, "DCI PDU: [0]->0x%lx \t [1]->0x%lx \n",dci_pdu[0], dci_pdu[1]);
|
LOG_D(PHY, "DCI PDU: [0]->0x%lx \t [1]->0x%lx \n",dci_pdu[0], dci_pdu[1]);
|
||||||
LOG_D(PHY, "DCI type %d payload (size %d) generated on candidate %d\n", dci_alloc->pdcch_params.dci_format, dci_alloc->size, cand_idx);
|
LOG_D(PHY, "DCI type %d payload (size %d) generated on candidate %d\n", dci_alloc->pdcch_params.dci_format, dci_alloc->size, cand_idx);
|
||||||
|
|||||||
@@ -776,7 +776,7 @@ void nr_schedule_uss_dlsch_phytest(module_id_t module_idP,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t select_ul_harq_pid(NR_UE_sched_ctrl_t *sched_ctrl) {
|
int8_t select_ul_harq_pid(NR_UE_sched_ctrl_t *sched_ctrl) {
|
||||||
|
|
||||||
uint8_t hrq_id;
|
uint8_t hrq_id;
|
||||||
uint8_t max_ul_harq_pids = 3; // temp: for testing
|
uint8_t max_ul_harq_pids = 3; // temp: for testing
|
||||||
@@ -802,6 +802,8 @@ uint8_t select_ul_harq_pid(NR_UE_sched_ctrl_t *sched_ctrl) {
|
|||||||
return hrq_id;
|
return hrq_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
LOG_E(MAC,"All UL HARQ processes are busy. Cannot schedule ULSCH\n");
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void schedule_fapi_ul_pdu(int Mod_idP,
|
void schedule_fapi_ul_pdu(int Mod_idP,
|
||||||
@@ -1006,7 +1008,8 @@ void schedule_fapi_ul_pdu(int Mod_idP,
|
|||||||
|
|
||||||
//Pusch Allocation in frequency domain [TS38.214, sec 6.1.2.2]
|
//Pusch Allocation in frequency domain [TS38.214, sec 6.1.2.2]
|
||||||
//Optional Data only included if indicated in pduBitmap
|
//Optional Data only included if indicated in pduBitmap
|
||||||
uint8_t harq_id = select_ul_harq_pid(&UE_list->UE_sched_ctrl[UE_id]);
|
int8_t harq_id = select_ul_harq_pid(&UE_list->UE_sched_ctrl[UE_id]);
|
||||||
|
if (harq_id < 0) return;
|
||||||
NR_UE_ul_harq_t *cur_harq = &UE_list->UE_sched_ctrl[UE_id].ul_harq_processes[harq_id];
|
NR_UE_ul_harq_t *cur_harq = &UE_list->UE_sched_ctrl[UE_id].ul_harq_processes[harq_id];
|
||||||
pusch_pdu->pusch_data.harq_process_id = harq_id;
|
pusch_pdu->pusch_data.harq_process_id = harq_id;
|
||||||
pusch_pdu->pusch_data.new_data_indicator = cur_harq->ndi;
|
pusch_pdu->pusch_data.new_data_indicator = cur_harq->ndi;
|
||||||
|
|||||||
Reference in New Issue
Block a user