From 4be4f5633389c0971f85c5d4982f0979430630e2 Mon Sep 17 00:00:00 2001 From: Xavier Arteaga Date: Wed, 11 Dec 2019 19:42:03 +0100 Subject: [PATCH] SRSUE: Fix duplicates ACK --- srsue/src/phy/cc_worker.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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); }