pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42418?usp=email )


Change subject: 5gc: Introduce test TC_secondary_rat_data_usage_report
......................................................................

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(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/18/42418/1

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 https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42418?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I8a82b1a8bcea948356d819af5c4919ae3829e549
Gerrit-Change-Number: 42418
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>

Reply via email to