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");
+    }
+  }
+}
+
+}