pespin submitted this change.

View Change

Approvals: pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve
5gc: Introduce test TC_secondary_rat_data_usage_report

Change-Id: I8a82b1a8bcea948356d819af5c4919ae3829e549
---
M 5gc/C5G_Tests.ttcn
M 5gc/ConnHdlr.ttcn
M 5gc/expected-results.xml
M library/ngap/NGAP_EncDec.cc
M library/ngap/NGAP_Types.ttcn
5 files changed, 73 insertions(+), 1 deletion(-)

diff --git a/5gc/C5G_Tests.ttcn b/5gc/C5G_Tests.ttcn
index ddd000a..02ba9c3 100644
--- a/5gc/C5G_Tests.ttcn
+++ b/5gc/C5G_Tests.ttcn
@@ -911,6 +911,29 @@
vc_conn[1].done;
}

+/* 3GPP TS 23.502 4.21 Secondary RAT Usage Data Reporting Procedure
+ * 3GPP TS 38.413 8.15.1 Secondary RAT Data Usage Report
+ */
+private function f_TC_secondary_rat_data_usage_report() runs on ConnHdlr {
+ f_register();
+ f_pdu_sess_establish();
+ f_sleep(1.0);
+
+ f_secondary_rat_data_usage_report();
+
+ f_pdu_sess_release();
+ f_deregister();
+}
+testcase TC_secondary_rat_data_usage_report() runs on MTC_CT {
+ f_init();
+ f_ngap_setup(0);
+
+ var ConnHdlrPars pars := f_init_pars(ue_idx := 0);
+ var ConnHdlr vc_conn;
+ vc_conn := f_start_handler_with_pars(refers(f_TC_secondary_rat_data_usage_report), pars);
+ vc_conn.done;
+}
+
control {
execute( TC_ng_setup() );
execute( TC_ng_setup_unknown_global_gnb_id_plmn() );
@@ -940,6 +963,8 @@
execute( TC_handover_inter_ngran_xn() );
execute( TC_handover_inter_ngran_n2() );
execute( TC_handover_inter_ngran_n2_cancel() );
+
+ execute( TC_secondary_rat_data_usage_report() );
}

/* TODO:
@@ -976,7 +1001,6 @@
* - 3GPP TS 23.502 4.13.6.2 Inter RAT Fallback in 5GC for IMS voice: Not supported by open5gs (https://github.com/open5gs/open5gs/issues/2534)
* - 3GPP TS 23.502 4.13.6.3 Transfer of PDU session used for IMS voice from non-3GPP access to 5GS: Not supported by open5gs (https://github.com/open5gs/open5gs/issues/2534)
* - 3GPP TS 23.502 4.14.1 RAN Initiated QoS Flow Mobility
- * - 3GPP TS 23.502 4.21 Secondary RAT Usage Data Reporting Procedure
* - 3GPP TS 23.502 Annex G (normative): Support of GERAN/UTRAN access by SMF+PGW-C
*
* - Emergency call (PDU Sess Establish "Request Type"="Emergency Request")
diff --git a/5gc/ConnHdlr.ttcn b/5gc/ConnHdlr.ttcn
index 7716cad..33c7669 100644
--- a/5gc/ConnHdlr.ttcn
+++ b/5gc/ConnHdlr.ttcn
@@ -838,6 +838,31 @@
NGAP.send(nas_ul_msg);
}

+/* 3GPP TS 38.413 9.2.14.1 SECONDARY RAT DATA USAGE REPORT
+ * 3GPP TS 23.502 4.21 Secondary RAT Usage Data Reporting Procedure
+ * 3GPP TS 38.413 8.15.1 Secondary RAT Data Usage Report
+ **/
+function f_secondary_rat_data_usage_report() runs on ConnHdlr {
+ var template (value) SecondaryRATUsageInformation rat_use_info;
+ var template (value) SecondaryRATDataUsageReportTransfer transfer;
+ var octetstring transfer_enc;
+ var template (value) PDUSessionResourceSecondaryRATUsageItem it;
+ var template (value) NGAP_PDU tx_pdu;
+
+ rat_use_info := m_secondaryRATUsageInformation();
+ transfer := m_secondaryRATDataUsageReportTransfer(rat_use_info);
+ transfer_enc := enc_NGAP_SecondaryRATDataUsageReportTransfer(valueof(transfer));
+ it := m_pPDUSessionResourceSecondaryRATUsageItem(g_pars.ue_pars.sess_pars.id,
+ transfer_enc);
+
+ tx_pdu := m_ngap_initMsg(
+ m_n2_SecondaryRATDataUsageReport(
+ g_pars.ue_pars.amf_id,
+ g_pars.ue_pars.ran_id,
+ { it }));
+ NGAP.send(tx_pdu);
+}
+
/* 3GPP TS 24.501 5.5.2.2 UE-initiated de-registration procedure,
* 3GPP TS 23.502 4.2.2.3.2 UE-initiated Deregistration */
function f_deregister() runs on ConnHdlr {
diff --git a/5gc/expected-results.xml b/5gc/expected-results.xml
index 7dfbcfb..ed5ac2b 100644
--- a/5gc/expected-results.xml
+++ b/5gc/expected-results.xml
@@ -35,4 +35,5 @@
<testcase classname='C5G_Tests' name='TC_handover_inter_ngran_xn' time='MASKED'/>
<testcase classname='C5G_Tests' name='TC_handover_inter_ngran_n2' time='MASKED'/>
<testcase classname='C5G_Tests' name='TC_handover_inter_ngran_n2_cancel' time='MASKED'/>
+ <testcase classname='C5G_Tests' name='TC_secondary_rat_data_usage_report' time='MASKED'/>
</testsuite>
diff --git a/library/ngap/NGAP_EncDec.cc b/library/ngap/NGAP_EncDec.cc
index b024c32..64c9755 100644
--- a/library/ngap/NGAP_EncDec.cc
+++ b/library/ngap/NGAP_EncDec.cc
@@ -189,4 +189,24 @@
return ret;
}

