Skip to content

Commit

Permalink
cu_cp,rrc: Add unittest for reestablishment because of failed reconfi…
Browse files Browse the repository at this point in the history
…guration
  • Loading branch information
FabianEckermann authored and codebot committed Nov 8, 2023
1 parent 35688dc commit 1126a6e
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 5 deletions.
19 changes: 19 additions & 0 deletions tests/unittests/rrc/rrc_ue_reest_proc_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,25 @@ TEST_F(rrc_ue_reest, when_valid_reestablishment_request_received_but_security_co
check_initial_ue_message_sent();
}

/// Test the RRC Reestablishment
TEST_F(rrc_ue_reest, when_reestablishment_request_with_cause_recfg_fail_received_then_rrc_setup_sent)
{
connect_amf();
ue_index_t old_ue_index = uint_to_ue_index(0);
add_ue_reestablishment_context(old_ue_index);
receive_valid_reestablishment_request_with_cause_recfg_fail(1, to_rnti(0x4601));

// check if the RRC Setup Request was generated
ASSERT_EQ(get_srb0_pdu_type(), asn1::rrc_nr::dl_ccch_msg_type_c::c1_c_::types::rrc_setup);

// check if SRB1 was created
check_srb1_exists();

receive_setup_complete();

check_initial_ue_message_sent();
}

/// Test the RRC Reestablishment
TEST_F(rrc_ue_reest,
when_valid_reestablishment_request_for_same_du_received_then_rrc_reestablishment_with_old_ue_index_sent)
Expand Down
7 changes: 7 additions & 0 deletions tests/unittests/rrc/rrc_ue_test_helpers.h
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,13 @@ class rrc_ue_test_helper
rrc_ue->get_ul_ccch_pdu_handler().handle_ul_ccch_pdu(generate_valid_rrc_reestablishment_request_pdu(pci, c_rnti));
}

void receive_valid_reestablishment_request_with_cause_recfg_fail(pci_t pci, rnti_t c_rnti)
{
// inject RRC Reestablishment Request into UE object
rrc_ue->get_ul_ccch_pdu_handler().handle_ul_ccch_pdu(generate_valid_rrc_reestablishment_request_pdu(
pci, c_rnti, "0111011100001000", asn1::rrc_nr::reest_cause_opts::options::recfg_fail));
}

void receive_reestablishment_complete()
{
// inject RRC Reestablishment complete
Expand Down
8 changes: 5 additions & 3 deletions tests/unittests/rrc/rrc_ue_test_messages.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -198,8 +198,10 @@ byte_buffer srsran::srs_cu_cp::generate_invalid_rrc_reestablishment_request_pdu(
return pdu;
}

byte_buffer
srsran::srs_cu_cp::generate_valid_rrc_reestablishment_request_pdu(pci_t pci, rnti_t c_rnti, std::string short_mac_i)
byte_buffer srsran::srs_cu_cp::generate_valid_rrc_reestablishment_request_pdu(pci_t pci,
rnti_t c_rnti,
std::string short_mac_i,
asn1::rrc_nr::reest_cause_e cause)
{
byte_buffer pdu;
asn1::bit_ref bref{pdu};
Expand All @@ -210,7 +212,7 @@ srsran::srs_cu_cp::generate_valid_rrc_reestablishment_request_pdu(pci_t pci, rnt
rrc_reest_req.rrc_reest_request.ue_id.c_rnti = c_rnti;
rrc_reest_req.rrc_reest_request.ue_id.pci = pci;
rrc_reest_req.rrc_reest_request.ue_id.short_mac_i.from_string(short_mac_i);
rrc_reest_req.rrc_reest_request.reest_cause = asn1::rrc_nr::reest_cause_opts::options::other_fail;
rrc_reest_req.rrc_reest_request.reest_cause = cause;
rrc_reest_req.rrc_reest_request.spare.from_number(0);

const asn1::SRSASN_CODE ret = ul_ccch_msg.pack(bref);
Expand Down
7 changes: 5 additions & 2 deletions tests/unittests/rrc/rrc_ue_test_messages.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,11 @@ rrc_reconfiguration_procedure_request generate_rrc_reconfiguration_procedure_req
byte_buffer generate_invalid_rrc_reestablishment_request_pdu(pci_t pci, rnti_t c_rnti);

/// \brief Generate RRC Container with valid RRC Reestablishment Request.
byte_buffer
generate_valid_rrc_reestablishment_request_pdu(pci_t pci, rnti_t c_rnti, std::string short_mac_i = "0111011100001000");
byte_buffer generate_valid_rrc_reestablishment_request_pdu(
pci_t pci,
rnti_t c_rnti,
std::string short_mac_i = "0111011100001000",
asn1::rrc_nr::reest_cause_e cause = asn1::rrc_nr::reest_cause_opts::options::other_fail);

/// \brief Generate RRC Container with RRC Reestablishment Complete.
byte_buffer generate_rrc_reestablishment_complete_pdu();
Expand Down

0 comments on commit 1126a6e

Please sign in to comment.