diff --git a/srsue/hdr/mac/dl_harq.h b/srsue/hdr/mac/dl_harq.h index 9a7f66f47..261fb0d41 100644 --- a/srsue/hdr/mac/dl_harq.h +++ b/srsue/hdr/mac/dl_harq.h @@ -253,14 +253,14 @@ private: n_retx = 0; } - // Save grant - grant.last_ndi[tid] = cur_grant.ndi[tid]; - grant.last_tti = cur_grant.tti; - memcpy(&cur_grant, &grant, sizeof(Tgrant)); - // If data has not yet been successfully decoded if (!ack) { + // Save grant + grant.last_ndi[tid] = cur_grant.ndi[tid]; + grant.last_tti = cur_grant.tti; + memcpy(&cur_grant, &grant, sizeof(Tgrant)); + // Instruct the PHY To combine the received data and attempt to decode it if (pid == HARQ_BCCH_PID) { payload_buffer_ptr = harq_entity->demux_unit->request_buffer_bcch(cur_grant.n_bytes[tid]); @@ -281,7 +281,8 @@ private: } else { action->default_ack[tid] = true; - Warning("DL PID %d: Received duplicate TB. Discarting and retransmitting ACK\n", pid); + Warning("DL PID %d: Received duplicate TB. Discarting and retransmitting ACK (grant_tti=%d, ndi=%d, sz=%d)\n", + pid, cur_grant.tti, cur_grant.ndi[tid], cur_grant.n_bytes[tid]); } if (pid == HARQ_BCCH_PID || harq_entity->timer_aligment_timer->is_expired()) { diff --git a/srsue/hdr/phy/phch_common.h b/srsue/hdr/phy/phch_common.h index f21738b6b..e6ce10bc3 100644 --- a/srsue/hdr/phy/phch_common.h +++ b/srsue/hdr/phy/phch_common.h @@ -27,7 +27,7 @@ #ifndef UEPHYWORKERCOMMON_H #define UEPHYWORKERCOMMON_H -#define TX_MODE_CONTINUOUS 1 +#define TX_MODE_CONTINUOUS 0 #include diff --git a/srsue/src/phy/phch_recv.cc b/srsue/src/phy/phch_recv.cc index 68d7d6c3c..7bb371db4 100644 --- a/srsue/src/phy/phch_recv.cc +++ b/srsue/src/phy/phch_recv.cc @@ -935,6 +935,7 @@ phch_recv::search::ret_code phch_recv::search::run(srslte_cell_t *cell) if (ret < 0) { Error("SYNC: Error decoding MIB: Error searching PSS\n"); + p->stop_rx(); return ERROR; } else if (ret == 0) { p->stop_rx(); diff --git a/srsue/src/upper/nas.cc b/srsue/src/upper/nas.cc index 7f5683867..07d254cdc 100644 --- a/srsue/src/upper/nas.cc +++ b/srsue/src/upper/nas.cc @@ -173,6 +173,7 @@ void nas::plmn_search_end() { } else { nas_log->info("Finished searching PLMN in current EARFCN set but no networks were found.\n"); if (state == EMM_STATE_REGISTERED_INITIATED && plmn_selection == PLMN_NOT_SELECTED) { + sleep(1); rrc->plmn_search(); } }