/** * @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 Upper Tester message to initialize IUT */ type union UtInitialize { UtBtpInitialize utBtpInitialize } /** * @desc Upper Tester message describing an action/event */ type union UtEvent { UtBtpEvent utBtpEvent } /** * @desc Upper Tester message to trigger an action on IUT */ type record UtTrigger { UtEvent utEvent } /** * @desc Upper Tester message to check event/status on IUT */ type record UtCheck { UtEvent utEvent } /** * @desc Upper Tester response message */ type boolean UtResult; } with { encode "LibItsCommon" } /** * @desc Upper Tester message to initialize BTP IUT */ type record UtBtpInitialize { } /** * @desc Upper Tester message generating BTP packet */ type union UtBtpEvent { BtpAHeader btpA, BtpBHeader btpB, BtpPayload payload } } // end utPrimitives } with { encode "LibItsBtp" }