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


Change subject: stp: Add helper function to build SCCP UDT encoded octetstring
......................................................................

stp: Add helper function to build SCCP UDT encoded octetstring

Change-Id: I67961807bba4853b58e4b6f87eb3f2b56e9bb027
---
M stp/STP_Tests_Common.ttcn
M stp/STP_Tests_IPA.ttcn
M stp/STP_Tests_IPA_M3UA.ttcn
3 files changed, 31 insertions(+), 50 deletions(-)



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

diff --git a/stp/STP_Tests_Common.ttcn b/stp/STP_Tests_Common.ttcn
index 463e935..01e9ab6 100644
--- a/stp/STP_Tests_Common.ttcn
+++ b/stp/STP_Tests_Common.ttcn
@@ -14,11 +14,31 @@
 friend module STP_Tests_IPA;
 friend module STP_Tests_IPA_M3UA;

+import from General_Types all;
+import from Osmocom_Types all;
+
 import from TELNETasp_PortType all;
 import from Osmocom_VTY_Functions all;

 import from IPL4asp_Types all;

+import from SCCP_Types all;
+import from SCCP_Templates all;
+import from SCCPasp_Types all;
+import from SCCP_Emulation all;
+
+function f_SCCP_UDT(template (value) SCCP_PAR_Address called := 
ts_SccpAddr_GT('1234'H),
+                   template (value) SCCP_PAR_Address calling := 
ts_SccpAddr_GT('5678'H),
+                   template (omit) octetstring data := omit) return octetstring
+{
+       if (istemplatekind(data, "omit")) {
+               data := f_rnd_octstring_rnd_len(100);
+       }
+       var PDU_SCCP sccp := valueof(ts_SCCP_UDT(valueof(called), 
valueof(calling), valueof(data)));
+       var octetstring sccp_enc := enc_PDU_SCCP(sccp);
+       return sccp_enc;
+}
+
 type component Test_CT {
        port TELNETasp_PT VTY;
        timer g_Tguard := 30.0;
diff --git a/stp/STP_Tests_IPA.ttcn b/stp/STP_Tests_IPA.ttcn
index a34fd6d..3fb0ace 100644
--- a/stp/STP_Tests_IPA.ttcn
+++ b/stp/STP_Tests_IPA.ttcn
@@ -150,19 +150,10 @@
        }
 }

-private function f_rnd_ipa_len() runs on IPA_CT return integer {
-       var integer rnd_len := f_rnd_int(100);
-       /* We need at least 1 byte of data, othewise osmocom IPA stack will 
discard and close the socket */
-       if (rnd_len == 0) {
-               rnd_len := 1;
-       }
-       return rnd_len;
-}
-
 /* Test if traffic is routed from idx_tx to idx_rx */
 private function f_test_traffic(integer idx_tx, integer idx_rx)
 runs on IPA_CT {
-       var octetstring data := f_rnd_octstring(f_rnd_ipa_len());
+       var octetstring data := f_SCCP_UDT();
        f_IPA_send(idx_tx, data);
        f_IPA_exp(idx_rx, data);
 }
