blob: 9925f75dfdce7b9d99e8f97991fefb93012193dc [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000-2019 Ericsson Telecom AB
//
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v2.0
// which accompanies this distribution, and is available at
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.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"}