Skip to content

Commit 6c2a5ec

Browse files
gnb,cu_cp,ngap: Change ue context setup timeout to seconds
1 parent b806337 commit 6c2a5ec

File tree

8 files changed

+36
-31
lines changed

8 files changed

+36
-31
lines changed

apps/gnb/gnb_appconfig.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -649,8 +649,8 @@ struct security_appconfig {
649649
};
650650

651651
struct cu_cp_appconfig {
652-
int inactivity_timer = 7200; // in seconds
653-
int ue_context_setup_timer = 2000; // in milliseconds
652+
int inactivity_timer = 7200; // in seconds
653+
int ue_context_setup_timeout_s = 2; // in seconds
654654
mobility_appconfig mobility_config;
655655
rrc_appconfig rrc_config;
656656
security_appconfig security_config;

apps/gnb/gnb_appconfig_cli11_schema.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -360,10 +360,10 @@ static void configure_cli11_cu_cp_args(CLI::App& app, cu_cp_appconfig& cu_cp_par
360360
->capture_default_str()
361361
->check(CLI::Range(1, 7200));
362362

363-
app.add_option("--ue_context_setup_timer",
364-
cu_cp_params.ue_context_setup_timer,
363+
app.add_option("--ue_context_setup_timeout_s",
364+
cu_cp_params.ue_context_setup_timeout_s,
365365
"Timeout for the reception of an InitialContextSetupRequest after an InitialUeMessage was sent to the "
366-
"core. If the value is reached, the UE will be released")
366+
"core, in seconds. If the value is reached, the UE will be released")
367367
->capture_default_str();
368368

369369
CLI::App* mobility_subcmd = app.add_subcommand("mobility", "Mobility configuration");

apps/gnb/gnb_appconfig_translators.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,9 @@ srs_cu_cp::cu_cp_configuration srsran::generate_cu_cp_config(const gnb_appconfig
113113
config.cu_cp_cfg.security_config.confidentiality_protection);
114114
}
115115

116-
out_cfg.ue_config.inactivity_timer = std::chrono::seconds{config.cu_cp_cfg.inactivity_timer};
117-
out_cfg.ngap_config.ue_context_setup_timer = std::chrono::seconds{config.cu_cp_cfg.ue_context_setup_timer};
118-
out_cfg.statistics_report_period = std::chrono::seconds{config.metrics_cfg.cu_cp_statistics_report_period};
116+
out_cfg.ue_config.inactivity_timer = std::chrono::seconds{config.cu_cp_cfg.inactivity_timer};
117+
out_cfg.ngap_config.ue_context_setup_timeout_s = std::chrono::seconds{config.cu_cp_cfg.ue_context_setup_timeout_s};
118+
out_cfg.statistics_report_period = std::chrono::seconds{config.metrics_cfg.cu_cp_statistics_report_period};
119119

120120
out_cfg.mobility_config.mobility_manager_config.trigger_handover_from_measurements =
121121
config.cu_cp_cfg.mobility_config.trigger_handover_from_measurements;

include/srsran/ngap/ngap_configuration.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ namespace srs_cu_cp {
2121

2222
/// \brief NGAP configuration
2323
struct ngap_configuration {
24-
unsigned gnb_id = 0;
25-
std::string ran_node_name;
26-
std::string plmn; /// Full PLMN as string (without possible filler digit) e.g. "00101"
27-
unsigned tac;
28-
std::vector<s_nssai_t> slice_configurations;
29-
std::chrono::milliseconds ue_context_setup_timer; // timeout for ue context setup in milliseconds
24+
unsigned gnb_id = 0;
25+
std::string ran_node_name;
26+
std::string plmn; /// Full PLMN as string (without possible filler digit) e.g. "00101"
27+
unsigned tac;
28+
std::vector<s_nssai_t> slice_configurations;
29+
std::chrono::seconds ue_context_setup_timeout_s; // timeout for ue context setup in seconds
3030
};
3131

3232
} // namespace srs_cu_cp

lib/ngap/ngap_context.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ namespace srs_cu_cp {
1919

2020
/// \brief NGAP context
2121
struct ngap_context_t {
22-
unsigned gnb_id = 0;
23-
std::string ran_node_name;
24-
std::string plmn; /// Full PLMN as string (without possible filler digit) e.g. "00101"
25-
unsigned tac;
26-
std::vector<guami_t> served_guami_list;
27-
guami_t current_guami;
28-
std::chrono::milliseconds ue_context_setup_timer; // timeout for ue context setup in milliseconds
22+
unsigned gnb_id = 0;
23+
std::string ran_node_name;
24+
std::string plmn; /// Full PLMN as string (without possible filler digit) e.g. "00101"
25+
unsigned tac;
26+
std::vector<guami_t> served_guami_list;
27+
guami_t current_guami;
28+
std::chrono::seconds ue_context_setup_timeout_s; // timeout for ue context setup in seconds
2929
};
3030

3131
} // namespace srs_cu_cp

lib/ngap/ngap_impl.cpp

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ ngap_impl::ngap_impl(ngap_configuration& ngap_cfg_,
4343
ctrl_exec(ctrl_exec_),
4444
ev_mng(timer_factory{task_sched.get_timer_manager(), ctrl_exec})
4545
{
46-
context.gnb_id = ngap_cfg_.gnb_id;
47-
context.ran_node_name = ngap_cfg_.ran_node_name;
48-
context.plmn = ngap_cfg_.plmn;
49-
context.tac = ngap_cfg_.tac;
50-
context.ue_context_setup_timer = ngap_cfg_.ue_context_setup_timer;
46+
context.gnb_id = ngap_cfg_.gnb_id;
47+
context.ran_node_name = ngap_cfg_.ran_node_name;
48+
context.plmn = ngap_cfg_.plmn;
49+
context.tac = ngap_cfg_.tac;
50+
context.ue_context_setup_timeout_s = ngap_cfg_.ue_context_setup_timeout_s;
5151
}
5252

5353
// Note: For fwd declaration of member types, dtor cannot be trivial.
@@ -120,12 +120,15 @@ void ngap_impl::handle_initial_ue_message(const cu_cp_initial_ue_message& msg)
120120
fill_asn1_initial_ue_message(init_ue_msg, msg, context);
121121

122122
// Start UE context setup timer
123-
ue_ctxt.ue_context_setup_timer.set(context.ue_context_setup_timer, [this, msg](timer_id_t /*tid*/) {
123+
ue_ctxt.ue_context_setup_timer.set(context.ue_context_setup_timeout_s, [this, msg](timer_id_t /*tid*/) {
124124
on_ue_context_setup_timer_expired(msg.ue_index);
125125
});
126126
ue_ctxt.ue_context_setup_timer.run();
127127

128-
logger.info("ue={} ran_ue_id={}: Sending InitialUeMessage", msg.ue_index, ue_ctxt.ue_ids.ran_ue_id);
128+
logger.info("ue={} ran_ue_id={}: Sending InitialUeMessage (timeout={}s)",
129+
msg.ue_index,
130+
ue_ctxt.ue_ids.ran_ue_id,
131+
ue_ctxt.ue_context_setup_timer.duration().count());
129132

130133
// Forward message to AMF
131134
ngap_notifier.on_new_message(ngap_msg);
@@ -915,7 +918,9 @@ void ngap_impl::on_ue_context_setup_timer_expired(ue_index_t ue_index)
915918
if (ue_ctxt_list.contains(ue_index)) {
916919
ngap_ue_context& ue_ctxt = ue_ctxt_list[ue_index];
917920

918-
logger.warning("ue={}: UE context setup timer expired. Releasing UE from DU", ue_index);
921+
logger.warning("ue={}: UE context setup timer expired after {}s. Releasing UE from DU",
922+
ue_index,
923+
ue_ctxt.ue_context_setup_timer.duration().count());
919924

920925
auto* ue = ue_manager.find_ngap_ue(ue_ctxt.ue_ids.ue_index);
921926
srsran_assert(ue != nullptr,

tests/unittests/ngap/ngap_nas_message_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ TEST_F(ngap_nas_message_routine_test, when_initial_context_setup_request_is_not_
8383

8484
// tick timers
8585
// Status: NGAP does not receive new Initial Context Setup Request until ue_context_setup_timer has ended.
86-
for (unsigned msec_elapsed = 0; msec_elapsed < cfg.ue_context_setup_timer.count(); ++msec_elapsed) {
86+
for (unsigned msec_elapsed = 0; msec_elapsed < cfg.ue_context_setup_timeout_s.count() * 1000; ++msec_elapsed) {
8787
this->tick();
8888
}
8989

tests/unittests/ngap/ngap_test_helpers.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ ngap_test::ngap_test() : ngap_ue_task_scheduler(timers, ctrl_worker)
3232
s_nssai_t slice_cfg;
3333
slice_cfg.sst = 1;
3434
cfg.slice_configurations.push_back(slice_cfg);
35-
cfg.ue_context_setup_timer = std::chrono::milliseconds(2000);
35+
cfg.ue_context_setup_timeout_s = std::chrono::seconds(2);
3636

3737
ngap = create_ngap(cfg, cu_cp_paging_notifier, ngap_ue_task_scheduler, ue_mng, msg_notifier, ctrl_worker);
3838

0 commit comments

Comments
 (0)