Commit 12191ccc authored by Robert Schmidt's avatar Robert Schmidt

PreProc IF: save PUCCH info per UE

parent 3ed8eb6d
...@@ -472,6 +472,12 @@ void nr_simple_dlsch_preprocessor(module_id_t module_id, ...@@ -472,6 +472,12 @@ void nr_simple_dlsch_preprocessor(module_id_t module_id,
LOG_E(MAC, "%s(): could not find CCE for UE %d\n", __func__, UE_id); LOG_E(MAC, "%s(): could not find CCE for UE %d\n", __func__, UE_id);
return; return;
} }
/* Find PUCCH occasion */
nr_update_pucch_scheduling(
module_id, UE_id, frame, slot, num_slots_per_tdd, &sched_ctrl->pucch_sched_idx);
AssertFatal(sched_ctrl->pucch_sched_idx >= 0, "no uplink slot for PUCCH found!\n");
} }
void nr_schedule_ue_spec(module_id_t module_id, void nr_schedule_ue_spec(module_id_t module_id,
...@@ -497,11 +503,6 @@ void nr_schedule_ue_spec(module_id_t module_id, ...@@ -497,11 +503,6 @@ void nr_schedule_ue_spec(module_id_t module_id,
//if (sched_ctrl->rbSize < 0 && !get_softmodem_params()->phy_test) //if (sched_ctrl->rbSize < 0 && !get_softmodem_params()->phy_test)
// return; // return;
/* Find PUCCH occasion */
int pucch_sched;
nr_update_pucch_scheduling(module_id, UE_id, frame, slot, num_slots_per_tdd, &pucch_sched);
NR_sched_pucch *pucch = &UE_list->UE_sched_ctrl[UE_id].sched_pucch[pucch_sched];
const uint16_t bwpSize = NRRIV2BW(sched_ctrl->active_bwp->bwp_Common->genericParameters.locationAndBandwidth,275); const uint16_t bwpSize = NRRIV2BW(sched_ctrl->active_bwp->bwp_Common->genericParameters.locationAndBandwidth,275);
const uint8_t mcs = 9; const uint8_t mcs = 9;
...@@ -644,6 +645,7 @@ void nr_schedule_ue_spec(module_id_t module_id, ...@@ -644,6 +645,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
const int current_harq_pid = sched_ctrl->current_harq_pid; const int current_harq_pid = sched_ctrl->current_harq_pid;
NR_UE_harq_t *harq = &sched_ctrl->harq_processes[current_harq_pid]; NR_UE_harq_t *harq = &sched_ctrl->harq_processes[current_harq_pid];
NR_sched_pucch *pucch = &sched_ctrl->sched_pucch[sched_ctrl->pucch_sched_idx];
harq->feedback_slot = pucch->ul_slot; harq->feedback_slot = pucch->ul_slot;
harq->is_waiting = 1; harq->is_waiting = 1;
UE_list->mac_stats[UE_id].dlsch_rounds[harq->round]++; UE_list->mac_stats[UE_id].dlsch_rounds[harq->round]++;
......
...@@ -291,6 +291,8 @@ typedef struct { ...@@ -291,6 +291,8 @@ typedef struct {
/// the currently active BWP in DL /// the currently active BWP in DL
NR_BWP_Downlink_t *active_bwp; NR_BWP_Downlink_t *active_bwp;
NR_sched_pucch *sched_pucch; NR_sched_pucch *sched_pucch;
/// selected PUCCH index, if scheduled
int pucch_sched_idx;
NR_sched_pusch *sched_pusch; NR_sched_pusch *sched_pusch;
/// CCE index and aggregation, should be coherent with cce_list /// CCE index and aggregation, should be coherent with cce_list
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment