/** * @author ETSI / STF405 / STF449 / STF484 / STF517 * @version $URL$ * $Id$ * @desc Test System module for ITS GeoNetworking * @copyright ETSI Copyright Notification * No part may be reproduced except as authorized by written permission. * The copyright and the foregoing restriction extend to reproduction in all media. * All rights reserved. * */ module LibItsGeoNetworking_TestSystem { // LibCommon // import from LibCommon_Time {modulepar all}; // import from LibCommon_Sync all; import from LibCommon_BasicTypesAndValues all; import from LibCommon_DataStrings all; // LibItsCommon import from LibItsCommon_TestSystem all; import from LibItsCommon_TypesAndValues all; import from LibItsExternal_TypesAndValues all; // LibItsGeoNetworking import from LibItsGeoNetworking_TypesAndValues all; // LibItsSecurity import from LibItsSecurity_TestSystem all; import from LibItsIpv6OverGeoNetworking_TypesAndValues all; group portDefinitions { /** * @desc Adapter control port */ type port AdapterControlPort message { out AcGnPrimitive, AcGn6Primitive, AcGnssPrimitive, AcSecPrimitive; in //FIXME RGY As discussed, boolean results are replaced by a top-level union of results // AcGnResponse, AcGn6Response, AcGnssResponse, AcGnssDistanceCovered, AcSecResponse; AcGnResponse, AcGn6Response, AdapterControlResults; } // end AdapterControlPort /** * @desc Upper Tester port */ type port UpperTesterPort message { out UtGnInitialize, UtGnChangePosition, UtAutoInteropTrigger, UtGnTrigger; // FIXME Remove UtAutoInteropTrigger from GN component, create an AutoInterop component in UtGnResults, UtGnEventInd; } // end UpperTesterPort } // end portDefinitions group interfacePorts { group networkAndTransportPorts { group nt2Ports { /** * @desc NT2 GeoNetworking Port (GeoNetworking/G5) */ type port GeoNetworkingPort message { in GeoNetworkingInd; out GeoNetworkingReq; } // end GeoNetworkingPort } // End of group nt2Ports } // End of group networkAndTransportPorts } // End of group interfacePorts group componentDefinitions { /** * @desc ITS Main Test Component */ //FIXME RGY ItsMtc can extend ItsBaseGeoNetworking instead of ItsSecurityBaseComponent, as it contains // everything defined here but vc_componentTable and already extends ItsSecurityBaseComponent // also, ItsBaseMtc already extends ServerSyncComp // type component ItsMtc extends ItsBaseMtc, ServerSyncComp, ItsSecurityBaseComponent { // TODO Extend ItsBaseMtc with ItsSecurityBaseComponent? { type component ItsMtc extends ItsBaseMtc, ItsBaseGeoNetworking { /*FIXME RGY all these objects are inherited from ItsBaseGeoNetworking, they shall not be defined again: see $6.2.10.2 port UpperTesterPort utPort; port AdapterControlPort acPort; */ var ComponentTable vc_componentTable := {}; /* // UT indications var UtGnEventIndList vc_utInds := {}; var boolean vc_utDefaultActive := true; var boolean vc_acDefaultActive := true; var boolean vc_gnDefaultActive := true; */ } // end ItsMtc /** * @desc ITS System Adapter */ type component ItsGeoNetworkingSystem { port UpperTesterPort utPort; port AdapterControlPort acPort; // NT2 ports port GeoNetworkingPort geoNetworkingPort; } // end ItsGeoNetworkingSystem } // End of group componentDefinitions type component ItsBaseGeoNetworking extends ItsBaseComponent, ItsSecurityBaseComponent { port UpperTesterPort utPort; port AdapterControlPort acPort; // UT indications var UtGnEventIndList vc_utInds := {}; var boolean vc_utDefaultActive := true; var boolean vc_acDefaultActive := true; var boolean vc_gnDefaultActive := true; } /** * @desc Test component for ITS Network and Transport layer */ type component ItsGeoNetworking extends ItsBaseGeoNetworking { // NT2 ports port GeoNetworkingPort geoNetworkingPort; //variables for Gn var UInt16 vc_localSeqNumber := 0; var PositionTable vc_positionTable := {}; var GeoAreaTable vc_areaTable := {}; var charstring vc_componentName := ""; var default vc_neighbourDefault; var integer vc_multipleMessagesCount := 0; } // End of component ItsGeoNetworking group networkAndTransportPrimitives { group nt2Primitives { /** * @desc NT2 GeoNetworking Indication Primitive */ type record GeoNetworkingInd { GeoNetworkingPdu msgIn, MacAddress macDestinationAddress, Bit256 ssp optional, UInt32 its_aid optional } with { //encode "RAW"; variant "FIELDORDER(msb)" } /** * @desc NT2 GeoNetworking Request Primitive */ type record GeoNetworkingReq { GeoNetworkingPdu msgOut, MacAddress macDestinationAddress, UInt32 its_aid } with { //encode "RAW"; variant "FIELDORDER(msb)" } } // end nt2Primitives } // End of group networkAndTransportPrimitives with { variant "" encode "LibIts_Interface" } // end interfacePrimitives group misc { type record ComponentEntry { charstring componentName, ItsGeoNetworking gnComponent optional } type record of ComponentEntry ComponentTable; } // end misc } // End of module LibItsGeoNetworking_TestSystem