initial chekin of code received by Ericsson on 20170410
diff --git a/M3UA_CNL113537/demo/Abstract_Socket.cc b/M3UA_CNL113537/demo/Abstract_Socket.cc
new file mode 120000
index 0000000..6d1b3f3
--- /dev/null
+++ b/M3UA_CNL113537/demo/Abstract_Socket.cc
@@ -0,0 +1 @@
+../../../TestPorts/Common_Components/Abstract_Socket_CNL113384/src/Abstract_Socket.cc
\ No newline at end of file
diff --git a/M3UA_CNL113537/demo/Abstract_Socket.hh b/M3UA_CNL113537/demo/Abstract_Socket.hh
new file mode 120000
index 0000000..ecb6c03
--- /dev/null
+++ b/M3UA_CNL113537/demo/Abstract_Socket.hh
@@ -0,0 +1 @@
+../../../TestPorts/Common_Components/Abstract_Socket_CNL113384/src/Abstract_Socket.hh
\ No newline at end of file
diff --git a/M3UA_CNL113537/demo/BICC_EncDec.cc b/M3UA_CNL113537/demo/BICC_EncDec.cc
new file mode 120000
index 0000000..f3f7144
--- /dev/null
+++ b/M3UA_CNL113537/demo/BICC_EncDec.cc
@@ -0,0 +1 @@
+../../../ProtocolModules/BICC_Q.1902.1_CNL113359/src/BICC_EncDec.cc
\ No newline at end of file
diff --git a/M3UA_CNL113537/demo/BICC_Types.ttcn b/M3UA_CNL113537/demo/BICC_Types.ttcn
new file mode 120000
index 0000000..de200f7
--- /dev/null
+++ b/M3UA_CNL113537/demo/BICC_Types.ttcn
@@ -0,0 +1 @@
+../../../ProtocolModules/BICC_Q.1902.1_CNL113359/src/BICC_Types.ttcn
\ No newline at end of file
diff --git a/M3UA_CNL113537/demo/General_Types.ttcn b/M3UA_CNL113537/demo/General_Types.ttcn
new file mode 120000
index 0000000..354ebf3
--- /dev/null
+++ b/M3UA_CNL113537/demo/General_Types.ttcn
@@ -0,0 +1 @@
+../../../ProtocolModules/COMMON/src/General_Types.ttcn
\ No newline at end of file
diff --git a/M3UA_CNL113537/demo/M3UA_Emulation.ttcn b/M3UA_CNL113537/demo/M3UA_Emulation.ttcn
new file mode 120000
index 0000000..bf12ab9
--- /dev/null
+++ b/M3UA_CNL113537/demo/M3UA_Emulation.ttcn
@@ -0,0 +1 @@
+../src/M3UA_Emulation.ttcn
\ No newline at end of file
diff --git a/M3UA_CNL113537/demo/M3UA_Emulation_Test.ttcn b/M3UA_CNL113537/demo/M3UA_Emulation_Test.ttcn
new file mode 100644
index 0000000..4c1e86a
--- /dev/null
+++ b/M3UA_CNL113537/demo/M3UA_Emulation_Test.ttcn
@@ -0,0 +1,152 @@
+module M3UA_Emulation_Test
+{
+
+//import from MTP3asp_PortType all;
+import from MTP3asp_Types all;
+import from BICC_Types all;
+import from M3UA_Emulation all;
+import from SCTPasp_PortType all;
+
+modulepar
+{
+ SCTP_Association_Address tsp_address := { 0, "", 0, "" };
+ // float tsp_serverWait := 5.0;
+ // boolean tsp_serverTest := false;
+}
+
+type port MTP3asp_PT_Int message
+{
+ out ASP_MTP3_TRANSFERreq;
+ in ASP_MTP3_TRANSFERind;
+} with {extension "internal"}
+
+type component BICC_CT
+{
+ port MTP3asp_PT_Int BICC_MTP3_PORT;
+}
+
+type component MTC_CT
+{
+ var BICC_CT vlc_BICC_COMPONENT_1;
+ var M3UA_CT vlc_M3UA_COMPONENT_1;
+ port SCTPasp_PT SCTP_PORT;
+
+// var BICC_CT vlc_BICC_COMPONENT_2;
+// port MTP3asp_PT M3UA_PORT;
+}
+
+function f_testconfig_bicc(SCTP_Association_Address pl_address) runs on MTC_CT
+{
+ vlc_BICC_COMPONENT_1 := BICC_CT.create;
+ vlc_M3UA_COMPONENT_1 := M3UA_CT.create;
+ connect(vlc_BICC_COMPONENT_1:BICC_MTP3_PORT,
+ vlc_M3UA_COMPONENT_1:MTP3_SP_PORT);
+ map(system:SCTP_PORT, vlc_M3UA_COMPONENT_1:SCTP_PORT);
+ vlc_M3UA_COMPONENT_1.start(f_M3UA_Emulation(pl_address));
+}
+
+function f_testconfig_end_demo_bicc() runs on MTC_CT
+{
+ unmap(system:SCTP_PORT, vlc_M3UA_COMPONENT_1:SCTP_PORT);
+ disconnect(vlc_BICC_COMPONENT_1:BICC_MTP3_PORT, vlc_M3UA_COMPONENT_1:MTP3_SP_PORT);
+ vlc_M3UA_COMPONENT_1.stop;
+}
+
+template ASP_MTP3_TRANSFERind tr_ASP_MTP3_TRANSFERind_BICC :=
+{ sio := {
+ ni := '10'B,
+ prio := ?,
+ si := '1101'B
+ },
+ opc := ?,
+ dpc := ?,
+ sls := ?,
+ data := ?
+}
+
+function f_init_BICC_bicc() runs on BICC_CT
+{
+ var PDU_BICC vl_PDU_BICC;
+ var ASP_MTP3_TRANSFERind vl_ASP_MTP3_TRANSFERind;
+ var ASP_MTP3_TRANSFERreq vl_ASP_MTP3_TRANSFERreq;
+
+ vl_PDU_BICC := {
+ BICC_GRA := {
+ CIC := '00000000'O,
+ MType := '00010111'B,
+ var_part_ptr := 1,
+ RngSts :=
+ { range := '1F'O,
+ status := ''O
+ }
+ }
+ }
+
+ vl_ASP_MTP3_TRANSFERreq := {
+ sio := {
+ ni := '10'B,
+ prio := '00'B,
+ si := '1101'B
+ },
+ opc := 115,
+ dpc := 300,
+ sls := 0,
+ data := enc_PDU_BICC(vl_PDU_BICC)
+ }
+
+ timer T_Timer := 5.0;
+ T_Timer.start;
+ alt {
+ [] BICC_MTP3_PORT.receive(tr_ASP_MTP3_TRANSFERind_BICC)
+ -> value vl_ASP_MTP3_TRANSFERind {
+ log("BICC_MTP3_PORT: received message: ", vl_ASP_MTP3_TRANSFERind);
+ vl_PDU_BICC := dec_PDU_BICC(vl_ASP_MTP3_TRANSFERind.data);
+ log("received BICC message: ", vl_PDU_BICC);
+ setverdict(pass);
+ BICC_MTP3_PORT.send(vl_ASP_MTP3_TRANSFERreq);
+ T_Timer.stop;
+ }
+ [] BICC_MTP3_PORT.receive(ASP_MTP3_TRANSFERind : ?)
+ -> value vl_ASP_MTP3_TRANSFERind {
+ log("BICC_MTP3_PORT: received message: ", vl_ASP_MTP3_TRANSFERind);
+ repeat;
+ }
+ [] BICC_MTP3_PORT.receive {
+ setverdict(fail);
+ }
+ [] T_Timer.timeout {
+ setverdict(fail);
+ }
+ }
+
+ T_Timer.start;
+ alt {
+ [] BICC_MTP3_PORT.receive(tr_ASP_MTP3_TRANSFERind_BICC)
+ -> value vl_ASP_MTP3_TRANSFERind {
+ log("BICC_MTP3_PORT: received message: ", vl_ASP_MTP3_TRANSFERind);
+ vl_PDU_BICC := dec_PDU_BICC(vl_ASP_MTP3_TRANSFERind.data);
+ log("received BICC message: ", vl_PDU_BICC);
+ repeat;
+ }
+ [] BICC_MTP3_PORT.receive(ASP_MTP3_TRANSFERind : ?)
+ -> value vl_ASP_MTP3_TRANSFERind {
+ log("BICC_MTP3_PORT: received message: ", vl_ASP_MTP3_TRANSFERind);
+ repeat;
+ }
+ [] BICC_MTP3_PORT.receive {
+ }
+ [] T_Timer.timeout {
+ }
+ }
+
+}
+
+testcase tc_M3UA_demo_bicc() runs on MTC_CT
+{
+ f_testconfig_bicc(tsp_address);
+ vlc_BICC_COMPONENT_1.start(f_init_BICC_bicc());
+ vlc_BICC_COMPONENT_1.done;
+ f_testconfig_end_demo_bicc();
+}
+
+}
diff --git a/M3UA_CNL113537/demo/M3UA_Types.ttcn b/M3UA_CNL113537/demo/M3UA_Types.ttcn
new file mode 120000
index 0000000..ca43cb3
--- /dev/null
+++ b/M3UA_CNL113537/demo/M3UA_Types.ttcn
@@ -0,0 +1 @@
+../../../ProtocolModules/M3UA_CNL113536/src/M3UA_Types.ttcn
\ No newline at end of file
diff --git a/M3UA_CNL113537/demo/MTP3asp_EncDec.cc b/M3UA_CNL113537/demo/MTP3asp_EncDec.cc
new file mode 120000
index 0000000..88f1083
--- /dev/null
+++ b/M3UA_CNL113537/demo/MTP3asp_EncDec.cc
@@ -0,0 +1 @@
+../../../TestPorts/MTP3asp_CNL113337/src/MTP3asp_EncDec.cc
\ No newline at end of file
diff --git a/M3UA_CNL113537/demo/MTP3asp_Types.ttcn b/M3UA_CNL113537/demo/MTP3asp_Types.ttcn
new file mode 120000
index 0000000..9f03c54
--- /dev/null
+++ b/M3UA_CNL113537/demo/MTP3asp_Types.ttcn
@@ -0,0 +1 @@
+../../../TestPorts/MTP3asp_CNL113337/src/MTP3asp_Types.ttcn
\ No newline at end of file
diff --git a/M3UA_CNL113537/demo/Makefile b/M3UA_CNL113537/demo/Makefile
new file mode 100644
index 0000000..ffc0aeb
--- /dev/null
+++ b/M3UA_CNL113537/demo/Makefile
@@ -0,0 +1,920 @@
+# This Makefile was generated by the Makefile Generator
+# of the TTCN-3 Test Executor version 1.7.pre1 build 7
+# for Gabor Bettesch (ethgbh@mwux018) on Tue May 29 11:06:47 2007
+
+# Copyright 2000-2007 Test Competence Center, Ericsson R & D, Hungary
+# For trouble reporting use the tool MTTSMS.
+# For TR writers guide please visit the web page: http://ttcn.ericsson.se
+
+# The following make commands are available:
+# - make, make all Builds the executable test suite.
+# - make archive Archives all source files.
+# - make check Checks the semantics of TTCN-3 and ASN.1 modules.
+# - make clean Removes all generated files.
+# - make compile Translates TTCN-3 and ASN.1 modules to C++.
+# - make dep Creates/updates dependency list.
+# - make objects Builds the object files without linking the executable.
+# - make tags Creates/updates tags file using ctags.
+
+# WARNING! This Makefile can be used with GNU make only.
+# Other versions of make may report syntax errors in it.
+
+#
+# Do NOT touch this line...
+#
+.PHONY: all archive check clean dep objects
+
+#
+# Set these variables...
+#
+
+# The path of your TTCN-3 Test Executor installation:
+# Uncomment this line to override the environment variable.
+# TTCN3_DIR =
+
+# Your platform: (SOLARIS, SOLARIS8, LINUX, FREEBSD or WIN32)
+PLATFORM = LINUX
+
+# Your C++ compiler:
+CXX = g++
+
+# Flags for the C++ preprocessor (and makedepend as well):
+CPPFLAGS = -D$(PLATFORM) -DTARGET_TEST -I$(TTCN3_DIR)/include -I$(SCTP_DIR)/include
+
+# Flags for the C++ compiler:
+CXXFLAGS = -Wall
+
+# Flags for the linker:
+LDFLAGS =
+
+# Flags for the TTCN-3 and ASN.1 compiler:
+COMPILER_FLAGS = -L
+
+# Execution mode: (either ttcn3 or ttcn3-parallel)
+TTCN3_LIB = ttcn3-parallel
+
+# The path of your OpenSSL installation:
+# If you do not have your own one, leave it unchanged.
+OPENSSL_DIR = $(TTCN3_DIR)
+
+# Directory to store the archived source files:
+ARCHIVE_DIR = backup
+
+SCTP_DIR = /usr/local/lksctp-tools-1.0.6
+#
+# You may change these variables. Add your files if necessary...
+#
+
+# TTCN-3 modules of this project:
+TTCN3_MODULES = General_Types.ttcn BICC_Types.ttcn M3UA_Emulation.ttcn M3UA_Emulation_Test.ttcn M3UA_Types.ttcn SCTPasp_PortType.ttcn SCTPasp_Types.ttcn MTP3asp_Types.ttcn
+#MTP3asp_PortType.ttcn
+# ASN.1 modules of this project:
+ASN1_MODULES =
+
+# C++ source & header files generated from the TTCN-3 & ASN.1 modules of
+# this project:
+GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc) $(ASN1_MODULES:.asn=.cc)
+GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh)
+
+# C/C++ Source & header files of Test Ports, external functions and
+# other modules:
+USER_SOURCES = Abstract_Socket.cc BICC_EncDec.cc SCTPasp_PT.cc MTP3asp_EncDec.cc
+USER_HEADERS = Abstract_Socket.hh SCTPasp_PT.hh
+#MTP3asp_PT.hh MTP3asp_PT.cc
+# Object files of this project that are needed for the executable test suite:
+OBJECTS = $(GENERATED_SOURCES:.cc=.o) $(USER_SOURCES:.cc=.o)
+
+# Other files of the project (Makefile, configuration files, etc.)
+# that will be added to the archived source files:
+OTHER_FILES = m3ua_emu.cfg Makefile
+
+# The name of the executable test suite:
+TARGET = M3UA_Emulation_Test
+
+#
+# Do not modify these unless you know what you are doing...
+# Platform specific additional libraries:
+#
+SOLARIS_LIBS = -lsocket -lnsl
+SOLARIS8_LIBS = -lsocket -lnsl
+LINUX_LIBS =
+FREEBSD_LIBS =
+WIN32_LIBS =
+
+#
+# Rules for building the executable...
+#
+
+all: $(TARGET) ;
+
+objects: $(OBJECTS) ;
+
+$(TARGET): $(OBJECTS)
+ $(CXX) $(LDFLAGS) -o $@ $^ \
+ -L$(TTCN3_DIR)/lib -L$(SCTP_DIR)/lib -l$(TTCN3_LIB) \
+ -L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS)
+
+.cc.o .c.o:
+ $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $<
+
+$(GENERATED_SOURCES) $(GENERATED_HEADERS): compile
+ @if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi
+
+check: $(TTCN3_MODULES) $(ASN1_MODULES)
+ $(TTCN3_DIR)/bin/compiler -s $(COMPILER_FLAGS) $^
+
+compile: $(TTCN3_MODULES) $(ASN1_MODULES)
+ $(TTCN3_DIR)/bin/compiler $(COMPILER_FLAGS) $^ - $?
+ touch $@
+
+browserdata.dat: $(TTCN3_MODULES) $(ASN1_MODULES)
+ $(TTCN3_DIR)/bin/compiler -B -s $(COMPILER_FLAGS) $^
+
+tags: $(TTCN3_MODULES) $(ASN1_MODULES) \
+$(USER_HEADERS) $(USER_SOURCES)
+ $(TTCN3_DIR)/bin/ctags_ttcn3 --line-directives=yes $^
+
+clean:
+ -$(RM) $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \
+ $(GENERATED_SOURCES) compile \
+ browserdata.dat tags *.log
+
+dep: $(GENERATED_SOURCES) $(USER_SOURCES)
+ makedepend $(CPPFLAGS) $^
+
+archive:
+ mkdir -p $(ARCHIVE_DIR)
+ tar -cvhf - $(TTCN3_MODULES) $(ASN1_MODULES) \
+ $(USER_HEADERS) $(USER_SOURCES) $(OTHER_FILES) \
+ | gzip >$(ARCHIVE_DIR)/`basename $(TARGET) .exe`-`date '+%y%m%d-%H%M'`.tgz
+
+#
+# Add your rules here if necessary...
+#
+
+# DO NOT DELETE
+
+General_Types.o: General_Types.hh /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/version.h
+General_Types.o: /usr/include/string.h /usr/include/features.h
+General_Types.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+General_Types.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
+General_Types.o: /usr/include/stdio.h /usr/include/bits/types.h
+General_Types.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+General_Types.o: /usr/include/_G_config.h /usr/include/wchar.h
+General_Types.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+General_Types.o: /usr/include/bits/stdio_lim.h
+General_Types.o: /usr/include/bits/sys_errlist.h
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh
+General_Types.o: /usr/include/stdlib.h /usr/include/sys/types.h
+General_Types.o: /usr/include/time.h /usr/include/endian.h
+General_Types.o: /usr/include/bits/endian.h /usr/include/sys/select.h
+General_Types.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+General_Types.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+General_Types.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh
+General_Types.o: /usr/include/sys/time.h
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh
+General_Types.o: /usr/include/regex.h
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh
+General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh
+BICC_Types.o: BICC_Types.hh General_Types.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/version.h
+BICC_Types.o: /usr/include/string.h /usr/include/features.h
+BICC_Types.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+BICC_Types.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
+BICC_Types.o: /usr/include/stdio.h /usr/include/bits/types.h
+BICC_Types.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+BICC_Types.o: /usr/include/_G_config.h /usr/include/wchar.h
+BICC_Types.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+BICC_Types.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh /usr/include/stdlib.h
+BICC_Types.o: /usr/include/sys/types.h /usr/include/time.h
+BICC_Types.o: /usr/include/endian.h /usr/include/bits/endian.h
+BICC_Types.o: /usr/include/sys/select.h /usr/include/bits/select.h
+BICC_Types.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
+BICC_Types.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
+BICC_Types.o: /usr/include/alloca.h
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh
+BICC_Types.o: /usr/include/sys/time.h
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh
+BICC_Types.o: /usr/include/regex.h
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh
+BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh
+M3UA_Emulation.o: M3UA_Emulation.hh M3UA_Types.hh General_Types.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/version.h
+M3UA_Emulation.o: /usr/include/string.h /usr/include/features.h
+M3UA_Emulation.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+M3UA_Emulation.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
+M3UA_Emulation.o: /usr/include/stdio.h /usr/include/bits/types.h
+M3UA_Emulation.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+M3UA_Emulation.o: /usr/include/_G_config.h /usr/include/wchar.h
+M3UA_Emulation.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+M3UA_Emulation.o: /usr/include/bits/stdio_lim.h
+M3UA_Emulation.o: /usr/include/bits/sys_errlist.h
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh
+M3UA_Emulation.o: /usr/include/stdlib.h /usr/include/sys/types.h
+M3UA_Emulation.o: /usr/include/time.h /usr/include/endian.h
+M3UA_Emulation.o: /usr/include/bits/endian.h /usr/include/sys/select.h
+M3UA_Emulation.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+M3UA_Emulation.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+M3UA_Emulation.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh
+M3UA_Emulation.o: /usr/include/sys/time.h
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh
+M3UA_Emulation.o: /usr/include/regex.h
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh
+M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh
+M3UA_Emulation.o: SCTPasp_PortType.hh SCTPasp_Types.hh SCTPasp_PT.hh
+M3UA_Emulation.o: /usr/include/sys/socket.h /usr/include/sys/uio.h
+M3UA_Emulation.o: /usr/include/bits/uio.h /usr/include/bits/socket.h
+M3UA_Emulation.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h
+M3UA_Emulation.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
+M3UA_Emulation.o: /usr/include/bits/posix2_lim.h /usr/include/bits/sockaddr.h
+M3UA_Emulation.o: /usr/include/asm/socket.h /usr/include/asm/sockios.h
+M3UA_Emulation.o: /usr/include/netinet/in.h /usr/include/stdint.h
+M3UA_Emulation.o: /usr/include/bits/in.h /usr/include/bits/byteswap.h
+M3UA_Emulation.o: /usr/local/lksctp-tools-1.0.6/include/netinet/sctp.h
+M3UA_Emulation.o: /usr/include/linux/types.h /usr/include/linux/posix_types.h
+M3UA_Emulation.o: /usr/include/linux/stddef.h /usr/include/linux/compiler.h
+M3UA_Emulation.o: /usr/include/asm/posix_types.h /usr/include/asm/types.h
+M3UA_Emulation.o: MTP3asp_Types.hh
+M3UA_Emulation_Test.o: M3UA_Emulation_Test.hh BICC_Types.hh General_Types.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/version.h
+M3UA_Emulation_Test.o: /usr/include/string.h /usr/include/features.h
+M3UA_Emulation_Test.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+M3UA_Emulation_Test.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
+M3UA_Emulation_Test.o: /usr/include/stdio.h /usr/include/bits/types.h
+M3UA_Emulation_Test.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+M3UA_Emulation_Test.o: /usr/include/_G_config.h /usr/include/wchar.h
+M3UA_Emulation_Test.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+M3UA_Emulation_Test.o: /usr/include/bits/stdio_lim.h
+M3UA_Emulation_Test.o: /usr/include/bits/sys_errlist.h
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh
+M3UA_Emulation_Test.o: /usr/include/stdlib.h /usr/include/sys/types.h
+M3UA_Emulation_Test.o: /usr/include/time.h /usr/include/endian.h
+M3UA_Emulation_Test.o: /usr/include/bits/endian.h /usr/include/sys/select.h
+M3UA_Emulation_Test.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+M3UA_Emulation_Test.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+M3UA_Emulation_Test.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh
+M3UA_Emulation_Test.o: /usr/include/sys/time.h
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh
+M3UA_Emulation_Test.o: /usr/include/regex.h
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh
+M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh
+M3UA_Emulation_Test.o: M3UA_Emulation.hh M3UA_Types.hh SCTPasp_PortType.hh
+M3UA_Emulation_Test.o: SCTPasp_Types.hh SCTPasp_PT.hh
+M3UA_Emulation_Test.o: /usr/include/sys/socket.h /usr/include/sys/uio.h
+M3UA_Emulation_Test.o: /usr/include/bits/uio.h /usr/include/bits/socket.h
+M3UA_Emulation_Test.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h
+M3UA_Emulation_Test.o: /usr/include/bits/local_lim.h
+M3UA_Emulation_Test.o: /usr/include/linux/limits.h
+M3UA_Emulation_Test.o: /usr/include/bits/posix2_lim.h
+M3UA_Emulation_Test.o: /usr/include/bits/sockaddr.h /usr/include/asm/socket.h
+M3UA_Emulation_Test.o: /usr/include/asm/sockios.h /usr/include/netinet/in.h
+M3UA_Emulation_Test.o: /usr/include/stdint.h /usr/include/bits/in.h
+M3UA_Emulation_Test.o: /usr/include/bits/byteswap.h
+M3UA_Emulation_Test.o: /usr/local/lksctp-tools-1.0.6/include/netinet/sctp.h
+M3UA_Emulation_Test.o: /usr/include/linux/types.h
+M3UA_Emulation_Test.o: /usr/include/linux/posix_types.h
+M3UA_Emulation_Test.o: /usr/include/linux/stddef.h
+M3UA_Emulation_Test.o: /usr/include/linux/compiler.h
+M3UA_Emulation_Test.o: /usr/include/asm/posix_types.h
+M3UA_Emulation_Test.o: /usr/include/asm/types.h MTP3asp_Types.hh
+M3UA_Types.o: M3UA_Types.hh General_Types.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/version.h
+M3UA_Types.o: /usr/include/string.h /usr/include/features.h
+M3UA_Types.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+M3UA_Types.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
+M3UA_Types.o: /usr/include/stdio.h /usr/include/bits/types.h
+M3UA_Types.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+M3UA_Types.o: /usr/include/_G_config.h /usr/include/wchar.h
+M3UA_Types.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+M3UA_Types.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh /usr/include/stdlib.h
+M3UA_Types.o: /usr/include/sys/types.h /usr/include/time.h
+M3UA_Types.o: /usr/include/endian.h /usr/include/bits/endian.h
+M3UA_Types.o: /usr/include/sys/select.h /usr/include/bits/select.h
+M3UA_Types.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
+M3UA_Types.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
+M3UA_Types.o: /usr/include/alloca.h
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh
+M3UA_Types.o: /usr/include/sys/time.h
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh
+M3UA_Types.o: /usr/include/regex.h
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh
+M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh
+SCTPasp_PortType.o: SCTPasp_PortType.hh SCTPasp_Types.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/version.h
+SCTPasp_PortType.o: /usr/include/string.h /usr/include/features.h
+SCTPasp_PortType.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+SCTPasp_PortType.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
+SCTPasp_PortType.o: /usr/include/stdio.h /usr/include/bits/types.h
+SCTPasp_PortType.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+SCTPasp_PortType.o: /usr/include/_G_config.h /usr/include/wchar.h
+SCTPasp_PortType.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+SCTPasp_PortType.o: /usr/include/bits/stdio_lim.h
+SCTPasp_PortType.o: /usr/include/bits/sys_errlist.h
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh
+SCTPasp_PortType.o: /usr/include/stdlib.h /usr/include/sys/types.h
+SCTPasp_PortType.o: /usr/include/time.h /usr/include/endian.h
+SCTPasp_PortType.o: /usr/include/bits/endian.h /usr/include/sys/select.h
+SCTPasp_PortType.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+SCTPasp_PortType.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+SCTPasp_PortType.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh
+SCTPasp_PortType.o: /usr/include/sys/time.h
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh
+SCTPasp_PortType.o: /usr/include/regex.h
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh
+SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh SCTPasp_PT.hh
+SCTPasp_PortType.o: /usr/include/sys/socket.h /usr/include/sys/uio.h
+SCTPasp_PortType.o: /usr/include/bits/uio.h /usr/include/bits/socket.h
+SCTPasp_PortType.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h
+SCTPasp_PortType.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
+SCTPasp_PortType.o: /usr/include/bits/posix2_lim.h
+SCTPasp_PortType.o: /usr/include/bits/sockaddr.h /usr/include/asm/socket.h
+SCTPasp_PortType.o: /usr/include/asm/sockios.h /usr/include/netinet/in.h
+SCTPasp_PortType.o: /usr/include/stdint.h /usr/include/bits/in.h
+SCTPasp_PortType.o: /usr/include/bits/byteswap.h
+SCTPasp_PortType.o: /usr/local/lksctp-tools-1.0.6/include/netinet/sctp.h
+SCTPasp_PortType.o: /usr/include/linux/types.h
+SCTPasp_PortType.o: /usr/include/linux/posix_types.h
+SCTPasp_PortType.o: /usr/include/linux/stddef.h /usr/include/linux/compiler.h
+SCTPasp_PortType.o: /usr/include/asm/posix_types.h /usr/include/asm/types.h
+SCTPasp_Types.o: SCTPasp_Types.hh /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/version.h
+SCTPasp_Types.o: /usr/include/string.h /usr/include/features.h
+SCTPasp_Types.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+SCTPasp_Types.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
+SCTPasp_Types.o: /usr/include/stdio.h /usr/include/bits/types.h
+SCTPasp_Types.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+SCTPasp_Types.o: /usr/include/_G_config.h /usr/include/wchar.h
+SCTPasp_Types.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+SCTPasp_Types.o: /usr/include/bits/stdio_lim.h
+SCTPasp_Types.o: /usr/include/bits/sys_errlist.h
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh
+SCTPasp_Types.o: /usr/include/stdlib.h /usr/include/sys/types.h
+SCTPasp_Types.o: /usr/include/time.h /usr/include/endian.h
+SCTPasp_Types.o: /usr/include/bits/endian.h /usr/include/sys/select.h
+SCTPasp_Types.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+SCTPasp_Types.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+SCTPasp_Types.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh
+SCTPasp_Types.o: /usr/include/sys/time.h
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh
+SCTPasp_Types.o: /usr/include/regex.h
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh
+SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh
+MTP3asp_Types.o: MTP3asp_Types.hh /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/version.h
+MTP3asp_Types.o: /usr/include/string.h /usr/include/features.h
+MTP3asp_Types.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+MTP3asp_Types.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
+MTP3asp_Types.o: /usr/include/stdio.h /usr/include/bits/types.h
+MTP3asp_Types.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+MTP3asp_Types.o: /usr/include/_G_config.h /usr/include/wchar.h
+MTP3asp_Types.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+MTP3asp_Types.o: /usr/include/bits/stdio_lim.h
+MTP3asp_Types.o: /usr/include/bits/sys_errlist.h
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh
+MTP3asp_Types.o: /usr/include/stdlib.h /usr/include/sys/types.h
+MTP3asp_Types.o: /usr/include/time.h /usr/include/endian.h
+MTP3asp_Types.o: /usr/include/bits/endian.h /usr/include/sys/select.h
+MTP3asp_Types.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+MTP3asp_Types.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+MTP3asp_Types.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh
+MTP3asp_Types.o: /usr/include/sys/time.h
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh
+MTP3asp_Types.o: /usr/include/regex.h
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh
+MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh
+Abstract_Socket.o: Abstract_Socket.hh /usr/include/sys/socket.h
+Abstract_Socket.o: /usr/include/features.h /usr/include/sys/cdefs.h
+Abstract_Socket.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
+Abstract_Socket.o: /usr/include/gnu/stubs-32.h /usr/include/sys/uio.h
+Abstract_Socket.o: /usr/include/sys/types.h /usr/include/bits/types.h
+Abstract_Socket.o: /usr/include/bits/typesizes.h /usr/include/time.h
+Abstract_Socket.o: /usr/include/endian.h /usr/include/bits/endian.h
+Abstract_Socket.o: /usr/include/sys/select.h /usr/include/bits/select.h
+Abstract_Socket.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
+Abstract_Socket.o: /usr/include/sys/sysmacros.h
+Abstract_Socket.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/uio.h
+Abstract_Socket.o: /usr/include/bits/socket.h /usr/include/limits.h
+Abstract_Socket.o: /usr/include/bits/posix1_lim.h
+Abstract_Socket.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
+Abstract_Socket.o: /usr/include/bits/posix2_lim.h
+Abstract_Socket.o: /usr/include/bits/sockaddr.h /usr/include/asm/socket.h
+Abstract_Socket.o: /usr/include/asm/sockios.h /usr/include/netinet/in.h
+Abstract_Socket.o: /usr/include/stdint.h /usr/include/bits/wchar.h
+Abstract_Socket.o: /usr/include/bits/in.h /usr/include/bits/byteswap.h
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/version.h
+Abstract_Socket.o: /usr/include/string.h /usr/include/stdio.h
+Abstract_Socket.o: /usr/include/libio.h /usr/include/_G_config.h
+Abstract_Socket.o: /usr/include/wchar.h /usr/include/gconv.h
+Abstract_Socket.o: /usr/include/bits/stdio_lim.h
+Abstract_Socket.o: /usr/include/bits/sys_errlist.h
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh
+Abstract_Socket.o: /usr/include/stdlib.h /usr/include/alloca.h
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh
+Abstract_Socket.o: /usr/include/sys/time.h
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh
+Abstract_Socket.o: /usr/include/regex.h
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh
+Abstract_Socket.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h
+Abstract_Socket.o: /usr/include/bits/confname.h /usr/include/getopt.h
+Abstract_Socket.o: /usr/include/strings.h /usr/include/errno.h
+Abstract_Socket.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
+Abstract_Socket.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h
+Abstract_Socket.o: /usr/include/asm-generic/errno-base.h /usr/include/netdb.h
+Abstract_Socket.o: /usr/include/rpc/netdb.h /usr/include/bits/netdb.h
+Abstract_Socket.o: /usr/include/sys/stat.h /usr/include/bits/stat.h
+Abstract_Socket.o: /usr/include/netinet/tcp.h /usr/include/arpa/inet.h
+Abstract_Socket.o: /usr/include/fcntl.h /usr/include/bits/fcntl.h
+Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/memory.h
+BICC_EncDec.o: BICC_Types.hh General_Types.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/version.h
+BICC_EncDec.o: /usr/include/string.h /usr/include/features.h
+BICC_EncDec.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+BICC_EncDec.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
+BICC_EncDec.o: /usr/include/stdio.h /usr/include/bits/types.h
+BICC_EncDec.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+BICC_EncDec.o: /usr/include/_G_config.h /usr/include/wchar.h
+BICC_EncDec.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+BICC_EncDec.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh /usr/include/stdlib.h
+BICC_EncDec.o: /usr/include/sys/types.h /usr/include/time.h
+BICC_EncDec.o: /usr/include/endian.h /usr/include/bits/endian.h
+BICC_EncDec.o: /usr/include/sys/select.h /usr/include/bits/select.h
+BICC_EncDec.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
+BICC_EncDec.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
+BICC_EncDec.o: /usr/include/alloca.h
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh
+BICC_EncDec.o: /usr/include/sys/time.h
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh
+BICC_EncDec.o: /usr/include/regex.h
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh
+BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh
+SCTPasp_PT.o: SCTPasp_PT.hh SCTPasp_PortType.hh SCTPasp_Types.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/version.h
+SCTPasp_PT.o: /usr/include/string.h /usr/include/features.h
+SCTPasp_PT.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+SCTPasp_PT.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
+SCTPasp_PT.o: /usr/include/stdio.h /usr/include/bits/types.h
+SCTPasp_PT.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+SCTPasp_PT.o: /usr/include/_G_config.h /usr/include/wchar.h
+SCTPasp_PT.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+SCTPasp_PT.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh /usr/include/stdlib.h
+SCTPasp_PT.o: /usr/include/sys/types.h /usr/include/time.h
+SCTPasp_PT.o: /usr/include/endian.h /usr/include/bits/endian.h
+SCTPasp_PT.o: /usr/include/sys/select.h /usr/include/bits/select.h
+SCTPasp_PT.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
+SCTPasp_PT.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
+SCTPasp_PT.o: /usr/include/alloca.h
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh
+SCTPasp_PT.o: /usr/include/sys/time.h
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh
+SCTPasp_PT.o: /usr/include/regex.h
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh
+SCTPasp_PT.o: /usr/include/sys/socket.h /usr/include/sys/uio.h
+SCTPasp_PT.o: /usr/include/bits/uio.h /usr/include/bits/socket.h
+SCTPasp_PT.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h
+SCTPasp_PT.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
+SCTPasp_PT.o: /usr/include/bits/posix2_lim.h /usr/include/bits/sockaddr.h
+SCTPasp_PT.o: /usr/include/asm/socket.h /usr/include/asm/sockios.h
+SCTPasp_PT.o: /usr/include/netinet/in.h /usr/include/stdint.h
+SCTPasp_PT.o: /usr/include/bits/in.h /usr/include/bits/byteswap.h
+SCTPasp_PT.o: /usr/local/lksctp-tools-1.0.6/include/netinet/sctp.h
+SCTPasp_PT.o: /usr/include/linux/types.h /usr/include/linux/posix_types.h
+SCTPasp_PT.o: /usr/include/linux/stddef.h /usr/include/linux/compiler.h
+SCTPasp_PT.o: /usr/include/asm/posix_types.h /usr/include/asm/types.h
+SCTPasp_PT.o: /usr/include/arpa/inet.h /usr/include/unistd.h
+SCTPasp_PT.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h
+SCTPasp_PT.o: /usr/include/getopt.h /usr/include/netdb.h
+SCTPasp_PT.o: /usr/include/rpc/netdb.h /usr/include/bits/netdb.h
+SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/memory.h /usr/include/fcntl.h
+SCTPasp_PT.o: /usr/include/bits/fcntl.h /usr/include/errno.h
+SCTPasp_PT.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
+SCTPasp_PT.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h
+SCTPasp_PT.o: /usr/include/asm-generic/errno-base.h
+MTP3asp_EncDec.o: MTP3asp_Types.hh /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/version.h
+MTP3asp_EncDec.o: /usr/include/string.h /usr/include/features.h
+MTP3asp_EncDec.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+MTP3asp_EncDec.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h
+MTP3asp_EncDec.o: /usr/include/stdio.h /usr/include/bits/types.h
+MTP3asp_EncDec.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+MTP3asp_EncDec.o: /usr/include/_G_config.h /usr/include/wchar.h
+MTP3asp_EncDec.o: /usr/include/bits/wchar.h /usr/include/gconv.h
+MTP3asp_EncDec.o: /usr/include/bits/stdio_lim.h
+MTP3asp_EncDec.o: /usr/include/bits/sys_errlist.h
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh
+MTP3asp_EncDec.o: /usr/include/stdlib.h /usr/include/sys/types.h
+MTP3asp_EncDec.o: /usr/include/time.h /usr/include/endian.h
+MTP3asp_EncDec.o: /usr/include/bits/endian.h /usr/include/sys/select.h
+MTP3asp_EncDec.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+MTP3asp_EncDec.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+MTP3asp_EncDec.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh
+MTP3asp_EncDec.o: /usr/include/sys/time.h
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh
+MTP3asp_EncDec.o: /usr/include/regex.h
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh
+MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh
diff --git a/M3UA_CNL113537/demo/SCTPasp_PT.cc b/M3UA_CNL113537/demo/SCTPasp_PT.cc
new file mode 120000
index 0000000..2b931e9
--- /dev/null
+++ b/M3UA_CNL113537/demo/SCTPasp_PT.cc
@@ -0,0 +1 @@
+../../../TestPorts/SCTPasp_CNL113469/src/SCTPasp_PT.cc
\ No newline at end of file
diff --git a/M3UA_CNL113537/demo/SCTPasp_PT.hh b/M3UA_CNL113537/demo/SCTPasp_PT.hh
new file mode 120000
index 0000000..e37473f
--- /dev/null
+++ b/M3UA_CNL113537/demo/SCTPasp_PT.hh
@@ -0,0 +1 @@
+../../../TestPorts/SCTPasp_CNL113469/src/SCTPasp_PT.hh
\ No newline at end of file
diff --git a/M3UA_CNL113537/demo/SCTPasp_PortType.ttcn b/M3UA_CNL113537/demo/SCTPasp_PortType.ttcn
new file mode 120000
index 0000000..4394e34
--- /dev/null
+++ b/M3UA_CNL113537/demo/SCTPasp_PortType.ttcn
@@ -0,0 +1 @@
+../../../TestPorts/SCTPasp_CNL113469/src/SCTPasp_PortType.ttcn
\ No newline at end of file
diff --git a/M3UA_CNL113537/demo/SCTPasp_Types.ttcn b/M3UA_CNL113537/demo/SCTPasp_Types.ttcn
new file mode 120000
index 0000000..71876a0
--- /dev/null
+++ b/M3UA_CNL113537/demo/SCTPasp_Types.ttcn
@@ -0,0 +1 @@
+../../../TestPorts/SCTPasp_CNL113469/src/SCTPasp_Types.ttcn
\ No newline at end of file
diff --git a/M3UA_CNL113537/demo/m3ua_emu.cfg b/M3UA_CNL113537/demo/m3ua_emu.cfg
new file mode 100644
index 0000000..9533515
--- /dev/null
+++ b/M3UA_CNL113537/demo/m3ua_emu.cfg
@@ -0,0 +1,21 @@
+[LOGGING]
+LogSourceInfo := Yes
+FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING
+ConsoleMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING
+
+[EXECUTE]
+M3UA_Emulation_Test.tc_M3UA_demo_bicc
+
+[TESTPORT_PARAMETERS]
+system.SCTP_PORT.debug := "yes"
+
+[MODULE_PARAMETERS]
+M3UA_Emulation.tsp_logVerbose := true;
+M3UA_Emulation.tsp_M3UA_Server_Mode := false;
+M3UA_Emulation_Test.tsp_address :=
+{
+ local_sctp_port := 2905,
+ local_ip_addr := "10.6.70.19",
+ remote_sctp_port := 2905,
+ remote_ip_addr := "159.107.193.33"
+}
diff --git a/M3UA_CNL113537/src/M3UA_Emulation.ttcn b/M3UA_CNL113537/src/M3UA_Emulation.ttcn
new file mode 100644
index 0000000..7a4a7e9
--- /dev/null
+++ b/M3UA_CNL113537/src/M3UA_Emulation.ttcn
@@ -0,0 +1,1307 @@
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Copyright Test Competence Center (TCC) ETH 2009 //
+// //
+// The copyright to the computer program(s) herein is the property of TCC. //
+// The program(s) may be used and/or copied only with the written permission //
+// of TCC or in accordance with the terms and conditions stipulated in the //
+// agreement/contract under which the program(s) have been supplied //
+// //
+///////////////////////////////////////////////////////////////////////////////
+//
+// File: M3UA_Emulation.ttcn
+// Reference: M3UA Protocol Emulation
+// Rev: R1B01
+// Prodnr: CNL 113 537
+// Updated: 2009-01-06
+// Contact: http://ttcn.ericsson.se
+
+module M3UA_Emulation
+{
+
+modulepar
+{
+ boolean tsp_logVerbose := false;
+ float tsp_Timer := 2.0; // General timer used in M3UA emulation.
+ float tsp_ASPUP_Resend_Timer := 2.0;
+ float tsp_ASPAC_Resend_Timer := 2.0;
+ float tsp_Assoc_Restart_Timer := 60.0;
+ float tsp_Heartbeat_Timer := 30.0;
+ integer tsp_SCTP_PayloadProtocolID := 3; // 3 for M3UA.
+ boolean tsp_Enable_M3UA_Heartbeat := false; // Send SCTP packets periodically.
+ boolean tsp_SCTP_Server_Mode := false;
+ boolean tsp_M3UA_Server_Mode := false;
+}
+
+import from General_Types all;
+import from M3UA_Types all;
+import from SCTPasp_Types all;
+import from SCTPasp_PortType all;
+import from MTP3asp_Types all;
+
+type record of ASP_MTP3_TRANSFERreq TRANSFERreq_Buffer;
+
+type record SCTP_Association_Address
+{
+ integer local_sctp_port,
+ charstring local_ip_addr,
+ integer remote_sctp_port,
+ charstring remote_ip_addr
+}
+
+// Definition of M3UA_Entity which contains M3UA entity data.
+type record M3UA_Entity
+{
+ M3UA_CommStatus commStatus optional,
+ integer sCTP_Assoc_ID optional,
+ SCTP_Association_Address assoc
+}
+
+// Type for status of SCTP communication for an M3UA entity.
+type enumerated M3UA_CommStatus
+{
+ aSP_Down_initial_State (0),
+ aSP_Down_sCTP_Initialize_Done (1),
+ aSP_Down_sCTP_Associate_done (2),
+ aSP_Down_commUP_Received (3),
+ aSP_Down_ASPUP_Sent (4),
+ aSP_Inactive (5),
+ aSP_Inact_ASPAC_Sent (6),
+ aSP_Active (7) // aSPAC_Ack_Received
+}
+
+// We need an internal port to communicate with the MTP3 side.
+// internal in name
+type port MTP3asp_SP_PT_Int message
+{
+ in ASP_MTP3_TRANSFERreq;
+ out ASP_MTP3_TRANSFERind;
+ // out ASP_MTP3_PAUSE;
+ // out ASP_MTP3_RESUME;
+ // out ASP_MTP3_STATUS;
+} with {
+ extension "internal"
+}
+
+// M3UA emulation component.
+type component M3UA_CT
+{
+ var M3UA_Entity v_Entity;
+ var TRANSFERreq_Buffer v_TRANSFERreq_Buffer := {};
+
+ var ASP_SCTP v_ASP_SCTP;
+ var ASP_SCTP_SEND_FAILED v_ASP_SCTP_SEND_FAILED;
+ var ASP_SCTP_RESULT v_ASP_SCTP_RESULT;
+ var ASP_SCTP_Connected v_ASP_SCTP_Connected;
+ var ASP_SCTP_ASSOC_CHANGE v_ASP_SCTP_ASSOC_CHANGE;
+ var ASP_SCTP_SHUTDOWN_EVENT v_ASP_SCTP_SHUTDOWN_EVENT;
+
+ var PDU_M3UA v_PDU_M3UA;
+
+ // Component timers.
+ timer T_Timer := tsp_Timer;
+ timer T_ASPUP_resend := tsp_ASPUP_Resend_Timer;
+ timer T_ASPAC_resend := tsp_ASPAC_Resend_Timer;
+ timer T_Heartbeat := tsp_Heartbeat_Timer;
+ timer T_Assoc_restart := tsp_Assoc_Restart_Timer;
+
+ // Port declarations.
+ port MTP3asp_SP_PT_Int MTP3_SP_PORT; // Port towards MTP3/M3UA.
+ port SCTPasp_PT SCTP_PORT; // Port towards target through SCTP.
+}
+
+//********************************
+// Start of SCTP related templates
+//********************************
+template ASP_SCTP t_S_SCTP_Send
+ (in template integer pl_associationID,
+ in template integer pl_streamID,
+ in template octetstring pl_userData,
+ in template integer pl_protocolID) :=
+{
+ client_id := pl_associationID,
+ sinfo_stream := pl_streamID,
+ sinfo_ppid := pl_protocolID,
+ data := pl_userData
+}
+
+template ASP_SCTP_SEND_FAILED t_ASP_SCTP_SEND_FAILED
+ (in template integer pl_streamID) :=
+{
+ client_id := pl_streamID
+}
+
+template ASP_SCTP_Listen t_ASP_SCTP_Listen
+ (template charstring pl_local_hostname,
+ template integer pl_local_portnumber) :=
+{
+ local_hostname := pl_local_hostname,
+ local_portnumber := pl_local_portnumber
+}
+
+template ASP_SCTP_Connected tr_ASP_SCTP_Connected
+ (template integer pl_client_id,
+ template charstring pl_local_hostname,
+ template integer pl_local_portnumber,
+ template charstring pl_peer_hostname,
+ template integer pl_peer_portnumber) :=
+{
+ client_id := pl_client_id,
+ local_hostname := pl_local_hostname,
+ local_portnumber := pl_local_portnumber,
+ peer_hostname := pl_peer_hostname,
+ peer_portnumber := pl_peer_portnumber
+}
+
+template ASP_SCTP_ConnectFrom t_ASP_SCTP_ConnectFrom
+ (template charstring pl_local_hostname,
+ template integer pl_local_portnumber,
+ template charstring pl_peer_hostname,
+ template integer pl_peer_portnumber) :=
+{
+ local_hostname := pl_local_hostname,
+ local_portnumber := pl_local_portnumber,
+ peer_hostname := pl_peer_hostname,
+ peer_portnumber := pl_peer_portnumber
+}
+
+template ASP_SCTP_RESULT t_ASP_SCTP_RESULT
+ (template integer pl_client_id,
+ template boolean pl_error_status,
+ template charstring pl_error_message) :=
+{
+ client_id := pl_client_id,
+ error_status := pl_error_status,
+ error_message := pl_error_message
+}
+
+template ASP_SCTP_ASSOC_CHANGE tr_S_SCTP_CommunicationUp
+ (in template integer pl_associationID) :=
+{
+ client_id := pl_associationID,
+ sac_state := SCTP_COMM_UP
+}
+
+template ASP_SCTP_ASSOC_CHANGE tr_S_SCTP_CommunicationLost
+ (in template integer pl_associationID) :=
+{
+ client_id := pl_associationID,
+ sac_state := SCTP_COMM_LOST
+}
+
+template ASP_SCTP_ASSOC_CHANGE tr_S_SCTP_ShutdownComplete
+ (in template integer pl_associationID) :=
+{
+ client_id := pl_associationID,
+ sac_state := SCTP_SHUTDOWN_COMP
+}
+
+template ASP_SCTP_SHUTDOWN_EVENT tr_S_SCTP_ShutdownEvent
+ (in template integer pl_associationID) :=
+{
+ client_id := pl_associationID
+}
+
+template ASP_SCTP_ASSOC_CHANGE tr_S_SCTP_Restart
+ (in template integer pl_associationID) :=
+{
+ client_id := pl_associationID,
+ sac_state := SCTP_RESTART
+}
+
+template ASP_SCTP_ASSOC_CHANGE tr_S_SCTP_CANT_STR_ASSOC
+ (in template integer pl_associationID) :=
+{
+ client_id := pl_associationID,
+ sac_state := SCTP_CANT_STR_ASSOC
+}
+
+template ASP_SCTP tr_S_SCTP_DataArrive
+ (in template integer pl_associationID,
+ in template integer pl_streamID,
+ in template integer pl_protocolID,
+ in template PDU_SCTP pl_data) :=
+{
+ client_id := pl_associationID,
+ sinfo_stream := pl_streamID,
+ sinfo_ppid := pl_protocolID,
+ data := pl_data
+}
+
+template ASP_SCTP_Close t_ASP_SCTP_Close
+ (in template integer pl_associationID) :=
+{
+ client_id := pl_associationID
+}
+//******************************
+// End of SCTP related templates
+//******************************
+
+//*****************************
+// Start of M3UA PDU templates.
+//*****************************
+template PDU_M3UA t_PDU_M3UA_ASPUP
+ (in template M3UA_ASP_Identifier pl_aSP_Identifier,
+ in template M3UA_Info_String pl_info_String) :=
+{
+ m3UA_ASPUP := {
+ version := '01'O,
+ reserved := '00'O,
+ messageClassAndType := '0301'O,
+ messageLength := 0,
+ messageParameters := {
+ aSP_Identifier := pl_aSP_Identifier,
+ info_String := pl_info_String
+ }
+ }
+}
+
+template PDU_M3UA t_PDU_M3UA_ASPUP_Ack :=
+{
+ m3UA_ASPUP_Ack := {
+ version := '01'O,
+ reserved := '00'O,
+ messageClassAndType := '0304'O,
+ messageLength := 0,
+ messageParameters := {
+ info_String := omit
+ }
+ }
+}
+
+template PDU_M3UA t_PDU_M3UA_ASPDN :=
+{
+ m3UA_ASPDN := {
+ version := '01'O,
+ reserved := '00'O,
+ messageClassAndType := '0302'O,
+ messageLength := 0,
+ messageParameters := {
+ info_String := omit
+ }
+ }
+}
+
+template PDU_M3UA t_PDU_M3UA_ASPDN_Ack :=
+{
+ m3UA_ASPDN_Ack := {
+ version := '01'O,
+ reserved := '00'O,
+ messageClassAndType := '0305'O,
+ messageLength := 0,
+ messageParameters := {
+ info_String := omit
+ }
+ }
+}
+
+template PDU_M3UA t_PDU_M3UA_ASPAC
+ (in template M3UA_Traffic_Mode_Type pl_traffic_Mode_Type,
+ in template M3UA_Routing_Context pl_routing_Context,
+ in template M3UA_Info_String pl_info_String) :=
+{
+ m3UA_ASPAC := {
+ version := '01'O,
+ reserved := '00'O,
+ messageClassAndType := '0401'O,
+ messageLength := 0,
+ messageParameters := {
+ traffic_Mode_Type := pl_traffic_Mode_Type,
+ routing_Context := pl_routing_Context,
+ info_String := pl_info_String
+ }
+ }
+}
+
+template PDU_M3UA t_PDU_M3UA_ASPAC_Ack
+ (in template M3UA_Traffic_Mode_Type pl_traffic_mode_type,
+ in template M3UA_Routing_Context pl_routing_Context) :=
+{
+ m3UA_ASPAC_Ack := {
+ version := '01'O,
+ reserved := '00'O,
+ messageClassAndType := '0403'O,
+ messageLength := 0,
+ messageParameters := {
+ traffic_Mode_Type := pl_traffic_mode_type,
+ routing_Context := pl_routing_Context,
+ info_String := omit
+ }
+ }
+}
+
+template PDU_M3UA t_PDU_M3UA_ASPIA
+ (in template M3UA_Routing_Context pl_routing_Context,
+ in template M3UA_Info_String pl_info_String) :=
+{
+ m3UA_ASPIA := {
+ version := '01'O,
+ reserved := '00'O,
+ messageClassAndType := '0402'O,
+ messageLength := 0,
+ messageParameters := {
+ routing_Context := pl_routing_Context,
+ info_String := pl_info_String
+ }
+ }
+}
+
+template PDU_M3UA t_PDU_M3UA_ASPIA_Ack
+ (in template M3UA_Routing_Context pl_routing_Context) :=
+{
+ m3UA_ASPIA_Ack := {
+ version := '01'O,
+ reserved := '00'O,
+ messageClassAndType := '0404'O,
+ messageLength := 0,
+ messageParameters := {
+ routing_Context := pl_routing_Context,
+ info_String := omit
+ }
+ }
+}
+
+template PDU_M3UA t_PDU_M3UA_Heartbeat
+ (in template M3UA_Heartbeat_Data pl_heartbeat_Data) :=
+{
+ m3UA_BEAT := {
+ version := '01'O,
+ reserved := '00'O,
+ messageClassAndType := '0303'O,
+ messageLength := 0,
+ messageParameters := {
+ heartbeat_Data := pl_heartbeat_Data
+ }
+ }
+}
+
+template PDU_M3UA t_PDU_M3UA_Beat_Ack
+ (in template M3UA_Heartbeat_Data pl_heartbeat_Data) :=
+{
+ m3UA_BEAT_Ack := {
+ version := '01'O,
+ reserved := '00'O,
+ messageClassAndType := '0306'O,
+ messageLength := 0,
+ messageParameters := {
+ heartbeat_Data := pl_heartbeat_Data
+ }
+ }
+}
+
+template PDU_M3UA t_PDU_M3UA_DATA
+ (in template M3UA_Network_Appearance pl_network_Appearance,
+ in template M3UA_Routing_Context pl_routing_Context,
+ in template M3UA_Protocol_Data pl_protocol_Data,
+ in template M3UA_Correlation_ID pl_correlation_ID) :=
+{
+ m3UA_DATA := {
+ version := '01'O,
+ reserved := '00'O,
+ messageClassAndType := '0101'O,
+ messageLength := 0,
+ messageParameters := {
+ network_Appearance := pl_network_Appearance,
+ routing_Context := pl_routing_Context,
+ protocol_Data := pl_protocol_Data,
+ correlation_ID := pl_correlation_ID
+ }
+ }
+}
+
+template PDU_M3UA t_PDU_M3UA_DAVA
+ (in template M3UA_Network_Appearance pl_network_Appearance,
+ in template M3UA_Routing_Context pl_routing_Context,
+ in template M3UA_Affected_Point_Codes pl_affected_Point_Codes,
+ in template M3UA_Info_String pl_info_String) :=
+{
+ m3UA_DAVA := {
+ version := '01'O,
+ reserved := '00'O,
+ messageClassAndType := '0202'O,
+ messageLength := 0,
+ messageParameters := {
+ network_Appearance := pl_network_Appearance,
+ routing_Context := pl_routing_Context,
+ affected_Point_Codes := pl_affected_Point_Codes,
+ info_String := pl_info_String
+ }
+ }
+}
+//**************************
+// End of M3UA PDU templates
+//**************************
+
+//**********************************
+// Start of M3UA parameter templates
+//**********************************
+template M3UA_Protocol_Data t_M3UA_Protocol_Data
+ (template OCT4 pl_oPC,
+ template OCT4 pl_dPC,
+ template OCT1 pl_sI,
+ template OCT1 pl_nI,
+ template OCT1 pl_mP,
+ template OCT1 pl_sLS,
+ template octetstring pl_userProtocolData) :=
+{
+ tag := '0210'O,
+ lengthInd := 0,
+ oPC := pl_oPC,
+ dPC := pl_dPC,
+ sI := pl_sI,
+ nI := pl_nI,
+ mP := pl_mP,
+ sLS := pl_sLS,
+ userProtocolData := pl_userProtocolData
+}
+//********************************
+// End of M3UA parameter templates
+//********************************
+
+//***********************************
+// Dynamic part of the M3UA emulation
+//***********************************
+
+function f_M3UA_Emulation(SCTP_Association_Address pl_Boot) runs on M3UA_CT
+{
+ // Initialize parameters from the test case.
+ v_Entity.assoc := pl_Boot;
+ v_Entity.commStatus := aSP_Down_initial_State;
+
+ // At this point, we assume that the ports are already connected and mapped
+ // properly by the user.
+ log("*************************************************");
+ log("M3UA emulation initiated, the test can be started");
+ log("*************************************************");
+
+ f_Initialize_SCTP();
+
+ // Start the main function in an infinte loop.
+ f_M3UA_ScanEvents();
+}
+
+// Initialize the SCTP layer with parameters read from the configuration file.
+// We have only a single association.
+function f_Initialize_SCTP() runs on M3UA_CT
+{
+ v_Entity.commStatus := aSP_Down_sCTP_Initialize_Done;
+ if (tsp_SCTP_Server_Mode) {
+ // Send out a LISTEN message. The communication status doesn't change
+ // here.
+ SCTP_PORT.send
+ (t_ASP_SCTP_Listen(v_Entity.assoc.local_ip_addr,
+ v_Entity.assoc.local_sctp_port));
+ }
+ else {
+ // Send ConnectFrom sequentially, wait for RESULT messages.
+ f_Associate();
+ T_Assoc_restart.start;
+ }
+
+ if (tsp_SCTP_PayloadProtocolID == 3) {
+ if (not tsp_M3UA_Server_Mode) {
+ T_ASPUP_resend.start;
+ T_ASPAC_resend.start;
+ }
+ if (tsp_Enable_M3UA_Heartbeat) {
+ T_Heartbeat.start;
+ }
+ }
+}
+
+// Associate SCTP connection for a M3UA entity.
+function f_Associate() runs on M3UA_CT
+{
+ SCTP_PORT.send(t_ASP_SCTP_ConnectFrom
+ (v_Entity.assoc.local_ip_addr,
+ v_Entity.assoc.local_sctp_port,
+ v_Entity.assoc.remote_ip_addr,
+ v_Entity.assoc.remote_sctp_port));
+
+ T_Timer.start;
+ alt {
+ [] SCTP_PORT.receive(t_ASP_SCTP_RESULT(*, ?, *)) -> value v_ASP_SCTP_RESULT {
+ if (v_ASP_SCTP_RESULT.error_status) {
+ log("Connect failed: ", v_ASP_SCTP_RESULT.error_message);
+ }
+ else {
+ v_Entity.sCTP_Assoc_ID := v_ASP_SCTP_RESULT.client_id;
+ v_Entity.commStatus := aSP_Down_sCTP_Associate_done;
+ log("SCTP_ConnectResult -> connection established from: ",
+ v_Entity.assoc.local_ip_addr, ":", v_Entity.assoc.local_sctp_port,
+ " to server: ", v_Entity.assoc.remote_ip_addr, ":",
+ v_Entity.assoc.remote_sctp_port, " association #",
+ v_Entity.sCTP_Assoc_ID);
+ if (tsp_logVerbose) {
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to ",
+ v_Entity.commStatus);
+ }
+ }
+ T_Timer.stop;
+ }
+ [] T_Timer.timeout {
+ log("----------------------------------------------");
+ log("No response received to t_ASP_SCTP_ConnectFrom");
+ log("----------------------------------------------");
+ setverdict(fail);
+ // mtc.stop;
+ }
+ }
+}
+
+// Starts M3UA emulation execution.
+function f_M3UA_ScanEvents() runs on M3UA_CT
+{
+ var ASP_MTP3_TRANSFERreq vl_ASP_MTP3_TRANSFERreq;
+
+ alt {
+ [] MTP3_SP_PORT.receive(ASP_MTP3_TRANSFERreq : ?)
+ -> value vl_ASP_MTP3_TRANSFERreq {
+ f_Send_MTP3_TRANSFERreq(vl_ASP_MTP3_TRANSFERreq);
+ repeat;
+ }
+ [] as_SCTP_CommunicationUp()
+ [] as_SCTP_DataArrive()
+ [] as_SCTP_Connected()
+ [] as_Unexpected_SCTP_Events()
+ [] as_handleM3UA_timers()
+ [] as_handleSCTP_timers()
+ }
+}
+
+function f_Send_MTP3_TRANSFERreq(ASP_MTP3_TRANSFERreq pl_ASP_MTP3_TRANSFERreq)
+ runs on M3UA_CT
+{
+ if (v_Entity.commStatus == aSP_Active) {
+ if (tsp_SCTP_PayloadProtocolID == 3) { // M3UA
+ SCTP_PORT.send
+ (t_S_SCTP_Send
+ (v_Entity.sCTP_Assoc_ID,
+ 1,
+ enc_PDU_M3UA
+ (valueof
+ (t_PDU_M3UA_DATA
+ (omit,
+ omit,
+ t_M3UA_Protocol_Data
+ (int2oct(pl_ASP_MTP3_TRANSFERreq.opc, 4), // OPC
+ int2oct(pl_ASP_MTP3_TRANSFERreq.dpc, 4), // DPC
+ bit2oct('0000'B & pl_ASP_MTP3_TRANSFERreq.sio.si), // SIO
+ bit2oct('000000'B & pl_ASP_MTP3_TRANSFERreq.sio.ni),
+ bit2oct('000000'B & pl_ASP_MTP3_TRANSFERreq.sio.prio),
+ int2oct(pl_ASP_MTP3_TRANSFERreq.sls, 1), // SLS
+ pl_ASP_MTP3_TRANSFERreq.data),
+ omit))),
+ tsp_SCTP_PayloadProtocolID));
+ }
+ else { // Non-M3UA
+ SCTP_PORT.send
+ (t_S_SCTP_Send
+ (v_Entity.sCTP_Assoc_ID,
+ 1,
+ pl_ASP_MTP3_TRANSFERreq.data,
+ tsp_SCTP_PayloadProtocolID));
+ }
+ if (tsp_logVerbose) {
+ log("MTP3_SP_PORT: ASP_MTP3_TRANSFERreq received -> message sent " &
+ "via SCTP");
+ }
+ }
+ else {
+ // If the SCTP association is not yet running, we have to buffer the data
+ // messages arrived from the MTP3 side. Sending of buffered data messages
+ // should occure when the SCTP association is up and before sending the
+ // data message in reply for a new ASP_MTP3_TRANSFERreq data message. The
+ // buffer should be checked before sending.
+ v_TRANSFERreq_Buffer[sizeof(v_TRANSFERreq_Buffer)] :=
+ pl_ASP_MTP3_TRANSFERreq;
+ if (tsp_logVerbose) {
+ log("MTP3_SP_PORT: ASP_MTP3_TRANSFERreq received in an inactive state " &
+ "-> message was buffered");
+ }
+ }
+}
+
+// Handle communication up messages of users which performed associate earlier.
+// We have only one association.
+altstep as_SCTP_CommunicationUp() runs on M3UA_CT
+{
+ [] SCTP_PORT.receive(tr_S_SCTP_CommunicationUp(?))
+ -> value v_ASP_SCTP_ASSOC_CHANGE {
+ if (v_Entity.sCTP_Assoc_ID == v_ASP_SCTP_ASSOC_CHANGE.client_id) {
+ if (v_Entity.commStatus == aSP_Down_sCTP_Associate_done) {
+ v_Entity.commStatus := aSP_Down_commUP_Received;
+ if (tsp_SCTP_PayloadProtocolID != 3) { // Non-M3UA
+ v_Entity.commStatus := aSP_Active;
+ var integer v_i;
+ for (v_i := 0; v_i < sizeof(v_TRANSFERreq_Buffer); v_i := v_i + 1) {
+ log("Sending buffered message #", v_i);
+ f_Send_MTP3_TRANSFERreq(v_TRANSFERreq_Buffer[v_i]);
+ }
+ v_TRANSFERreq_Buffer := {};
+ // MTP3_SP_PORT.send(ASP_MTP3_RESUME : {});
+ }
+ if (tsp_logVerbose) {
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ",
+ v_Entity.commStatus);
+ }
+ if ((not tsp_M3UA_Server_Mode) and
+ (tsp_SCTP_PayloadProtocolID == 3)) { // M3UA
+ f_ASPUP_Sending();
+ }
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("SCTP_CommunicationUp received in wrong state (i.e. not after " &
+ "SCTP_Associate is done) in state: ", v_Entity.commStatus);
+ }
+ }
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("Association does not exists, received in CommunicationUp");
+ }
+ }
+ repeat;
+ }
+}
+
+// This altstep handles the data received from SCTP.
+altstep as_SCTP_DataArrive() runs on M3UA_CT
+{
+ [] SCTP_PORT.receive(tr_S_SCTP_DataArrive
+ (?, // associationID
+ ?, // streamID
+ ?, // protocolID
+ ? // data
+ )) -> value v_ASP_SCTP {
+ // Checking the identifier for the association is not necessary, because we
+ // have only only one association.
+ if (f_Assoc_Exists(v_ASP_SCTP.client_id)) {
+ if (tsp_logVerbose) {
+ log("Message received on association #", v_Entity.sCTP_Assoc_ID);
+ }
+ if (tsp_SCTP_PayloadProtocolID == 3) { // M3UA
+ v_PDU_M3UA := dec_PDU_M3UA(v_ASP_SCTP.data);
+ f_handle_M3UA_msg(v_PDU_M3UA);
+ }
+ else { // Non-M3UA
+ f_handle_nonM3UA_msg(v_ASP_SCTP.data);
+ }
+ }
+ else{
+ log("Message received on unknown association #", v_Entity.sCTP_Assoc_ID,
+ " -> closing connection");
+ SCTP_PORT.send(t_ASP_SCTP_Close(v_Entity.sCTP_Assoc_ID));
+ log("SCTP connection closed");
+ }
+ repeat;
+ }
+}
+
+// Handle the SCTP connected messages. It is sent from the SCTP side and it
+// signals, that we're on the right track to create the association. This is
+// for server mode.
+altstep as_SCTP_Connected() runs on M3UA_CT
+{
+ [tsp_SCTP_Server_Mode] SCTP_PORT.receive(tr_ASP_SCTP_Connected(?, ?, ?, ?, ?))
+ -> value v_ASP_SCTP_Connected {
+ // Message from the configured endpoint.
+ if ((v_ASP_SCTP_Connected.local_portnumber ==
+ v_Entity.assoc.local_sctp_port) and
+ (v_ASP_SCTP_Connected.local_hostname ==
+ v_Entity.assoc.local_ip_addr) and
+ (v_ASP_SCTP_Connected.peer_portnumber ==
+ v_Entity.assoc.remote_sctp_port) and
+ (v_ASP_SCTP_Connected.peer_hostname ==
+ v_Entity.assoc.remote_ip_addr)) {
+ v_Entity.sCTP_Assoc_ID := v_ASP_SCTP_Connected.client_id;
+ v_Entity.commStatus := aSP_Down_sCTP_Associate_done;
+ log("ASP_SCTP_Connected -> accepted connection from client: ",
+ v_ASP_SCTP_Connected.peer_hostname, ":",
+ v_ASP_SCTP_Connected.peer_portnumber, " on server: ",
+ v_ASP_SCTP_Connected.local_hostname, ":",
+ v_ASP_SCTP_Connected.local_portnumber, " with association #",
+ v_Entity.sCTP_Assoc_ID);
+ }
+ else {
+ log("ASP_SCTP_Connected -> connection from unknown client: ",
+ v_ASP_SCTP_Connected.peer_hostname, ":",
+ v_ASP_SCTP_Connected.peer_portnumber);
+ }
+ repeat;
+ }
+}
+
+// Handle error messages of users.
+altstep as_Unexpected_SCTP_Events() runs on M3UA_CT
+{
+ // Handle communications lost message. State of user with given index jumps
+ // back to initial state and stays there. That user will not be able to
+ // communicate anymore.
+ [] SCTP_PORT.receive(tr_S_SCTP_CommunicationLost(?))
+ -> value v_ASP_SCTP_ASSOC_CHANGE {
+ if (f_Assoc_Exists(v_ASP_SCTP_ASSOC_CHANGE.client_id)) {
+ if (v_Entity.commStatus == aSP_Active) {
+ // MTP3_SP_PORT.send(ASP_MTP3_PAUSE : {});
+ }
+ v_Entity.commStatus := aSP_Down_sCTP_Initialize_Done;
+ v_Entity.sCTP_Assoc_ID := omit;
+ if (tsp_logVerbose) {
+ log("SCTP_CommunicationLost received");
+ log("Association #", v_Entity.sCTP_Assoc_ID, " cleared, state " &
+ "changed to: ", v_Entity.commStatus);
+ }
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("Association does not exist, received in CommunicationLost");
+ }
+ }
+ repeat;
+ }
+ [] SCTP_PORT.receive(tr_S_SCTP_ShutdownComplete(?))
+ -> value v_ASP_SCTP_ASSOC_CHANGE {
+ if (f_Assoc_Exists(v_ASP_SCTP_ASSOC_CHANGE.client_id)) {
+ if (v_Entity.commStatus == aSP_Active) {
+ // MTP3_SP_PORT.send(ASP_MTP3_PAUSE : {});
+ }
+ v_Entity.commStatus := aSP_Down_sCTP_Initialize_Done;
+ if (tsp_logVerbose) {
+ log("SCTP_ShutdownComplete received");
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ",
+ v_Entity.commStatus);
+ }
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("Association does not exist, received in ShutdownComplete");
+ }
+ }
+ repeat;
+ }
+ [] SCTP_PORT.receive(tr_S_SCTP_ShutdownEvent(?))
+ -> value v_ASP_SCTP_SHUTDOWN_EVENT {
+ if (f_Assoc_Exists(v_ASP_SCTP_SHUTDOWN_EVENT.client_id)) {
+ if (v_Entity.commStatus == aSP_Active) {
+ // MTP3_SP_PORT.send(ASP_MTP3_PAUSE : {});
+ }
+ v_Entity.commStatus := aSP_Down_sCTP_Initialize_Done;
+ if (tsp_logVerbose) {
+ log("SCTP_ShutdownEvent received");
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ",
+ v_Entity.commStatus);
+ }
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("Association does not exist, received in ShutdownEvent");
+ }
+ }
+ repeat;
+ }
+ [] SCTP_PORT.receive(tr_ASP_SCTP_Connected(?, ?, ?, ?, ?))
+ -> value v_ASP_SCTP_Connected {
+ log("Unexpected ASP_SCTP_Connected");
+ repeat;
+ }
+ [] SCTP_PORT.receive(tr_S_SCTP_Restart(?)) -> value v_ASP_SCTP_ASSOC_CHANGE {
+ if (f_Assoc_Exists(v_ASP_SCTP_ASSOC_CHANGE.client_id)) {
+ log("SCTP_Restart received");
+ v_Entity.commStatus := aSP_Down_commUP_Received;
+ if (tsp_logVerbose) {
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ",
+ v_Entity.commStatus);
+ }
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("Association does not exist, received in SCTP_Restart");
+ }
+ }
+ repeat;
+ }
+ [] SCTP_PORT.receive(t_ASP_SCTP_SEND_FAILED(?))
+ -> value v_ASP_SCTP_SEND_FAILED {
+ log("SCTP_Send failed for association #", v_Entity.sCTP_Assoc_ID);
+ if (f_Assoc_Exists(v_ASP_SCTP_SEND_FAILED.client_id)) {
+ // Daemon sends an error status message here.
+ // MTP3_SP_PORT.send(ASP_MTP3_PAUSE : {});
+ }
+ else {
+ log("Send error received for association that doesn't exist");
+ }
+ repeat;
+ }
+ [] SCTP_PORT.receive(tr_S_SCTP_CANT_STR_ASSOC(?)) {
+ repeat;
+ }
+ [] SCTP_PORT.receive {
+ repeat;
+ }
+}
+
+// After reception of SCTP_CommunicationUp M3UA ASPUP/ASPAC is resent by the
+// entity if it didn't receive ASPUP_Ack/ASPAC_Ack.
+altstep as_handleM3UA_timers() runs on M3UA_CT
+{
+ [] T_ASPUP_resend.timeout {
+ if ((v_Entity.commStatus == aSP_Down_commUP_Received) or
+ (v_Entity.commStatus == aSP_Down_ASPUP_Sent)) {
+ // Try to send ASPUP again.
+ SCTP_PORT.send
+ (t_S_SCTP_Send
+ (v_Entity.sCTP_Assoc_ID,
+ 0,
+ enc_PDU_M3UA(valueof(t_PDU_M3UA_ASPUP(omit, omit))),
+ tsp_SCTP_PayloadProtocolID));
+ v_Entity.commStatus := aSP_Down_ASPUP_Sent;
+ if (tsp_logVerbose) {
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ",
+ v_Entity.commStatus);
+ }
+ }
+ T_ASPUP_resend.start;
+ repeat;
+ }
+
+ [] T_ASPAC_resend.timeout {
+ if ((v_Entity.commStatus == aSP_Inactive) or
+ (v_Entity.commStatus == aSP_Inact_ASPAC_Sent)) {
+ SCTP_PORT.send
+ (t_S_SCTP_Send
+ (v_Entity.sCTP_Assoc_ID,
+ 0,
+ enc_PDU_M3UA(valueof(t_PDU_M3UA_ASPAC(omit, omit, omit))),
+ tsp_SCTP_PayloadProtocolID));
+ v_Entity.commStatus := aSP_Inact_ASPAC_Sent;
+ if (tsp_logVerbose) {
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ",
+ v_Entity.commStatus);
+ }
+ }
+ T_ASPAC_resend.start;
+ repeat;
+ }
+
+ [tsp_Enable_M3UA_Heartbeat] T_Heartbeat.timeout {
+ if (v_Entity.commStatus == aSP_Active) {
+ SCTP_PORT.send
+ (t_S_SCTP_Send
+ (v_Entity.sCTP_Assoc_ID,
+ 0,
+ enc_PDU_M3UA(valueof(t_PDU_M3UA_Heartbeat(omit))),
+ tsp_SCTP_PayloadProtocolID));
+ if (tsp_logVerbose) {
+ log("Heartbeat sent to association #", v_Entity.sCTP_Assoc_ID);
+ }
+ }
+ T_Heartbeat.start;
+ repeat;
+ }
+}
+
+// Handles SCTP timer events. In server mode we don't associate.
+altstep as_handleSCTP_timers() runs on M3UA_CT
+{
+ [not tsp_SCTP_Server_Mode] T_Assoc_restart.timeout {
+ if (v_Entity.commStatus == aSP_Down_sCTP_Initialize_Done) {
+ f_Associate();
+ }
+ T_Assoc_restart.start;
+ repeat;
+ }
+}
+
+// After reception of SCTP CommunicationUp messages M3UA ASPUP is sent by
+// every entity and the M3UA ASPUP_Ack is received by every entity.
+function f_ASPUP_Sending() runs on M3UA_CT
+{
+ SCTP_PORT.send
+ (t_S_SCTP_Send
+ (v_Entity.sCTP_Assoc_ID,
+ 0, // streamID
+ enc_PDU_M3UA(valueof(t_PDU_M3UA_ASPUP(omit, omit))),
+ tsp_SCTP_PayloadProtocolID));
+ v_Entity.commStatus := aSP_Down_ASPUP_Sent;
+ if (tsp_logVerbose) {
+ log("M3UA_ASPUP sent");
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ",
+ v_Entity.commStatus);
+ }
+}
+
+
+// Test if an association with assocID exists or not. We have only one
+// association at the moment, we just check if the given assocID is the same,
+// that is associated with our single entity. If we would have more entities
+// in a table, the index of it should be returned instead of a boolean value.
+function f_Assoc_Exists(integer pl_assocID) runs on M3UA_CT return boolean
+{
+ if (v_Entity.sCTP_Assoc_ID == pl_assocID) {
+ return true;
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("Association #", v_Entity.sCTP_Assoc_ID, " not found");
+ }
+ }
+ return false;
+}
+
+function f_handle_M3UA_msg(PDU_M3UA pl_PDU_M3UA) runs on M3UA_CT
+{
+ if (ischosen(pl_PDU_M3UA.m3UA_DATA)) {
+ if (v_Entity.commStatus == aSP_Active) {
+ // Send ASP_MTP3_TRANSFERind message.
+ MTP3_SP_PORT.send
+ (valueof
+ (tr_ASP_MTP3_TRANSFERind_sio
+ (substr(oct2bit(pl_PDU_M3UA.m3UA_DATA.messageParameters.protocol_Data.nI), 6, 2),
+ substr(oct2bit(pl_PDU_M3UA.m3UA_DATA.messageParameters.protocol_Data.mP), 6, 2),
+ substr(oct2bit(pl_PDU_M3UA.m3UA_DATA.messageParameters.protocol_Data.sI), 4, 4),
+ oct2int(pl_PDU_M3UA.m3UA_DATA.messageParameters.protocol_Data.oPC),
+ oct2int(pl_PDU_M3UA.m3UA_DATA.messageParameters.protocol_Data.dPC),
+ oct2int(pl_PDU_M3UA.m3UA_DATA.messageParameters.protocol_Data.sLS),
+ pl_PDU_M3UA.m3UA_DATA.messageParameters.protocol_Data.userProtocolData)));
+ if (tsp_logVerbose) {
+ log("MTP3_SP_PORT: Data received -> TRANSFERind sent");
+ }
+ }
+ else {
+ // Buffering indication messages?
+ if (tsp_logVerbose) {
+ log("MTP3_SP_PORT: Data received, no user connected -> discard");
+ }
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_BEAT)) {
+ if (v_Entity.commStatus == aSP_Active) {
+ SCTP_PORT.send
+ (t_S_SCTP_Send
+ (v_Entity.sCTP_Assoc_ID,
+ 0,
+ enc_PDU_M3UA
+ (valueof
+ (t_PDU_M3UA_Beat_Ack
+ (pl_PDU_M3UA.m3UA_BEAT.messageParameters.heartbeat_Data))),
+ tsp_SCTP_PayloadProtocolID));
+ if (tsp_logVerbose) {
+ log("M3UA_BEAT received -> M3UA_BEAT_Ack sent");
+ }
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("M3UA_BEAT received in wrong state");
+ }
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_BEAT_Ack)) {
+ if (tsp_logVerbose) {
+ log("Received M3UA_BEAT_Ack -> discard");
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_ERR)) {
+ if (tsp_logVerbose) {
+ log("Received M3UA_ERR -> discard");
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_NOTIFY)) {
+ if (tsp_logVerbose) {
+ log("Received M3UA_NOTIFY -> discard");
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_DUNA)) {
+ if (tsp_logVerbose) {
+ log("Received M3UA_DUNA -> discard");
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_DAVA)) {
+ if (tsp_logVerbose) {
+ log("Received M3UA_DAVA -> discard");
+ }
+ }
+ // In server mode ASP_M3UA_DAUD messages can be received. In response the
+ // server must send ASP_M3UA_DAVA messages. It's not checked if we're
+ // servers or not.
+ else if (ischosen(pl_PDU_M3UA.m3UA_DAUD)) {
+ if ((v_Entity.commStatus == aSP_Inactive) or
+ (v_Entity.commStatus == aSP_Inact_ASPAC_Sent) or
+ (v_Entity.commStatus == aSP_Active)) {
+ // Send ASP_M3UA_DAVA message.
+ SCTP_PORT.send
+ (t_S_SCTP_Send
+ (v_Entity.sCTP_Assoc_ID,
+ 0,
+ enc_PDU_M3UA
+ (valueof
+ (t_PDU_M3UA_DAVA
+ (pl_PDU_M3UA.m3UA_DAUD.messageParameters.network_Appearance,
+ pl_PDU_M3UA.m3UA_DAUD.messageParameters.routing_Context,
+ pl_PDU_M3UA.m3UA_DAUD.messageParameters.affected_Point_Codes,
+ pl_PDU_M3UA.m3UA_DAUD.messageParameters.info_String))),
+ tsp_SCTP_PayloadProtocolID));
+ if (tsp_logVerbose) {
+ log("M3UA_DAUD received -> DAVA sent");
+ }
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("M3UA_DAUD received in wrong state");
+ }
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_SCON)) {
+ if (tsp_logVerbose) {
+ log("Received M3UA_SCON -> discard");
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_DUPU)) {
+ if (tsp_logVerbose) {
+ log("Received M3UA_DUPU -> discard");
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_DRST)) {
+ if (tsp_logVerbose) {
+ log("Received M3UA_DRST -> discard");
+ }
+ }
+ // In server mode we can receive M3UA_ASPUP messages. The answer will be a
+ // M3UA_ASPUP_Ack message to the client.
+ else if (ischosen(pl_PDU_M3UA.m3UA_ASPUP)) {
+ if (((v_Entity.commStatus == aSP_Down_commUP_Received) or
+ (v_Entity.commStatus == aSP_Down_ASPUP_Sent)) and
+ tsp_M3UA_Server_Mode) {
+ v_Entity.commStatus := aSP_Inactive;
+ SCTP_PORT.send
+ (t_S_SCTP_Send
+ (v_Entity.sCTP_Assoc_ID,
+ 0,
+ enc_PDU_M3UA(valueof(t_PDU_M3UA_ASPUP_Ack)),
+ tsp_SCTP_PayloadProtocolID));
+ if (tsp_logVerbose) {
+ log("M3UA_ASPUP received -> M3UA_ASPUP_Ack sent");
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ",
+ v_Entity.commStatus);
+ }
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("M3UA_ASPUP received in wrong state or the emulation is not in " &
+ "M3UA server mode");
+ }
+ }
+ }
+ // Receives a M3UA_ASPDN message and sends a M3UA_ASPDN_Ack message in
+ // response.
+ else if (ischosen(pl_PDU_M3UA.m3UA_ASPDN)) {
+ if ((v_Entity.commStatus == aSP_Inactive) or
+ (v_Entity.commStatus == aSP_Inact_ASPAC_Sent) or
+ (v_Entity.commStatus == aSP_Active)) {
+ SCTP_PORT.send
+ (t_S_SCTP_Send
+ (v_Entity.sCTP_Assoc_ID,
+ 0,
+ enc_PDU_M3UA(valueof(t_PDU_M3UA_ASPDN_Ack)),
+ tsp_SCTP_PayloadProtocolID));
+ if (v_Entity.commStatus == aSP_Active) {
+ // MTP3_SP_PORT.send(ASP_MTP3_PAUSE : {});
+ }
+ v_Entity.commStatus := aSP_Down_commUP_Received;
+ if (tsp_logVerbose) {
+ log("M3UA_ASPDN received -> ASPDN_Ack sent");
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ",
+ v_Entity.commStatus);
+ }
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("ASPDN received in wrong state or the emulation is not in M3UA " &
+ "server mode");
+ }
+ }
+ }
+ // The M3UA client receives M3UA_ASPUP_Ack messages from the server. In
+ // response of a M3UA_ASPUP message sent by the client.
+ else if (ischosen(pl_PDU_M3UA.m3UA_ASPUP_Ack)) {
+ if (((v_Entity.commStatus == aSP_Down_ASPUP_Sent) or
+ (v_Entity.commStatus == aSP_Inactive)) and
+ not tsp_M3UA_Server_Mode) {
+ v_Entity.commStatus := aSP_Inactive;
+ if (tsp_logVerbose) {
+ log("M3UA_ASPUP_Ack received -> send M3UA_ASPAC");
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ",
+ v_Entity.commStatus);
+ }
+ SCTP_PORT.send
+ (t_S_SCTP_Send
+ (v_Entity.sCTP_Assoc_ID,
+ 0,
+ enc_PDU_M3UA(valueof(t_PDU_M3UA_ASPAC(omit, omit, omit))),
+ tsp_SCTP_PayloadProtocolID));
+ // The state changes again after sending the M3UA_ASPAC message.
+ v_Entity.commStatus := aSP_Inact_ASPAC_Sent;
+ if (tsp_logVerbose) {
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ",
+ v_Entity.commStatus);
+ }
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("M3UA_ASPUP_Ack received in wrong state or the emulation is not " &
+ "in M3UA client mode");
+ }
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_ASPDN_Ack)) {
+ if (tsp_logVerbose) {
+ log("Received M3UA_ASPDN_Ack -> discard");
+ }
+ }
+ // M3UA_ASPAC messages are received on the server side. The server sends a
+ // M3UA_ASPAC_Ack message back to the client. This step makes the
+ // association active on both sides.
+ else if (ischosen(pl_PDU_M3UA.m3UA_ASPAC)) {
+ if (((v_Entity.commStatus == aSP_Inactive) or
+ (v_Entity.commStatus == aSP_Inact_ASPAC_Sent)) and
+ tsp_M3UA_Server_Mode) {
+ v_Entity.commStatus := aSP_Active;
+ if (tsp_logVerbose) {
+ log("M3UA_ASPAC received -> M3UA_ASPAC_Ack sent");
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ",
+ v_Entity.commStatus);
+ }
+ var integer v_i;
+ for (v_i := 0; v_i < sizeof(v_TRANSFERreq_Buffer); v_i := v_i + 1) {
+ log("Sending buffered message #", v_i);
+ f_Send_MTP3_TRANSFERreq(v_TRANSFERreq_Buffer[v_i]);
+ }
+ v_TRANSFERreq_Buffer := {};
+ // Send M3UA_ASPAC_Ack.
+ SCTP_PORT.send
+ (t_S_SCTP_Send
+ (v_Entity.sCTP_Assoc_ID,
+ 0,
+ enc_PDU_M3UA
+ (valueof
+ (t_PDU_M3UA_ASPAC_Ack
+ (pl_PDU_M3UA.m3UA_ASPAC.messageParameters.traffic_Mode_Type,
+ pl_PDU_M3UA.m3UA_ASPAC.messageParameters.routing_Context))),
+ tsp_SCTP_PayloadProtocolID));
+ // MTP3_SP_PORT.send(ASP_MTP3_RESUME : {});
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("M3UA_ASPAC received in wrong state or the emulation is not in " &
+ "M3UA server mode");
+ }
+ }
+ }
+ // The client receives M3UA_ASPAC_Ack messages from the server. The
+ // association will be activated. The buffered messages should be send here.
+ else if (ischosen(pl_PDU_M3UA.m3UA_ASPAC_Ack)) {
+ if (((v_Entity.commStatus == aSP_Inact_ASPAC_Sent) or
+ (v_Entity.commStatus == aSP_Active)) and
+ not tsp_M3UA_Server_Mode) {
+ // MTP3_SP_PORT.send(ASP_MTP3_RESUME : {});
+ v_Entity.commStatus := aSP_Active;
+ if (tsp_logVerbose) {
+ log("ASPAC_Ack received for association #", v_Entity.sCTP_Assoc_ID);
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ",
+ v_Entity.commStatus);
+ }
+ var integer v_i;
+ for (v_i := 0; v_i < sizeof(v_TRANSFERreq_Buffer); v_i := v_i + 1) {
+ log("Sending buffered message #", v_i);
+ f_Send_MTP3_TRANSFERreq(v_TRANSFERreq_Buffer[v_i]);
+ }
+ v_TRANSFERreq_Buffer := {};
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("M3UA_ASPAC_Ack received in wrong state on association #",
+ v_Entity.sCTP_Assoc_ID, " or the emulation is not in M3UA " &
+ "client mode");
+ }
+ }
+ }
+ // Receives a M3UA_ASPIA message and sends back a M3UA_ASPIA_Ack message in
+ // response.
+ else if (ischosen(pl_PDU_M3UA.m3UA_ASPIA)) {
+ if (v_Entity.commStatus == aSP_Active) {
+ SCTP_PORT.send
+ (t_S_SCTP_Send
+ (v_Entity.sCTP_Assoc_ID,
+ 0,
+ enc_PDU_M3UA
+ (valueof
+ (t_PDU_M3UA_ASPIA_Ack
+ (pl_PDU_M3UA.m3UA_ASPIA.messageParameters.routing_Context))),
+ tsp_SCTP_PayloadProtocolID));
+ // MTP3_SP_PORT.send(ASP_MTP3_PAUSE : {});
+ v_Entity.commStatus := aSP_Inactive;
+ if (tsp_logVerbose) {
+ log("M3UA_ASPIA received -> M3UA_ASPIA_Ack sent");
+ log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ",
+ v_Entity.commStatus);
+ }
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("M3UA_ASPIA received in wrong state or the emulation is not " &
+ "running in M3UA server mode");
+ }
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_ASPIA_Ack)) {
+ if (tsp_logVerbose) {
+ log("Received M3UA_ASPIA_Ack -> discard");
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_REG_REQ)) {
+ if (tsp_logVerbose) {
+ log("Received M3UA_REG_REQ -> discard");
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_REG_RSP)) {
+ if (tsp_logVerbose) {
+ log("Received M3UA_REG_RSP -> discard");
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_DEREG_REQ)) {
+ if (tsp_logVerbose) {
+ log("Received M3UA_DEREG_REQ -> discard");
+ }
+ }
+ else if (ischosen(pl_PDU_M3UA.m3UA_DEREG_RSP)) {
+ if (tsp_logVerbose) {
+ log("Received M3UA_DEREG_RSP -> discard");
+ }
+ }
+}
+
+function f_handle_nonM3UA_msg(octetstring pl_PDU) runs on M3UA_CT
+{
+ if (v_Entity.commStatus == aSP_Active) {
+ // Send TRANSFERind message.
+ MTP3_SP_PORT.send(valueof
+ (tr_ASP_MTP3_TRANSFERind_sio
+ ('00'B,
+ '00'B,
+ '0000'B,
+ 0,
+ 0,
+ 0,
+ pl_PDU)));
+ if (tsp_logVerbose) {
+ log("Non-M3UA DATA received -> TRANSFERind sent");
+ }
+ }
+ else {
+ if (tsp_logVerbose) {
+ log("DATA received, but no user connected -> discard");
+ }
+ }
+}
+
+}