initial chekin of code received by Ericsson on 20170410
diff --git a/MTP3asp_CNL113337/src/MTP3asp_Types.ttcn b/MTP3asp_CNL113337/src/MTP3asp_Types.ttcn
new file mode 100644
index 0000000..e96f420
--- /dev/null
+++ b/MTP3asp_CNL113337/src/MTP3asp_Types.ttcn
@@ -0,0 +1,324 @@
+///////////////////////////////////////////////////////////////////////////////
+//                                                                           //
+// Copyright Test Competence Center (TCC) ETH 2006                           //
+//                                                                           //
+// 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:         MTP3asp_Types.ttcn
+//  Description:  CCSS7 Message Transfer Part primitive (ASP) definitions
+//                according to specification ITU-T SS7 MTP3,
+//  Reference:    ITU-T Recommendation Q.704, RFC3332, ANSI T.1.111.1-2001, TCC 
+//  Rev:          R11A01
+//  Prodnr:       CNL 113 337
+//  Updated:      2007-09-17
+//  Contact:      http://ttcn.ericsson.se
+//
+module MTP3asp_Types.objid 
+  { 
+    itu_t(0) identified_organization (4) etsi(0) reserved(127)
+    etsi_identified_organization(0) ericsson(5) testing (0)
+    generic(0) mtp3(0) v96(3) aspDefinitions(3) patchNo(0)
+  }
+
+{//start of the module
+
+// *************************************************************************
+//  External encoding/decoding functions
+// *************************************************************************
+
+external function enc_MTP3_to_M3UAserver_msg (in MTP3_to_M3UAserver_msg pdu)
+  return octetstring
+  with { extension "prototype(convert)"
+         extension "encode(RAW)"
+       };
+
+external function dec_MTP3_to_M3UAserver_msg(in octetstring stream)
+   return MTP3_to_M3UAserver_msg
+  with { extension "prototype(convert)"
+         extension "decode(RAW)"
+       };
+
+
+// *************************************************************************
+// *  Type Definitions Part                                                *
+// *************************************************************************
+group Types
+{
+  group MessageTypes
+  {
+    group ASPs
+    {
+    //***********************************************************************
+    //*  ASP type definitions                                               *
+    //*          Note, that ASP types shall be TTCN-3 definitions to allow  *
+    //*          the use of anytype in the data field                       *
+    //***********************************************************************
+
+      type record MTP3_Field_sio
+      {
+        bitstring ni   length(2),
+        bitstring prio length(2),
+        bitstring si   length(4)
+      } with { variant "FIELDORDER(msb)";
+             };
+      
+      type record ASP_MTP3_TRANSFERind
+      {
+        MTP3_Field_sio    sio,
+        integer           opc,
+        integer           dpc,
+        integer           sls,
+        octetstring       data
+      } with { variant (opc) "BYTEORDER(last), FIELDLENGTH(32)";
+               variant (dpc) "BYTEORDER(last), FIELDLENGTH(32)";
+               variant (sls) "FIELDLENGTH(8)"
+             };
+
+      type record ASP_MTP3_PAUSE {};
+
+      type record ASP_MTP3_RESUME {};
+
+      type record ASP_MTP3_STATUS {};
+
+      type record ASP_MTP3_TRANSFERreq
+      {
+        MTP3_Field_sio    sio,
+        integer           opc,
+        integer           dpc,
+        integer           sls,
+        octetstring       data
+      } with { variant (opc) "BYTEORDER(last), FIELDLENGTH(32)";
+               variant (dpc) "BYTEORDER(last), FIELDLENGTH(32)";
+               variant (sls) "FIELDLENGTH(8)"
+             };
+    }//end group ASPs
+
+    //***********************************************************************
+    //* Type definition of the message which is sent between MTP3 test port *
+    //*  and SCTP server over TCP.                                          *
+    //***********************************************************************
+    group MTP3_SCTPserver
+    {
+      type record ASP_REGISTER_M3UA
+      {
+        integer     ni (0..3),
+        integer     sut_pc,
+        integer     tester_pc,
+        integer     m3ua_version,
+        charstring  entity
+      } with { variant (ni) "FIELDLENGTH(8)";
+               variant (sut_pc) "BYTEORDER(last), FIELDLENGTH(32)";
+               variant (tester_pc) "BYTEORDER(last), FIELDLENGTH(32)";
+               variant (m3ua_version) "FIELDLENGTH(8)"
+      };
+      
+      
+      // Possible values:
+      // MTP3_to_SCTPserver_data/status:
+      const integer reg_ok_status      := 0;
+      const integer reg_error_status   := 1;
+      const integer unreg_ok_status    := 2;
+      const integer unreg_error_status := 3;
+
+      const integer send_error_status  := 5;
+      const integer kill_status        := 255;
+      
+      // MTP3_to_SCTPserver_data/pause:
+      const integer SCTP_COMLOST_pause := 0;
+      const integer M3UA_ASPDN_pause   := 1;
+      const integer M3UA_ASPIA_pause   := 2;
+      
+      // MTP3_to_SCTPserver_data/resume:
+      const integer ok_resume := 0;
+      
+      type union MTP3_to_SCTPserver_data
+      {
+        ASP_MTP3_TRANSFERind transfer_ind,
+        ASP_MTP3_TRANSFERreq transfer_req,
+        ASP_REGISTER_M3UA    register,
+        integer              unregister (0..255),
+        integer              status (0..255),
+        integer              pause (0..255),
+        integer              resume (0..255)
+      }
+      
+      // MTP3_to_M3UAserver_msg/msgType:
+      const integer transfer_ind_msgType := 0;
+      const integer transfer_req_msgType := 1;
+      const integer register_msgType     := 2;
+      const integer unregister_msgType   := 3;
+      const integer status_msgType       := 4;
+      const integer pause_msgType        := 5;
+      const integer resume_msgType       := 6;
+      
+      type record MTP3_to_M3UAserver_msg
+      {
+        integer                 msgType (0..255),
+        integer                 msgLength,
+        MTP3_to_SCTPserver_data data
+      } with { variant (data) "CROSSTAG(
+                              transfer_ind, msgType = transfer_ind_msgType;
+                              transfer_req, msgType = transfer_req_msgType;
+                              register,     msgType = register_msgType;
+                              unregister,   msgType = unregister_msgType;
+                              status,       msgType = status_msgType;
+                              pause,        msgType = pause_msgType;
+                              resume,       msgType = resume_msgType )";
+               variant (msgLength) "FIELDLENGTH(32)";
+               variant (msgLength) "LENGTHTO(msgType,msgLength,data)";
+               variant (msgLength) "BYTEORDER(last)"
+             };
+    }//end group MTP3_SCTPserver
+  }//end group Messagetypes
+} with {encode "RAW"}//Types
+
+group Templates
+{
+  group MessageTemplates
+  {
+    group ASPtemplates
+    {
+    // *******************************************************************
+    // *   ASP template definitions                                      *
+    // *******************************************************************
+
+    // Base templates 
+    // These general templates can be used as an example or as a base
+    // template for other templates.
+      template ASP_MTP3_TRANSFERind t_ASP_MTP3_TRANSFERind
+      ( 
+        template MTP3_Field_sio pl_SIO,
+        template integer        pl_OPC,
+        template integer        pl_DPC,
+        template integer        pl_SLS,
+        template octetstring    pl_data
+      ):=
+      {
+        sio  := pl_SIO,
+        opc  := pl_OPC,
+        dpc  := pl_DPC,
+        sls  := pl_SLS,
+        data := pl_data 
+      }
+    
+      template ASP_MTP3_TRANSFERind tr_ASP_MTP3_TRANSFERind_sio
+      ( 
+       template bitstring      pl_NI,
+       template bitstring      pl_PRIO,
+       template bitstring      pl_SI,
+       template integer        pl_OPC,
+       template integer        pl_DPC,
+       template integer        pl_SLS,
+       template octetstring    pl_data
+      ):=
+      {
+        sio  := 
+        {
+          ni := pl_NI,
+          prio := pl_PRIO,
+          si := pl_SI
+        },
+        opc  := pl_OPC,
+        dpc  := pl_DPC,
+        sls  := pl_SLS,
+        data := pl_data 
+      }
+    
+      template ASP_MTP3_TRANSFERind tr_ASP_MTP3_TRANSFERind :=
+      {
+        sio  := ?,
+        opc  := ?,
+        dpc  := ?,
+        sls  := ?,
+        data := ?
+      }
+
+      template ASP_MTP3_TRANSFERreq t_ASP_MTP3_TRANSFERreq
+      ( 
+        MTP3_Field_sio pl_SIO,
+        integer        pl_OPC,
+        integer        pl_DPC,
+        integer        pl_SLS,
+        octetstring    pl_data
+      ):=
+      {
+        sio  := pl_SIO,
+        opc  := pl_OPC,
+        dpc  := pl_DPC,
+        sls  := pl_SLS,
+        data := pl_data 
+      }
+
+      template ASP_MTP3_TRANSFERreq tr_ASP_MTP3_TRANSFERreq_sio
+      ( 
+       template bitstring      pl_NI,
+       template bitstring      pl_PRIO,
+       template bitstring      pl_SI,
+       template integer        pl_OPC,
+       template integer        pl_DPC,
+       template integer        pl_SLS,
+       template octetstring    pl_data
+      ):=
+      {
+        sio  := 
+        {
+          ni := pl_NI,
+          prio := pl_PRIO,
+          si := pl_SI
+        },
+        opc  := pl_OPC,
+        dpc  := pl_DPC,
+        sls  := pl_SLS,
+        data := pl_data 
+      }
+
+      template ASP_MTP3_TRANSFERreq tr_ASP_MTP3_TRANSFERreq :=
+      {
+        sio  := ?,
+        opc  := ?,
+        dpc  := ?,
+        sls  := ?,
+        data := ? 
+      }
+    
+      template ASP_MTP3_TRANSFERind tr_ASP_MTP3_TRANSFERind_stc :=
+      {
+        sio  := 
+        {
+          ni := '00'B,
+          prio := '00'B,
+          si := '0000'B
+        },
+        opc  := 0,
+        dpc  := 0,
+        sls  := 0,
+        data := ? 
+      }
+    
+      template ASP_MTP3_TRANSFERreq t_ASP_MTP3_TRANSFERreq_stc
+      ( template octetstring    pl_data ):=
+      {
+        sio  := 
+        {
+          ni := '00'B,
+          prio := '00'B,
+          si := '0000'B
+        },
+        opc  := 0,
+        dpc  := 0,
+        sls  := 0,
+        data := pl_data 
+      }
+    
+    }//end group ASPtemplates
+  }//end group Messagetemplates
+}//end group Templates
+
+}//end module
+
+