diff --git a/lib/include/srsran/test/ue_test_interfaces.h b/lib/include/srsran/test/ue_test_interfaces.h index 3df9d9605..196a39e45 100644 --- a/lib/include/srsran/test/ue_test_interfaces.h +++ b/lib/include/srsran/test/ue_test_interfaces.h @@ -29,6 +29,7 @@ public: srsran::tti_point get_current_tti() override { return srsran::tti_point{tti % 10240}; } void add_eps_bearer(uint8_t eps_bearer_id, srsran::srsran_rat_t rat, uint32_t lcid) final{}; void remove_eps_bearer(uint8_t eps_bearer_id) final{}; + void reset_eps_bearers() final{}; // Testing utility functions void run_tti() diff --git a/srsue/src/stack/rrc/rrc.cc b/srsue/src/stack/rrc/rrc.cc index eb6ea061a..28935ef8d 100644 --- a/srsue/src/stack/rrc/rrc.cc +++ b/srsue/src/stack/rrc/rrc.cc @@ -1098,7 +1098,9 @@ void rrc::rrc_connection_release(const std::string& cause) { // Save idleModeMobilityControlInfo, etc. srsran::console("Received RRC Connection Release (releaseCause: %s)\n", cause.c_str()); - start_go_idle(); + + // delay actions by 60ms as per 5.3.8.3 + task_sched.defer_callback(60, [this]() { start_go_idle(); }); } /// TS 36.331, 5.3.12 - UE actions upon leaving RRC_CONNECTED diff --git a/srsue/src/stack/rrc/test/ue_rrc_nr_test.cc b/srsue/src/stack/rrc/test/ue_rrc_nr_test.cc index 185386a01..1f382e78c 100644 --- a/srsue/src/stack/rrc/test/ue_rrc_nr_test.cc +++ b/srsue/src/stack/rrc/test/ue_rrc_nr_test.cc @@ -100,9 +100,10 @@ class dummy_sim : public usim_interface_rrc_nr class dummy_stack : public stack_interface_rrc { - srsran::tti_point get_current_tti() { return srsran::tti_point(); }; - void add_eps_bearer(uint8_t eps_bearer_id, srsran::srsran_rat_t rat, uint32_t lcid){}; - void remove_eps_bearer(uint8_t eps_bearer_id){}; + srsran::tti_point get_current_tti() final { return srsran::tti_point(); }; + void add_eps_bearer(uint8_t eps_bearer_id, srsran::srsran_rat_t rat, uint32_t lcid) final{}; + void remove_eps_bearer(uint8_t eps_bearer_id) final{}; + void reset_eps_bearers() final{}; }; int rrc_nr_cap_request_test()