@@ -390,7 +381,7 @@
        const integer iter_per_asp := 5;
        var integer num_rx[2] := { 0, 0 };
        for (i := 0; i < 2*iter_per_asp; i := i+1) {
-               var octetstring data := f_rnd_octstring(f_rnd_ipa_len());
+               var octetstring data := f_SCCP_UDT();
                f_IPA_send(0, data);
                alt {
                [] as_count_rx(1, data, num_rx[0]);
@@ -472,7 +463,7 @@
                sls_num_rx_2 := sls_num_rx_2 & {0};
        }
        for (i := 0; i < iter_per_asp; i := i+1) {
-               var octetstring data := f_rnd_octstring(f_rnd_ipa_len());
+               var octetstring data := f_SCCP_UDT();
                f_IPA_send(0, data);
                alt {
                [] as_count_rx_sls(2, data, sls_num_rx_1, num_rx_1);
@@ -504,7 +495,7 @@
                sls_num_rx_2 := sls_num_rx_2 & {0};
        }
        for (i := 0; i < 2*iter_per_asp; i := i+1) {
-               var octetstring data := f_rnd_octstring(f_rnd_ipa_len());
+               var octetstring data := f_SCCP_UDT();
                f_IPA_send(i mod 2, data);
                alt {
                [] as_count_rx_sls(2, data, sls_num_rx_1, num_rx_1);
diff --git a/stp/STP_Tests_IPA_M3UA.ttcn b/stp/STP_Tests_IPA_M3UA.ttcn
index 5600f6e..1e45372 100644
--- a/stp/STP_Tests_IPA_M3UA.ttcn
+++ b/stp/STP_Tests_IPA_M3UA.ttcn
@@ -43,24 +43,6 @@

 const OCT1 c_M3UA_SI_SCCP := '03'O;

-template (value) PDU_SCCP ts_SCCP_UDT(SCCP_PAR_Address called, 
SCCP_PAR_Address calling,
-                                       template (value) octetstring data,
-                                       template (value) BIT4 msg_hdl := 
'0000'B) := {
-       unitdata := {
-               messageType := udt,
-               protClass := {'0000'B, msg_hdl},
-               pointer1 := 0,
-               pointer2 := 0,
-               pointer3 := 0,
-               calledPAddress := ConvertASPAddressToEncodedAddress_itu(called),
-               callingPAddress := 
ConvertASPAddressToEncodedAddress_itu(calling),
-               data := {
-                       paramLength := 0,
-                       data := data
-               }
-       }
-}
-
 /* Test routing of SCCP between an M3UA and an IPA ASP */
 testcase TC_m3ua_to_ipa() runs on IPA_M3UA_CT {
        var Misc_Helpers.ro_charstring m3ua_asps := { "asp-sender" };
@@ -76,11 +58,7 @@
        f_M3UA_asp_up_act(0, omit, rctx_sender);

        /* send a well-formed, encoded SCCP message via M3UA */
-       var octetstring data := f_rnd_octstring_rnd_len(100);
-       var SCCP_PAR_Address called := valueof(ts_SccpAddr_GT('1234'H));
-       var SCCP_PAR_Address calling := valueof(ts_SccpAddr_GT('5678'H));
-       var PDU_SCCP sccp := valueof(ts_SCCP_UDT(called, calling, data));
-       var octetstring sccp_enc := enc_PDU_SCCP(sccp);
+       var octetstring sccp_enc := f_SCCP_UDT();
        var template (value) M3UA_Protocol_Data tx_pd;
        tx_pd := ts_M3UA_protocol_data(pc_sender, pc_receiver, c_M3UA_SI_SCCP, 
'00'O, '00'O, '00'O, sccp_enc);
        f_M3UA_send(0, ts_M3UA_DATA(rctx_sender, tx_pd), 1);
@@ -111,11 +89,7 @@
        f_M3UA_asp_up_act(0, omit, rctx_receiver);

        /* send a well-formed, encoded SCCP message via IPA */
-       var octetstring data := f_rnd_octstring_rnd_len(100);
-       var SCCP_PAR_Address called := valueof(ts_SccpAddr_GT('1234'H));
-       var SCCP_PAR_Address calling := valueof(ts_SccpAddr_GT('5678'H));
-       var PDU_SCCP sccp := valueof(ts_SCCP_UDT(called, calling, data));
-       var octetstring sccp_enc := enc_PDU_SCCP(sccp);
+       var octetstring sccp_enc := f_SCCP_UDT();
        f_IPA_send(0, sccp_enc);

        /* expect to receive it via M3UA */
@@ -146,11 +120,7 @@
        f_M3UA_asp_up_act(0, omit, rctx_receiver);

        /* send a well-formed, encoded SCCP message via IPA */
-       var octetstring data := f_rnd_octstring_rnd_len(100);
-       var SCCP_PAR_Address called := valueof(ts_SccpAddr_GT('1234'H));
-       var SCCP_PAR_Address calling := valueof(ts_SccpAddr_GT('5678'H));
-       var PDU_SCCP sccp := valueof(ts_SCCP_UDT(called, calling, data));
-       var octetstring sccp_enc := enc_PDU_SCCP(sccp);
+       var octetstring sccp_enc := f_SCCP_UDT();
        f_vty_config2(VTY, {"cs7 instance 0"}, "network-indicator national");
        f_IPA_send(0, sccp_enc);

@@ -187,18 +157,18 @@
        var octetstring data := f_rnd_octstring_rnd_len(100);
        var SCCP_PAR_Address called := valueof(ts_SccpAddr_GT('1234'H));
        var SCCP_PAR_Address calling := valueof(ts_SccpAddr_GT('5678'H));
-       var PDU_SCCP sccp := valueof(ts_SCCP_UDT(called, calling, data));
-       f_IPA_send(0, enc_PDU_SCCP(sccp));
+       var octetstring sccp_enc := f_SCCP_UDT(called, calling, data);
+       f_IPA_send(0, sccp_enc);

        /* patch point codes into addresses */
        called := valueof(ts_SccpAddr_PC_GT(oct2int(pc_receiver), '83'O, 
"mtp3_itu", '1234'H));
        calling := valueof(ts_SccpAddr_PC_GT(oct2int(pc_sender), '83'O, 
"mtp3_itu", '5678'H));
-       var PDU_SCCP sccp_exp := valueof(ts_SCCP_UDT(called, calling, data));
+       sccp_enc := f_SCCP_UDT(called, calling, data);

        /* expect to receive it via M3UA */
        var template (present) M3UA_Protocol_Data rx_pd;
        rx_pd := tr_M3UA_protocol_data(pc_sender, pc_receiver, c_M3UA_SI_SCCP, 
'00'O, '00'O, ?,
-                                       enc_PDU_SCCP(sccp_exp));
+                                      sccp_enc);
        f_M3UA_exp(0, tr_M3UA_DATA(rctx_receiver, rx_pd));

        f_clear_m3ua();

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40529?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: I67961807bba4853b58e4b6f87eb3f2b56e9bb027
Gerrit-Change-Number: 40529
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>

Reply via email to