mirror of https://github.com/PentHertz/srsLTE.git
srsue,mac: do not destroy active dl_harq_proc during a reconfiguration
This commit is contained in:
parent
12435eae7d
commit
496b8e2748
|
@ -26,6 +26,14 @@ dl_harq_entity_nr::dl_harq_entity_nr(uint8_t cc_idx_,
|
|||
// Init broadcast HARQ process
|
||||
bcch_proc.init(-1);
|
||||
pthread_rwlock_init(&rwlock, NULL);
|
||||
|
||||
// Create default number of processes
|
||||
for (uint32_t i = 0; i < cfg.nof_procs; i++) {
|
||||
harq_procs[i] = std::unique_ptr<dl_harq_process_nr>(new dl_harq_process_nr(this));
|
||||
if (!harq_procs.at(i)->init(i)) {
|
||||
logger.error("Error while initializing DL-HARQ process %d", i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dl_harq_entity_nr::~dl_harq_entity_nr()
|
||||
|
@ -42,19 +50,21 @@ int32_t dl_harq_entity_nr::set_config(const srsran::dl_harq_cfg_nr_t& cfg_)
|
|||
return SRSRAN_ERROR;
|
||||
}
|
||||
|
||||
// clear old processees
|
||||
for (auto& proc : harq_procs) {
|
||||
proc = nullptr;
|
||||
if (cfg_.nof_procs < cfg.nof_procs) {
|
||||
// clear old processes if not needed
|
||||
for (uint32_t i = cfg.nof_procs - 1; i < cfg_.nof_procs; i++) {
|
||||
harq_procs[i] = nullptr;
|
||||
}
|
||||
|
||||
// Allocate and init configured HARQ processes
|
||||
for (uint32_t i = 0; i < cfg.nof_procs; i++) {
|
||||
} else {
|
||||
// Add new processes
|
||||
for (uint32_t i = cfg.nof_procs; i < cfg_.nof_procs; i++) {
|
||||
harq_procs[i] = std::unique_ptr<dl_harq_process_nr>(new dl_harq_process_nr(this));
|
||||
if (!harq_procs.at(i)->init(i)) {
|
||||
logger.error("Error while initializing DL-HARQ process %d", i);
|
||||
return SRSRAN_ERROR;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cfg = cfg_;
|
||||
|
||||
|
|
Loading…
Reference in New Issue