diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c index 50bebef2fc648a05817b0100c6f5fe11cac6f4bb..c1b834ab1d2624cdedbd11c11ac66711ad54bfdc 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c @@ -661,7 +661,11 @@ void nr_schedule_ue_spec(module_id_t module_id, pdsch_pdu->pduBitmap = 0; pdsch_pdu->rnti = rnti; - pdsch_pdu->pduIndex = gNB_mac->pdu_index[CC_id]++; + /* SCF222: PDU index incremented for each PDSCH PDU sent in TX control + * message. This is used to associate control information to data and is + * reset every slot. */ + const int pduindex = gNB_mac->pdu_index[CC_id]++; + pdsch_pdu->pduIndex = pduindex; // BWP pdsch_pdu->BWPSize = NRRIV2BW(bwp->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE); @@ -938,7 +942,7 @@ void nr_schedule_ue_spec(module_id_t module_id, /* the buffer has been filled by nr_generate_dlsch_pdu(), below we simply * fill the remaining information */ tx_req->PDU_length = TBS; - tx_req->PDU_index = gNB_mac->pdu_index[0]++; + tx_req->PDU_index = pduindex; tx_req->num_TLV = 1; tx_req->TLVs[0].length = TBS + 2; gNB_mac->TX_req[CC_id].Number_of_PDUs++;