Commit fc79bb1c authored by Melissa Elkadi's avatar Melissa Elkadi

Updating dropping of PUSCH if repeated sfn/slot

The previous two commits did not correctly check
the gNB sfn and slot. The code now correctly sets
the slot in which the PUSCH is SCHEDULED, not the slot
the rx is expected. Also, the sfn/slot is only updated
if we do in fact schedule a PUSCH.
parent ad653819
...@@ -317,8 +317,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP, ...@@ -317,8 +317,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
frame, gNB->handled_frame, slot, gNB->handled_slot); frame, gNB->handled_frame, slot, gNB->handled_slot);
return; return;
} }
gNB->handled_frame = frame;
gNB->handled_slot = slot;
NR_COMMON_channels_t *cc = gNB->common_channels; NR_COMMON_channels_t *cc = gNB->common_channels;
NR_ServingCellConfigCommon_t *scc = cc->ServingCellConfigCommon; NR_ServingCellConfigCommon_t *scc = cc->ServingCellConfigCommon;
NR_TDD_UL_DL_Pattern_t *tdd_pattern = &scc->tdd_UL_DL_ConfigurationCommon->pattern1; NR_TDD_UL_DL_Pattern_t *tdd_pattern = &scc->tdd_UL_DL_ConfigurationCommon->pattern1;
......
...@@ -1030,14 +1030,16 @@ void nr_schedule_ulsch(module_id_t module_id, ...@@ -1030,14 +1030,16 @@ void nr_schedule_ulsch(module_id_t module_id,
harq_id, harq_id,
cur_harq->round, cur_harq->round,
cur_harq->ndi); cur_harq->ndi);
gNB_MAC_INST *gNB = RC.nrmac[0]; gNB_MAC_INST *gNB = RC.nrmac[0];
if (sched_pusch->frame == gNB->handled_frame && sched_pusch->slot == gNB->handled_slot) { if (sched_pusch->frame == gNB->handled_frame && sched_pusch->slot == gNB->handled_slot) {
LOG_D(NR_MAC, "Dropping becasue frame %d == gNB frame %d, slot %d == gNb slot %d\n", LOG_E(NR_MAC, "Dropping because frame %d == gNB frame %d, slot %d == gNb slot %d\n",
frame, gNB->handled_frame, slot, gNB->handled_slot); sched_pusch->frame, gNB->handled_frame, sched_pusch->slot, gNB->handled_slot);
return; return;
} }
gNB->handled_frame = sched_pusch->frame; gNB->handled_frame = frame;
gNB->handled_slot = sched_pusch->slot; gNB->handled_slot = slot;
/* PUSCH in a later slot, but corresponding DCI now! */ /* PUSCH in a later slot, but corresponding DCI now! */
nfapi_nr_ul_tti_request_t *future_ul_tti_req = &RC.nrmac[module_id]->UL_tti_req_ahead[0][sched_pusch->slot]; nfapi_nr_ul_tti_request_t *future_ul_tti_req = &RC.nrmac[module_id]->UL_tti_req_ahead[0][sched_pusch->slot];
AssertFatal(future_ul_tti_req->SFN == sched_pusch->frame AssertFatal(future_ul_tti_req->SFN == sched_pusch->frame
......
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