Skip to content

Commit 5d90166

Browse files
FabianEckermanncodebot
authored andcommitted
cu_cp,rrc: increase default rrc guard time, remove rrc procedure extra time and improve documentation
1 parent 6910a10 commit 5d90166

13 files changed

+14
-19
lines changed

apps/units/o_cu_cp/cu_cp/cu_cp_unit_config.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,9 @@ struct cu_cp_unit_mobility_config {
134134
struct cu_cp_unit_rrc_config {
135135
bool force_reestablishment_fallback = false;
136136
/// Guard time in ms that is added to the RRC procedure timeout.
137-
unsigned rrc_procedure_guard_time_ms = 500;
137+
/// NOTE: Guard time needs to be larger then SRB max retx thres * t-PollRetransmit.
138+
/// (2 * default SRB maxRetxThreshold * t-PollRetransmit = 2 * 8 * 45ms = 720ms, see TS 38.331 Sec 9.2.1)
139+
unsigned rrc_procedure_guard_time_ms = 1000;
138140
};
139141

140142
/// Security configuration parameters.

include/srsran/cu_cp/cu_cp_configuration.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ struct cu_cp_configuration {
9494
/// Force re-establishment fallback.
9595
bool force_reestablishment_fallback = false;
9696
/// Guard time for RRC procedures.
97-
std::chrono::milliseconds rrc_procedure_guard_time_ms{500};
97+
std::chrono::milliseconds rrc_procedure_guard_time_ms{1000};
9898
/// Version of the RRC.
9999
unsigned rrc_version = 2;
100100
};

include/srsran/rrc/rrc_types.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@
2323
namespace srsran {
2424
namespace srs_cu_cp {
2525

26-
// Extra time that is added to RRC procedures to make sure procedures can complete.
27-
constexpr std::chrono::milliseconds RRC_PROCEDURE_EXTRA_TIME{500};
28-
2926
/// Arguments for the RRC Reconfiguration procedure.
3027

3128
struct rrc_srb_to_add_mod {

lib/rrc/ue/procedures/rrc_reconfiguration_procedure.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ rrc_reconfiguration_procedure::rrc_reconfiguration_procedure(rrc_ue_context_t&
2929
srb_notifier(srb_notifier_),
3030
logger(logger_)
3131
{
32-
procedure_timeout = context.cell.timers.t311 + RRC_PROCEDURE_EXTRA_TIME + context.cfg.rrc_procedure_guard_time_ms;
32+
procedure_timeout = context.cell.timers.t311 + context.cfg.rrc_procedure_guard_time_ms;
3333
}
3434

3535
void rrc_reconfiguration_procedure::operator()(coro_context<async_task<bool>>& ctx)

lib/rrc/ue/procedures/rrc_reestablishment_procedure.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ rrc_reestablishment_procedure::rrc_reestablishment_procedure(
4545
event_mng(event_mng_),
4646
logger(logger_)
4747
{
48-
procedure_timeout = context.cell.timers.t311 + RRC_PROCEDURE_EXTRA_TIME + context.cfg.rrc_procedure_guard_time_ms;
48+
procedure_timeout = context.cell.timers.t311 + context.cfg.rrc_procedure_guard_time_ms;
4949
}
5050

5151
void rrc_reestablishment_procedure::operator()(coro_context<async_task<void>>& ctx)

lib/rrc/ue/procedures/rrc_setup_procedure.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ rrc_setup_procedure::rrc_setup_procedure(rrc_ue_context_t& context
3737
is_reestablishment_fallback(is_reestablishment_fallback_),
3838
logger(logger_)
3939
{
40-
procedure_timeout = context.cell.timers.t300 + RRC_PROCEDURE_EXTRA_TIME + context.cfg.rrc_procedure_guard_time_ms;
40+
procedure_timeout = context.cell.timers.t300 + context.cfg.rrc_procedure_guard_time_ms;
4141
}
4242

4343
void rrc_setup_procedure::operator()(coro_context<async_task<void>>& ctx)

lib/rrc/ue/procedures/rrc_ue_capability_transfer_procedure.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ rrc_ue_capability_transfer_procedure::rrc_ue_capability_transfer_procedure(
2222
rrc_ue_logger& logger_) :
2323
context(context_), rrc_ue(rrc_ue_notifier_), event_mng(event_mng_), logger(logger_)
2424
{
25-
procedure_timeout = RRC_PROCEDURE_EXTRA_TIME + context.cfg.rrc_procedure_guard_time_ms;
25+
procedure_timeout = context.cfg.rrc_procedure_guard_time_ms;
2626
}
2727

2828
void rrc_ue_capability_transfer_procedure::operator()(coro_context<async_task<bool>>& ctx)

lib/rrc/ue/rrc_ue_message_handlers.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ rrc_ue_security_mode_command_context rrc_ue_impl::get_security_mode_command_cont
320320
async_task<bool> rrc_ue_impl::handle_security_mode_complete_expected(uint8_t transaction_id)
321321
{
322322
return launch_async([this,
323-
timeout_ms = RRC_PROCEDURE_EXTRA_TIME + context.cfg.rrc_procedure_guard_time_ms,
323+
timeout_ms = context.cfg.rrc_procedure_guard_time_ms,
324324
transaction_id,
325325
transaction = rrc_transaction{}](coro_context<async_task<bool>>& ctx) mutable {
326326
CORO_BEGIN(ctx);

tests/unittests/cu_cp/cu_cp_initial_context_setup_test.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -318,10 +318,7 @@ TEST_F(cu_cp_initial_context_setup_test, when_ue_capability_enquiry_fails_then_i
318318
ASSERT_TRUE(send_security_mode_complete_and_await_ue_capability_enquiry());
319319

320320
// Fail UE Capability Enquiry (UE doesn't respond)
321-
ASSERT_FALSE(tick_until(
322-
RRC_PROCEDURE_EXTRA_TIME + this->get_cu_cp_cfg().rrc.rrc_procedure_guard_time_ms,
323-
[&]() { return false; },
324-
false));
321+
ASSERT_FALSE(tick_until(this->get_cu_cp_cfg().rrc.rrc_procedure_guard_time_ms, [&]() { return false; }, false));
325322

326323
// Wait for NGAP Initial Context Setup Failure
327324
ASSERT_TRUE(await_initial_context_setup_failure());

tests/unittests/cu_cp/cu_cp_pdu_session_resource_modify_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ class cu_cp_pdu_session_resource_modify_test : public cu_cp_test_environment, pu
283283
{
284284
// Fail RRC Reconfiguration (UE doesn't respond) and wait for PDU Session Resource Setup Response
285285
if (tick_until(
286-
rrc_test_timer_values.t310 + rrc_test_timer_values.t311 + RRC_PROCEDURE_EXTRA_TIME +
286+
rrc_test_timer_values.t310 + rrc_test_timer_values.t311 +
287287
this->get_cu_cp_cfg().rrc.rrc_procedure_guard_time_ms,
288288
[&]() { return false; },
289289
false)) {

0 commit comments

Comments
 (0)