diff options
author | erititan | 2017-06-02 10:56:49 +0000 |
---|---|---|
committer | erititan | 2017-06-02 10:56:49 +0000 |
commit | 7cd4484c8052de8d4fd1379698b39c95d3582302 (patch) | |
tree | 31bf29096ea1bb8b6515b994fb04f0b47e1e3d43 | |
parent | 7f79251bef6b62dba459d191e06e75253c67c9bb (diff) | |
download | titan.ProtocolModules.M2UA-7cd4484c8052de8d4fd1379698b39c95d3582302.tar.gz titan.ProtocolModules.M2UA-7cd4484c8052de8d4fd1379698b39c95d3582302.tar.xz titan.ProtocolModules.M2UA-7cd4484c8052de8d4fd1379698b39c95d3582302.zip |
R3A01R.3.A
-rw-r--r-- | doc/M2UA_CNL113465_FS.pdf | bin | 0 -> 39131 bytes | |||
-rw-r--r-- | doc/M2UA_CNL113465_PRI.pdf | bin | 0 -> 35412 bytes | |||
-rw-r--r-- | doc/M2UA_CNL113465_UG.pdf | bin | 0 -> 52963 bytes | |||
-rw-r--r-- | src/M2UA_EncDec.cc | 20 | ||||
-rw-r--r-- | src/M2UA_Types.ttcn | 1122 |
5 files changed, 1142 insertions, 0 deletions
diff --git a/doc/M2UA_CNL113465_FS.pdf b/doc/M2UA_CNL113465_FS.pdf Binary files differnew file mode 100644 index 0000000..1ccb349 --- /dev/null +++ b/doc/M2UA_CNL113465_FS.pdf diff --git a/doc/M2UA_CNL113465_PRI.pdf b/doc/M2UA_CNL113465_PRI.pdf Binary files differnew file mode 100644 index 0000000..1b20bdd --- /dev/null +++ b/doc/M2UA_CNL113465_PRI.pdf diff --git a/doc/M2UA_CNL113465_UG.pdf b/doc/M2UA_CNL113465_UG.pdf Binary files differnew file mode 100644 index 0000000..638b142 --- /dev/null +++ b/doc/M2UA_CNL113465_UG.pdf diff --git a/src/M2UA_EncDec.cc b/src/M2UA_EncDec.cc new file mode 100644 index 0000000..3b0d3f1 --- /dev/null +++ b/src/M2UA_EncDec.cc @@ -0,0 +1,20 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2000-2017 Ericsson Telecom 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 +/////////////////////////////////////////////////////////////////////////////// +// +// File: M2UA_EncDec.cc +// Rev: R3A01 +// Prodnr: CNL 113 465 +// Updated: 2007-07-17 +// Contact: http://ttcn.ericsson.se +/////////////////////////////////////////////////////////////////////////////// + +// Please note: Because the encoder/decoder functions are generated by the +// TITAN, the M2UA_EncDec.cc is kept only for compatibility issue and +// should be removed from the projects. diff --git a/src/M2UA_Types.ttcn b/src/M2UA_Types.ttcn new file mode 100644 index 0000000..9507f37 --- /dev/null +++ b/src/M2UA_Types.ttcn @@ -0,0 +1,1122 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2000-2017 Ericsson Telecom 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 +/////////////////////////////////////////////////////////////////////////////// +// File: M2UA_Types.ttcn +// Description: Definition of M2UA protocol +// Rev: R3A01 +// Prodnr: CNL 113 465 +// Updated: 2007-07-17 +// Contact: http://ttcn.ericsson.se +/////////////////////////////////////////////// +module M2UA_Types +{ +import from General_Types all; + + +//++++++++++++++++++++++++++++++++++++++++++++++++++ +//++++++++++++++++++++++++++++++++++++++++++++++++++ +// External functions for encoding/decoding +//++++++++++++++++++++++++++++++++++++++++++++++++++ +//++++++++++++++++++++++++++++++++++++++++++++++++++ +external function enc_PDU_M2UA (in PDU_M2UA pl_PDU_M2UA) return octetstring + with { extension "prototype(convert) encode(RAW)" }; + +external function dec_PDU_M2UA (in octetstring pl_octetstring) return PDU_M2UA + with { extension "prototype(convert) decode(RAW)" }; + + +//++++++++++++++++++++++++++++++++++++++++++++++++++ +//++++++++++++++++++++++++++++++++++++++++++++++++++ +// M2UA PARAMETER VALUES +//++++++++++++++++++++++++++++++++++++++++++++++++++ +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type octetstring M2UA_OCT0_255 length (0..255); + +type record of LIN4_BO_LAST M2UA_IF_ID_range with { variant ""}; + +//State +type enumerated M2UA_State +{ + M2UA_STATUS_LPO_SET(0), + M2UA_STATUS_LPO_CLEAR(1), + M2UA_STATUS_EMER_SET(2), + M2UA_STATUS_EMER_CLEAR(3), + M2UA_STATUS_FLUSH_BUFFERS(4), + M2UA_STATUS_CONTINUE(5), + M2UA_STATUS_CLEAR_RTB(6), + M2UA_STATUS_AUDIT(7), + M2UA_STATUS_CONG_CLEAR(8), + M2UA_STATUS_CONG_ACCEPT(9), + M2UA_STATUS_CONG_DISCARD(10) +} with { variant "FIELDLENGTH(32)"; + variant "BYTEORDER(last)";} + +//Event +type enumerated M2UA_Event +{ + M2UA_EVENT_RPO_ENTER(1), + M2UA_EVENT_RPO_EXIT(2), + M2UA_EVENT_LPO_ENTER(3), + M2UA_EVENT_LPO_EXIT(4) +} with { variant "FIELDLENGTH(32)"; + variant "BYTEORDER(last)";} + +//Congestion Status +type enumerated M2UA_Congestion +{ + M2UA_LEVEL_NONE(0), + M2UA_LEVEL_1(1), + M2UA_LEVEL_2(2), + M2UA_LEVEL_3(3) +} with { variant "FIELDLENGTH(32)"; + variant "BYTEORDER(last)";} + +//Action +type enumerated M2UA_Action +{ + M2UA_ACTION_RTRV_BSN(1), + M2UA_ACTION_RTRV_MSGS(2) +} with { variant "FIELDLENGTH(32)"; + variant "BYTEORDER(last)";} + +//Result +type enumerated M2UA_Result +{ + M2UA_RESULT_SUCCESS(0), + M2UA_RESULT_FAILURE(1) +} with { variant "FIELDLENGTH(32)"; + variant "BYTEORDER(last)";} + +//Error Codes +type enumerated M2UA_Errors +{ + M2UA_INVALID_VERSION(1), + M2UA_INVALID_IID(2), + M2UA_UNSUPP_MSG_CLASS(3), + M2UA_UNSUPP_MSG_TYPE(4), + M2UA_UNSUPP_TRAFFIC_HANDLING_MODE(5), + M2UA_UNEXPECTED_MSG(6), + M2UA_PROTOCOL_ERR(7), + M2UA_UNSUPP_IID_TYPE(8), + M2UA_INVALID_STREAM_ID(9), + M2UA_REFUSED_MGMT_BLOCKING(13), + M2UA_ASP_ID_REQUIRED(14), + M2UA_INVALID_ASP_ID(15), + M2UA_ASP_ACT_FOR_IID(16), + M2UA_INVALID_PARAM_VALUE(17), + M2UA_PARAM_FIELD_ERR(18), + M2UA_UNEXPECTED_PARAM(19), + M2UA_MISSING_PARAM(22) +} with { variant "FIELDLENGTH(32)"; + variant "BYTEORDER(last)";} + +//++++++++++++++++++++++++++++++++++++++++++++++++++ +//++++++++++++++++++++++++++++++++++++++++++++++++++ +// M2UA PARAMETERS +//++++++++++++++++++++++++++++++++++++++++++++++++++ +//++++++++++++++++++++++++++++++++++++++++++++++++++ + +//+++++++++++++++++++++++ +//Common Parameter Tags + +//+++++++++++++++++++++++ + +//0001 Interface Identifier (integer) +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_InterfaceID_integer_value +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + LIN4_BO_LAST iF_ID_value +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,iF_ID_value)"; + variant "PRESENCE (tag = '0001'O)"; + } + +type record M2UA_InterfaceID_integer_values +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + M2UA_IF_ID_range iF_ID_values +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,iF_ID_values)"; + variant "PRESENCE (tag = '0001'O)"; + } + +//0003 Interface Identifier (text) +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_InterfaceID_text +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + charstring iF_ID_Text +} with { variant "PRESENCE (tag = '0003'O)"; + variant (lengthInd) "LENGTHTO(tag,lengthInd,iF_ID_Text)"; + variant "PADDING(dword32)"; + } + +//0004 INFO String +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Info_String +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + M2UA_OCT0_255 infoString +} with { variant "PRESENCE (tag = '0004'O)"; + variant (lengthInd) "LENGTHTO(tag,lengthInd,infoString)"; + variant "PADDING(dword32)"; + } + +//0007 Diagnostic Information +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Diagnostic_information +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + octetstring diagnosticInformation +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,diagnosticInformation)"; + variant "PADDING(dword32)"; + variant "PRESENCE (tag = '0007'O)"; + } + +//0008 Interface Identifier range +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_InterfaceID_integer_range +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + M2UA_IF_ID_range iF_ID_range +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,iF_ID_range)"; + variant "PRESENCE (tag = '0008'O)"; + } + +//0009 Heartbeat data +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Heartbeat_Data +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + octetstring heartbeat_Data +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,heartbeat_Data)"; + variant "PADDING(dword32)"; + variant "PRESENCE (tag = '0009'O)"; + } + +//000B Traffic Mode type +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Traffic_Mode_Type +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + OCT4 trafficModeType +} with { variant (lengthInd) "LENGTHTO (tag,lengthInd,trafficModeType)"; + variant "PRESENCE (tag = '000B'O)"; + } + +//000C Error Code +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Error_Code +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + M2UA_Errors errorCode +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,errorCode)"; + variant "PRESENCE (tag = '000C'O)"; + } + +//000D Status +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Status +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + OCT2 statusType, + OCT2 statusInformation +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,statusType,statusInformation)"; + variant "PRESENCE (tag = '000D'O)"; + } + +//0011 ASP Identifier +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_ASP_Identifier +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + OCT4 aSPIdentifier +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,aSPIdentifier)"; + variant "PRESENCE (tag = '0011'O)"; + } + +//0013 Correlation Id +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Correlation_Id +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + OCT4 correlationId +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,correlationId)"; + variant "PRESENCE (tag = '0013'O)"; + } + +//M2UA Message Header +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type union M2UA_Message_Header +{ + M2UA_InterfaceID_integer_value interfaceID_integer, + M2UA_InterfaceID_text interfaceID_text +} with { variant "TAG (interfaceID_integer, tag = '0001'O; + interfaceID_text, tag = '0003'O)" + } + +//M2UA Interface Id +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type union M2UA_InterfaceID +{ + M2UA_InterfaceID_integer_value interfaceID_integer, + M2UA_InterfaceID_text interfaceID_text +} with { variant "TAG (interfaceID_integer, tag = '0001'O; + interfaceID_text, tag = '0003'O)" + } + +//Combined interface IDs +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type set of M2UA_InterfaceID_integer_values M2UA_InterfaceID_integer_list + with { variant "" }; +type set of M2UA_InterfaceID_integer_range M2UA_InterfaceID_range_list + with { variant "" }; +type set of M2UA_InterfaceID_text M2UA_InterfaceID_text_list + with { variant "" }; + +type set M2UA_InterfaceIDs +{ + M2UA_InterfaceID_integer_list interfaceIDs_integer optional, + M2UA_InterfaceID_range_list interfaceIDs_range optional, + M2UA_InterfaceID_text_list interfaceIDs_text optional +} with { variant (interfaceIDs_integer,interfaceIDs_range,interfaceIDs_text) + "REPEATABLE(yes)";}; + + +//++++++++++++++++++++++++++++++ +//M2UA Specific Parameter Tags + +//++++++++++++++++++++++++++++++ + +//0300 Protocol Data 1 +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Protocol_Data +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + OCTN data +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,data)"; + variant "PADDING(dword32)"; + variant "PRESENCE (tag = '0300'O)"; + } + +//0301 Protocol Data 2 (TTC) +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Protocol_Data_TTC +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + OCTN data +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,data)"; + variant "PADDING(dword32)"; + variant "PRESENCE (tag = '0301'O)"; + } + +//0302 State Request +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_State_Request +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + M2UA_State state +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,state)"; + variant "PRESENCE (tag = '0302'O)"; + } + +//0303 State Event +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_State_Event +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + M2UA_Event event +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,event)"; + variant "PRESENCE (tag = '0303'O)"; + } + +//0304 Congestion Status +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Congestion_Status +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + M2UA_Congestion status +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,status)"; + variant "PRESENCE (tag = '0304'O)"; + } + +//0305 Discard Status +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Discard_Status +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + M2UA_Congestion status +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,status)"; + variant "PRESENCE (tag = '0305'O)"; + } + +//0306 Action +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Retrieval_Action +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + M2UA_Action actionValue +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,actionValue)"; + variant "PRESENCE (tag = '0306'O)"; + } + +//0307 Sequence Number +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Sequence_Number +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + OCT4 seqNr +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,seqNr)"; + variant "PRESENCE (tag = '0307'O)"; + } + +//0308 Retrieval Result +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Retrieval_Result +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + M2UA_Result result +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,result)"; + variant "PRESENCE (tag = '0308'O)"; + } + +//0309 Link Key +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Link_Key +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + M2UA_Local_LK_Id localLKId, + M2UA_SDT_Id sdtId, + M2UA_SDL_Id sdlId +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,localLKId,sdtId,sdlId)"; + variant "PRESENCE (tag = '0309'O)"; + } + +//030A Local-LK-Identifier +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Local_LK_Id +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + OCT4 id +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,id)"; + variant "PRESENCE (tag = '030A'O)"; + } + +//030B Signalling Data Terminal (SDT) Identifier +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_SDT_Id +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + OCT4 id +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,id)"; + variant "PRESENCE (tag = '030B'O)"; + } + +//030C Signalling Data Link (SDL) Identifier +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_SDL_Id +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + OCT4 id +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,id)"; + variant "PRESENCE (tag = '030C'O)"; + } + +//030D Registration Result +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Registration_Result +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + M2UA_Local_LK_Id localLKId, + M2UA_Registration_Status status, + M2UA_InterfaceID interfaceId +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,localLKId,status, + interfaceId)"; + variant "PRESENCE (tag = '030D'O)"; + } + +//030E Registration Status +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Registration_Status +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + OCT4 status +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,status)"; + variant "PRESENCE (tag = '030E'O)"; + } + +//030F De-Registration Result +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Deregistration_Result +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + M2UA_InterfaceID interfaceId, + M2UA_Deregistration_Status status +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,interfaceId,status)"; + variant "PRESENCE (tag = '030F'O)"; + } + +//0310 De-Registration Status +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_Deregistration_Status +{ + OCT2 tag, + LIN2_BO_LAST lengthInd, + OCT4 status +} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,status)"; + variant "PRESENCE (tag = '0310'O)"; + } + + + +//++++++++++++++++++++++++++++++++++++++++++++++++++ +//++++++++++++++++++++++++++++++++++++++++++++++++++ +//M2UA MESSAGE PDUs +//++++++++++++++++++++++++++++++++++++++++++++++++++ +//++++++++++++++++++++++++++++++++++++++++++++++++++ + +//++++++++++++++++ +//ASPSM Messages + +//++++++++++++++++ + +// M2UA_DATA +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_DATA +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0601'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header, + M2UA_Protocol_Data protocolData optional, + M2UA_Protocol_Data_TTC protocolDataTTC optional, + M2UA_Correlation_Id correlationId optional +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header,protocolData, + protocolDataTTC,correlationId)"; + } + +// M2UA_ESTABLISH_REQUEST +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_EST_REQ +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0602'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header)"; + } + +// M2UA_ESTABLISH_CONFIRM +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_EST_CFM +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0603'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header)"; + } + +// M2UA_RELEASE_REQUEST +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_REL_REQ +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0604'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header)"; + } + +// M2UA_RELEASE_CONFIRM +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_REL_CFM +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0605'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header)"; + } + +// M2UA_RELEASE_INDICATION +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_REL_IND +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0606'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header)"; + } + +// M2UA_STATE_REQUEST +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_STATE_REQ +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0607'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header, + M2UA_State_Request state +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header,state)"; + } + +// M2UA_STATE_CONFIRM +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_STATE_CFM +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0608'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header, + M2UA_State_Request state +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header,state)"; + } + +// M2UA_STATE_INDICATION +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_STATE_IND +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0609'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header, + M2UA_State_Event event +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header,event)"; + } + +// M2UA_DATA_RETRIEVAL_REQUEST +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_DATA_RETR_REQ +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('060A'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header, + M2UA_Retrieval_Action aCTION, + M2UA_Sequence_Number seqNr optional +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header,aCTION,seqNr)"; + } + +// M2UA_DATA_RETRIEVAL_CONFIRM +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_DATA_RETR_CFM +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('060B'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header, + M2UA_Retrieval_Action aCTION, + M2UA_Retrieval_Result result, + M2UA_Sequence_Number seqNr optional +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header,aCTION,result, + seqNr)"; + } + +// M2UA_DATA_RETRIEVAL_INDICATION +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_DATA_RETR_IND +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('060C'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header, + M2UA_Protocol_Data protocolData optional, + M2UA_Protocol_Data_TTC protocolDataTTC optional +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header,protocolData, + protocolDataTTC)"; + } + +// M2UA_DATA_RETRIEVAL_COMPLETE_INDICATION +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_DATA_RETR_COMP_IND +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('060D'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header, + M2UA_Protocol_Data protocolData optional, + M2UA_Protocol_Data_TTC protocolDataTTC optional +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header,protocolData, + protocolDataTTC)"; + } + +// M2UA_CONGESTION_INDICATION +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_CONG_IND +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('060E'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header, + M2UA_Congestion_Status congestionStatus, + M2UA_Discard_Status discardStatus optional +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header,congestionStatus + ,discardStatus)"; + } + +// M2UA_DATA_ACKNOWLEDGE +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_DATA_ACK +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('060F'O), + LIN4_BO_LAST messageLength, + M2UA_Message_Header header, + M2UA_Correlation_Id correlationId +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,header,correlationId)"; + } + + +//++++++++++++++++ +//ASPSM Messages + +//++++++++++++++++ + +// M2UA_ASPUP +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_ASPUP +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0301'O), + LIN4_BO_LAST messageLength, + M2UA_ASPUP_MessageParameters messageParameters +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,messageParameters)"; + } + +type set M2UA_ASPUP_MessageParameters +{ + M2UA_ASP_Identifier aSP_Identifier optional, + M2UA_Info_String info_String optional +} with { variant ""} + + +//M2UA_ASPDN +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_ASPDN +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0302'O), + LIN4_BO_LAST messageLength, + M2UA_ASPDN_MessageParameters messageParameters +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,messageParameters)"; + } + +type set M2UA_ASPDN_MessageParameters +{ + M2UA_Info_String info_String optional +} with { variant ""} + + +// M2UA_BEAT +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_BEAT +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0303'O), + LIN4_BO_LAST messageLength, + M2UA_BEAT_MessageParameters messageParameters +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,messageParameters)"; + } + +type set M2UA_BEAT_MessageParameters +{ + M2UA_Heartbeat_Data heartbeat_Data optional +} with { variant ""} + + +//M2UA_ASPUP_Ack +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_ASPUP_Ack +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0304'O), + LIN4_BO_LAST messageLength, + M2UA_ASPUP_Ack_MessageParameters messageParameters +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,messageParameters)"; + } + +type set M2UA_ASPUP_Ack_MessageParameters +{ + M2UA_Info_String info_String optional +} with { variant ""} + + +//M2UA_ASPDN_Ack +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_ASPDN_Ack +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0305'O), + LIN4_BO_LAST messageLength, + M2UA_ASPDN_Ack_MessageParameters messageParameters +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,messageParameters)"; + } + +type set M2UA_ASPDN_Ack_MessageParameters +{ + M2UA_Info_String info_String optional +} with { variant ""} + + +// M2UA_BEAT_Ack +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_BEAT_Ack +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0306'O), + LIN4_BO_LAST messageLength, + M2UA_BEAT_Ack_MessageParameters messageParameters +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,messageParameters)"; + } + +type set M2UA_BEAT_Ack_MessageParameters +{ + M2UA_Heartbeat_Data heartbeat_Data optional +} with { variant ""} + + +//++++++++++++++++ +//ASPTM Messages + +//++++++++++++++++ + +// M2UA_ASPAC +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_ASPAC +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0401'O), + LIN4_BO_LAST messageLength, + M2UA_ASPAC_MessageParameters messageParameters +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,messageParameters)"; + } + +type set M2UA_ASPAC_MessageParameters +{ + M2UA_Traffic_Mode_Type traffic_Mode_Type optional, + M2UA_InterfaceIDs interfaceID optional, + M2UA_Info_String info_String optional +} with { variant ""} + + +// M2UA_ASPIA +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_ASPIA +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0402'O), + LIN4_BO_LAST messageLength, + M2UA_ASPIA_MessageParameters messageParameters +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,messageParameters)"; + } + +type set M2UA_ASPIA_MessageParameters +{ + M2UA_InterfaceIDs interfaceID optional, + M2UA_Info_String info_String optional +} with { variant ""} + + +// M2UA_ASPAC_Ack +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_ASPAC_Ack +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0403'O), + LIN4_BO_LAST messageLength, + M2UA_ASPAC_Ack_MessageParameters messageParameters +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,messageParameters)"; + } + +type set M2UA_ASPAC_Ack_MessageParameters +{ + M2UA_Traffic_Mode_Type traffic_Mode_Type optional, + M2UA_InterfaceIDs interfaceID optional, + M2UA_Info_String info_String optional +} with { variant ""} + + +// M2UA_ASPIA_Ack +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_ASPIA_Ack +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0404'O), + LIN4_BO_LAST messageLength, + M2UA_ASPIA_Ack_MessageParameters messageParameters +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,messageParameters)"; + } + +type set M2UA_ASPIA_Ack_MessageParameters +{ + M2UA_InterfaceIDs interfaceID optional, + M2UA_Info_String info_String optional +} with { variant ""} + + + +//+++++++++++++++ +//MGMT Messages + +//+++++++++++++++ + +// M2UA_ERR PDU +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_ERR +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0000'O), + LIN4_BO_LAST messageLength, + M2UA_ERR_MessageParameters messageParameters +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,messageParameters)"; + } + +type set M2UA_ERR_MessageParameters +{ + M2UA_Error_Code error_Code, + M2UA_InterfaceIDs interfaceID optional, + M2UA_Diagnostic_information diagnostic_information optional +} with { variant ""} + + +// M2UA_NOTIFY +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_NTFY +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0001'O), + LIN4_BO_LAST messageLength, + M2UA_NTFY_MessageParameters messageParameters +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,messageParameters)"; + } + +type set M2UA_NTFY_MessageParameters +{ + M2UA_Status status, + M2UA_ASP_Identifier aSP_Identifier optional, + M2UA_InterfaceIDs interfaceID optional, + M2UA_Info_String info_String optional +} with { variant ""} + + +//++++++++++++++ +//IIM Messages + +//++++++++++++++ + +// M2UA_REGISTRATION_REQUEST +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_REG_REQ +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0A01'O), + LIN4_BO_LAST messageLength, + M2UA_Link_Key_Record links +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,links)"; + } + +type record of M2UA_Link_Key M2UA_Link_Key_Record; + +// M2UA_REGISTRATION_RESPONSE +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_REG_RSP +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0A02'O), + LIN4_BO_LAST messageLength, + M2UA_Registration_Result_Record results +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,results)"; + } + +type record of M2UA_Registration_Result M2UA_Registration_Result_Record; + +// M2UA_DEREGISTRATION_REQUEST +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_DEREG_REQ +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0A03'O), + LIN4_BO_LAST messageLength, + M2UA_InterfaceID_Record interfaceIDs +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,interfaceIDs)"; + } + +type record of M2UA_InterfaceID M2UA_InterfaceID_Record; + +// M2UA_DEREGISTRATION_RESPONSE +//++++++++++++++++++++++++++++++++++++++++++++++++++ +type record M2UA_DEREG_RSP +{ + OCT1 version ('01'O), + OCT1 reserved ('00'O), + OCT2 messageClassAndType ('0A04'O), + LIN4_BO_LAST messageLength, + M2UA_Deregistration_Result_Record results +} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, + messageLength,results)"; + } + +type record of M2UA_Deregistration_Result M2UA_Deregistration_Result_Record; + +//++++++++++++++++++++++++++++++++++++++++++++++++++ +//++++++++++++++++++++++++++++++++++++++++++++++++++ +// Top level PDU +//++++++++++++++++++++++++++++++++++++++++++++++++++ +//++++++++++++++++++++++++++++++++++++++++++++++++++ + +type union PDU_M2UA +{ + M2UA_DATA m2UA_DATA, //Data + M2UA_EST_REQ m2UA_EST_REQ, //Establish Request + M2UA_EST_CFM m2UA_EST_CFM, //Establish Confirm + M2UA_REL_REQ m2UA_REL_REQ, //Release Request + M2UA_REL_CFM m2UA_REL_CFM, //Release Confirm + M2UA_REL_IND m2UA_REL_IND, //Release Indication + M2UA_STATE_REQ m2UA_STATE_REQ, //State Request + M2UA_STATE_CFM m2UA_STATE_CFM, //State Confirm + M2UA_STATE_IND m2UA_STATE_IND, //State Indication + M2UA_DATA_RETR_REQ m2UA_DATA_RETR_REQ, //Data Retrieval Request + M2UA_DATA_RETR_CFM m2UA_DATA_RETR_CFM, //Data Retrieval Confirm + M2UA_DATA_RETR_IND m2UA_DATA_RETR_IND, //Data Retrieval Indication + M2UA_DATA_RETR_COMP_IND m2UA_DATA_RETR_COMP_IND, //Data Retr. Complete Ind + M2UA_CONG_IND m2UA_CONG_IND, //Congestion Indication + M2UA_DATA_ACK m2UA_DATA_ACK, //Data Ack + M2UA_ASPUP m2UA_ASPUP, //ASP Up + M2UA_ASPDN m2UA_ASPDN, //ASP Down + M2UA_BEAT m2UA_BEAT, //Heartbeat + M2UA_ASPUP_Ack m2UA_ASPUP_Ack, //ASP Up Ack + M2UA_ASPDN_Ack m2UA_ASPDN_Ack, //ASP Down Ack + M2UA_BEAT_Ack m2UA_BEAT_Ack, //Heartbeat Ack + M2UA_ASPAC m2UA_ASPAC, //ASP Active + M2UA_ASPIA m2UA_ASPIA, //ASP Inactive + M2UA_ASPAC_Ack m2UA_ASPAC_Ack, //ASP Active Ack + M2UA_ASPIA_Ack m2UA_ASPIA_Ack, //ASP Inactive Ack + M2UA_ERR m2UA_ERR, //Error + M2UA_NTFY m2UA_NTFY, //Notify + M2UA_REG_REQ m2UA_REG_REQ, //Registration Request + M2UA_REG_RSP m2UA_REG_RSP, //Registration Response + M2UA_DEREG_REQ m2UA_DEREG_REQ, //Deregistration Request + M2UA_DEREG_RSP m2UA_DEREG_RSP //Deregistration Response +} with { variant "TAG( + m2UA_DATA, messageClassAndType = '0601'O; //MAUP Class(6) + m2UA_EST_REQ, messageClassAndType = '0602'O; //MAUP Class(6) + m2UA_EST_CFM, messageClassAndType = '0603'O; //MAUP Class(6) + m2UA_REL_REQ, messageClassAndType = '0604'O; //MAUP Class(6) + m2UA_REL_CFM, messageClassAndType = '0605'O; //MAUP Class(6) + m2UA_REL_IND, messageClassAndType = '0606'O; //MAUP Class(6) + m2UA_STATE_REQ, messageClassAndType = '0607'O; //MAUP Class(6) + m2UA_STATE_CFM, messageClassAndType = '0608'O; //MAUP Class(6) + m2UA_STATE_IND, messageClassAndType = '0609'O; //MAUP Class(6) + m2UA_DATA_RETR_REQ, messageClassAndType = '060A'O; //MAUP Class(6) + m2UA_DATA_RETR_CFM, messageClassAndType = '060B'O; //MAUP Class(6) + m2UA_DATA_RETR_IND, messageClassAndType = '060C'O; //MAUP Class(6) + m2UA_DATA_RETR_COMP_IND, messageClassAndType = '060D'O; //MAUP Class(6) + m2UA_CONG_IND, messageClassAndType = '060E'O; //MAUP Class(6) + m2UA_DATA_ACK, messageClassAndType = '060F'O; //MAUP Class(6) + m2UA_ASPUP, messageClassAndType = '0301'O; //ASPSM Class(3) + m2UA_ASPDN, messageClassAndType = '0302'O; //ASPSM Class(3) + m2UA_BEAT, messageClassAndType = '0303'O; //ASPSM Class(3) + m2UA_ASPUP_Ack, messageClassAndType = '0304'O; //ASPSM Class(3) + m2UA_ASPDN_Ack, messageClassAndType = '0305'O; //ASPSM Class(3) + m2UA_BEAT_Ack, messageClassAndType = '0306'O; //ASPSM Class(3) + m2UA_ASPAC, messageClassAndType = '0401'O; //ASPTM Class(4) + m2UA_ASPIA, messageClassAndType = '0402'O; //ASPTM Class(4) + m2UA_ASPAC_Ack, messageClassAndType = '0403'O; //ASPTM Class(4) + m2UA_ASPIA_Ack, messageClassAndType = '0404'O; //ASPTM Class(4) + m2UA_ERR, messageClassAndType = '0000'O; //MGMT Class(0) + m2UA_NTFY, messageClassAndType = '0001'O; //MGMT Class(0) + m2UA_REG_REQ, messageClassAndType = '0A01'O; //IIM Class(10) + m2UA_REG_RSP, messageClassAndType = '0A02'O; //IIM Class(10) + m2UA_DEREG_REQ, messageClassAndType = '0A03'O; //IIM Class(10) + m2UA_DEREG_RSP, messageClassAndType = '0A04'O; )"//IIM Class(10) + } + +}with{ encode "RAW"} |