enb: remove usleep after sending RRC Connection Release to UE

this cause a "dead-lock" with ZMQ because it made the stack
thread sleep for 50ms. With a sync-queue size of 1 (now the default
using ZMQ) the zmq-based radio to timeout. as a result
the rx/tx between UE and eNB stopped so the UE never reached
RRC Idle state.
master
Andre Puschmann 5 years ago
parent cd0202aeaf
commit e2146e90ad

@ -537,10 +537,9 @@ void rrc::process_release_complete(uint16_t rnti)
if (!user_it->second->is_idle()) { if (!user_it->second->is_idle()) {
rlc->clear_buffer(rnti); rlc->clear_buffer(rnti);
user_it->second->send_connection_release(); user_it->second->send_connection_release();
// There is no RRCReleaseComplete message from UE thus wait ~50 subframes for tx
usleep(50000);
} }
rem_user_thread(rnti); // delay user deletion for ~50 TTI (until RRC release is sent)
timers->defer_callback(50, [&]() { rem_user_thread(rnti); });
} else { } else {
rrc_log->error("Received ReleaseComplete for unknown rnti=0x%x\n", rnti); rrc_log->error("Received ReleaseComplete for unknown rnti=0x%x\n", rnti);
} }

Loading…
Cancel
Save