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.
This commit is contained in:
Melissa Elkadi
2021-06-30 11:32:57 -07:00
parent ad653819b9
commit fc79bb1c91
2 changed files with 7 additions and 6 deletions
+1 -2
View File
@@ -317,8 +317,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
frame, gNB->handled_frame, slot, gNB->handled_slot);
return;
}
gNB->handled_frame = frame;
gNB->handled_slot = slot;
NR_COMMON_channels_t *cc = gNB->common_channels;
NR_ServingCellConfigCommon_t *scc = cc->ServingCellConfigCommon;
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,
harq_id,
cur_harq->round,
cur_harq->ndi);
gNB_MAC_INST *gNB = RC.nrmac[0];
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",
frame, gNB->handled_frame, slot, gNB->handled_slot);
LOG_E(NR_MAC, "Dropping because frame %d == gNB frame %d, slot %d == gNb slot %d\n",
sched_pusch->frame, gNB->handled_frame, sched_pusch->slot, gNB->handled_slot);
return;
}
gNB->handled_frame = sched_pusch->frame;
gNB->handled_slot = sched_pusch->slot;
gNB->handled_frame = frame;
gNB->handled_slot = slot;
/* 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];
AssertFatal(future_ul_tti_req->SFN == sched_pusch->frame