/** * @author ETSI / STF405 * @version $URL$ * $Id$ * @desc Module containing types and values for Basic Transport Protocol * @copyright ETSI Copyright Notification * No part may be reproduced except as authorized by written permission. * The copyright and the foregoing restriction extend to reproduction in all media. * All rights reserved. * */ module LibItsBtp_TypesAndValues { // LibCommon import from LibCommon_BasicTypesAndValues all; // LibIts import from CAM_PDU_Descriptions language "ASN.1:1997" all; import from DENM_PDU_Descriptions language "ASN.1:1997" all; import from MAPEM_PDU_Descriptions language "ASN.1:1997" all; import from SPATEM_PDU_Descriptions language "ASN.1:1997" all; import from IVIM_PDU_Descriptions language "ASN.1:1997" all; import from SREM_PDU_Descriptions language "ASN.1:1997" all; import from SSEM_PDU_Descriptions language "ASN.1:1997" all; group btpPdus { /** * @desc BTP Packet * @see ETSI TS 102 636-5-1 chapter 6 * @member header * @member payload */ type record BtpPacket { BtpHeader header, BtpPayload payload optional } with { encode "LibIts_Interface" } } // end btpPdus group btpHeaders { /** * @desc BTP Header * @see ETSI TS 102 636-5-1 chapter 7.1 * @member btpAHeader * @member btpBHeader */ type union BtpHeader { BtpAHeader btpAHeader, BtpBHeader btpBHeader } /** * @desc BTP-A Header * @see ETSI TS 102 636-5-1 chapter 7.2 * @member destinationPort * @member sourcePort */ type record BtpAHeader { BtpPortId destinationPort, BtpPortId sourcePort } /** * @desc BTP-B Header * @see ETSI TS 102 636-5-1 chapter 7.3 * @member destinationPort * @member destinationPortInfo */ type record BtpBHeader { BtpPortId destinationPort, BtpPortInfo destinationPortInfo } /** * @desc BTP Port ID * @see ETSI TS 102 636-5-1 chapter 7.3.2 */ type UInt16 BtpPortId; /** * @desc BTP-B Port info * @see ETSI TS 102 636-5-1 chapter 7.3.2 */ type UInt16 BtpPortInfo; } // end btpHeaders group btpPayload { type octetstring BtpRawPayload; /** * @desc The payload of the BTP packet * @member decodedPayload The decoded payload * @member rawPayload Raw payload as it is received */ type record BtpPayload { DecodedBtpPayload decodedPayload optional, BtpRawPayload rawPayload } with { encode "LibItsBtp_BtpPayload" } /** * @desc The decoded payload of the BTP packet * @member camPacket The CAM packet * @member denmPacket The DENM packet * @member mapemPacket * @member spatemPacket * @member ivimPacket * @member sremPacket * @member seemPacket */ type union DecodedBtpPayload { CAM camPacket, DENM denmPacket, MAPEM mapemPacket, SPATEM spatemPacket, IVIM ivimPacket, SREM sremPacket, SSEM ssemPacket } with { encode (camPacket) "PER"; encode (denmPacket) "PER"; encode (mapemPacket) "PER"; encode (spatemPacket) "PER"; encode (ivimPacket) "PER"; encode (sremPacket) "PER"; encode (ssemPacket) "PER" } } //end btpPayload group utPrimitives { group utCommonPrimitives { /** * @desc UT primitives for BTP * @member btpA - * @member btpB - */ type union UtBtpTrigger { GenerateBtpA btpA, GenerateBtpB btpB } //FIXME RGY As discussed, boolean results are replaced by a union of the results // type boolean UtBtpTriggerResult; type union UtBtpResults { boolean utBtpTriggerResult } type UtBtpResults.utBtpTriggerResult UtBtpTriggerResult; /** * @desc Upper Tester message to request triggering of an BTPA message at IUT */ type record GenerateBtpA { BtpAHeader btpAHeader } /** * @desc Upper Tester message to request triggering of an BTPB message at IUT */ type record GenerateBtpB { BtpBHeader btpBHeader } /** * @desc Upper Tester message to check event/status on BTP IUT */ type record UtBtpEventInd { BtpRawPayload rawPayload } /** * @desc List of Upper Tester messages to check event/status on CAM IUT */ type record of UtBtpEventInd UtBtpEventIndList; } // with { // encode "LibItsCommon" // } } // end utPrimitives with { encode "UpperTester" } }