+OCTETSTRING enc__NGAP__SecondaryRATDataUsageReportTransfer(const NGAP__IEs::SecondaryRATDataUsageReportTransfer &p)
+{
+ TTCN_Buffer TTCN_buf;
+ TTCN_buf.clear();
+ p.encode(NGAP__IEs::SecondaryRATDataUsageReportTransfer_descr_, TTCN_buf,
+ TTCN_EncDec::CT_PER, PER_ALIGNED);
+ return OCTETSTRING(TTCN_buf.get_len(), TTCN_buf.get_data());
+}
+
+NGAP__IEs::SecondaryRATDataUsageReportTransfer dec__NGAP__SecondaryRATDataUsageReportTransfer(const OCTETSTRING &stream)
+{
+ NGAP__IEs::SecondaryRATDataUsageReportTransfer ret;
+ TTCN_Buffer TTCN_buf;
+ TTCN_buf.clear();
+ TTCN_buf.put_os(stream);
+ ret.decode(NGAP__IEs::SecondaryRATDataUsageReportTransfer_descr_, TTCN_buf,
+ TTCN_EncDec::CT_PER, PER_ALIGNED);
+ return ret;
+}
+
}
diff --git a/library/ngap/NGAP_Types.ttcn b/library/ngap/NGAP_Types.ttcn
index e4a9f4e..86851f5 100644
--- a/library/ngap/NGAP_Types.ttcn
+++ b/library/ngap/NGAP_Types.ttcn
@@ -30,4 +30,6 @@
external function enc_NGAP_HandoverRequestAcknowledgeTransfer(NGAP_IEs.HandoverRequestAcknowledgeTransfer p) return octetstring;
external function dec_NGAP_HandoverRequestAcknowledgeTransfer(in octetstring pdu) return NGAP_IEs.HandoverRequestAcknowledgeTransfer;

+ external function enc_NGAP_SecondaryRATDataUsageReportTransfer(NGAP_IEs.SecondaryRATDataUsageReportTransfer p) return octetstring;
+ external function dec_NGAP_SecondaryRATDataUsageReportTransfer(in octetstring pdu) return NGAP_IEs.SecondaryRATDataUsageReportTransfer;
}

To view, visit change 42418. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I8a82b1a8bcea948356d819af5c4919ae3829e549
Gerrit-Change-Number: 42418
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>