Skip to content

Commit 8776670

Browse files
FabianEckermanncodebot
authored andcommitted
cu_cp,rrc: refactor rrc procedure timeouts
1 parent c96d192 commit 8776670

29 files changed

+82
-57
lines changed

apps/units/o_cu_cp/cu_cp/cu_cp_config_translators.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ srs_cu_cp::cu_cp_configuration srsran::generate_cu_cp_config(const cu_cp_unit_co
375375
#endif // SRSRAN_HAS_ENTERPRISE
376376

377377
out_cfg.rrc.force_reestablishment_fallback = cu_cfg.rrc_config.force_reestablishment_fallback;
378-
out_cfg.rrc.rrc_procedure_timeout_ms = std::chrono::milliseconds{cu_cfg.rrc_config.rrc_procedure_timeout_ms};
378+
out_cfg.rrc.rrc_procedure_guard_time_ms = std::chrono::milliseconds{cu_cfg.rrc_config.rrc_procedure_guard_time_ms};
379379

380380
out_cfg.bearers.drb_config = generate_cu_cp_qos_config(cu_cfg);
381381

apps/units/o_cu_cp/cu_cp/cu_cp_unit_config.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,8 @@ struct cu_cp_unit_mobility_config {
133133
/// RRC specific configuration parameters.
134134
struct cu_cp_unit_rrc_config {
135135
bool force_reestablishment_fallback = false;
136-
/// Timeout for RRC procedures (2 * default SRB maxRetxThreshold * t-PollRetransmit = 2 * 8 * 45ms = 720ms, see
137-
/// TS 38.331 Sec 9.2.1).
138-
unsigned rrc_procedure_timeout_ms = 720;
136+
/// Guard time for RRC procedures.
137+
unsigned rrc_procedure_guard_time_ms = 500;
139138
};
140139

141140
/// Security configuration parameters.

apps/units/o_cu_cp/cu_cp/cu_cp_unit_config_cli11_schema.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -341,12 +341,10 @@ static void configure_cli11_rrc_args(CLI::App& app, cu_cp_unit_rrc_config& confi
341341
"Force RRC re-establishment fallback to RRC setup")
342342
->capture_default_str();
343343

344-
add_option(
345-
app,
346-
"--rrc_procedure_timeout_ms",
347-
config.rrc_procedure_timeout_ms,
348-
"Timeout in ms used for RRC message exchange with UE. It needs to suit the expected communication delay and "
349-
"account for potential retransmissions UE processing delays, SR delays, etc.")
344+
add_option(app,
345+
"--rrc_procedure_guard_time_ms",
346+
config.rrc_procedure_guard_time_ms,
347+
"Guard time in ms used for RRC message exchange with UE. This is added to the RRC procedure timeout.")
350348
->capture_default_str();
351349
}
352350

apps/units/o_cu_cp/cu_cp/cu_cp_unit_config_yaml_writer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ static YAML::Node build_cu_cp_rrc_section(const cu_cp_unit_rrc_config& config)
205205
YAML::Node node;
206206

207207
node["force_reestablishment_fallback"] = config.force_reestablishment_fallback;
208-
node["rrc_procedure_timeout_ms"] = config.rrc_procedure_timeout_ms;
208+
node["rrc_procedure_guard_time_ms"] = config.rrc_procedure_guard_time_ms;
209209

210210
return node;
211211
}

configs/geo_ntn.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,5 @@ cell_cfg:
2525
max_msg3_harq_retx: 0
2626

2727
cu_cp:
28-
rrc: # sets the RRC timeout to 12.8 seconds to allow for the larger channel delay
29-
rrc_procedure_timeout_ms: 12800
28+
rrc: # sets the RRC guard time to 12.8 seconds to allow for the larger channel delay
29+
rrc_procedure_guard_time_ms: 12800

