Skip to content

Commit 82be8c3

Browse files
frankistcodebot
authored andcommitted
cu-cp: make rrc setup timeout for old UE in reestablishment integration test
1 parent 39adb23 commit 82be8c3

File tree

3 files changed

+31
-25
lines changed

3 files changed

+31
-25
lines changed

tests/unittests/cu_cp/cu_cp_reestablishment_test.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ TEST_F(cu_cp_reestablishment_test, when_old_ue_is_busy_with_a_procedure_then_ree
235235
rnti_t new_crnti = to_rnti(0x4602);
236236
ASSERT_FALSE(send_rrc_reest_request_and_wait_response(new_du_ue_id, new_crnti, old_crnti, old_pci));
237237

238-
// new UE sends RRC Setup Complete and completes fallback procedure.
238+
// EVENT: new UE sends RRC Setup Complete and completes fallback procedure.
239239
gnb_cu_ue_f1ap_id_t cu_ue_id = int_to_gnb_cu_ue_f1ap_id(1);
240240
this->ue_sends_rrc_setup_complete(new_du_ue_id, cu_ue_id);
241241

@@ -248,12 +248,13 @@ TEST_F(cu_cp_reestablishment_test, when_old_ue_is_busy_with_a_procedure_then_ree
248248
f1ap_message f1ap_pdu;
249249
ASSERT_FALSE(this->get_du(du_idx).try_pop_dl_pdu(f1ap_pdu)) << "UE Context Release Command sent to soon";
250250

251-
// Send RRC Setup Complete for old UE.
252-
gnb_cu_ue_f1ap_id_t old_cu_ue_id =
253-
int_to_gnb_cu_ue_f1ap_id(msg->pdu.init_msg().value.dl_rrc_msg_transfer()->gnb_cu_ue_f1ap_id);
254-
this->ue_sends_rrc_setup_complete(old_du_ue_id, old_cu_ue_id);
251+
// RRC Setup timeout for old UE.
252+
std::chrono::milliseconds timeout{this->get_cu_cp_cfg().rrc_config.rrc_procedure_timeout_ms};
253+
for (unsigned i = 0; i != timeout.count(); ++i) {
254+
this->tick();
255+
}
255256

256-
// STATUS: CU-CP sends UE Context Release Command after the previous procedure times out.
257+
// STATUS: CU-CP sends F1AP UE Context Release Command for old UE after the previous procedure times out.
257258
ASSERT_TRUE(this->wait_for_f1ap_tx_pdu(du_idx, f1ap_pdu));
258259
ASSERT_TRUE(test_helpers::is_valid_ue_context_release_command(f1ap_pdu));
259260
auto report = this->get_cu_cp().get_metrics_handler().request_metrics_report();

tests/unittests/cu_cp/cu_cp_test_environment.cpp

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -63,28 +63,28 @@ cu_cp_test_environment::cu_cp_test_environment(cu_cp_test_env_params params_) :
6363
srslog::init();
6464

6565
// create CU-CP config
66-
cu_cp_configuration cfg = config_helpers::make_default_cu_cp_config();
67-
cfg.cu_cp_executor = cu_cp_workers->exec.get();
68-
cfg.ngap_notifier = &*amf_stub;
69-
cfg.timers = &timers;
70-
cfg.ngap_config = config_helpers::make_default_ngap_config();
71-
cfg.max_nof_dus = params.max_nof_dus;
72-
cfg.max_nof_cu_ups = params.max_nof_cu_ups;
73-
cfg.ue_config.max_nof_supported_ues = params.max_nof_dus * MAX_NOF_UES_PER_DU;
66+
cu_cp_cfg = config_helpers::make_default_cu_cp_config();
67+
cu_cp_cfg.cu_cp_executor = cu_cp_workers->exec.get();
68+
cu_cp_cfg.ngap_notifier = &*amf_stub;
69+
cu_cp_cfg.timers = &timers;
70+
cu_cp_cfg.ngap_config = config_helpers::make_default_ngap_config();
71+
cu_cp_cfg.max_nof_dus = params.max_nof_dus;
72+
cu_cp_cfg.max_nof_cu_ups = params.max_nof_cu_ups;
73+
cu_cp_cfg.ue_config.max_nof_supported_ues = params.max_nof_dus * MAX_NOF_UES_PER_DU;
7474
// > RRC config.
75-
cfg.rrc_config.gnb_id = cfg.ngap_config.gnb_id;
76-
cfg.rrc_config.drb_config = config_helpers::make_default_cu_cp_qos_config_list();
77-
cfg.rrc_config.int_algo_pref_list = {security::integrity_algorithm::nia2,
78-
security::integrity_algorithm::nia1,
79-
security::integrity_algorithm::nia3,
80-
security::integrity_algorithm::nia0};
81-
cfg.rrc_config.enc_algo_pref_list = {security::ciphering_algorithm::nea0,
82-
security::ciphering_algorithm::nea2,
83-
security::ciphering_algorithm::nea1,
84-
security::ciphering_algorithm::nea3};
75+
cu_cp_cfg.rrc_config.gnb_id = cu_cp_cfg.ngap_config.gnb_id;
76+
cu_cp_cfg.rrc_config.drb_config = config_helpers::make_default_cu_cp_qos_config_list();
77+
cu_cp_cfg.rrc_config.int_algo_pref_list = {security::integrity_algorithm::nia2,
78+
security::integrity_algorithm::nia1,
79+
security::integrity_algorithm::nia3,
80+
security::integrity_algorithm::nia0};
81+
cu_cp_cfg.rrc_config.enc_algo_pref_list = {security::ciphering_algorithm::nea0,
82+
security::ciphering_algorithm::nea2,
83+
security::ciphering_algorithm::nea1,
84+
security::ciphering_algorithm::nea3};
8585

8686
// create CU-CP instance.
87-
cu_cp_inst = create_cu_cp(cfg);
87+
cu_cp_inst = create_cu_cp(cu_cp_cfg);
8888

8989
// Pass CU-CP PDU handler to AMF.
9090
amf_stub->attach_cu_cp_pdu_handler(cu_cp_inst->get_ng_handler().get_ngap_message_handler());

tests/unittests/cu_cp/cu_cp_test_environment.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include "test_doubles/mock_cu_up.h"
1515
#include "test_doubles/mock_du.h"
1616
#include "srsran/cu_cp/cu_cp.h"
17+
#include "srsran/cu_cp/cu_cp_configuration.h"
1718
#include "srsran/ngap/ngap_configuration.h"
1819
#include "srsran/ngap/ngap_configuration_helpers.h"
1920
#include <unordered_map>
@@ -101,10 +102,14 @@ class cu_cp_test_environment
101102

102103
const ue_context* find_ue_context(unsigned du_idx, gnb_du_ue_f1ap_id_t du_ue_id) const;
103104

105+
/// Get CU-CP configuration used to instantiate CU-CP.
106+
const cu_cp_configuration& get_cu_cp_cfg() const { return cu_cp_cfg; }
107+
104108
private:
105109
class worker_manager;
106110

107111
cu_cp_test_env_params params;
112+
cu_cp_configuration cu_cp_cfg{};
108113

109114
/// Workers for CU-CP.
110115
std::unique_ptr<worker_manager> cu_cp_workers;

0 commit comments

Comments
 (0)