/** * @author ETSI / STF484 * @version $URL$ * $Id$ * @desc Module containing base template definitions for SREM SSEM * */ module LibItsSremSsem_Templates { // LibCommon import from LibCommon_BasicTypesAndValues all; import from LibCommon_DataStrings all; // LibIts import from ITS_Container 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; import from DSRC language "ASN.1:1997" all; // LibItsCommon import from LibItsCommon_Functions all; import from LibItsCommon_TypesAndValues all; // LibItsSremSsem import from LibItsSremSsem_TestSystem all; import from LibItsSremSsem_TypesAndValues all; import from LibItsSremSsem_Pixits all; group primitivesTemplates { /** * @desc Send template for SREM Message (SremSsemPort Primitive) * @param p_sremMsg The SREM Message to be sent */ template (value) SremReq m_sremReq( in template (value) SREM p_sremMsg ) := { msgOut := p_sremMsg } /** * @desc Receive template for SREM Message (SremSsemPort Primitive) * @param p_sremMsg The expected SREM Message */ template (present) SremInd mw_sremInd( template (present) SREM p_sremMsg ) := { msgIn := p_sremMsg, gnNextHeader := *, gnHeaderType := *, gnHeaderSubtype := *, gnLifetime := *, gnTrafficClass := *, btpDestinationPort := *, btpInfo := *, ssp := *, its_aid := * } /** * @desc Receive template for SREM Message (SremSsemPort Primitive) * @param p_sremMsg The expected SREM Message * @param p_gnNextHeader GN next header value * @param p_gnHeaderType GN header type value * @param p_gnHeaderSubtype GN header subtype value * @param p_gnLifetime GN packet lifetime value (ms) * @param p_gnTrafficClass GN traffic class value */ template (present) SremInd mw_sremIndWithGnParameters( template (present) SREM p_sremMsg, in template UInt8 p_gnNextHeader := *, in template UInt8 p_gnHeaderType := *, in template UInt8 p_gnHeaderSubtype := *, in template UInt32 p_gnLifetime := *, in template UInt8 p_gnTrafficClass := * ) modifies mw_sremInd := { gnNextHeader := p_gnNextHeader, gnHeaderType := p_gnHeaderType, gnHeaderSubtype := p_gnHeaderSubtype, gnLifetime := p_gnLifetime, gnTrafficClass := p_gnTrafficClass } /** * @desc Receive template for SREM Message (SremSsemPort Primitive) * @param p_sremMsg Expected SREM Message * @param p_btpDestinationPort BTP destination port value * @param p_btpInfo BTP destination port info value (if BTP-B) or BTP source port value (if BTP-A) */ template SremInd mw_sremIndWithBtpParameters( template (present) SREM p_sremMsg, in template UInt16 p_btpDestinationPort := *, in template UInt16 p_btpInfo := * ) modifies mw_sremInd := { btpDestinationPort := p_btpDestinationPort, btpInfo := p_btpInfo }; /** * @desc Receive template for SREM Message (SremSsemPort Primitive) * @param p_sremMsg The expected SREM Message * @param p_ssp SSP value * @param p_its_aid ITS-AID value */ template (present) SremInd mw_sremIndWithSecurityParameters( template (present) SREM p_sremMsg, template Oct16 p_ssp := *, template Oct16 p_its_aid := * ) modifies mw_sremInd := { ssp := p_ssp, its_aid := p_its_aid } /** * @desc Send template for SSEM Message (SremSsemPort Primitive) * @param p_ssemMsg The SSEM Message to be sent */ template (value) SsemReq m_ssemReq( in template (value) SSEM p_ssemMsg ) := { msgOut := p_ssemMsg } /** * @desc Receive template for SSEM Message (SremSsemPort Primitive) * @param p_ssemMsg The expected SSEM Message */ template (present) SsemInd mw_ssemInd( template (present) SSEM p_ssemMsg ) := { msgIn := p_ssemMsg, gnNextHeader := *, gnHeaderType := *, gnHeaderSubtype := *, gnLifetime := *, gnTrafficClass := *, btpDestinationPort := *, btpInfo := *, its_aid := * }; /** * @desc Receive template for SSEM Message (SremSsemPort Primitive) * @param p_ssemMsg The expected SSEM Message * @param p_gnNextHeader GN next header value * @param p_gnHeaderType GN header type value * @param p_gnHeaderSubtype GN header subtype value * @param p_gnLifetime GN packet lifetime value (ms) * @param p_gnTrafficClass GN traffic class value */ template (present) SsemInd mw_ssemIndWithGnParameters( template (present) SSEM p_ssemMsg, in template UInt8 p_gnNextHeader := *, in template UInt8 p_gnHeaderType := *, in template UInt8 p_gnHeaderSubtype := *, in template UInt32 p_gnLifetime := *, in template UInt8 p_gnTrafficClass := * ) modifies mw_ssemInd := { gnNextHeader := p_gnNextHeader, gnHeaderType := p_gnHeaderType, gnHeaderSubtype := p_gnHeaderSubtype, gnLifetime := p_gnLifetime, gnTrafficClass := p_gnTrafficClass } /** * @desc Receive template for SSEM Message (SremSsemPort Primitive) * @param p_ssemMsg Expected SREM Message * @param p_btpDestinationPort BTP destination port value * @param p_btpInfo BTP destination port info value (if BTP-B) or BTP source port value (if BTP-A) */ template SsemInd mw_ssemIndWithBtpParameters( template (present) SSEM p_ssemMsg, template UInt16 p_btpDestinationPort := *, template UInt16 p_btpInfo := * ) modifies mw_ssemInd := { btpDestinationPort := p_btpDestinationPort, btpInfo := p_btpInfo }; /** * @desc Receive template for SSEM Message (SremSsemPort Primitive) * @param p_ssemMsg The expected SSEM Message * @param p_ssp SSP value * @param p_its_aid ITS-AID value */ template (present) SsemInd mw_ssemIndWithSecurityParameters( template (present) SSEM p_ssemMsg, template Oct16 p_ssp := *, template Oct16 p_its_aid := * ) modifies mw_ssemInd := { ssp := p_ssp, its_aid := p_its_aid } } group utPrimitives { /** * @desc Send template for Upper Tester event initialization * @member hashedId8 In case of secured mode set, hashedId8 indicate which certificate the IUT shall use */ template (value) UtInitialize m_sremSsemInitialize := { hashedId8 := '0000000000000000'O } /** * @desc Send template for Upper Tester Trigger event */ template (value) UtSremSsemTrigger m_utTriggerEvent ( Event p_event ) := { event := p_event } } group mapSpatPduTemplates { /** * @desc Send template for SREM PDU * @param p_map The SREM Message */ template (value) SREM m_sremPdu( in template (value) SignalRequestMessage p_srm ) := { header := m_itsPduHeader( - , - ,ItsPduHeader_messageID_srem_ ), srm := p_srm } /** * @desc Receive template for SREM PDU * @param p_map The SREM Message */ template (present) SREM mw_sremPdu( template (present) SignalRequestMessage p_srm := ? ) := { header := mw_itsPduHeaderSrem, srm := p_srm } /** * @desc Send template for SSEM PDU * @param p_spat The SSEM Message */ template (value) SSEM m_ssemPdu( in template (value) SignalStatusMessage p_ssm ) := { header := m_itsPduHeader( - , - , ItsPduHeader_messageID_ssem_), ssm := p_ssm } /** * @desc Receive template for SSEM PDU * @param p_spat The SSEM Message */ template (present) SSEM mw_ssemPdu( template (present) SignalStatusMessage p_ssm := ? ) := { header := mw_itsPduHeaderSsem, ssm := p_ssm } } // End of group mapSpatPduTemplates group headerTemplates { /** * @desc Default send template for ITS PDU header * @param p_stationID The source station ID (Default: test system station id) * @param p_protocolVersion The protocol version (Default: current SREM SSEM protocol version) * @param p_messageID The message Id (Default: SREM SSEM id) */ template (value) ItsPduHeader m_itsPduHeader( in template (value) StationID p_stationID := f_getTsStationId(), in template (value) ItsPduHeader.protocolVersion p_protocolVersion := ItsPduHeader_protocolVersion_currentVersion_, in template (value) ItsPduHeader.messageID p_messageID ) := { protocolVersion := p_protocolVersion, messageID := p_messageID, stationID := p_stationID } /** * @desc Default receive template for ITS PDU header * @param p_stationID The expected station id (Default: any) * @param p_protocolVersion The expected protocol version (Default: current SREM SSEM protocol version) * @param p_messageID The expected message id (Default: SREM SSEM message id) */ template ItsPduHeader mw_itsPduHeader( template (present) StationID p_stationID := ?, template (present) ItsPduHeader.protocolVersion p_protocolVersion := ItsPduHeader_protocolVersion_currentVersion_, template (present) ItsPduHeader.messageID p_messageID := ? ) := { protocolVersion := p_protocolVersion, messageID := p_messageID, stationID := p_stationID } /** * @desc Default receive template for ITS PDU header * @param p_stationID The expected station id (Default: any) * @param p_protocolVersion The expected protocol version (Default: current SREM SSEM protocol version) * @param p_messageID The expected message id (Default: SREM id) */ template ItsPduHeader mw_itsPduHeaderSrem( template (present) StationID p_stationID := ?, template (present) ItsPduHeader.protocolVersion p_protocolVersion := ItsPduHeader_protocolVersion_currentVersion_, template (present) ItsPduHeader.messageID p_messageID := ItsPduHeader_messageID_srem_ ) := { protocolVersion := p_protocolVersion, messageID := p_messageID, stationID := p_stationID } /** * @desc Default receive template for ITS PDU header * @param p_stationID The expected station id (Default: any) * @param p_protocolVersion The expected protocol version (Default: current SREM SSEM protocol version) * @param p_messageID The expected message id (Default: SSEM id) */ template ItsPduHeader mw_itsPduHeaderSsem( template (present) StationID p_stationID := ?, template (present) ItsPduHeader.protocolVersion p_protocolVersion := ItsPduHeader_protocolVersion_currentVersion_, template (present) ItsPduHeader.messageID p_messageID := ItsPduHeader_messageID_ssem_ ) := { protocolVersion := p_protocolVersion, messageID := p_messageID, stationID := p_stationID } /** * @desc Default receive template for the station id */ template (present) StationID mw_anyStationId := ?; } // End of group headerTemplates group sremSsemTemplates { group sremTemplates { /** * @desc Send template for SREM Message */ template (value) SignalRequestMessage m_defaultSrem := { timeStamp := omit, second := PX_SECOND, sequenceNumber := omit, requests := omit, requestor := PX_REQUESTOR, regional := omit } /** * @desc Receive template for SREM Message */ template (present) SignalRequestMessage mw_defaultSrem := { timeStamp := *, second := ?, sequenceNumber := *, requests := *, requestor := ?, regional := * } /** * @desc Receive template for SREM Message with no LayerType */ template (present) SignalRequestMessage mw_sremWellFormatted modifies mw_defaultSrem := { } } // End of group sremTemplates group ssemTemplates { /** * @desc Send template for SignalStatusMessage Message */ template (value) SignalStatusMessage m_defaultSsem := { timeStamp := omit, second := PX_SECOND, sequenceNumber := omit, status := { PX_STATUS }, regional := omit } /** * @desc Receive template for SSEM Message */ template (present) SignalStatusMessage mw_defaultSsem := { timeStamp := *, second := ?, sequenceNumber := *, status := ?, regional := * } template (present) SignalStatusMessage mw_ssemWellFormatted modifies mw_defaultSsem := { } template (present) SignalStatusMessage mw_ssem_with_region_id( template (present) SignalStatusMessage.regional p_regional := ? ) modifies mw_defaultSsem := { regional := p_regional // TODO Try to refined it } } // End of group ssemTemplates } // End of group sremSsemTemplates } // End of module LibItsSremSsem_Templates