include/srsran/cu_cp/cu_cp_configuration.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ struct cu_cp_configuration {
9393
struct rrc_params {
9494
/// Force re-establishment fallback.
9595
bool force_reestablishment_fallback = false;
96-
/// Timeout for RRC procedures.
97-
std::chrono::milliseconds rrc_procedure_timeout_ms{360};
96+
/// Guard time for RRC procedures.
97+
std::chrono::milliseconds rrc_procedure_guard_time_ms{500};
9898
/// Version of the RRC.
9999
unsigned rrc_version = 2;
100100
};

include/srsran/rrc/rrc_config.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ struct rrc_cfg_t {
3333
security::preferred_ciphering_algorithms enc_algo_pref_list{security::ciphering_algorithm::nea0};
3434
/// Force re-establishment fallback.
3535
bool force_reestablishment_fallback = false;
36-
/// Timeout for RRC procedures.
37-
std::chrono::milliseconds rrc_procedure_timeout_ms{360};
36+
/// Guard time for RRC procedures.
37+
std::chrono::milliseconds rrc_procedure_guard_time_ms{500};
3838
};
3939

4040
} // namespace srs_cu_cp

include/srsran/rrc/rrc_ue_config.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,8 @@ struct rrc_ue_cfg_t {
2828
srb_pdcp_config srb1_pdcp_cfg;
2929
std::vector<rrc_meas_timing> meas_timings;
3030
bool force_reestablishment_fallback = false;
31-
/// \brief Timeout used for RRC message exchange with UE. It needs to suit the expected communication delay and
32-
/// account for potential retransmissions (HARQ and RLC), UE processing delays (see Sec 12 in TS 38.331), SR delays,
33-
/// etc.
34-
std::chrono::milliseconds rrc_procedure_timeout_ms{360};
31+
/// \brief Guard time used for RRC message exchange with UE.
32+
std::chrono::milliseconds rrc_procedure_guard_time_ms{500};
3533
};
3634

3735
} // namespace srs_cu_cp

lib/cu_cp/du_processor/du_processor_impl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ static rrc_cfg_t create_rrc_config(const cu_cp_configuration& cu_cp_cfg)
2424
rrc_cfg_t rrc_cfg;
2525
rrc_cfg.gnb_id = cu_cp_cfg.node.gnb_id;
2626
rrc_cfg.force_reestablishment_fallback = cu_cp_cfg.rrc.force_reestablishment_fallback;
27-
rrc_cfg.rrc_procedure_timeout_ms = cu_cp_cfg.rrc.rrc_procedure_timeout_ms;
27+
rrc_cfg.rrc_procedure_guard_time_ms = cu_cp_cfg.rrc.rrc_procedure_guard_time_ms;
2828
rrc_cfg.int_algo_pref_list = cu_cp_cfg.security.int_algo_pref_list;
2929
rrc_cfg.enc_algo_pref_list = cu_cp_cfg.security.enc_algo_pref_list;
3030
rrc_cfg.srb2_cfg = cu_cp_cfg.bearers.srb2_cfg;

lib/rrc/rrc_du_impl.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,13 @@ rrc_ue_interface* rrc_du_impl::add_ue(const rrc_ue_creation_message& msg)
138138
ue_index_t ue_index = msg.ue_index;
139139
rrc_ue_cfg_t ue_cfg = {};
140140
ue_cfg.force_reestablishment_fallback = cfg.force_reestablishment_fallback;
141-
ue_cfg.rrc_procedure_timeout_ms = cfg.rrc_procedure_timeout_ms;
141+
ue_cfg.rrc_procedure_guard_time_ms = cfg.rrc_procedure_guard_time_ms;
142142
ue_cfg.meas_timings = cell_info_db.at(msg.cell.cgi.nci).meas_timings;
143143

144144
// Copy RRC cell and add SSB ARFCN.
145145
rrc_cell_context rrc_cell = msg.cell;
146146
rrc_cell.ssb_arfcn = ue_cfg.meas_timings.front().freq_and_timing.value().carrier_freq;
147+
rrc_cell.timers = cell_info_db.at(msg.cell.cgi.nci).timers;
147148

148149
// Add RRC UE to RRC DU adapter.
149150
rrc_ue_rrc_du_adapters.emplace(ue_index, rrc_ue_rrc_du_adapter{get_rrc_du_connection_event_handler()});

0 commit comments

Comments
 (0)