/** * @author ETSI / STF405 * @version $URL$ * $Id$ * @desc Module containing PTCs and interface ports definitions for ITS * */ module LibIts_Interface { // LibIts import from LibItsCam_Pixits all; import from LibItsGeoNetworking_TypesAndValues all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; import from DENM_PDU_Descriptions language "ASN.1:1997" all; // LibCommon import from LibCommon_Time {modulepar all}; group adapterInterface { group portDefinitions { /** * @desc Adapter control port */ type port AdapterControlPort message { in integer; //TODO: remove me } // end AdapterControlPort /** * @desc Upper Tester port */ type port UpperTesterPort message { in integer; //TODO: remove me } // end UpperTesterPort } // end portDefinitions group adapterComponent { type component ItsAdapterComponent { // Adapter ports port UpperTesterPort utPort; port AdapterControlPort acPort; } // end AdapterComponent } // end adapterComponent } // adapterInterface group interfaceComponents { /** * @desc Test component for ITS Access layer */ type component ItsAc extends ItsAdapterComponent { // AC1 ports port MacM5Port macM5Port; // AC2 ports port MacIrPort macIrPort; } // end ItsAc /** * @desc Test component for ITS Facility layer */ type component ItsFa extends ItsAdapterComponent { // component variables var CamInd vc_camMsg; // FA1 ports port CamPort camPort; port DenmPort denmPort; // FA2 ports port CooperPort cooperPort; //default var default vc_default := null; // timers timer tc_wait := PX_TWAIT; timer tc_ac := PX_TAC; timer tc_minTransInterval := PX_CAM_MIN_TRANSMISSION_INTERVAL; timer tc_maxTransInterval := PX_CAM_MAX_TRANSMISSION_INTERVAL; //global variables var SequenceNo vc_sequenceNo := 0; } // end ItsFa /** * @desc Test component for ITS Management layer */ type component ItsMgt extends ItsAdapterComponent { // MGT1 ports port IiscPort iiscPort; } // end ItsMgt /** * @desc Test component for ITS Network and Transport layer */ type component ItsNt extends ItsAdapterComponent { // NT1 ports port BtpPort btpPort; // NT2 ports port GeoNetworkingPort geoNetworkingPort; port IPv6OverGeoNetworkingPort ipv6OverGeoNetworkingPort; // NT3 ports port FastPort fastPort; // timers timer tc_wait := PX_TWAIT; timer tc_ac := PX_TAC; } // end ItsNt } // end interfaceComponents group interfacePorts { group accessPorts { group ac1Ports { /** * @desc AC1 Mac M5 Port (MacM5/PhyM5) */ type port MacM5Port message { in MacM5Ind; out MacM5Req; } // end MacM5Port } // end ac1Ports group ac2Ports { /** * @desc AC2 Mac IR Port (MacIR/PhyIR) */ type port MacIrPort message { in MacIrInd; out MacIrReq; } // end MacIrPort } // end ac2Ports } // end accessPorts group facilityPorts { group fa1Ports { /** * @desc FA1 CAM Port (CAM/BTP/GeoNet/G5) */ type port CamPort message { in CamInd; out CamReq; } // end CamPort /** * @desc FA1 DENM Port (DENM/BTP/GeoNet/G5) */ type port DenmPort message { in DenmInd; out DenmReq; } // end DenmPort } // end fa1Ports group fa2Ports { /** * @desc FA2 Cooper Port (Cooper/Fast/M5-IR) */ type port CooperPort message { in CooperInd; out CooperReq; } // end CooperPort } // end fa2Ports } // end facilityPorts group managementPorts { group mgt1Ports { /** * @desc MGT1 IISC Port (IISC/LAN) */ type port IiscPort message { in IiscInd; out IiscReq; } // end IiscPort } // end mgt1Ports } // end managementPorts group networkAndTransportPorts { group nt1Ports { /** * @desc NT1 BTP Port (BTP/GeoNet/G5) */ type port BtpPort message { in BtpInd; out BtpReq; } // end BtpPort } // end nt1Ports group nt2Ports { /** * @desc NT2 GeoNetworking Port (GeoNetworking/G5) */ type port GeoNetworkingPort message { in GeoNetworkingInd; out GeoNetworkingReq; } // end GeoNetworkingPort /** * @desc NT2 IPv6 over GeoNetworking Port (IPv6/GeoNetworking/G5) */ type port IPv6OverGeoNetworkingPort message { in IPv6OverGeoNetworkingInd; out IPv6OverGeoNetworkingReq; } // end IPv6OverGeoNetworkingPort } // end nt2Ports group nt3Ports { /** * @desc NT3 Fast Port (Fast/M5-IR) */ type port FastPort message { in FastInd; out FastReq; } // end FastPort } // end nt3Ports } // end networkAndTransportPorts } // end interfacePorts group interfacePrimitives { group accessPrimitives { group ac1Primitives { /** * @desc AC1 Mac M5 Indication Primitive */ type record MacM5Ind { } /** * @desc AC1 Mac M5 Request Primitive */ type record MacM5Req { } } // end ac1Primitives group ac2Primitives { /** * @desc AC2 Mac IR Indication Primitive */ type record MacIrInd { } /** * @desc AC2 Mac IR Request Primitive */ type record MacIrReq { } } // end ac2Primitives } // end accessPrimitives group facilityPrimitives { group fa1Primitives { /** * @desc FA1 CAM Indication Primitive */ type record CamInd { CamPdu msgIn } /** * @desc FA1 CAM Request Primitive */ type record CamReq { CamPdu msgOut } /** * @desc FA1 DENM Indication Primitive * * @member denmMsg */ type record DenmInd { DenmPdu msgIn, TimeStamp receptionTime } /** * @desc FA1 DENM Request Primitive * * @member denmMsg */ type record DenmReq { DenmPdu msgOut } } // end fa1Primitives group fa2Primitives { /** * @desc FA2 Cooper Indication Primitive */ type record CooperInd { } /** * @desc FA2 Cooper Request Primitive */ type record CooperReq { } } // end fa2Primitives } // end facilityPrimitives group managementPrimitives { group mgt1Primitives { /** * @desc MGT1 IISC Indication Primitive */ type record IiscInd { } /** * @desc MGT1 IISC Request Primitive */ type record IiscReq { } } // end mgt1Primitives } // end managementPrimitives group networkAndTransportPrimitives { group nt1Primitives { /** * @desc NT1 BTP Indication Primitive */ type record BtpInd { } /** * @desc NT1 BTP Request Primitive */ type record BtpReq { } } // end nt1Primitives group nt2Primitives { /** * @desc NT2 GeoNetworking Indication Primitive */ type record GeoNetworkingInd { GeoNetworkingPacket msgIn } /** * @desc NT2 GeoNetworking Request Primitive */ type record GeoNetworkingReq { GeoNetworkingPacket msgOut } /** * @desc NT2 IPv6 over GeoNetworking Indication Primitive */ type record IPv6OverGeoNetworkingInd { } /** * @desc NT2 IPv6 over GeoNetworking Request Primitive */ type record IPv6OverGeoNetworkingReq { } } // end nt2Primitives group nt3Primitives { /** * @desc NT3 Fast Indication Primitive */ type record FastInd { } /** * @desc NT3 Fast Request Primitive */ type record FastReq { } } // end nt3Primitives } // end networkAndTransportPrimitives } // end interfacePrimitives } // end LibIts_Interface