pespin submitted this change.
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(-)
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 change 40529. To unsubscribe, or for help writing mail filters, visit settings.