LibItsDenm_TypesAndValues.ttcn 7.29 KB
Newer Older
ASN.1 Documenter's avatar
ASN.1 Documenter committed
/**
 *  @author     ETSI / STF449 / STF484 / STF517
 *  @version    $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/DENM/LibItsDenm_TypesAndValues.ttcn $
 *              $Id: LibItsDenm_TypesAndValues.ttcn 1318 2017-01-26 10:20:53Z filatov $
 *  @desc       Module containing type and value definitions for DENM
 *
 */
module LibItsDenm_TypesAndValues {
    
  //LibCommon
  import from LibCommon_BasicTypesAndValues all;
  import from LibCommon_DataStrings all;

  // LibIts
  import from DENM_PDU_Descriptions language "ASN.1:1997" all;
  import from ITS_Container language "ASN.1:1997" all;
    
  group actionTypes {
        
    /**
     * @desc Indication of whether event cancellation has to be raised by the test system or iut
     */
    type enumerated Trigger {
      e_ets(0),
      e_iut(1)
      }
        
  } // end group actionTypes
    
  group otherTypes {
        
    /**
     * @desc List of SituationContainers used in behaviours 
     */
    type record of SituationContainer SituationContainerList;
        
    /**
     * @desc List of ActionIDs used in behaviours 
     */
    type record of ActionID ActionIDList;
        
  }
    
  group denmConstants {
        
    const ValidityDuration c_duration_2sec := 2;
    const ValidityDuration c_duration_5sec := 5;
    const ValidityDuration c_duration_10sec := 10;
        
    const TransmissionInterval c_interval_1sec := 1000;
    const TransmissionInterval c_interval_2sec := 2000;
    const TransmissionInterval c_interval_4sec := 4000;
    const TransmissionInterval c_interval_5sec := 5000;
    const TransmissionInterval c_interval_10sec := 10000;
       
  } // end group denmConstants

    group certificates {

    const charstring PX_CERT_IUT_DENM_01 := "CERT_IUT_DENM_BO_01_AT";
    const charstring PX_CERT_IUT_DENM_02 := "CERT_IUT_DENM_BO_02_AT";

  }
    
  group utPrimitives {
        
    /**
     * @desc Upper Tester message to initialize IUT 
     * @member hashedId8 In case of secured mode set, hashedId8 indicate which certificate the IUT shall use
     */
    type record UtDenmInitialize {
      Oct8 hashedId8 
      } with {
      variant "FIELDORDER(msb)"
      }

    /**
     * @desc Upper Tester results message of the DENM IUT
     * @member utDenmInitialize             -
     * @member utDenmTriggerResult          -
     * @member utDenmUpdateResult,          -
     * @member utDenmChangePositionResult   -
     * @member utDenmChangePseudonymResult      -
     */
    type union UtDenmResults {
      boolean utDenmInitializeResult,
      UtDenmTriggerResult utDenmTriggerResult,
      UtDenmUpdateResult utDenmUpdateResult,
      boolean utDenmTerminationResult,
      boolean utDenmChangePositionResult,
      boolean utDenmChangePseudonymResult
    } with {
      variant ""
    } // End of type UtDenmResults

    /**
     * @desc Upper Tester message to request triggering of an event at IUT 
    */
    type record UtDenmTrigger {
      TimestampIts detectionTime,
      ValidityDuration validityDuration optional,
      ValidityDuration repetitionDuration optional,
      SituationContainer situation,
      RelevanceDistance relevanceDistance,
      RelevanceTrafficDirection relevanceTrafficDirection,
      TransmissionInterval transmissionInterval optional,
      TransmissionInterval repetitionInterval optional,
      AlacarteContainer alacarte optional
    } with {
      variant "FIELDORDER(msb)"
    }
        
    /**
     * @desc Upper Tester result message of request of triggering of an event at IUT 
     */
    type record UtDenmTriggerResult {
      boolean result,
      ActionID actionId
    } with {
      variant "FIELDORDER(msb)"
    }
        
    /**
     * @desc Upper Tester message to update an event at IUT 
     */
    type record UtDenmUpdate {
      ActionID actionId,
      TimestampIts detectionTime,
      ValidityDuration validityDuration optional,
      SituationContainer situation optional,
      LocationContainer location optional,
      RelevanceDistance relevanceDistance optional,
      RelevanceTrafficDirection relevanceTrafficDirection optional,
      TransmissionInterval transmissionInterval optional,
      TransmissionInterval repetitionInterval optional,
      AlacarteContainer alacarte optional
    } with {
      variant "FIELDORDER(msb)"
    }
        
    /**
     * @desc Upper Tester result message of an update request of an event on DENM IUT 
     */
    type record UtDenmUpdateResult { 
      boolean result,
      ActionID actionId
    } with {
      variant "FIELDORDER(msb)"
    }
        
    /**
     * @desc Upper Tester message to request the termination of an event at IUT 
     */
    type record UtDenmTermination {
      ActionID actionId
    } with {
      variant "FIELDORDER(msb)"
    }
        
    /**
     * @desc Upper Tester message to change the position of IUT. Values a relatives 
     */
    type record UtDenmChangePosition {
      Int32 latitude,
      Int32 longitude,
      Int32 elevation
      } with {
      variant "FIELDORDER(msb)"
      }
        
    /**
     * @desc Upper Tester message to change the pseudonym of the DENM IUT 
     */
    type record UtDenmChangePseudonym {
      // empty on purpose
    } with {
      variant "FIELDORDER(msb)"
    }
        
    /**
     * @desc Upper Tester message to check event/status on DENM IUT 
     */
    type record UtDenmEventInd {
      DENM denMsg
      } with {
      encode (denMsg) "LibItsDenm_asn1"
      }
        
    /**
     * @desc List of Upper Tester messages to check event/status on DENM IUT 
     */
    type record of UtDenmEventInd UtDenmEventIndList;
        
    /**
     * @desc List of ActionID received in response to the Upper Tester triggered messages
     */
    type record of ActionID UtDenmActionIDList;
        
  }
  with {
    encode "UpperTester"
    variant ""
    }

    group facilityPrimitives {
            
        group fa1Primitives {
            
            /**
             * @desc FA1 DENM Indication Primitive
             * @member denmMsg
             */
            type record DenmInd {
                DENM        msgIn,
                UInt64      recvTime,
                UInt8       gnNextHeader optional,
                UInt8       gnHeaderType optional,
                UInt8       gnHeaderSubtype optional,
                UInt32      gnLifetime optional,
                UInt8       gnTrafficClass optional,
                UInt16      btpDestinationPort optional,
                UInt16      btpInfo optional,
                Bit256      ssp optional,
                UInt32      its_aid optional
            }
            with {
                encode (msgIn) "PER"
            }

            /**
             * @desc FA1 DENM Request Primitive
             * @member denmMsg
             */
            type record DenmReq {
                DENM msgOut
            }
            with {
                encode (msgOut) "PER"
            }

        } // End of group fa1Primitives

    } // End of group facilityPrimitives
    with {
        variant ""
        encode "LibIts_Interface"
    } // end interfacePrimitives

ASN.1 Documenter's avatar
ASN.1 Documenter committed
}
with {
  encode "LibItsDenm"
  }