initial chekin of code received by Ericsson on 20170410
diff --git a/M3UA_CNL113536/M3UA_CNL113536.tpd b/M3UA_CNL113536/M3UA_CNL113536.tpd
new file mode 100644
index 0000000..c672902
--- /dev/null
+++ b/M3UA_CNL113536/M3UA_CNL113536.tpd
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2015 Ericsson
+
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+
+ File: M3UA_CNL113536.tpd
+ Description: tpd project file
+ Rev: R2A
+ Prodnr: CNL 113 536
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+ <ProjectName>M3UA_CNL113536</ProjectName>
+ <ReferencedProjects>
+ <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+ </ReferencedProjects>
+ <Folders>
+ <FolderResource projectRelativePath="src" relativeURI="src"/>
+ </Folders>
+ <Files>
+ <FileResource projectRelativePath="src/M3UA_Types.ttcn" relativeURI="src/M3UA_Types.ttcn"/>
+ </Files>
+ <ActiveConfiguration>Default</ActiveConfiguration>
+ <Configurations>
+ <Configuration name="Default">
+ <ProjectProperties>
+ <MakefileSettings>
+ <generateInternalMakefile>true</generateInternalMakefile>
+ <GNUMake>true</GNUMake>
+ <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+ <targetExecutable>bin/M3UA_CNL113536</targetExecutable>
+ </MakefileSettings>
+ <LocalBuildSettings>
+ <workingDirectory>bin</workingDirectory>
+ </LocalBuildSettings>
+ </ProjectProperties>
+ </Configuration>
+ </Configurations>
+</TITAN_Project_File_Information>
diff --git a/M3UA_CNL113536/doc/documentation_note.txt b/M3UA_CNL113536/doc/documentation_note.txt
new file mode 100644
index 0000000..eb68bfb
--- /dev/null
+++ b/M3UA_CNL113536/doc/documentation_note.txt
@@ -0,0 +1,13 @@
+Please note that the storage of the documentation of the product has been
+moved to the eridoc.ericsson.se from the ClearCase.
+
+You can access the documentation of the product via the following links:
+
+The documentation belongs to the R2A revision of the product
+can be found here:
+http://document.internal.ericsson.com/Download?DocNo=1095-CNL113536&Rev=C&Lang=EN&PRev=Y
+
+The documentation belongs to the latest revision of the product
+can be found here:
+http://document.internal.ericsson.com/Download?DocNo=1095-CNL113536&Rev=HIGHEST&Lang=EN&Status=FREE&PRev=Y
+
diff --git a/M3UA_CNL113536/src/M3UA_Types.ttcn b/M3UA_CNL113536/src/M3UA_Types.ttcn
new file mode 100644
index 0000000..d79d832
--- /dev/null
+++ b/M3UA_CNL113536/src/M3UA_Types.ttcn
@@ -0,0 +1,805 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015 Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* Ferenc Kovacs
+* Gabor Bettesch
+* Gabor Szalai
+******************************************************************************/
+//
+// File: M3UA_Types.ttcn
+// Rev: R2A
+// Prodnr: CNL 113 536
+// Reference:
+
+module M3UA_Types {
+
+import from General_Types all;
+
+external function enc_PDU_M3UA(in PDU_M3UA pdu) return octetstring
+with { extension "prototype(convert)"
+ extension "encode(RAW)"
+ }
+
+external function dec_PDU_M3UA(in octetstring stream) return PDU_M3UA
+with { extension "prototype(convert)"
+ extension "decode(RAW)"
+ }
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+// M3UA PARAMETERS
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type octetstring M3UA_OCT0_255 length (0..255);
+
+type record M3UA_Point_Code
+{
+ OCT1 mask,
+ OCT3 affected_Point_Code
+}
+
+type record of M3UA_Point_Code M3UA_Point_Codes;
+
+type record M3UA_Error_Code
+{
+ OCT2 tag,
+ integer lengthInd,
+ OCT4 errorCode
+} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,errorCode)";
+ variant (lengthInd) "FIELDLENGTH(16)";
+ variant (lengthInd) "BYTEORDER(last)";
+ }
+
+type record M3UA_Routing_Context
+{
+ OCT2 tag,
+ integer lengthInd,
+ octetstring routingContext
+} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,routingContext)";
+ variant (lengthInd) "FIELDLENGTH(16)";
+ variant (lengthInd) "BYTEORDER(last)";
+ variant "PADDING(dword32)";
+ }
+
+type record M3UA_Affected_Point_Codes
+{
+ OCT2 tag,
+ integer lengthInd,
+ M3UA_Point_Codes pointCodes
+} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,pointCodes)";
+ variant (lengthInd) "FIELDLENGTH(16)";
+ variant (lengthInd) "BYTEORDER(last)";
+ }
+
+type record M3UA_Network_Appearance
+{
+ OCT2 tag,
+ integer lengthInd,
+ OCT4 networkAppearance
+} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,networkAppearance)";
+ variant (lengthInd) "FIELDLENGTH(16)";
+ variant (lengthInd) "BYTEORDER(last)";
+ }
+
+type record M3UA_Diagnostic_information
+{
+ OCT2 tag,
+ integer lengthInd,
+ octetstring diagnosticInformation
+} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,diagnosticInformation)";
+ variant (lengthInd) "FIELDLENGTH(16)";
+ variant (lengthInd) "BYTEORDER(last)";
+ variant "PADDING(dword32)";
+ }
+
+type record M3UA_Correlation_ID
+{
+ OCT2 tag,
+ integer lengthInd,
+ OCT4 correlationID
+} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,correlationID)";
+ variant (lengthInd) "FIELDLENGTH(16)";
+ variant (lengthInd) "BYTEORDER(last)";
+ }
+
+type record M3UA_Protocol_Data
+{
+ OCT2 tag,
+ integer lengthInd,
+ OCT4 oPC,
+ OCT4 dPC,
+ OCT1 sI,
+ OCT1 nI,
+ OCT1 mP,
+ OCT1 sLS,
+ octetstring userProtocolData
+} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,oPC,dPC,sI,nI,mP,sLS,
+ userProtocolData)";
+ variant (lengthInd) "FIELDLENGTH(16)";
+ variant (lengthInd) "BYTEORDER(last)";
+ variant "PADDING(dword32)";
+ }
+
+type record M3UA_Info_String
+{
+ OCT2 tag,
+ integer lengthInd,
+ M3UA_OCT0_255 infoString
+} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,infoString)";
+ variant (lengthInd) "FIELDLENGTH(16)";
+ variant (lengthInd) "BYTEORDER(last)";
+ variant "PADDING(dword32)";
+ }
+
+type record M3UA_Concerned_Destination
+{
+ OCT2 tag,
+ integer lengthInd,
+ OCT1 reserved,
+ OCT3 concernedDestination
+} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,reserved,
+ concernedDestination)";
+ variant (lengthInd) "FIELDLENGTH(16)";
+ variant (lengthInd) "BYTEORDER(last)";
+ }
+
+type record M3UA_Congestion_Indicators
+{
+ OCT2 tag,
+ integer lengthInd,
+ OCT1 reserved,
+ OCT3 congestionLevel
+} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,reserved,congestionLevel)";
+ variant (lengthInd) "FIELDLENGTH(16)";
+ variant (lengthInd) "BYTEORDER(last)";
+ }
+
+type record M3UA_User_Cause
+{
+ OCT2 tag,
+ integer lengthInd,
+ OCT2 cause,
+ OCT2 user
+} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,cause,user)";
+ variant (lengthInd) "FIELDLENGTH(16)";
+ variant (lengthInd) "BYTEORDER(last)";
+ }
+
+type record M3UA_ASP_Identifier
+{
+ OCT2 tag,
+ integer lengthInd,
+ OCT4 aSPIdentifier
+} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,aSPIdentifier)";
+ variant (lengthInd) "FIELDLENGTH(16)";
+ variant (lengthInd) "BYTEORDER(last)";
+ }
+
+type record M3UA_Heartbeat_Data
+{
+ OCT2 tag,
+ integer lengthInd,
+ octetstring heartbeat_Data
+} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,heartbeat_Data)";
+ variant (lengthInd) "FIELDLENGTH(16)";
+ variant (lengthInd) "BYTEORDER(last)";
+ variant "PADDING(dword32)";
+ }
+
+type record M3UA_Traffic_Mode_Type
+{
+ OCT2 tag,
+ integer lengthInd,
+ OCT4 trafficModeType
+} with { variant (lengthInd) "LENGTHTO (tag,lengthInd,trafficModeType)";
+ variant (lengthInd) "FIELDLENGTH(16)";
+ variant (lengthInd) "BYTEORDER(last)";
+ }
+
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+//PDUs
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+
+// M3UA_ERR PDU
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_ERR
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_ERR_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_ERR_MessageParameters
+{
+ M3UA_Error_Code error_Code,
+ M3UA_Routing_Context routing_Context optional,
+ M3UA_Affected_Point_Codes affected_Point_Codes optional,
+ M3UA_Network_Appearance network_Appearance optional,
+ M3UA_Diagnostic_information diagnostic_information optional
+} with { variant "TAG(error_Code, tag = '000C'O;
+ routing_Context, tag = '0006'O;
+ affected_Point_Codes, tag = '0012'O;
+ network_Appearance, tag = '0200'O;
+ diagnostic_information, tag = '0007'O; )"
+ }
+
+
+// M3UA_NOTIFY
+// NOTE1 : NOTIFY should not come and will be dropped if it comes
+// NOTE2 : messageParameters is simpified implementation as octetstring
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_NOTIFY
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ octetstring messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+
+// M3UA_DATA PDU
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_DATA
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_DATA_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_DATA_MessageParameters
+{
+ M3UA_Network_Appearance network_Appearance optional,
+ M3UA_Routing_Context routing_Context optional,
+ M3UA_Protocol_Data protocol_Data,
+ M3UA_Correlation_ID correlation_ID optional
+} with { variant "TAG(network_Appearance, tag = '0200'O;
+ routing_Context, tag = '0006'O;
+ protocol_Data, tag = '0210'O;
+ correlation_ID, tag = '0013'O; )"
+ }
+
+
+// M3UA_DUNA PDU
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_DUNA
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_DUNA_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_DUNA_MessageParameters
+{
+ M3UA_Network_Appearance network_Appearance optional,
+ M3UA_Routing_Context routing_Context optional,
+ M3UA_Affected_Point_Codes affected_Point_Codes,
+ M3UA_Info_String info_String optional
+} with { variant "TAG(network_Appearance, tag = '0200'O;
+ routing_Context, tag = '0006'O;
+ affected_Point_Codes, tag = '0012'O;
+ info_String, tag = '0004'O )"
+ }
+
+
+// M3UA_DAVA PDU
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_DAVA
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_DAVA_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_DAVA_MessageParameters
+{
+ M3UA_Network_Appearance network_Appearance optional,
+ M3UA_Routing_Context routing_Context optional,
+ M3UA_Affected_Point_Codes affected_Point_Codes,
+ M3UA_Info_String info_String optional
+} with { variant "TAG(network_Appearance, tag = '0200'O;
+ routing_Context, tag = '0006'O;
+ affected_Point_Codes, tag = '0012'O;
+ info_String, tag = '0004'O )"
+ }
+
+
+// M3UA_DAUD PDU
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_DAUD
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_DAUD_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_DAUD_MessageParameters
+{
+ M3UA_Network_Appearance network_Appearance optional,
+ M3UA_Routing_Context routing_Context optional,
+ M3UA_Affected_Point_Codes affected_Point_Codes,
+ M3UA_Info_String info_String optional
+} with { variant "TAG(network_Appearance, tag = '0200'O;
+ routing_Context, tag = '0006'O;
+ affected_Point_Codes, tag = '0012'O;
+ info_String, tag = '0004'O )"
+ }
+
+
+// M3UA_SCON PDU
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_SCON
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_SCON_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_SCON_MessageParameters
+{
+ M3UA_Network_Appearance network_Appearance optional,
+ M3UA_Routing_Context routing_Context optional,
+ M3UA_Affected_Point_Codes affected_Point_Codes,
+ M3UA_Concerned_Destination concerned_Destination optional,
+ M3UA_Congestion_Indicators congestion_Indicators optional,
+ M3UA_Info_String info_String optional
+} with { variant "TAG(network_Appearance, tag = '0200'O;
+ routing_Context, tag = '0006'O;
+ affected_Point_Codes, tag = '0012'O;
+ concerned_Destination, tag = '0206'O;
+ congestion_Indicators, tag = '0205'O;
+ info_String, tag = '0004'O )"
+ }
+
+
+// M3UA_DUPU PDU
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_DUPU
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_DUPU_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_DUPU_MessageParameters
+{
+ M3UA_Network_Appearance network_Appearance optional,
+ M3UA_Routing_Context routing_Context optional,
+ M3UA_Affected_Point_Codes affected_Point_Codes,
+ M3UA_User_Cause user_Cause,
+ M3UA_Info_String info_String optional
+} with { variant "TAG(network_Appearance, tag = '0200'O;
+ routing_Context, tag = '0006'O;
+ affected_Point_Codes, tag = '0012'O;
+ user_Cause, tag = '0204'O;
+ info_String, tag = '0004'O )"
+ }
+
+
+// M3UA_DRST PDU
+// NOTE1 : DRST should not come and will be dropped if it comes
+// NOTE2 : messageParameters is simpified implementation as octetstring
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_DRST
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ octetstring messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+
+// M3UA_ASPUP
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_ASPUP
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_ASPUP_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_ASPUP_MessageParameters
+{
+ M3UA_ASP_Identifier aSP_Identifier optional,
+ M3UA_Info_String info_String optional
+} with { variant "TAG(aSP_Identifier, tag = '0011'O;
+ info_String, tag = '0004'O; )"
+ }
+
+
+//M3UA_ASPUP_Ack
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_ASPUP_Ack
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_ASPUP_Ack_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_ASPUP_Ack_MessageParameters
+{
+ M3UA_Info_String info_String optional
+} with { variant "TAG(info_String, tag = '0004'O; )"
+ }
+
+
+//M3UA_ASPDN
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_ASPDN
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_ASPDN_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_ASPDN_MessageParameters
+{
+ M3UA_Info_String info_String optional
+} with { variant "TAG(info_String, tag = '0004'O; )"
+ }
+
+
+//M3UA_ASPDN_Ack
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_ASPDN_Ack
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_ASPDN_Ack_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_ASPDN_Ack_MessageParameters
+{
+ M3UA_Info_String info_String optional
+} with { variant "TAG(info_String, tag = '0004'O;)"
+ }
+
+
+// M3UA_BEAT
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_BEAT
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_BEAT_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_BEAT_MessageParameters
+{
+ M3UA_Heartbeat_Data heartbeat_Data optional
+} with { variant "TAG(heartbeat_Data, tag = '0009'O; )"
+ }
+
+
+// M3UA_BEAT_Ack
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_BEAT_Ack
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_BEAT_Ack_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_BEAT_Ack_MessageParameters
+{
+ M3UA_Heartbeat_Data heartbeat_Data optional
+} with { variant "TAG(heartbeat_Data, tag = '0009'O; )"
+ }
+
+
+// M3UA_ASPAC
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_ASPAC
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_ASPAC_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_ASPAC_MessageParameters
+{
+ M3UA_Traffic_Mode_Type traffic_Mode_Type optional,
+ M3UA_Routing_Context routing_Context optional,
+ M3UA_Info_String info_String optional
+} with { variant "TAG(traffic_Mode_Type, tag = '000B'O;
+ routing_Context, tag = '0006'O;
+ info_String, tag = '0004'O; )"
+ }
+
+
+// M3UA_ASPAC_Ack
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_ASPAC_Ack
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_ASPAC_Ack_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_ASPAC_Ack_MessageParameters
+{
+ M3UA_Traffic_Mode_Type traffic_Mode_Type optional,
+ M3UA_Routing_Context routing_Context optional,
+ M3UA_Info_String info_String optional
+} with { variant "TAG(traffic_Mode_Type, tag = '000B'O;
+ routing_Context, tag = '0006'O;
+ info_String, tag = '0004'O; )"
+ }
+
+
+// M3UA_ASPIA
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_ASPIA
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_ASPIA_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_ASPIA_MessageParameters
+{
+ M3UA_Routing_Context routing_Context optional,
+ M3UA_Info_String info_String optional
+} with { variant "TAG(routing_Context, tag = '0006'O;
+ info_String, tag = '0004'O; )"
+ }
+
+
+// M3UA_ASPIA_Ack
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_ASPIA_Ack
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ M3UA_ASPIA_Ack_MessageParameters messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+type set M3UA_ASPIA_Ack_MessageParameters
+{
+ M3UA_Routing_Context routing_Context optional,
+ M3UA_Info_String info_String optional
+} with { variant "TAG(routing_Context, tag = '0006'O;
+ info_String, tag = '0004'O; )"
+ }
+
+
+// M3UA_REG_REQ
+// NOTE1 : REG REQ should not come and will be dropped if it comes
+// NOTE2 : messageParameters is simpified implementation as octetstring
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_REG_REQ
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ octetstring messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+
+// M3UA_REG_RSP
+// NOTE1 : REG RSP should not come and will be dropped if it comes
+// NOTE2 : messageParameters is simpified implementation as octetstring
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_REG_RSP
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ octetstring messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+
+// M3UA_DEREG_REQ
+// NOTE1 : DEREG REQ should not come and will be dropped if it comes
+// NOTE2 : messageParameters is simpified implementation as octetstring
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_DEREG_REQ
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ octetstring messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+
+// M3UA_DEREG_RSP
+// NOTE1 : DEREG RSP should not come and will be dropped if it comes
+// NOTE2 : messageParameters is simpified implementation as octetstring
+//++++++++++++++++++++++++++++++++++++++++++++++++++
+type record M3UA_DEREG_RSP
+{
+ OCT1 version,
+ OCT1 reserved,
+ OCT2 messageClassAndType,
+ integer messageLength,
+ octetstring messageParameters
+} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType,
+ messageLength,messageParameters)";
+ variant (messageLength) "FIELDLENGTH(32)";
+ variant (messageLength) "BYTEORDER(last)";
+ }
+
+
+// Top level PDU
+//************************************************************************
+type union PDU_M3UA
+{
+ M3UA_ERR m3UA_ERR, // Error
+ M3UA_NOTIFY m3UA_NOTIFY, // Notify - should not come
+ M3UA_DATA m3UA_DATA, // Payload data
+ M3UA_DUNA m3UA_DUNA, // Destination Unavailable
+ M3UA_DAVA m3UA_DAVA, // Destination Available
+ M3UA_DAUD m3UA_DAUD, // Destination State Audit
+ M3UA_SCON m3UA_SCON, // Signaling Congestion
+ M3UA_DUPU m3UA_DUPU, // Destination User Part Unavailable
+ M3UA_DRST m3UA_DRST, // DRST - should not come
+ M3UA_ASPUP m3UA_ASPUP, // ASP up
+ M3UA_ASPDN m3UA_ASPDN, // ASP down
+ M3UA_BEAT m3UA_BEAT, // Heartbeat
+ M3UA_BEAT_Ack m3UA_BEAT_Ack, // Heartbeat Ack
+ M3UA_ASPUP_Ack m3UA_ASPUP_Ack, // ASP up ack
+ M3UA_ASPDN_Ack m3UA_ASPDN_Ack, // ASP down ack
+ M3UA_ASPAC m3UA_ASPAC, // ASP Active
+ M3UA_ASPIA m3UA_ASPIA, // ASP Inactive
+ M3UA_ASPAC_Ack m3UA_ASPAC_Ack, // ASP Active Ack
+ M3UA_ASPIA_Ack m3UA_ASPIA_Ack, // ASP Inactive
+ M3UA_REG_REQ m3UA_REG_REQ, // REG REQ - should not come
+ M3UA_REG_RSP m3UA_REG_RSP, // REG RSP - should not come
+ M3UA_DEREG_REQ m3UA_DEREG_REQ, // DEREG REQ - should not come
+ M3UA_DEREG_RSP m3UA_DEREG_RSP // DEREG RSP - should not come
+} with { variant "TAG(
+ m3UA_ERR, messageClassAndType = '0000'O; //MGMT Class (0),
+ m3UA_NOTIFY, messageClassAndType = '0001'O; //MGMT Class (0),
+ m3UA_DATA, messageClassAndType = '0101'O; //Transf msg Class(1),
+ m3UA_DUNA, messageClassAndType = '0201'O; //SSNM Class(2),
+ m3UA_DAVA, messageClassAndType = '0202'O; //SSNM Class(2),
+ m3UA_DAUD, messageClassAndType = '0203'O; //SSNM Class(2),
+ m3UA_SCON, messageClassAndType = '0204'O; //SSNM Class(2),
+ m3UA_DUPU, messageClassAndType = '0205'O; //SSNM Class(2),
+ m3UA_DRST, messageClassAndType = '0206'O; //SSNM Class(2),
+ m3UA_ASPUP, messageClassAndType = '0301'O; //ASPSM Class(3),
+ m3UA_ASPDN, messageClassAndType = '0302'O; //ASPSM Class(3),
+ m3UA_BEAT, messageClassAndType = '0303'O; //ASPSM Class(3),
+ m3UA_ASPUP_Ack, messageClassAndType = '0304'O; //ASPSM Class(3),
+ m3UA_ASPDN_Ack, messageClassAndType = '0305'O; //ASPSM Class(3),
+ m3UA_BEAT_Ack, messageClassAndType = '0306'O; //ASPSM Class(3),
+ m3UA_ASPAC, messageClassAndType = '0401'O; //ASPTM Class(4),
+ m3UA_ASPIA, messageClassAndType = '0402'O; //ASPTM Class(4),
+ m3UA_ASPAC_Ack, messageClassAndType = '0403'O; //ASPTM Class(4),
+ m3UA_ASPIA_Ack, messageClassAndType = '0404'O; //ASPTM Class(4),
+ m3UA_REG_REQ, messageClassAndType = '0901'O; //RKM Class(9),
+ m3UA_REG_RSP, messageClassAndType = '0902'O; //RKM Class(9),
+ m3UA_DEREG_REQ, messageClassAndType = '0903'O; //RKM Class(9),
+ m3UA_DEREG_RSP, messageClassAndType = '0904'O; )" //RKM Class(9),
+ }
+} with { encode "RAW"}