Change in osmo-ttcn3-hacks[master]: sccp: Add TC_process_rx_xudt, verifying reception of SCCP XUDT

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

laforge gerrit-no-reply at lists.osmocom.org
Tue Oct 26 12:43:59 UTC 2021


laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25957 )


Change subject: sccp: Add TC_process_rx_xudt, verifying reception of SCCP XUDT
......................................................................

sccp: Add TC_process_rx_xudt, verifying reception of SCCP XUDT

Test if a XUDT SCCP message is processed by libosmo-sigtran.  We
assume any XUDT is received (and echoed back) just like normal UDT.

Related: OS#5281, SYS#5674
Change-Id: Idbf6db7a684e51858129618b2fcffcbe55b1b70f
---
M library/SCCP_Templates.ttcn
M sccp/SCCP_Tests_RAW.ttcn
2 files changed, 73 insertions(+), 0 deletions(-)



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

diff --git a/library/SCCP_Templates.ttcn b/library/SCCP_Templates.ttcn
index 5167e4b..74f1a20 100644
--- a/library/SCCP_Templates.ttcn
+++ b/library/SCCP_Templates.ttcn
@@ -171,6 +171,53 @@
 	}
 }
 
+template (value) PDU_SCCP ts_SCCP_XUDT(SCCP_PAR_Address calling, SCCP_PAR_Address called,
+				      template (value) octetstring data,
+				      template (value) BIT4 msg_hdl := '0000'B,
+				      template (value) integer hop_ctr := 16) := {
+	extudata := {
+		messageType := xudt,
+		protClass := {'0000'B, msg_hdl},
+		hopCounter := hop_ctr,
+		pointer1 := 0,  /* overwritten */
+		pointer2 := 0,  /* overwritten */
+		pointer3 := 0,  /* overwritten */
+		pointer4 := 0,  /* overwritten */
+		calledPAddress := ConvertASPAddressToEncodedAddress_itu(called),
+		callingPAddress := ConvertASPAddressToEncodedAddress_itu(calling),
+		data := {
+			paramLength := 0,
+			data := data
+		},
+		optionalPart := omit,
+		eop := omit
+	}
+}
+
+template PDU_SCCP tr_SCCP_XUDT(template (present) SCCP_PAR_Address calling, template (present) SCCP_PAR_Address called,
+			      template octetstring data := ?,
+			      template BIT4 msg_hdl := '0000'B,
+			      template integer hop_ctr := ?) := {
+	extudata := {
+		messageType := xudt,
+		protClass := {'0000'B, msg_hdl},
+		hopCounter := hop_ctr,
+		pointer1 := ?,
+		pointer2 := ?,
+		pointer3 := ?,
+		pointer4 := ?,
+		calledPAddress := tr_Addr(called),
+		callingPAddress := tr_Addr(calling),
+		data := {
+			paramLength := ?,
+			data := data
+		},
+		optionalPart := { segmentation:= omit, importance := * } ifpresent,
+		eop := { paramName:= con_SCCP_eop } ifpresent
+	}
+}
+
+
 template PDU_SCCP tr_SCCP_IT(template (present) OCT3 source_lref := ?,
 			     template (present) OCT3 dest_lref := ?) := {
 	inacttest := {
diff --git a/sccp/SCCP_Tests_RAW.ttcn b/sccp/SCCP_Tests_RAW.ttcn
index 1ac82a2..5013ddf 100644
--- a/sccp/SCCP_Tests_RAW.ttcn
+++ b/sccp/SCCP_Tests_RAW.ttcn
@@ -310,6 +310,31 @@
 	}
 }
 
+private function f_tx_xudt_exp(SCCP_PAR_Address calling, SCCP_PAR_Address called, octetstring data) runs on SCCP_Test_RAW_CT {
+	var template PDU_SCCP exp_rx;
+	f_send_sccp(ts_SCCP_XUDT(calling, called, data));
+	exp_rx := (tr_SCCP_UDT(called, calling, data), tr_SCCP_XUDT(called, calling, data));
+	f_exp_sccp(exp_rx);
+}
+
+/* Test if the IUT SCCP code processes an XUDT [treat it like UDT] and answers back. */
+testcase TC_process_rx_xudt() runs on SCCP_Test_RAW_CT {
+	var SCCP_PAR_Address calling, called;
+	var octetstring data := f_rnd_octstring(f_rnd_int(100));
+
+	f_init_raw(mp_sccp_cfg[0]);
+	f_sleep(1.0);
+
+	called := valueof(ts_SccpAddr_PC_SSN(mp_sccp_cfg[0].peer_pc, mp_sccp_cfg[0].peer_ssn,
+					     mp_sccp_cfg[0].sio, mp_sccp_cfg[0].sccp_service_type));
+	calling := valueof(ts_SccpAddr_PC_SSN(mp_sccp_cfg[0].own_pc, mp_sccp_cfg[0].own_ssn,
+					     mp_sccp_cfg[0].sio, mp_sccp_cfg[0].sccp_service_type));
+
+	/* Make sure an XUDT is echoed back just like an UDT */
+	f_tx_xudt_exp(calling, called, data);
+	setverdict(pass);
+}
+
 function f_scmg_xceive(SCCP_PAR_Address calling, SCCP_PAR_Address called,
 		       template (value) PDU_SCMG_message tx,
 		       template (omit) PDU_SCMG_message rx_exp,
@@ -429,6 +454,7 @@
 	execute( TC_udt_without_cr_cc() );
 	execute( TC_tiar_timeout() );
 	execute( TC_it_avoids_tiar() );
+	execute( TC_process_rx_xudt() );
 
 	execute( TC_scmg_sst_ssn1() );
 	execute( TC_scmg_sst_ssn_valid() );

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25957
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Idbf6db7a684e51858129618b2fcffcbe55b1b70f
Gerrit-Change-Number: 25957
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20211026/fb3f6494/attachment.htm>


More information about the gerrit-log mailing list