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
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 := {