/* /////////////////////////////////////////////////////////////////////////////// // // // Copyright Test Competence Center (TCC) ETH 2008 // // // // The copyright to the computer program(s) herein is the property of TCC. // // The program(s) may be used and/or copied only with the written permission // // of TCC or in accordance with the terms and conditions stipulated in the // // agreement/contract under which the program(s) has been supplied. // // // /////////////////////////////////////////////////////////////////////////////// // // File: SNDCP_Types.ttcn // Rev: R1A01 // Prodnr: CNL 113 576 // Updated: 2008-01-21 // Contact: http://ttcn.ericsson.se // Reference: 3GPP TS 44.065 7.0.0 */ module SNDCP_Types { // This module contains the Subnetwork Dependent Convergence Protocol // 44.065 v7.0.0 with attributes for RAW encoding/decoding. // According to 3GPP 04.64 - the maximum(!) length of the PDU_SN_UNITDATA and PDU_SN_DATA // is minimum 140 and maximum 520 octets. // The actual length of the PDU_SN_UNITDATA and PDU_SN_DATA is given in LLC ASPs or set to a parameter value. // The possible maximum length of dataSegmentSnUnitdataPdu or dataSegmentSnDataPdu is therefore variable and // will depend on this setting. // The RAW decoder should have no problem decoding these fields when they are simply defined as octetstrings // and stand at the end of the SNDPC PDUs. // // import from General_Types all; external function enc_PDU_SN(in PDU_SN pdu ) return octetstring with { extension "prototype(convert)" extension "encode(RAW)" } external function dec_PDU_SN(in octetstring stream) return PDU_SN with { extension "prototype(convert)" extension "decode(RAW)" } type union PDU_SN { PDU_SN_UNITDATA pDU_SN_UNITDATA, PDU_SN_DATA pDU_SN_DATA } with { variant "TAG ( pDU_SN_UNITDATA, snPduType ='1'B; pDU_SN_DATA, snPduType ='0'B )" }; type record PDU_SN_UNITDATA { BIT4 nsapi, BIT1 moreBit, BIT1 snPduType, BIT1 firstSegmentIndicator, BIT1 spareBit, // set to '0'B BIT4 pcomp optional, BIT4 dcomp optional, BIT4 npduNumber, BIT4 segmentNumber, OCT1 npduNumberContinued, octetstring dataSegmentSnUnitdataPdu } with { variant (pcomp) "PRESENCE(firstSegmentIndicator = '1'B)"; variant (dcomp) "PRESENCE(firstSegmentIndicator = '1'B)" }; type record PDU_SN_DATA { BIT4 nsapi, BIT1 moreBit, BIT1 snPduType, BIT1 firstSegmentIndicator, BIT1 spareBit, // set to '0'B BIT4 pcomp optional, BIT4 dcomp optional, OCT1 npduNumberAck optional, octetstring dataSegmentSnDataPdu } with { variant (pcomp) "PRESENCE(firstSegmentIndicator = '1'B)"; variant (dcomp) "PRESENCE(firstSegmentIndicator = '1'B)"; variant (npduNumberAck) "PRESENCE(firstSegmentIndicator = '1'B)" }; }with{ encode "RAW"} // end of module