Skip to content

Commit 1dfd29c

Browse files
FabianEckermannFabian Eckermann
authored andcommitted
cu_cp,ngap: add unittest for handling of ue cap info request in dl nas transport message
1 parent 4305034 commit 1dfd29c

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed

tests/unittests/ngap/ngap_nas_message_test.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ class ngap_nas_message_routine_test : public ngap_test
4040

4141
bool was_dl_nas_transport_dropped(const test_ue& ue) const { return ue.rrc_ue_dl_nas_handler.last_nas_pdu.empty(); }
4242

43+
bool was_ue_radio_capability_info_indication_sent() const
44+
{
45+
return n2_gw.last_ngap_msgs.back().pdu.init_msg().value.type() ==
46+
asn1::ngap::ngap_elem_procs_o::init_msg_c::types_opts::ue_radio_cap_info_ind;
47+
}
48+
4349
bool was_ul_nas_transport_forwarded() const
4450
{
4551
return n2_gw.last_ngap_msgs.back().pdu.init_msg().value.type() ==
@@ -125,6 +131,29 @@ TEST_F(ngap_nas_message_routine_test, when_no_ue_present_dl_nas_transport_is_dro
125131
ASSERT_TRUE(was_error_indication_sent());
126132
}
127133

134+
/// Test DL NAS transport handling
135+
TEST_F(ngap_nas_message_routine_test,
136+
when_dl_nas_transport_contains_ue_cap_info_request_then_ue_radio_cap_info_indication_is_sent)
137+
{
138+
// Test preamble
139+
ue_index_t ue_index = this->start_procedure();
140+
141+
auto& ue = test_ues.at(ue_index);
142+
ue.amf_ue_id = uint_to_amf_ue_id(
143+
test_rgen::uniform_int<uint64_t>(amf_ue_id_to_uint(amf_ue_id_t::min), amf_ue_id_to_uint(amf_ue_id_t::max)));
144+
145+
// Inject DL NAS transport message from AMF
146+
ngap_message dl_nas_transport =
147+
generate_downlink_nas_transport_message_with_ue_cap_info_request(ue.amf_ue_id.value(), ue.ran_ue_id.value());
148+
ngap->handle_message(dl_nas_transport);
149+
150+
// Check that RRC notifier was called
151+
ASSERT_TRUE(was_dl_nas_transport_forwarded(ue));
152+
153+
// Check that UE Radio Capability Info Indication was sent to AMF
154+
ASSERT_TRUE(was_ue_radio_capability_info_indication_sent());
155+
}
156+
128157
/// Test UL NAS transport handling
129158
TEST_F(ngap_nas_message_routine_test, when_ue_present_and_amf_set_ul_nas_transport_is_forwared)
130159
{

tests/unittests/ngap/ngap_test_messages.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,19 @@ ngap_message srsran::srs_cu_cp::generate_downlink_nas_transport_message(amf_ue_i
181181
return dl_nas_transport;
182182
}
183183

184+
ngap_message srsran::srs_cu_cp::generate_downlink_nas_transport_message_with_ue_cap_info_request(amf_ue_id_t amf_ue_id,
185+
ran_ue_id_t ran_ue_id,
186+
byte_buffer nas_pdu)
187+
{
188+
ngap_message dl_nas_transport = generate_downlink_nas_transport_message(amf_ue_id, ran_ue_id, std::move(nas_pdu));
189+
190+
auto& dl_nas_transport_msg = dl_nas_transport.pdu.init_msg().value.dl_nas_transport();
191+
dl_nas_transport_msg->ue_cap_info_request_present = true;
192+
dl_nas_transport_msg->ue_cap_info_request = ue_cap_info_request_opts::options::requested;
193+
194+
return dl_nas_transport;
195+
}
196+
184197
cu_cp_ul_nas_transport srsran::srs_cu_cp::generate_ul_nas_transport_message(ue_index_t ue_index)
185198
{
186199
cu_cp_ul_nas_transport ul_nas_transport = {};

tests/unittests/ngap/ngap_test_messages.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,11 @@ cu_cp_initial_ue_message generate_initial_ue_message(ue_index_t ue_index);
104104
ngap_message
105105
generate_downlink_nas_transport_message(amf_ue_id_t amf_ue_id, ran_ue_id_t ran_ue_id, byte_buffer nas_pdu = {});
106106

107+
/// \brief Generate a dummy DL NAS Transport Message with UE Cap Info Request.
108+
ngap_message generate_downlink_nas_transport_message_with_ue_cap_info_request(amf_ue_id_t amf_ue_id,
109+
ran_ue_id_t ran_ue_id,
110+
byte_buffer nas_pdu = {});
111+
107112
/// \brief Generate a dummy UL NAS Transport Message.
108113
cu_cp_ul_nas_transport generate_ul_nas_transport_message(ue_index_t ue_index);
109114

0 commit comments

Comments
 (0)