| /****************************************************************************** |
| * 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"} |