diff --git a/srsue/src/phy/cc_worker.cc b/srsue/src/phy/cc_worker.cc index 923979bfa..114d67f87 100644 --- a/srsue/src/phy/cc_worker.cc +++ b/srsue/src/phy/cc_worker.cc @@ -432,6 +432,7 @@ int cc_worker::decode_pdsch(srslte_pdsch_ack_resource_t ack_resource, } // Generate ACKs for MAC and PUCCH + uint32_t nof_tb = 0; uint8_t pending_acks[SRSLTE_MAX_CODEWORDS] = {}; for (uint32_t tb = 0; tb < SRSLTE_MAX_CODEWORDS; tb++) { // For MAC, set to true if it's a duplicate @@ -440,9 +441,13 @@ int cc_worker::decode_pdsch(srslte_pdsch_ack_resource_t ack_resource, // For PUCCH feedback, need to send even if duplicate, but only those CW that were enabled before disabling in th // grant pending_acks[tb] = tb_enable[tb] ? mac_acks[tb] : 2; + + if (tb_enable[tb]) { + nof_tb++; + } } - if (action->generate_ack && ue_dl_cfg.cfg.pdsch.grant.nof_tb > 0) { + if (action->generate_ack && nof_tb > 0) { phy->set_dl_pending_ack(&sf_cfg_dl, cc_idx, pending_acks, ack_resource); }