LibItsBtp_TypesAndValues.ttcn 4.2 KB
Newer Older
berge's avatar
berge committed
/**
 *  @author   ETSI / STF405
 *  @version  $URL$
 *            $Id$
 *  @desc     Module containing types and values for Basic Transport Protocol
 *
 */
module LibItsBtp_TypesAndValues {

berge's avatar
berge committed
    // LibCommon
    import from LibCommon_BasicTypesAndValues all;
    
garciay's avatar
garciay committed
    // LibIts
    import from CAM_PDU_Descriptions language "ASN.1:1997" {
tepelmann's avatar
tepelmann committed
        type CAM
garciay's avatar
garciay committed
    };
    import from DENM_PDU_Descriptions language "ASN.1:1997" {
tepelmann's avatar
tepelmann committed
        type DENM
berge's avatar
berge committed
    group btpPdus {
     
        /**
         * @desc BTP Packet
         * @see ETSI TS 102 636-5-1 chapter 6
berge's avatar
berge committed
         * @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
berge's avatar
berge committed
         * @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
berge's avatar
berge committed
         * @member destinationPort
         * @member sourcePort
         */        
        type record BtpAHeader {
fischer's avatar
fischer committed
            BtpPortId destinationPort,
            BtpPortId sourcePort   
berge's avatar
berge committed
        } 

        /**
         * @desc BTP-B Header
         * @see ETSI TS 102 636-5-1 chapter 7.3
berge's avatar
berge committed
         * @member destinationPort
         * @member destinationPortInfo
         */        
        type record BtpBHeader {
fischer's avatar
fischer committed
            BtpPortId destinationPort,
berge's avatar
berge committed
            BtpPortInfo destinationPortInfo   
        }
        
        /**
         * @desc BTP Port ID
         * @see ETSI TS 102 636-5-1 chapter 7.3.2
fischer's avatar
fischer committed
        type UInt16 BtpPortId;

        /**
         * @desc BTP-B Port info
         * @see ETSI TS 102 636-5-1 chapter 7.3.2
berge's avatar
berge committed
        type UInt16 BtpPortInfo;
        
    } // end btpHeaders

    group btpPayload {
        
        type octetstring BtpRawPayload;
        
berge's avatar
berge committed
        /**
         * @desc The payload of the BTP packet
         * @member decodedPayload The decoded payload
         * @member rawPayload Raw payload as it is received
berge's avatar
berge committed
         */
        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 {
tepelmann's avatar
tepelmann committed
            CAM camPacket, 
            DENM denmPacket 
        } with { 
            encode (camPacket) "LibItsCam_asn1"; 
            encode (denmPacket) "LibItsDenm_asn1" 
berge's avatar
berge committed
        
    } //end btpPayload

    group utPrimitives {
reinaortega's avatar
reinaortega committed
    	
    	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
    
berge's avatar
berge committed
}
with {
    encode "LibItsBtp"
berge's avatar
berge committed
}