/** * @author ETSI / STF405 * @version $URL$ * $Id$ * @desc Module containing types and values for Basic Transport Protocol * */ module LibItsBtp_TypesAndValues { // LibCommon import from LibCommon_BasicTypesAndValues all; // LibIts import from CAM_PDU_Descriptions language "ASN.1:1997" { type CAM }; import from DENM_PDU_Descriptions language "ASN.1:1997" { type DENM }; 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 } } // 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 } /** * @desc The decoded payload of the BTP packet * @member camPacket The CAM packet * @member denmPacket The DENM packet * @member */ type union DecodedBtpPayload { CAM camPacket, DENM denmPacket } with { encode (camPacket) "LibItsCam_asn1"; encode (denmPacket) "LibItsDenm_asn1" } } //end btpPayload group utPrimitives { group utCommonPrimitives { /** * @desc UT primitives for BTP * @member btpA - * @member btpB - */ type union UtBtpTrigger { GenerateBtpA btpA, GenerateBtpB btpB } type boolean 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" } } with { encode "LibItsBtp" }