Skip to content

Commit b76a270

Browse files
FabianEckermannasaezper
authored andcommitted
cu_cp: add unit test for more than allowed pdu session setups
1 parent 4cb4850 commit b76a270

File tree

1 file changed

+36
-4
lines changed

1 file changed

+36
-4
lines changed

tests/unittests/cu_cp/cu_cp_pdu_session_resource_setup_test.cpp

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ class cu_cp_pdu_session_resource_setup_test : public cu_cp_test_environment, pub
8787
}
8888

8989
[[nodiscard]] bool send_pdu_session_resource_setup_request_and_await_pdu_session_setup_response(
90-
const ngap_message& pdu_session_resource_setup_request)
90+
const ngap_message& pdu_session_resource_setup_request,
91+
const std::vector<pdu_session_id_t>& expected_pdu_sessions_to_setup = {},
92+
const std::vector<pdu_session_id_t>& expected_pdu_sessions_failed_to_setup = {})
9193
{
9294
report_fatal_error_if_not(not this->get_amf().try_pop_rx_pdu(ngap_pdu),
9395
"there are still NGAP messages to pop from AMF");
@@ -102,7 +104,8 @@ class cu_cp_pdu_session_resource_setup_test : public cu_cp_test_environment, pub
102104
"Failed to receive PDU Session Resource Setup Response");
103105
report_fatal_error_if_not(test_helpers::is_valid_pdu_session_resource_setup_response(ngap_pdu),
104106
"Invalid PDU Session Resource Setup Response");
105-
report_fatal_error_if_not(test_helpers::is_expected_pdu_session_resource_setup_response(ngap_pdu, {}, {psi}),
107+
report_fatal_error_if_not(test_helpers::is_expected_pdu_session_resource_setup_response(
108+
ngap_pdu, expected_pdu_sessions_to_setup, expected_pdu_sessions_failed_to_setup),
106109
"Unsuccessful PDU Session Resource Setup Response");
107110
return true;
108111
}
@@ -257,7 +260,7 @@ TEST_F(cu_cp_pdu_session_resource_setup_test,
257260
{
258261
// Inject NGAP PDU Session Resource Setup Request and await PDU Session Setup Response
259262
ASSERT_TRUE(send_pdu_session_resource_setup_request_and_await_pdu_session_setup_response(
260-
generate_pdu_session_resource_setup_request_with_unconfigured_fiveqi()));
263+
generate_pdu_session_resource_setup_request_with_unconfigured_fiveqi(), {}, {psi}));
261264
}
262265

263266
TEST_F(cu_cp_pdu_session_resource_setup_test, when_bearer_context_setup_failure_received_then_setup_fails)
@@ -376,7 +379,9 @@ TEST_F(cu_cp_pdu_session_resource_setup_test, when_pdu_session_setup_for_existin
376379
// Inject NGAP PDU Session Resource Setup Request and await PDU Session Setup Response
377380
ASSERT_TRUE(send_pdu_session_resource_setup_request_and_await_pdu_session_setup_response(
378381
generate_valid_pdu_session_resource_setup_request_message(
379-
ue_ctx->amf_ue_id.value(), ue_ctx->ran_ue_id.value(), {{psi, {pdu_session_type_t::ipv4, {{qfi, 9}}}}})));
382+
ue_ctx->amf_ue_id.value(), ue_ctx->ran_ue_id.value(), {{psi, {pdu_session_type_t::ipv4, {{qfi, 9}}}}}),
383+
{},
384+
{psi}));
380385
}
381386

382387
TEST_F(cu_cp_pdu_session_resource_setup_test, when_setup_for_pdu_sessions_with_two_qos_flows_received_setup_succeeds)
@@ -484,3 +489,30 @@ TEST_F(cu_cp_pdu_session_resource_setup_test, when_two_consecutive_setups_arrive
484489
// Setup second PDU session
485490
ASSERT_TRUE(setup_pdu_session(psi2, drb_id_t::drb2, qfi2, generate_rrc_reconfiguration_complete_pdu(0, 8), false));
486491
}
492+
493+
TEST_F(cu_cp_pdu_session_resource_setup_test, when_maximum_nof_drbs_per_ue_is_exeeded_pdu_session_setup_fails)
494+
{
495+
// Setup eight PDU sessions.
496+
unsigned transaction_id = 3;
497+
for (uint8_t i = 1; i <= 8; i++) {
498+
ASSERT_TRUE(setup_pdu_session(uint_to_pdu_session_id(i),
499+
uint_to_drb_id(i),
500+
uint_to_qos_flow_id(i),
501+
generate_rrc_reconfiguration_complete_pdu(transaction_id, 6 + i),
502+
i == 1));
503+
if (transaction_id < 3) {
504+
++transaction_id;
505+
} else {
506+
transaction_id = 0;
507+
}
508+
}
509+
510+
// Setup ninth PDU sessions.
511+
pdu_session_id_t psi9 = uint_to_pdu_session_id(9);
512+
qos_flow_id_t qfi9 = uint_to_qos_flow_id(9);
513+
ngap_message pdu_session_resource_setup_request = generate_valid_pdu_session_resource_setup_request_message(
514+
ue_ctx->amf_ue_id.value(), ue_ctx->ran_ue_id.value(), {{psi9, {pdu_session_type_t::ipv4, {{qfi9, 9}}}}});
515+
516+
ASSERT_TRUE(send_pdu_session_resource_setup_request_and_await_pdu_session_setup_response(
517+
pdu_session_resource_setup_request, {}, {psi9}));
518+
}

0 commit comments

Comments
 (0)