| /////////////////////////////////////////////////////////////////////////////// |
| // |
| // Copyright (c) 2000-2016 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: DUA_Types.ttcn |
| // Description: Definition of DUA protocol |
| // Rev: R3B |
| // Prodnr: CNL 113 449 |
| // Updated: 2007-07-17 |
| // Contact: http://ttcn.ericsson.se |
| /////////////////////////////////////////////// |
| module DUA_Types |
| { |
| |
| import from General_Types all; |
| import from IUA_Types all; |
| |
| //+++++++++++++++++++++++++++++++ |
| // External encoding/decoding functions |
| //+++++++++++++++++++++++++++++++ |
| //to provide namespace: |
| |
| external function enc_PDU_DUA(in PDU_DUA pdu) return octetstring |
| with { extension "prototype(convert) encode(RAW)" }; |
| external function dec_PDU_DUA(in octetstring stream) return PDU_DUA |
| with { extension "prototype(convert) decode(RAW)" }; |
| |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| // DUA PARAMETERS |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| |
| //0005 DLCI |
| type record DUA_DLCI |
| { |
| OCT2 tag, |
| LIN2_BO_LAST lengthInd, |
| BIT7 reserved ('0000000'B), |
| BIT1 v_bit, |
| BIT1 zero ('0'B), |
| BIT6 channelNumber, |
| BIT1 one ('1'B), |
| OCT2 spare ('0000'O) |
| } with { variant (lengthInd) "LENGTHTO(tag,lengthInd,reserved,v_bit, |
| zero,channelNumber,one,spare)"; |
| variant (reserved,v_bit,zero,channelNumber,one) "FIELDORDER(msb)" |
| variant "PRESENCE (tag = '0005'O)"; |
| } |
| |
| |
| //0012 DLC Status |
| type record DUA_DLC_Status |
| { |
| OCT2 tag, |
| LIN2_BO_LAST lengthInd, |
| octetstring status length(12..16) |
| } with { variant (lengthInd) "LENGTHTO(tag,lengthInd,status)"; |
| variant "PRESENCE (tag = '0012'O)"; |
| } |
| |
| |
| //DUA Message Header |
| type record DUA_Message_Header |
| { |
| IUA_II interfaceIdentifier, |
| DUA_DLCI dLCI |
| } with { variant ""} |
| |
| |
| |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| //DUA MESSAGE PDUs |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| |
| // DUA_DLC_STATUS_REQUEST |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| type record DUA_DLCs_REQ |
| { |
| OCT1 version ('01'O), |
| OCT1 reserved ('00'O), |
| OCT2 messageClassAndType, |
| LIN4_BO_LAST messageLength, |
| DUA_Message_Header header |
| } with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, |
| messageLength,header)"; |
| } |
| |
| |
| // DUA_DLC_STATUS_CONFIRM |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| type record DUA_DLCs_CFM |
| { |
| OCT1 version ('01'O), |
| OCT1 reserved ('00'O), |
| OCT2 messageClassAndType, |
| LIN4_BO_LAST messageLength, |
| DUA_Message_Header header, |
| DUA_DLC_Status dLC_Status |
| } with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, |
| messageLength,header,dLC_Status)"; |
| } |
| |
| // DUA_DLC_STATUS_INDICATION |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| type record DUA_DLCs_IND |
| { |
| OCT1 version ('01'O), |
| OCT1 reserved ('00'O), |
| OCT2 messageClassAndType, |
| LIN4_BO_LAST messageLength, |
| DUA_Message_Header header, |
| DUA_DLC_Status dLC_Status |
| } with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, |
| messageLength,header,dLC_Status)"; |
| } |
| |
| // DUA_DATA_REQUEST |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| type record DUA_DATA_REQ |
| { |
| OCT1 version ('01'O), |
| OCT1 reserved ('00'O), |
| OCT2 messageClassAndType, |
| LIN4_BO_LAST messageLength, |
| DUA_Message_Header header, |
| IUA_Protocol_Data protocolData |
| } with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, |
| messageLength,header,protocolData)"; |
| } |
| |
| // DUA_DATA_INDICATION |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| type record DUA_DATA_IND |
| { |
| OCT1 version ('01'O), |
| OCT1 reserved ('00'O), |
| OCT2 messageClassAndType, |
| LIN4_BO_LAST messageLength, |
| DUA_Message_Header header, |
| IUA_Protocol_Data protocolData |
| } with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, |
| messageLength,header,protocolData)"; |
| } |
| |
| |
| // DUA_ESTABLISH_REQUEST |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| type record DUA_EST_REQ |
| { |
| OCT1 version ('01'O), |
| OCT1 reserved ('00'O), |
| OCT2 messageClassAndType, |
| LIN4_BO_LAST messageLength, |
| DUA_Message_Header header |
| } with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, |
| messageLength,header)"; |
| } |
| |
| // DUA_ESTABLISH_CONFIRM |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| type record DUA_EST_CFM |
| { |
| OCT1 version ('01'O), |
| OCT1 reserved ('00'O), |
| OCT2 messageClassAndType, |
| LIN4_BO_LAST messageLength, |
| DUA_Message_Header header |
| } with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, |
| messageLength,header)"; |
| } |
| |
| // DUA_ESTABLISH_INDICATION |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| type record DUA_EST_IND |
| { |
| OCT1 version ('01'O), |
| OCT1 reserved ('00'O), |
| OCT2 messageClassAndType, |
| LIN4_BO_LAST messageLength, |
| DUA_Message_Header header |
| } with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, |
| messageLength,header)"; |
| } |
| |
| // DUA_RELEASE_REQUEST |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| type record DUA_REL_REQ |
| { |
| OCT1 version ('01'O), |
| OCT1 reserved ('00'O), |
| OCT2 messageClassAndType, |
| LIN4_BO_LAST messageLength, |
| DUA_Message_Header header, |
| IUA_Release_Reason releaseReason |
| } with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, |
| messageLength,header,releaseReason)"; |
| } |
| |
| // DUA_RELEASE_CONFIRM |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| type record DUA_REL_CFM |
| { |
| OCT1 version ('01'O), |
| OCT1 reserved ('00'O), |
| OCT2 messageClassAndType, |
| LIN4_BO_LAST messageLength, |
| DUA_Message_Header header |
| } with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, |
| messageLength,header)"; |
| } |
| |
| // DUA_RELEASE_INDICATION |
| //++++++++++++++++++++++++++++++++++++++++++++++++++ |
| type record DUA_REL_IND |
| { |
| OCT1 version ('01'O), |
| OCT1 reserved ('00'O), |
| OCT2 messageClassAndType, |
| LIN4_BO_LAST messageLength, |
| DUA_Message_Header header, |
| IUA_Release_Reason releaseReason |
| } with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, |
| messageLength,header,releaseReason)"; |
| } |
| |
| |
| // Top level PDU |
| //************************************************************************ |
| type union PDU_DUA |
| { |
| IUA_ERR dUA_ERR, // Error |
| IUA_NTFY dUA_NTFY, // Notify |
| DUA_DLCs_REQ dUA_DLCs_REQ, // DLC Status Request |
| DUA_DLCs_CFM dUA_DLCs_CFM, // DLC Status Confirm |
| DUA_DLCs_IND dUA_DLCs_IND, // DLC Status Indication |
| IUA_ASPUP dUA_ASPUP, // ASP up |
| IUA_ASPDN dUA_ASPDN, // ASP down |
| IUA_BEAT dUA_BEAT, // Heartbeat |
| IUA_BEAT_Ack dUA_BEAT_Ack, // Heartbeat Ack |
| IUA_ASPUP_Ack dUA_ASPUP_Ack, // ASP up ack |
| IUA_ASPDN_Ack dUA_ASPDN_Ack, // ASP down ack |
| IUA_ASPAC dUA_ASPAC, // ASP Active |
| IUA_ASPIA dUA_ASPIA, // ASP Inactive |
| IUA_ASPAC_Ack dUA_ASPAC_Ack, // ASP Active Ack |
| IUA_ASPIA_Ack dUA_ASPIA_Ack, // ASP Inactive Ack |
| DUA_DATA_REQ dUA_DATA_REQ, // Data Request |
| DUA_DATA_IND dUA_DATA_IND, // Data Indication |
| DUA_EST_REQ dUA_EST_REQ, // Establish Request |
| DUA_EST_CFM dUA_EST_CFM, // Establish Confirmation |
| DUA_EST_IND dUA_EST_IND, // Establish Indication |
| DUA_REL_REQ dUA_REL_REQ, // Release Request |
| DUA_REL_CFM dUA_REL_CFM, // Release Confirmation |
| DUA_REL_IND dUA_REL_IND // Release Indication |
| } with { variant "TAG( |
| dUA_ERR, messageClassAndType = '0000'O; //MGMT Class (0), |
| dUA_NTFY, messageClassAndType = '0001'O; //MGMT Class (0), |
| dUA_DLCs_REQ, messageClassAndType = '0005'O; //MGMT Class (0), |
| dUA_DLCs_CFM, messageClassAndType = '0006'O; //MGMT Class (0), |
| dUA_DLCs_IND, messageClassAndType = '0007'O; //MGMT Class (0), |
| dUA_ASPUP, messageClassAndType = '0301'O; //ASPSM Class(3), |
| dUA_ASPDN, messageClassAndType = '0302'O; //ASPSM Class(3), |
| dUA_BEAT, messageClassAndType = '0303'O; //ASPSM Class(3), |
| dUA_ASPUP_Ack, messageClassAndType = '0304'O; //ASPSM Class(3), |
| dUA_ASPDN_Ack, messageClassAndType = '0305'O; //ASPSM Class(3), |
| dUA_BEAT_Ack, messageClassAndType = '0306'O; //ASPSM Class(3), |
| dUA_ASPAC, messageClassAndType = '0401'O; //ASPTM Class(4), |
| dUA_ASPIA, messageClassAndType = '0402'O; //ASPTM Class(4), |
| dUA_ASPAC_Ack, messageClassAndType = '0403'O; //ASPTM Class(4), |
| dUA_ASPIA_Ack, messageClassAndType = '0404'O; //ASPTM Class(4), |
| dUA_DATA_REQ, messageClassAndType = '0D01'O; //DPTM Class(13), |
| dUA_DATA_IND, messageClassAndType = '0D02'O; //DPTM Class(13), |
| dUA_EST_REQ, messageClassAndType = '0D05'O; //DPTM Class(13), |
| dUA_EST_CFM, messageClassAndType = '0D06'O; //DPTM Class(13), |
| dUA_EST_IND, messageClassAndType = '0D07'O; //DPTM Class(13), |
| dUA_REL_REQ, messageClassAndType = '0D08'O; //DPTM Class(13), |
| dUA_REL_CFM, messageClassAndType = '0D09'O; //DPTM Class(13), |
| dUA_REL_IND, messageClassAndType = '0D0A'O; )"//DPTM Class(13) |
| } |
| } with {encode "RAW"} |