Index: BTP/LibItsBtp_Functions.ttcn =================================================================== --- BTP/LibItsBtp_Functions.ttcn (revision 1312) +++ BTP/LibItsBtp_Functions.ttcn (working copy) @@ -41,7 +41,9 @@ utPort.send(p_init); tc_wait.start; alt { - [] utPort.receive(UtInitializeResult:true) { +//FIXME RGY As discussed, port in type is changed to a top-level union type +// [] utPort.receive(UtInitializeResult:true) { + [] utPort.receive(UtCommonResults:{utInitializeResult:=true}) { tc_wait.stop; log("*** f_utInitializeIut: INFO: IUT initialized ***"); } @@ -94,7 +96,8 @@ /** * @desc Setups default configuration */ - function f_cfUp() runs on ItsBtp system ItsBtpSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cfUp() runs on ItsBtp /*system ItsBtpSystem*/ { map(self:utPort, system:utPort); map(self:btpPort, system:btpPort); @@ -105,7 +108,8 @@ /** * @desc Deletes default configuration */ - function f_cfDown() runs on ItsBtp system ItsBtpSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cfDown() runs on ItsBtp { unmap(self:utPort, system:utPort); unmap(self:btpPort, system:btpPort); @@ -237,4 +241,5 @@ } } // end getFunctions -} // end LibItsBtp_Functions \ No newline at end of file + +} // end LibItsBtp_Functions Index: BTP/LibItsBtp_TestSystem.ttcn =================================================================== --- BTP/LibItsBtp_TestSystem.ttcn (revision 1312) +++ BTP/LibItsBtp_TestSystem.ttcn (working copy) @@ -29,7 +29,9 @@ out UtInitialize, UtBtpTrigger; in - UtInitializeResult, UtBtpTriggerResult, UtBtpEventInd; +//FIXME RGY!!! As discussed, list of booleans is changed by a top-level union type +// UtInitializeResult, UtBtpTriggerResult, UtBtpEventInd; + UtCommonResults, UtBtpTriggerResult, UtBtpEventInd; } // end UpperTesterPort } // end portDefinitions Index: BTP/LibItsBtp_TypesAndValues.ttcn =================================================================== --- BTP/LibItsBtp_TypesAndValues.ttcn (revision 1312) +++ BTP/LibItsBtp_TypesAndValues.ttcn (working copy) @@ -145,7 +145,12 @@ GenerateBtpB btpB } - type boolean UtBtpTriggerResult; +//FIXME RGY As discussed, boolean results are replaced by a union of the results +// type boolean UtBtpTriggerResult; + type union UtBtpResults { + boolean utBtpTriggerResult + } + type UtBtpResults.utBtpTriggerResult UtBtpTriggerResult; /** * @desc Upper Tester message to request triggering of an BTPA message at IUT Index: CAM/LibItsCam_Functions.ttcn =================================================================== --- CAM/LibItsCam_Functions.ttcn (revision 1312) +++ CAM/LibItsCam_Functions.ttcn (working copy) @@ -33,7 +33,8 @@ import from LibItsCam_TypesAndValues all; import from LibItsCam_Pics all; import from LibItsCam_Pixits all; - + import from LibItsCam_EncdecDeclarations all; + group utFuntions { /** @@ -48,7 +49,9 @@ utPort.send(p_init); tc_wait.start; alt { - [] utPort.receive(UtInitializeResult:true) { +//FIXME RGY As discussed, port in type is changed to a top-level union type +// [] utPort.receive(UtInitializeResult:true) { + [] utPort.receive(UtCommonResults:{utInitializeResult:=true}) { tc_wait.stop; log("*** f_utInitializeIut: INFO: IUT initialized ***"); } @@ -80,7 +83,9 @@ utPort.send(p_event); tc_wait.start; alt { - [] utPort.receive(UtCamTriggerResult:true) { +//FIXME RGY As discussed, port in type is changed to a top-level union type +// [] utPort.receive(UtCamTriggerResult:true) { + [] utPort.receive(UpperTesterCamResults:{utCamTriggerResult:=true}) { tc_wait.stop; } [] utPort.receive { @@ -106,7 +111,9 @@ utPort.send(p_position); alt { - [] utPort.receive(UtChangePositionResult:?) { +//FIXME RGY As discussed, port in type is changed to a top-level union type +// [] utPort.receive(UtChangePositionResult:?) { + [] utPort.receive(UtCommonResults:{utChangePositionResult:=?}) { tc_wait.stop; } [] utPort.receive { @@ -290,9 +297,10 @@ * @desc Setups default configuration * @param p_certificateId The certificate identifier the TA shall use in case of secured IUT */ +//FIXME RGY Titan doesn't support mtc and system clauses yet function f_cfUp( in charstring p_certificateId := PX_CERT_FOR_TS - ) runs on ItsCam system ItsCamSystem { + ) runs on ItsCam /*system ItsCamSystem*/ { map(self:utPort, system:utPort); map(self:acPort, system:acPort); @@ -307,7 +315,8 @@ /** * @desc Deletes default configuration */ - function f_cfDown() runs on ItsCam system ItsCamSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cfDown() runs on ItsCam { // Initialise secured mode f_uninitialiseSecuredMode(); @@ -496,4 +505,4 @@ } } // end of group camGenerators -} // end LibItsCam_Functions \ No newline at end of file +} // end LibItsCam_Functions Index: CAM/LibItsCam_Templates.ttcn =================================================================== --- CAM/LibItsCam_Templates.ttcn (revision 1312) +++ CAM/LibItsCam_Templates.ttcn (working copy) @@ -23,6 +23,7 @@ // LibItsCommon import from LibItsCommon_Functions all; import from LibItsCommon_TypesAndValues all; + import from LibItsCommon_ASN1_NamedNumbers all; // LibItsCam import from LibItsCam_TestSystem all; Index: CAM/LibItsCam_TestSystem.ttcn =================================================================== --- CAM/LibItsCam_TestSystem.ttcn (revision 1312) +++ CAM/LibItsCam_TestSystem.ttcn (working copy) @@ -37,7 +37,9 @@ out AcGnssPrimitive, AcSecPrimitive; in - AcGnssResponse, AcGnssDistanceCovered, AcSecResponse; +//FIXME RGY As discussed, list of boolean result responses is collected into a top-level union +// AcGnssResponse, AcGnssDistanceCovered, AcSecResponse; + AdapterControlResults; } // end AdapterControlPort /** @@ -47,7 +49,9 @@ out UtInitialize, UtCamTrigger, UtChangePosition, UtActivatePositionTime, UtDeactivatePositionTime; in - UtInitializeResult, UtCamTriggerResult, UtChangePositionResult, UtActivatePositionTimeResult, UtDeactivatePositionTimeResult, UtCamEventInd; +//FIXME RGY As discussed, list of boolean result responses is collected into a top-level union +// UtInitializeResult, UtCamTriggerResult, UtChangePositionResult, UtActivatePositionTimeResult, UtDeactivatePositionTimeResult, UtCamEventInd; + UtCommonResults, UpperTesterCamResults, UtCamEventInd; } // end UpperTesterPort } // end portDefinitions @@ -157,4 +161,4 @@ encode "LibIts_Interface" } // end interfacePrimitives -} // End of module LibIts_TestSystem +} // End of module LibItsCam_TestSystem Index: CAM/LibItsCam_TypesAndValues.ttcn =================================================================== --- CAM/LibItsCam_TypesAndValues.ttcn (revision 1312) +++ CAM/LibItsCam_TypesAndValues.ttcn (working copy) @@ -104,7 +104,13 @@ /** * @desc Upper Tester result message of request of triggering of an event at IUT */ - type boolean UtCamTriggerResult; +//FIXME RGY As discussed, simple boolean responses are collected to a union for forward compatibility +// type boolean UtCamTriggerResult; + type union UpperTesterCamResults { + boolean utCamTriggerResult + } + + type UpperTesterCamResults.utCamTriggerResult UtCamTriggerResult; /** * @desc Upper Tester message to check event/status on CAM IUT Index: Common/LibItsCommon_Functions.ttcn =================================================================== --- Common/LibItsCommon_Functions.ttcn (revision 1312) +++ Common/LibItsCommon_Functions.ttcn (working copy) @@ -20,7 +20,7 @@ // LibIts import from LibItsCommon_Pixits all; import from ITS_Container language "ASN.1:1997" all; - import from DSRC language "ASN.1:1997" all; + import from IS_DSRC language "ASN.1:1997" all; group generalFunctions { Index: Common/LibItsCommon_Templates.ttcn =================================================================== --- Common/LibItsCommon_Templates.ttcn (revision 1312) +++ Common/LibItsCommon_Templates.ttcn (working copy) @@ -18,7 +18,9 @@ group taPrimitives { - template (value) AcSecResponse m_acSecResponseSuccess := true; +//FIXME RGY the simple boolean result has been changed to a union +// template (value) AcSecResponse m_acSecResponseSuccess := true; + template (value) AdapterControlResults m_acSecResponseSuccess := {acSecResponse:=true}; /** * @desc Enable security support @@ -42,9 +44,13 @@ } } // End of template m_acDisableSecurity - template AcGnssResponse m_acGnssResponseSuccess := true; +//FIXME RGY As discussed, port in type is changed to a top-level union type +// template AcGnssResponse m_acGnssResponseSuccess := true; + template AdapterControlResults m_acGnssResponseSuccess := {acGnssResponse:=true}; - template AcGnssDistanceCovered m_acGnssDistanceCovered := true; +//FIXME RGY As discussed, port in type is changed to a top-level union type +// template AcGnssDistanceCovered m_acGnssDistanceCovered := true; + template AdapterControlResults m_acGnssDistanceCovered := {acGnssDistanceCovered:=true}; /** * @desc Testsystem will load GNSS scenario Index: Common/LibItsCommon_TypesAndValues.ttcn =================================================================== --- Common/LibItsCommon_TypesAndValues.ttcn (revision 1312) +++ Common/LibItsCommon_TypesAndValues.ttcn (working copy) @@ -30,7 +30,19 @@ /** * @desc Upper Tester result message of the initialization request */ - type boolean UtInitializeResult; +//FIXME RGY As discussed, Commom top level type for UT results + type union UtCommonResults { + boolean utInitializeResult, + boolean utChangePositionResult, + boolean utChangePseudonymResult, + boolean utActivatePositionTimeResult, + boolean utDeactivatePositionTimeResult, + boolean utIvimTerminationResult + } + +//FIXME RGY As discussed, type is changed to a type derived from UpperTesterResultTypes +// type boolean UtInitializeResult; + type UtCommonResults.utInitializeResult UtInitializeResult; /** * @desc Upper Tester message to change the position of IUT. Values a relatives @@ -44,7 +56,9 @@ /** * @desc Upper Tester result message of change position request of IUT */ - type boolean UtChangePositionResult; +//FIXME RGY As discussed, type is changed to a type derived from UpperTesterResultTypes +// type boolean UtChangePositionResult; + type UtCommonResults.utChangePositionResult UtChangePositionResult; /** * @desc Upper Tester message to change the pseudonym of the DENM IUT @@ -56,7 +70,9 @@ /** * @desc Upper Tester result message of the change pseudonym request */ - type boolean UtChangePseudonymResult; +//FIXME RGY As discussed, type is changed to a type derived from UpperTesterResultTypes +// type boolean UtChangePseudonymResult; + type UtCommonResults.utChangePseudonymResult UtChangePseudonymResult; /** * @desc Upper Tester message to activate position and/or time @@ -68,7 +84,9 @@ /** * @desc Upper Tester result message of the activate position and/or time request */ - type boolean UtActivatePositionTimeResult; +//FIXME RGY As discussed, type is changed to a type derived from UpperTesterResultTypes +// type boolean UtActivatePositionTimeResult; + type UtCommonResults.utActivatePositionTimeResult UtActivatePositionTimeResult; /** * @desc Upper Tester message to deactivate position and/or time @@ -80,7 +98,9 @@ /** * @desc Upper Tester result message of the deactivate position and/or time request */ - type boolean UtDeactivatePositionTimeResult; +//FIXME RGY As discussed, type is changed to a type derived from UpperTesterResultTypes +// type boolean UtDeactivatePositionTimeResult; + type UtCommonResults.utDeactivatePositionTimeResult UtDeactivatePositionTimeResult; } with { @@ -118,7 +138,9 @@ /** * @desc Primitive for receiving response from TA */ - type boolean AcSecResponse; +//FIXME RGY As discussed, type is changed to a type derived from AdapterControlResults +// type boolean AcSecResponse; + type AdapterControlResults.acSecResponse AcSecResponse; /** * @desc TA primitives for GNSS @@ -139,12 +161,23 @@ /** * @desc Primitive for receiving response from TA */ - type boolean AcGnssResponse; +//FIXME RGY As discussed, Commom adapter control results are collected to a top-level union type + type union AdapterControlResults { + boolean acGnssResponse, + boolean acGnssDistanceCovered, + boolean acSecResponse + } +//FIXME RGY As discussed, boolean results are replaced by related fields of the top-level reult union +// type boolean AcGnssResponse; + type AdapterControlResults.acGnssResponse AcGnssResponse; + /** * @desc Primitive for receiving an indication if requested distance was covered from TA */ - type boolean AcGnssDistanceCovered; +//FIXME RGY As discussed, boolean results are replaced by related fields of the top-level reult union +// type boolean AcGnssDistanceCovered; + type AdapterControlResults.acGnssDistanceCovered AcGnssDistanceCovered; /** * @desc Primitive for loading a scenario Index: DCC/LibItsDcc_Functions.ttcn =================================================================== --- DCC/LibItsDcc_Functions.ttcn (revision 1312) +++ DCC/LibItsDcc_Functions.ttcn (working copy) @@ -933,12 +933,13 @@ group externalFunction { - /** - * @desc Returns the string representation of the float value - * @param p_float The float value - * @return The string representation of the float value + /** + * @desc Returns the string representation of the float value + * @param p_float The float value + * @return The string representation of the float value */ - external function fx_float2str(float p_float) return charstring; - + function fx_float2str(float p_float) return charstring { + return float2str(p_float) + } } } // End of module LibItsDcc_Functions \ No newline at end of file Index: DCC/LibItsDcc_TestSystem.ttcn =================================================================== --- DCC/LibItsDcc_TestSystem.ttcn (revision 1312) +++ DCC/LibItsDcc_TestSystem.ttcn (working copy) @@ -49,7 +49,9 @@ * @desc Check Port used for intercomponent exchange of data to check */ type port CheckPort message { - inout all; +//FIXME RGY "all" is not supported by Titan in port message lists; only integers are sent and received via checkPort-s; +// inout all; + inout integer; } } // end portDefinitions Index: DENM/LibItsDenm_Functions.ttcn =================================================================== --- DENM/LibItsDenm_Functions.ttcn (revision 1312) +++ DENM/LibItsDenm_Functions.ttcn (working copy) @@ -47,7 +47,9 @@ utPort.send(p_init); tc_wait.start; alt { - [] utPort.receive(UtInitializeResult:true) { +//FIXME RGY As discussed, port in type is changed to a top-level union type +// [] utPort.receive(UtInitializeResult:true) { + [] utPort.receive(UtCommonResults:{utInitializeResult:=true}) { tc_wait.stop; log("*** " & testcasename() & ": INFO: IUT initialized ***"); } @@ -77,11 +79,15 @@ utPort.send(p_change); tc_wait.start; alt { - [] utPort.receive(UtChangePseudonymResult:true) { +//FIXME RGY As discussed, port in type is changed to a top-level union type +// [] utPort.receive(UtChangePseudonymResult:true) { + [] utPort.receive(UtCommonResults:{utChangePseudonymResult:=true}) { tc_wait.stop; log("*** " & testcasename() & ": INFO: IUT pseudonym changed ***"); } - [] utPort.receive(UtChangePseudonymResult:false) { +//FIXME RGY As discussed, port in type is changed to a top-level union type +// [] utPort.receive(UtChangePseudonymResult:false) { + [] utPort.receive(UtCommonResults:{utChangePseudonymResult:=false}) { tc_wait.stop; log("*** " & testcasename() & ": INFO: IUT pseudonym changed ***"); f_selfOrClientSyncAndVerdict("error", e_error); @@ -181,7 +187,9 @@ utPort.send(p_event); tc_wait.start; alt { - [] utPort.receive(UtDenmTerminationResult:?) { +//FIXME RGY As discussed, port in type is changed to a top-level union type +// [] utPort.receive(UtDenmTerminationResult:?) { + [] utPort.receive(UtDENMResults:{utDenmTerminationResult:=?}) { tc_wait.stop; } [] tc_wait.timeout { @@ -212,7 +220,9 @@ utPort.send(p_position); tc_wait.start; alt { - [] utPort.receive(UtChangePositionResult:?) { +//FIXME RGY As discussed, port in type is changed to a top-level union type +// [] utPort.receive(UtChangePositionResult:?) { + [] utPort.receive(UtCommonResults:{utChangePositionResult:=?}) { tc_wait.stop; } [] tc_wait.timeout { @@ -386,7 +396,8 @@ */ function f_cfUp( in charstring p_certificateId := PX_CERT_FOR_TS - ) runs on ItsDenm system ItsDenmSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + ) runs on ItsDenm /*system ItsDenmSystem*/ { map(self:acPort, system:acPort); map(self:utPort, system:utPort); @@ -401,7 +412,8 @@ /** * @desc Deletes default configuration */ - function f_cfDown() runs on ItsDenm system ItsDenmSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cfDown() runs on ItsDenm /*system ItsDenmSystem*/ { // Initialise secured mode f_uninitialiseSecuredMode(); @@ -550,7 +562,9 @@ ) ); - return valueof(p_denm.management).actionID; +//FIXME RGY Titan doesn't support dot notation after valueof at the moment +// return valueof(p_denm.management).actionID; + return valueof(p_denm.management.actionID); } } // end sendFunctions Index: DENM/LibItsDenm_Templates.ttcn =================================================================== --- DENM/LibItsDenm_Templates.ttcn (revision 1312) +++ DENM/LibItsDenm_Templates.ttcn (working copy) @@ -23,6 +23,7 @@ import from LibItsCommon_TypesAndValues all; import from LibItsCommon_Functions all; import from LibItsCommon_Pixits all; + import from LibItsCommon_ASN1_NamedNumbers all; // LibItsDenm import from LibItsDenm_TestSystem all; @@ -83,7 +84,9 @@ * @param p_gnLifetime GN packet lifetime value (ms) * @param p_gnTrafficClass GN traffic class value */ - template DenmInd mw_denmIndWithGnParameters ( +//FIXME RGY template restriction can be the same as its base template: used in receiving operations only, where single "omit" is not allowed +// template DenmInd mw_denmIndWithGnParameters ( + template(present) DenmInd mw_denmIndWithGnParameters ( template (present) DENM p_denMsg, in template UInt8 p_gnNextHeader := *, in template UInt8 p_gnHeaderType := *, @@ -104,7 +107,8 @@ * @param p_ssp SSP security parameter * @param p_its_aid ITS-AID value */ - template DenmInd mw_denmIndWithSecurityParameters( +//FIXME RGY Titan currently requires the modifyied template to have the same restriction as the base template + template (present) DenmInd mw_denmIndWithSecurityParameters( template (present) DENM p_denMsg, template Bit256 p_ssp := *, template UInt32 p_its_aid := c_its_aid_DENM @@ -119,7 +123,9 @@ * @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 DenmInd mw_denmIndWithBtpParameters ( +//FIXME RGY template restriction can be the same as its base template: template is not used currently +// template DenmInd mw_denmIndWithBtpParameters ( + template(present) DenmInd mw_denmIndWithBtpParameters ( template (present) DENM p_denMsg, in template UInt16 p_btpDestinationPort := *, in template UInt16 p_btpInfo := * @@ -350,8 +356,10 @@ template (value) Longitude p_longitude := f_getTsLongitude(), template (value) Latitude p_latitude := f_getTsLatitude() ) := { +//FIXME RGY ReferencePosition is sequence, where latitude preceeds longitude +// longitude := p_longitude, + latitude := p_latitude, longitude := p_longitude, - latitude := p_latitude, positionConfidenceEllipse := m_posConfidenceEllipse, altitude := m_altitude } @@ -577,7 +585,7 @@ eventPosition := ?, relevanceDistance := *, relevanceTrafficDirection := *, - validityDuration := *, // It seems that a default value can be omitted (asn1studio) + validityDuration := ?, // It seems that a default value can be omitted (asn1studio) transmissionInterval := *, stationType := ? } @@ -704,7 +712,7 @@ deltaLongitude := 0, deltaAltitude := 0 }, - pathDeltaTime := 0 + pathDeltaTime := 1 } } }, Index: DENM/LibItsDenm_TestSystem.ttcn =================================================================== --- DENM/LibItsDenm_TestSystem.ttcn (revision 1312) +++ DENM/LibItsDenm_TestSystem.ttcn (working copy) @@ -37,7 +37,9 @@ out AcGnssPrimitive, AcSecPrimitive; in - AcGnssResponse, AcGnssDistanceCovered, AcSecResponse; +//FIXME RGY!!! As discussed, list of booleans is changed by a top-level union type +// AcGnssResponse, AcGnssDistanceCovered, AcSecResponse; + AdapterControlResults } // end AdapterControlPort /** @@ -47,8 +49,11 @@ out UtInitialize, UtDenmTrigger, UtDenmUpdate, UtDenmTermination, UtChangePosition, UtChangePseudonym; in - UtInitializeResult, UtDenmTriggerResult, UtDenmUpdateResult, UtDenmTerminationResult, - UtChangePositionResult, UtChangePseudonymResult, UtDenmEventInd; +//FIXME RGY! As discussed, list of booleans is changed by a top-level union type +// UtInitializeResult, UtDenmTriggerResult, UtDenmUpdateResult, UtDenmTerminationResult, +// UtChangePositionResult, UtChangePseudonymResult, UtDenmEventInd; + UtCommonResults, UtDENMResults, UtDenmTriggerResult, + UtDenmUpdateResult, UtDenmEventInd; } // end UpperTesterPort } // end portDefinitions Index: DENM/LibItsDenm_TypesAndValues.ttcn =================================================================== --- DENM/LibItsDenm_TypesAndValues.ttcn (revision 1312) +++ DENM/LibItsDenm_TypesAndValues.ttcn (working copy) @@ -117,12 +117,21 @@ ActionID actionId } +//FIXME RGY As discussed, boolean result types are replaced by a top-level union of the results /** - * @desc Upper Tester result message of termination of an event on DENM IUT + * @desc Upper Tester response message for all DENM results */ - type boolean UtDenmTerminationResult; + type union UtDENMResults { + boolean utDenmTerminationResult + } /** + * @desc Upper Tester result message of termination of an event on DENM IUT + */ +//FIXME RGY As discussed, boolean result types are replaced by a top-level union type +// type boolean UtDenmTerminationResult; + type UtDENMResults.utDenmTerminationResult UtDenmTerminationResult; + /** * @desc Upper Tester message to check event/status on DENM IUT */ type record UtDenmEventInd { Index: GeoNetworking/LibItsGeoNetworking_Functions.ttcn =================================================================== --- GeoNetworking/LibItsGeoNetworking_Functions.ttcn (revision 1312) +++ GeoNetworking/LibItsGeoNetworking_Functions.ttcn (working copy) @@ -1,5 +1,5 @@ /** - * @author ETSI / STF405 / STF449 / STF484 / STF517 + * @author ETSI / STF405 / STF449 * @version $URL$ * $Id$ * @desc Module containing functions for GeoNetworking @@ -38,6 +38,7 @@ import from LibItsGeoNetworking_Templates all; import from LibItsGeoNetworking_Pixits all; import from LibItsGeoNetworking_Pics all; + import from LibItsGeoNetworking_EncdecDeclarations all; group utFuntions { @@ -154,7 +155,8 @@ * - Area2 which only includes NodeB * NodeB being close to the area center */ - function f_cf01Up(Scenario p_scenario := e_staticPosition) runs on ItsGeoNetworking system ItsGeoNetworkingSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf01Up(Scenario p_scenario := e_staticPosition) runs on ItsGeoNetworking { // Variables var PositionTable v_positionTable := {}; @@ -182,7 +184,8 @@ } // end f_cf01Up - function f_cf01Down() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf01Down() runs on ItsGeoNetworking { f_uninitialiseSecuredMode(); @@ -207,7 +210,9 @@ * * @param p_mainUtComponent Name of the component that will initialize IUT and handle default UT messages */ - function f_cf02Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem { + +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf02Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /*mtc ItsMtc */ { // Variables var PositionTable v_positionTable := {}; @@ -255,14 +260,10 @@ // Initialize components for(i:=0; i < lengthof(vc_componentTable); i:=i+1) { - if (isvalue(vc_componentTable[i].gnComponent)) { - vc_componentTable[i].gnComponent.start(f_initialiseComponent(v_positionTable, v_areaTable, vc_componentTable[i].componentName)); - } + vc_componentTable[i].gnComponent.start(f_initialiseComponent(v_positionTable, v_areaTable, vc_componentTable[i].componentName)); } for(i:=0; i < lengthof(vc_componentTable); i:=i+1) { - if (isvalue(vc_componentTable[i].gnComponent)) { - vc_componentTable[i].gnComponent.done; - } + vc_componentTable[i].gnComponent.done; } } // end f_cf02Up @@ -270,7 +271,9 @@ /** * @desc Deletes configuration cf02 */ - function f_cf02Down() runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem { + +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf02Down() runs on ItsMtc /*mtc ItsMtc*/ { // Local variables var integer i; @@ -301,7 +304,8 @@ * NodeB being close to the area center * @param p_mainUtComponent Name of the component that will initialize IUT and handle default UT messages */ - function f_cf03Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf03Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /*mtc ItsMtc*/ { // Variables var PositionTable v_positionTable := {}; @@ -349,14 +353,10 @@ // Initialize components for(i:=0; i < lengthof(vc_componentTable); i:=i+1) { - if (isvalue(vc_componentTable[i].gnComponent)) { - vc_componentTable[i].gnComponent.start(f_initialiseComponent(v_positionTable, v_areaTable, vc_componentTable[i].componentName)); - } + vc_componentTable[i].gnComponent.start(f_initialiseComponent(v_positionTable, v_areaTable, vc_componentTable[i].componentName)); } for(i:=0; i < lengthof(vc_componentTable); i:=i+1) { - if (isvalue(vc_componentTable[i].gnComponent)) { - vc_componentTable[i].gnComponent.done; - } + vc_componentTable[i].gnComponent.done; } } // end f_cf03Up @@ -364,7 +364,9 @@ /** * @desc Deletes configuration cf03 */ - function f_cf03Down() runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem { + + //FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf03Down() runs on ItsMtc /*mtc ItsMtc*/ { // Local variables var integer i; @@ -397,7 +399,9 @@ * NodeB being close to the area center * @param p_mainUtComponent Name of the component that will initialize IUT and handle default UT messages */ - function f_cf04Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem { + +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf04Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /*mtc ItsMtc*/ { // Variables var PositionTable v_positionTable := {}; @@ -445,14 +449,10 @@ // Initialize components for(i:=0; i < lengthof(vc_componentTable); i:=i+1) { - if (isvalue(vc_componentTable[i].gnComponent)) { - vc_componentTable[i].gnComponent.start(f_initialiseComponent(v_positionTable, v_areaTable, vc_componentTable[i].componentName)); - } + vc_componentTable[i].gnComponent.start(f_initialiseComponent(v_positionTable, v_areaTable, vc_componentTable[i].componentName)); } for(i:=0; i < lengthof(vc_componentTable); i:=i+1) { - if (isvalue(vc_componentTable[i].gnComponent)) { - vc_componentTable[i].gnComponent.done; - } + vc_componentTable[i].gnComponent.done; } } // end f_cf04Up @@ -460,7 +460,9 @@ /** * @desc Deletes configuration cf04 */ - function f_cf04Down() runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem { + +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf04Down() runs on ItsMtc /*mtc ItsMtc*/ { // Local variables var integer i; @@ -489,7 +491,9 @@ * - Area1 which only includes NodeB, NodeD and IUT * @param p_mainUtComponent Name of the component that will initialize IUT and handle default UT messages */ - function f_cf05Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem { + +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf05Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /*mtc ItsMtc*/ { // Variables var PositionTable v_positionTable := {}; @@ -537,14 +541,10 @@ // Initialize components for(i:=0; i < lengthof(vc_componentTable); i:=i+1) { - if (isvalue(vc_componentTable[i].gnComponent)) { - vc_componentTable[i].gnComponent.start(f_initialiseComponent(v_positionTable, v_areaTable, vc_componentTable[i].componentName)); - } + vc_componentTable[i].gnComponent.start(f_initialiseComponent(v_positionTable, v_areaTable, vc_componentTable[i].componentName)); } for(i:=0; i < lengthof(vc_componentTable); i:=i+1) { - if (isvalue(vc_componentTable[i].gnComponent)) { - vc_componentTable[i].gnComponent.done; - } + vc_componentTable[i].gnComponent.done; } } @@ -551,7 +551,9 @@ /** * @desc Deletes configuration cf05 */ - function f_cf05Down() runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem { + +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf05Down() runs on ItsMtc /*mtc ItsMtc*/ { // Local variables var integer i; @@ -581,7 +583,8 @@ * - IUT not in sectorial area of NodeB-NodeF * @param p_mainUtComponent Name of the component that will initialize IUT and handle default UT messages */ - function f_cf06Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf06Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /*mtc ItsMtc*/ { // Variables var PositionTable v_positionTable := {}; @@ -629,14 +632,10 @@ // Initialize components for(i:=0; i < lengthof(vc_componentTable); i:=i+1) { - if (isvalue(vc_componentTable[i].gnComponent)) { - vc_componentTable[i].gnComponent.start(f_initialiseComponent(v_positionTable, v_areaTable, vc_componentTable[i].componentName)); - } + vc_componentTable[i].gnComponent.start(f_initialiseComponent(v_positionTable, v_areaTable, vc_componentTable[i].componentName)); } for(i:=0; i < lengthof(vc_componentTable); i:=i+1) { - if (isvalue(vc_componentTable[i].gnComponent)) { - vc_componentTable[i].gnComponent.done; - } + vc_componentTable[i].gnComponent.done; } } @@ -643,7 +642,9 @@ /** * @desc Deletes configuration cf06 */ - function f_cf06Down() runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem { + +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf06Down() runs on ItsMtc /*mtc ItsMtc*/ { // Local variables var integer i; @@ -672,7 +673,9 @@ * - Area1 which only includes NodeB, NodeD and IUT * @param p_mainUtComponent Name of the component that will initialize IUT and handle default UT messages */ - function f_cf07Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem { + +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf07Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /*mtc ItsMtc*/ { // Variables var PositionTable v_positionTable := {}; @@ -720,14 +723,10 @@ // Initialize components for(i:=0; i < lengthof(vc_componentTable); i:=i+1) { - if (isvalue(vc_componentTable[i].gnComponent)) { - vc_componentTable[i].gnComponent.start(f_initialiseComponent(v_positionTable, v_areaTable, vc_componentTable[i].componentName)); - } + vc_componentTable[i].gnComponent.start(f_initialiseComponent(v_positionTable, v_areaTable, vc_componentTable[i].componentName)); } for(i:=0; i < lengthof(vc_componentTable); i:=i+1) { - if (isvalue(vc_componentTable[i].gnComponent)) { - vc_componentTable[i].gnComponent.done; - } + vc_componentTable[i].gnComponent.done; } } @@ -734,7 +733,8 @@ /** * @desc Deletes configuration cf06 */ - function f_cf07Down() runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf07Down() runs on ItsMtc /*mtc ItsMtc*/ { // Local variables var integer i; @@ -832,12 +832,7 @@ for (i:=0; i value (v_geoNw) { +//FIXME RGY Titan doesn't support storing list at the moment +// ))) -> value (v_geoNw) { + ))) -> value v_geoNw { p_received := f_getSecuredMessage(v_geoNw.msgIn); } } @@ -2778,8 +2780,7 @@ f_HashedId3FromHashedId8( valueof(p_digest) )) - }, - "" + } ); // Build secured Gn packet Index: GeoNetworking/LibItsGeoNetworking_Templates.ttcn =================================================================== --- GeoNetworking/LibItsGeoNetworking_Templates.ttcn (revision 1312) +++ GeoNetworking/LibItsGeoNetworking_Templates.ttcn (working copy) @@ -21,6 +21,7 @@ // LibItsBtp import from LibItsBtp_Templates all; + import from LibItsBtp_EncdecDeclarations all; // LibItsSecurity import from LibItsSecurity_TypesAndValues all; @@ -34,6 +35,7 @@ import from LibItsGeoNetworking_TestSystem all; import from LibItsGeoNetworking_TypesAndValues all; import from LibItsGeoNetworking_Pixits all; + import from LibItsGeoNetworking_EncdecDeclarations all; group geoNwPrimitivesTemplates { @@ -107,7 +109,7 @@ geoUnicast := { gnAddress := p_destinationGnAddr, lifetime := c_lifetime, - trafficClass := m_trafficClass, + trafficClass := valueof(m_trafficClass), payload := { decodedPayload := omit, rawPayload := ''O} // do not use f_adaptPayload_m here } } @@ -184,7 +186,7 @@ geoBroadcast := { shape := p_geoArea.shape, lifetime := c_lifetime, - trafficClass := m_trafficClass, + trafficClass := valueof(m_trafficClass), reserved := c_uInt24Zero, area := p_geoArea.area, payload := { decodedPayload := omit, rawPayload := ''O} // do not use f_adaptPayload_m here @@ -244,7 +246,7 @@ geoAnycast := { shape := p_geoArea.shape, lifetime := c_lifetime, - trafficClass := m_trafficClass, + trafficClass := valueof(m_trafficClass), reserved := c_uInt24Zero, area := p_geoArea.area, payload := { decodedPayload := omit, rawPayload := ''O} // do not use f_adaptPayload_m here @@ -286,7 +288,7 @@ */ template (value) UtGnTrigger m_generateShbMessage := { shb := { - trafficClass := m_trafficClass, + trafficClass := valueof(m_trafficClass), payload := { decodedPayload := omit, rawPayload := ''O} // do not use f_adaptPayload_m here } } @@ -324,7 +326,7 @@ tsb := { nbHops := 10, lifetime := c_lifetime, - trafficClass := m_trafficClass, + trafficClass := valueof(m_trafficClass), payload := { decodedPayload := omit, rawPayload := ''O} // do not use f_adaptPayload_m here } } @@ -374,7 +376,7 @@ template (value) BeaconHeader p_beaconHeader ) := { startBeaconing := { - beaconPacket := m_geoNwPdu(m_geoNwBeaconPacket(p_beaconHeader.srcPosVector), -, c_hopLimit1) + beaconPacket := m_geoNwPdu(valueof(m_geoNwBeaconPacket(valueof(p_beaconHeader.srcPosVector))), -, c_hopLimit1) } } @@ -417,7 +419,7 @@ integer p_numberOfNeighbour ) := { startBeaconingMultipleNeighbour := { - beaconPacket := m_geoNwPdu(m_geoNwBeaconPacket(p_beaconHeader.srcPosVector), -, c_hopLimit1), + beaconPacket := m_geoNwPdu(valueof(m_geoNwBeaconPacket(valueof(p_beaconHeader.srcPosVector))), -, c_hopLimit1), numberOfNeighbour := p_numberOfNeighbour } } @@ -537,11 +539,11 @@ in template (value) CommonHeader p_commonHeader, in template (value) ExtendedHeader p_extHeader ) := { - packet := { + packet := valueof({ commonHeader := p_commonHeader, extendedHeader := p_extHeader, payload := f_adaptPayload_m(char2oct("DEFAULT_PAYLOAD")) - }, + }), securedMsg := omit } @@ -575,7 +577,7 @@ in template (value) octetstring p_payload ) modifies m_geoNwPacket := { packet := { - payload := f_adaptPayload_m(p_payload) + payload := valueof(f_adaptPayload_m(p_payload)) } } @@ -621,7 +623,9 @@ * * @see mw_geoNwPacket */ - template GeoNetworkingPacket mw_geoNwPduAnyPayload( +//FIXME RGY template restriction can be the same as its base template: template is not used currently +// template GeoNetworkingPacket mw_geoNwPduAnyPayload( + template(present) GeoNetworkingPacket mw_geoNwPduAnyPayload( in template (present) CommonHeader p_commonHeader, in template (present) ExtendedHeader p_extHeader ) modifies mw_geoNwPacket := { @@ -638,7 +642,9 @@ * * @see mw_geoNwPacket */ - template GeoNetworkingPacket mw_geoNwPduWithOctetstringPayload( +//FIXME RGY template restriction can be the same as its base template: template is not used currently +// template GeoNetworkingPacket mw_geoNwPduWithOctetstringPayload( + template(present) GeoNetworkingPacket mw_geoNwPduWithOctetstringPayload( in template (present) CommonHeader p_commonHeader, in template (present) ExtendedHeader p_extHeader, in template (present) octetstring p_payload @@ -656,7 +662,9 @@ * * @see mw_geoNwPacket */ - template GeoNetworkingPacket mw_geoNwPduWithPayload( +//FIXME RGY template restriction can be the same as its base template: used in TC_SEC_ITSS_SND_CAM_02_01_BV only, where is called with parameters +// template GeoNetworkingPacket mw_geoNwPduWithPayload( + template(present) GeoNetworkingPacket mw_geoNwPduWithPayload( in template (present) CommonHeader p_commonHeader, in template (present) ExtendedHeader p_extHeader, in template (present) Payload p_payload @@ -714,18 +722,18 @@ in template (value) UInt8 p_hopLimit := c_defaultHopLimit, in template (value) TrafficClass p_trafficClass := m_trafficClass ) := { - commonHeader := m_commonHeader( + commonHeader := valueof(m_commonHeader( PX_GN_UPPER_LAYER, m_geoUnicastHeaderType, p_trafficClass, p_hopLimit - ), - extendedHeader := m_geoUnicastHeader( + )), + extendedHeader := valueof(m_geoUnicastHeader( p_sourceLongPosVec, p_destinationShortPosVec, p_seqNumber - ), - payload := f_adaptPayload_m(char2oct("DEFAULT_PAYLOAD")) + )), + payload := valueof(f_adaptPayload_m(char2oct("DEFAULT_PAYLOAD"))) } /** @@ -825,18 +833,18 @@ in template (value) UInt8 p_hopLimit := c_defaultHopLimit, in template (value) TrafficClass p_trafficClass := m_trafficClass ) := { - commonHeader := m_commonHeader( + commonHeader := valueof(m_commonHeader( PX_GN_UPPER_LAYER, - m_geoAnycastHeaderType(p_anycastArea.geoAnycastSubType), + m_geoAnycastHeaderType(valueof(p_anycastArea.geoAnycastSubType)), p_trafficClass, p_hopLimit - ), - extendedHeader := m_geoAnycastHeader( + )), + extendedHeader := valueof(m_geoAnycastHeader( p_sourceLongPosVec, p_seqNumber, p_anycastArea - ), - payload := f_adaptPayload_m(char2oct("DEFAULT_PAYLOAD")) + )), + payload := valueof(f_adaptPayload_m(char2oct("DEFAULT_PAYLOAD"))) } /** @@ -939,18 +947,18 @@ in template (value) UInt8 p_hopLimit := c_defaultHopLimit, in template (value) TrafficClass p_trafficClass := m_trafficClass ) := { - commonHeader := m_commonHeader( + commonHeader := valueof(m_commonHeader( PX_GN_UPPER_LAYER, - m_geoBroadcastHeaderType(p_broadcastArea.geoBroadcastSubType), + m_geoBroadcastHeaderType(valueof(p_broadcastArea.geoBroadcastSubType)), p_trafficClass, p_hopLimit - ), - extendedHeader := m_geoBroadcastHeader( + )), + extendedHeader := valueof(m_geoBroadcastHeader( p_sourceLongPosVec, p_seqNumber, p_broadcastArea - ), - payload := f_adaptPayload_m(char2oct("DEFAULT_PAYLOAD")) + )), + payload := valueof(f_adaptPayload_m(char2oct("DEFAULT_PAYLOAD"))) } /** @@ -1242,16 +1250,16 @@ template (value) GnNonSecuredPacket m_geoNwShbPacket( in template (value) LongPosVector p_sourceLongPosVec ) := { - commonHeader := m_commonHeader( + commonHeader := valueof(m_commonHeader( PX_GN_UPPER_LAYER, m_shbHeaderType, m_trafficClass, c_defaultHopLimit - ), - extendedHeader := m_shbHeader( + )), + extendedHeader := valueof(m_shbHeader( p_sourceLongPosVec - ), - payload := f_adaptPayload_m(char2oct("DEFAULT_PAYLOAD")) + )), + payload := valueof(f_adaptPayload_m(char2oct("DEFAULT_PAYLOAD"))) } /** @@ -1288,17 +1296,17 @@ in template (value) UInt8 p_hopLimit := c_defaultHopLimit, in template (value) TrafficClass p_trafficClass := m_trafficClass ) := { - commonHeader := m_commonHeader( + commonHeader := valueof(m_commonHeader( PX_GN_UPPER_LAYER, m_tsbHeaderType, p_trafficClass, p_hopLimit - ), - extendedHeader := m_tsbHeader( + )), + extendedHeader := valueof(m_tsbHeader( p_seqNumber, p_sourceLongPosVec - ), - payload := f_adaptPayload_m(char2oct("DEFAULT_PAYLOAD")) + )), + payload := valueof(f_adaptPayload_m(char2oct("DEFAULT_PAYLOAD"))) } /** @@ -1774,7 +1782,7 @@ in template (value) UInt16 p_seqNumber, in template (value) GeoBroadcastArea p_broadcastArea ) := { - geoBroadcastHeader := { + geoBroadcastHeader := valueof({ seqNumber := p_seqNumber, reserved := c_uInt8Zero, srcPosVector := p_sourceLongPosVec, @@ -1784,7 +1792,7 @@ distanceB := p_broadcastArea.geoBroadcastArea.distanceB, angle := p_broadcastArea.geoBroadcastArea.angle, reserved2 := c_uInt24Zero - } + }) } /** @@ -1883,7 +1891,7 @@ in template (value) UInt16 p_seqNumber, in template (value) GeoAnycastArea p_anycastArea ) := { - geoAnycastHeader := { + geoAnycastHeader := valueof({ seqNumber := p_seqNumber, reserved := c_uInt8Zero, srcPosVector := p_sourceLongPosVec, @@ -1893,7 +1901,7 @@ distanceB := p_anycastArea.geoAnycastArea.distanceB, angle := p_anycastArea.geoAnycastArea.angle, reserved2 := c_uInt24Zero - } + }) } /** Index: GeoNetworking/LibItsGeoNetworking_TestSystem.ttcn =================================================================== --- GeoNetworking/LibItsGeoNetworking_TestSystem.ttcn (revision 1312) +++ GeoNetworking/LibItsGeoNetworking_TestSystem.ttcn (working copy) @@ -39,7 +39,10 @@ out AcGnPrimitive, AcGn6Primitive, AcGnssPrimitive, AcSecPrimitive; in - AcGnResponse, AcGn6Response, AcGnssResponse, AcGnssDistanceCovered, AcSecResponse; + +//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 /** @@ -49,7 +52,9 @@ out UtInitialize, UtChangePosition, UtGnTrigger; in - UtInitializeResult, UtChangePositionResult, UtGnTriggerResult, UtGnEventInd; +//FIXME RGY As discussed, boolean results are replaced by a top-level union of results +// UtInitializeResult, UtChangePositionResult, UtGnTriggerResult, UtGnEventInd; + UtCommonResults, UtGnTriggerResult, UtGnEventInd; } // end UpperTesterPort } // end portDefinitions @@ -79,13 +84,17 @@ /** * @desc ITS Main Test Component */ - type component ItsMtc extends ItsBaseMtc, ServerSyncComp, ItsSecurityBaseComponent { // TODO Extend ItsBaseMtc with ItsSecurityBaseComponent? { - +//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 { // TODO Extend ItsBaseMtc with ItsSecurityBaseComponent? { +/*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 := {}; @@ -92,7 +101,7 @@ var boolean vc_utDefaultActive := true; var boolean vc_acDefaultActive := true; var boolean vc_gnDefaultActive := true; - +*/ } // end ItsMtc /** Index: GeoNetworking/LibItsGeoNetworking_TypesAndValues.ttcn =================================================================== --- GeoNetworking/LibItsGeoNetworking_TypesAndValues.ttcn (revision 1312) +++ GeoNetworking/LibItsGeoNetworking_TypesAndValues.ttcn (working copy) @@ -1008,7 +1008,9 @@ } // end utPrimitives with { - encode "UpperTester" +//FIXME RGY temporarily changed to RAW, until encoding functions are changed to UpperTester +// encode "UpperTester" + encode "RAW"; variant "" } group acPrimitives { Index: Ipv6OverGeoNetworking/LibItsIpv6OverGeoNetworking_Functions.ttcn =================================================================== --- Ipv6OverGeoNetworking/LibItsIpv6OverGeoNetworking_Functions.ttcn (revision 1312) +++ Ipv6OverGeoNetworking/LibItsIpv6OverGeoNetworking_Functions.ttcn (working copy) @@ -38,7 +38,8 @@ * - two ITS nodes (nodeA, nodeB) * - three GVLs */ - function f_cf01UpGn6() runs on ItsIpv6OverGeoNetworking system ItsIpv6OverGeoNetworkingSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf01UpGn6() runs on ItsIpv6OverGeoNetworking { // Variables var float v_distance; @@ -73,7 +74,8 @@ /** * @desc Deletes configuration cf01Gn6 */ - function f_cf01DownGn6() runs on ItsIpv6OverGeoNetworking system ItsIpv6OverGeoNetworkingSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cf01DownGn6() runs on ItsIpv6OverGeoNetworking { // Map unmap(self:ipv6OverGeoNetworkingPort, system:ipv6OverGeoNetworkingPort); @@ -296,12 +298,14 @@ var LongPosVector v_nodeLongPosVector := f_getPosition(p_compName); f_sendGeoNetMessageWithPayload( - m_geoNwReq_linkLayerBroadcast( - m_geoNwPdu( - m_geoNwBroadcastPacket( - v_nodeLongPosVector, - vc_localSeqNumber, - f_getGeoBroadcastArea(valueof(p_gvl.area)) + valueof( + m_geoNwReq_linkLayerBroadcast( + m_geoNwPdu( + m_geoNwBroadcastPacket( + v_nodeLongPosVector, + vc_localSeqNumber, + f_getGeoBroadcastArea(valueof(p_gvl.area)) + ) ) ) ), @@ -312,12 +316,12 @@ c_icmpHdr, m_rtAdvWithOptions( m_rtAdvOpt_prefixOpt( - p_gvl.prefixLength, + valueof(p_gvl.prefixLength), c_lFlag1, c_aFlag1, p_validLifetime, c_preferredLifetime30s, - p_gvl.prefix + valueof(p_gvl.prefix) ) ) ) Index: Ipv6OverGeoNetworking/LibItsIpv6OverGeoNetworking_TypesAndValues.ttcn =================================================================== --- Ipv6OverGeoNetworking/LibItsIpv6OverGeoNetworking_TypesAndValues.ttcn (revision 1312) +++ Ipv6OverGeoNetworking/LibItsIpv6OverGeoNetworking_TypesAndValues.ttcn (working copy) @@ -171,7 +171,7 @@ //geographic const Bit7 c_itsGn6aslGeoAnycastID := '1111101'B; //TODO TDB by IANA - }//end group ipv6Address + } //end group ipv6Address /** * @desc PDU type derived from RFC2461 clause 4.2 @@ -189,7 +189,7 @@ UInt32 reachableTime, UInt32 retransTimer, RtAdvOptions rtAdvOptions optional - } with { variant (checksum) "MarkForIPv6ChecksumCalculation" } + } // FIXME CHECK while TITAN refuse it: with { variant (checksum) "MarkForIPv6ChecksumCalculation" } /** * @desc RouterAdvertisement option list Index: IVIM/LibItsIvim_Functions.ttcn =================================================================== --- IVIM/LibItsIvim_Functions.ttcn (revision 1312) +++ IVIM/LibItsIvim_Functions.ttcn (working copy) @@ -159,7 +159,9 @@ utPort.send(p_event); tc_wait.start; alt { - [] utPort.receive(UtIvimTerminationResult:?) { +//FIXME RGY As discussed, port in type is changed to a top-level union type +// [] utPort.receive(UtIvimTerminationResult:?) { + [] utPort.receive(UtIvimResults:{utIvimTerminationResult:=?}) { tc_wait.stop; } [] tc_wait.timeout { @@ -243,7 +245,8 @@ */ function f_cfUp( in charstring p_certificateId := PX_CERT_FOR_TS - ) runs on ItsIvim system ItsIvimSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + ) runs on ItsIvim /*system ItsIvimSystem*/ { map(self:acPort, system:acPort); map(self:utPort, system:utPort); @@ -258,7 +261,8 @@ /** * @desc Deletes default configuration */ - function f_cfDown() runs on ItsIvim system ItsIvimSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cfDown() runs on ItsIvim /*system ItsIvimSystem*/ { // Initialise secured mode f_uninitialiseSecuredMode(); @@ -373,7 +377,7 @@ var FncRetCode v_ret := e_success; if (valueof(p_trigger) == e_ets) { - f_sendIviMessage(m_ivimStructureCancellation(p_iviIdentificationNumber)); + f_sendIviMessage(valueof(m_ivimStructureCancellation(p_iviIdentificationNumber))); f_sleep(PX_TNOAC); } else { Index: IVIM/LibItsIvim_Templates.ttcn =================================================================== --- IVIM/LibItsIvim_Templates.ttcn (revision 1312) +++ IVIM/LibItsIvim_Templates.ttcn (working copy) @@ -26,11 +26,13 @@ import from LibItsCommon_TypesAndValues all; import from LibItsCommon_Functions all; import from LibItsCommon_Pixits all; + import from LibItsCommon_ASN1_NamedNumbers all; // LibItsIvim import from LibItsIvim_TestSystem all; import from LibItsIvim_TypesAndValues all; import from LibItsIvim_Functions all; + import from LibItsIvim_ASN1_IVInamedNumbers all; group asn1Constants { } // End of group asn1Constants @@ -75,7 +77,9 @@ * @param p_gnLifetime GN packet lifetime value (ms) * @param p_gnTrafficClass GN traffic class value */ - template IvimInd mw_ivimIndWithGnParameters ( +//FIXME RGY template should be (present), no omit is assigned to it as a whole; Titan currently requires that the modified templte has at least the same restirction as the base +// template IvimInd mw_ivimIndWithGnParameters ( + template(present) IvimInd mw_ivimIndWithGnParameters ( template (present) IVIM p_iviMsg, in template UInt8 p_gnNextHeader := *, in template UInt8 p_gnHeaderType := *, @@ -96,7 +100,9 @@ * @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 IvimInd mw_ivimIndWithBtpParameters ( +//FIXME RGY template should be (present), no omit is assigned to it as a whole; Titan currently requires that the modified templte has at least the same restirction as the base +// template IvimInd mw_ivimIndWithBtpParameters ( + template(present) IvimInd mw_ivimIndWithBtpParameters ( template (present) IVIM p_iviMsg, template UInt16 p_btpDestinationPort := *, template UInt16 p_btpInfo := * @@ -111,7 +117,8 @@ * @param p_ssp SSP security parameter * @param p_its_aid ITS-AID value */ - template IvimInd mw_ivimIndWithSecurityParameters ( +//FIXME RGY template should be (present), no omit is assigned to it as a whole; Titan currently requires that the modified templte has at least the same restirction as the base + template(present) IvimInd mw_ivimIndWithSecurityParameters ( template (present) IVIM p_iviMsg, template Bit256 p_ssp := *, template UInt32 p_its_aid := * @@ -308,7 +315,7 @@ template (value) IviStructure m_ivimStructureCancellation( in template (value) IviIdentificationNumber p_iviIdentificationNumber ) := { - mandatory := m_iviManagementContainer(f_getProvider(), p_iviIdentificationNumber, IviStatus_cancellation_), + mandatory := valueof(m_iviManagementContainer(f_getProvider(), valueof(p_iviIdentificationNumber), IviStatus_cancellation_)), optional_ := omit } // End of template m_ivimStructureCancellation Index: IVIM/LibItsIvim_TestSystem.ttcn =================================================================== --- IVIM/LibItsIvim_TestSystem.ttcn (revision 1312) +++ IVIM/LibItsIvim_TestSystem.ttcn (working copy) @@ -37,7 +37,10 @@ out AcGnssPrimitive, AcSecPrimitive; in - AcGnssResponse, AcGnssDistanceCovered, AcSecResponse; +//FIXME RGY as discussed, list of boolean responses is replaced by a union +// AcGnssResponse, AcGnssDistanceCovered, AcSecResponse; + AdapterControlResults; + } // end AdapterControlPort /** @@ -47,8 +50,11 @@ out UtInitialize, UtIvimTrigger, UtIvimUpdate, UtIvimTermination, UtChangePosition, UtChangePseudonym; in - UtInitializeResult, UtIvimTriggerResult, UtIvimUpdateResult, UtIvimTerminationResult, - UtChangePositionResult, UtChangePseudonymResult, UtIvimEventInd; +//FIXME RGY as discussed, list of boolean responses is replaced by a union +// UtInitializeResult, UtIvimTriggerResult, UtIvimUpdateResult, UtIvimTerminationResult, +// UtChangePositionResult, UtChangePseudonymResult, UtIvimEventInd; + UtInitializeResult, UtIvimTriggerResult, UtIvimUpdateResult, UtIvimEventInd, UtIvimResults, UtCommonResults; + } // end UpperTesterPort } // end portDefinitions Index: IVIM/LibItsIvim_TypesAndValues.ttcn =================================================================== --- IVIM/LibItsIvim_TypesAndValues.ttcn (revision 1312) +++ IVIM/LibItsIvim_TypesAndValues.ttcn (working copy) @@ -102,7 +102,12 @@ /** * @desc Upper Tester result message of termination of an event on Ivim IUT */ - type boolean UtIvimTerminationResult; +//FIXME RGY as discussed, simple boolean responses are replaced by a union of results; + type union UtIvimResults { + boolean utIvimTerminationResult + } +// type boolean UtIvimTerminationResult; + type UtIvimResults.utIvimTerminationResult UtIvimTerminationResult; /** * @desc Upper Tester message to check event/status on Ivim IUT Index: MapemSpatem/LibItsMapemSpatem_Functions.ttcn =================================================================== --- MapemSpatem/LibItsMapemSpatem_Functions.ttcn (revision 1312) +++ MapemSpatem/LibItsMapemSpatem_Functions.ttcn (working copy) @@ -18,7 +18,7 @@ // LibIts import from ITS_Container language "ASN.1:1997" all; - import from DSRC language "ASN.1:1997" all; + import from IS_DSRC language "ASN.1:1997" all; // LibItsCommon import from LibItsCommon_TypesAndValues all; @@ -44,7 +44,9 @@ utPort.send(p_init); tc_wait.start; alt { - [] utPort.receive(UtInitializeResult:true) { +//FIXME RGY the simple boolean result has been changed to a union +// [] utPort.receive(UtInitializeResult:true) { + [] utPort.receive(UtCommonResults:{utInitializeResult:=true}) { tc_wait.stop; log("*** " & testcasename() & ": INFO: IUT initialized ***"); } @@ -70,8 +72,14 @@ utPort.send ( p_event ); tc_wait.start; +//FIXME RGY temporal variable to save the result-union value +var UtMapemSpatemResuls v_UtMapemSpatemResuls; alt { - [] utPort.receive ( UtMapemSpatemTriggerResult:? ) -> value v_result { +//FIXME RGY the simple boolean result has been changed to a union +// [] utPort.receive ( UtMapemSpatemTriggerResult:? ) -> value v_result { + [] utPort.receive (UtMapemSpatemResuls:{utMapemSpatemTriggerResult:=?} ) -> value v_UtMapemSpatemResuls { +//FIXME RGY storing result from the temporal variable + v_result:= v_UtMapemSpatemResuls.utMapemSpatemTriggerResult; tc_wait.stop; if ( not v_result ) { f_selfOrClientSyncAndVerdict("MapSpat Trigger failed", e_error); @@ -223,9 +231,10 @@ * @desc Setups default configuration * @param p_certificateId The certificate identifier the TA shall use in case of secured IUT */ +//FIXME RGY Titan doesn't support mtc and system clauses yet function f_cfUp( in charstring p_certificateId := PX_CERT_FOR_TS - ) runs on ItsMapemSpatem system ItsMapemSpatemSystem { + ) runs on ItsMapemSpatem /*system ItsMapemSpatemSystem*/ { map(self:acPort, system:acPort); map(self:utPort, system:utPort); @@ -243,7 +252,8 @@ /** * @desc Deletes default configuration */ - function f_cfDown() runs on ItsMapemSpatem system ItsMapemSpatemSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cfDown() runs on ItsMapemSpatem { // Initialise secured mode f_uninitialiseSecuredMode(); @@ -332,6 +342,6 @@ } } - } // End of receiveFunctions + } // End of group receiveFunctions -} // End of module LibItsMapemSpatem_Functions \ No newline at end of file +} // End of module LibItsMapemSpatem_Functions Index: MapemSpatem/LibItsMapemSpatem_Pixits.ttcn =================================================================== --- MapemSpatem/LibItsMapemSpatem_Pixits.ttcn (revision 1312) +++ MapemSpatem/LibItsMapemSpatem_Pixits.ttcn (working copy) @@ -16,7 +16,8 @@ import from LibCommon_BasicTypesAndValues all; // LibIts - import from DSRC language "ASN.1:1997" all; + import from IS_DSRC language "ASN.1:1997" all; + import from IS_DSRC_REGION_noCircular language "ASN.1:1997" all; // LibItsMapemSpatem import from LibItsMapemSpatem_TypesAndValues all; @@ -34,7 +35,7 @@ /** * @desc Status for IntersectionState DF sending */ - modulepar IntersectionStatusObject PX_STATUS := IntersectionStatusObject_manualControlIsEnabled_; + modulepar IntersectionStatusObject PX_STATUS := '1000000000000000'B; /** * @desc Id for IntersectionReferenceID DF sending Index: MapemSpatem/LibItsMapemSpatem_Templates.ttcn =================================================================== --- MapemSpatem/LibItsMapemSpatem_Templates.ttcn (revision 1312) +++ MapemSpatem/LibItsMapemSpatem_Templates.ttcn (working copy) @@ -19,11 +19,14 @@ import from ITS_Container language "ASN.1:1997" all; import from MAPEM_PDU_Descriptions language "ASN.1:1997" all; import from SPATEM_PDU_Descriptions language "ASN.1:1997" all; - import from DSRC language "ASN.1:1997" all; + import from IS_DSRC language "ASN.1:1997" all; + import from IS_DSRC_REGION_noCircular language "ASN.1:1997" all; // LibItsCommon import from LibItsCommon_Functions all; import from LibItsCommon_TypesAndValues all; + import from LibItsCommon_ASN1_NamedNumbers all; + import from LibItsCommon_ASN1_ISDSRC_NamedNumbers all; // LibItsMapemSpatem import from LibItsMapemSpatem_TestSystem all; @@ -91,7 +94,9 @@ * @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 MapemInd mw_mapemIndWithBtpParameters( +//FIXME RGY template should be (present), no omit is assigned to it as a whole; Titan currently requires that the modified templte has at least the same restirction as the base +// template MapemInd mw_mapemIndWithBtpParameters( + template(present) MapemInd mw_mapemIndWithBtpParameters( template (present) MAPEM p_mapemMsg, in template UInt16 p_btpDestinationPort := *, in template UInt16 p_btpInfo := * @@ -174,7 +179,9 @@ * @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 SpatemInd mw_spatemIndWithBtpParameters( +//FIXME RGY template should be (present), no omit is assigned to it as a whole; Titan currently requires that the modified templte has at least the same restirction as the base +// template SpatemInd mw_spatemIndWithBtpParameters( + template(present) SpatemInd mw_spatemIndWithBtpParameters( template (present) SPATEM p_spatemMsg, template UInt16 p_btpDestinationPort := *, template UInt16 p_btpInfo := * @@ -385,7 +392,9 @@ /** * @desc Receive template for MAPEM Message */ - template (omit) MapData m_mapem( +//FIXME RGY template should be (present), no omit is assigned to it as a whole; Titan currently requires that the modified templte has at least the same restirction as the base +// template (omit) MapData m_mapem( + template (value) MapData m_mapem( in template (value) MsgCount p_msgIssueRevision, in template (omit) IntersectionGeometryList p_intersectionGeometryList := omit, in template (omit) RoadSegmentList p_roadSegments := omit @@ -560,7 +569,9 @@ /** * @desc Send template for SPAT Message */ - template (omit) SPAT m_spatem( +//FIXME RGY template should be (present), no omit is assigned to it as a whole; Titan currently requires that the modified templte has at least the same restirction as the base +// template (omit) SPAT m_spatem( + template (value) SPAT m_spatem( in template (value) IntersectionStateList p_intersections, in template (omit) DescriptiveName p_name := omit ) modifies m_defaultSpatem:= { @@ -588,7 +599,7 @@ template (value) MovementList m_movements := { m_movement }; - template (value) MovementState m_movement := { + template (omit) MovementState m_movement := { movementName := omit, signalGroup := PX_SIGNAL_GROUP_ID, state_time_speed := m_movementEventList, Index: MapemSpatem/LibItsMapemSpatem_TestSystem.ttcn =================================================================== --- MapemSpatem/LibItsMapemSpatem_TestSystem.ttcn (revision 1312) +++ MapemSpatem/LibItsMapemSpatem_TestSystem.ttcn (working copy) @@ -39,7 +39,9 @@ out AcSecPrimitive; in - AcSecResponse; +//FIXME RGY As discussed, boolean response types are replaced by union of boolean responses +// AcSecResponse; + AdapterControlResults } // end AdapterControlPort /** @@ -49,7 +51,9 @@ out UtInitialize, UtMapemSpatemTrigger; in - UtInitializeResult, UtMapemSpatemTriggerResult, UtMapemEventInd , UtSpatemEventInd; +//FIXME RGY as discussed, boolean results are replaced by union of booleans +// UtInitializeResult, UtMapemSpatemTriggerResult, UtMapemEventInd , UtSpatemEventInd; + UtCommonResults, UtMapemSpatemResuls, UtMapemEventInd , UtSpatemEventInd; } // end UpperTesterPort } // end portDefinitions Index: MapemSpatem/LibItsMapemSpatem_TypesAndValues.ttcn =================================================================== --- MapemSpatem/LibItsMapemSpatem_TypesAndValues.ttcn (revision 1312) +++ MapemSpatem/LibItsMapemSpatem_TypesAndValues.ttcn (working copy) @@ -48,7 +48,12 @@ /** * @desc Upper Tester result message of request of triggering of an event at IUT */ - type boolean UtMapemSpatemTriggerResult; +//FIXME RGY as discussed boolean results are replaced by union of booleans + type union UtMapemSpatemResuls { + boolean utMapemSpatemTriggerResult + } +// type boolean UtMapemSpatemTriggerResult; + type UtMapemSpatemResuls.utMapemSpatemTriggerResult UtMapemSpatemTriggerResult; /** * @desc Upper Tester message to check event/status at IUT Index: Security/LibItsSecurity_Functions.ttcn3 =================================================================== --- Security/LibItsSecurity_Functions.ttcn3 (revision 1312) +++ Security/LibItsSecurity_Functions.ttcn3 (working copy) @@ -24,6 +24,7 @@ import from LibItsSecurity_Templates all; import from LibItsSecurity_Pixits all; import from LibItsSecurity_TestSystem all; + import from LibItsSecurity_EncdecDeclarations all; group helpersFunctions { @@ -262,7 +263,7 @@ return false; } } else { - if(not f_readSigningKey(valueof(cc_taCert_A), v_privateKey)){ + if(not f_readSigningKey(cc_taCert_A, v_privateKey)){ return false; } } @@ -272,7 +273,7 @@ ); p_securedMessage := m_securedMessage( - v_toBeSignedSecuredMessage.header_fields, + valueof(v_toBeSignedSecuredMessage.header_fields), p_payloadField, { m_trailer_field_signature( @@ -417,7 +418,7 @@ // log("p_trailerStatus=", p_trailerStatus); if (p_trailerStatus == 0) { // No signature p_securedMessage := m_securedMessage( - v_toBeSignedSecuredMessage.header_fields, + valueof(v_toBeSignedSecuredMessage.header_fields), p_payloadField, { } ); @@ -424,7 +425,7 @@ v_trailerSize := 0; } else if (p_trailerStatus == 2) { // Duplicate signature p_securedMessage := m_securedMessage( - v_toBeSignedSecuredMessage.header_fields, + valueof(v_toBeSignedSecuredMessage.header_fields), p_payloadField, { m_trailer_field_signature( @@ -452,7 +453,7 @@ } else if (p_trailerStatus == 3) { // Signature with reserved algorthm p_securedMessage := m_securedMessage_wrong_protocol( p_protocolVersion, - v_toBeSignedSecuredMessage.header_fields, + valueof(v_toBeSignedSecuredMessage.header_fields), p_payloadField, { m_trailer_field_signature( @@ -464,7 +465,7 @@ ); } else { // Invalid signature p_securedMessage := m_securedMessage( - v_toBeSignedSecuredMessage.header_fields, + valueof(v_toBeSignedSecuredMessage.header_fields), p_payloadField, { m_trailer_field_signature( @@ -1020,7 +1021,7 @@ if (valueof(p_issuingCertificate.subject_attributes[v_counter].type_) == e_verification_key) { return f_verifyCertificateSignatureWithPublicKey( p_certificateToBeVerified, - p_issuingCertificate.subject_attributes[v_counter].attribute.key); + valueof(p_issuingCertificate.subject_attributes[v_counter].attribute.key)); } } // End of 'for' statement @@ -1053,8 +1054,8 @@ // Create SecuredMessage payload to be signed v_toBeSignedSecuredMessage := m_toBeSignedSecuredMessage( - p_securedMessage.header_fields, - p_securedMessage.payload_field, + valueof(p_securedMessage.header_fields), + valueof(p_securedMessage.payload_field), e_signature ); log("f_verifyGnSecuredMessageSignatureWithPublicKey: v_toBeSignedSecuredMessage=", v_toBeSignedSecuredMessage); @@ -1107,7 +1108,7 @@ if (v_subjectAttribute.type_ == e_verification_key) { return f_verifyGnSecuredMessageSignatureWithPublicKey( p_securedMessage, - p_certificate.subject_attributes[v_counter].attribute.key); + valueof(p_certificate.subject_attributes[v_counter].attribute.key)); } } // End of 'for' statement @@ -1315,8 +1316,11 @@ ) return boolean { for (var integer i := 0; i < lengthof(p_cert.validity_restrictions); i := i + 1) { - if (valueof(p_cert).validity_restrictions[i].type_ == p_type) { - p_return := valueof(p_cert).validity_restrictions[i]; +//FIXME RGY Titan doesn't support dot notation after valueof at the moment +// if (valueof(p_cert).validity_restrictions[i].type_ == p_type) { +// p_return := valueof(p_cert).validity_restrictions[i]; + if (valueof(p_cert.validity_restrictions[i].type_) == p_type) { + p_return := valueof(p_cert.validity_restrictions[i]); return true; } } // End of 'for' statement @@ -1344,8 +1348,11 @@ out SubjectAttribute p_return ) return boolean { for (var integer i := 0; i < lengthof(p_cert.subject_attributes); i := i + 1) { - if (valueof(p_cert).subject_attributes[i].type_ == p_type) { - p_return := valueof(p_cert).subject_attributes[i]; +//FIXME RGY Titan doesn't support dot notation after valueof at the moment +// if (valueof(p_cert).subject_attributes[i].type_ == p_type) { +// p_return := valueof(p_cert).subject_attributes[i]; + if (valueof(p_cert.subject_attributes[i].type_) == p_type) { + p_return := valueof(p_cert.subject_attributes[i]); return true; } } @@ -1746,8 +1753,11 @@ in template (value) TwoDLocation p_location ) return boolean { return - (valueof(p_location).longitude != c_maxLongitude + 1) and - (valueof(p_location).latitude != c_maxLatitude + 1); +//FIXME RGY Titan doesn't support dot notation after valueof at the moment +// (valueof(p_location).longitude != c_maxLongitude + 1) and +// (valueof(p_location).latitude != c_maxLatitude + 1); + (valueof(p_location.longitude) != c_maxLongitude + 1) and + (valueof(p_location.latitude) != c_maxLatitude + 1); } // End of function f_isValidTwoDLocation /** @@ -1763,10 +1773,15 @@ in template (value) RectangularRegion p_r2 ) return boolean { return not ( - valueof(p_r2).northwest.longitude > valueof(p_r1).southeast.longitude or - valueof(p_r2).southeast.longitude < valueof(p_r1).northwest.longitude or - valueof(p_r2).southeast.latitude > valueof(p_r1).northwest.latitude or - valueof(p_r2).northwest.latitude < valueof(p_r1).southeast.latitude +//FIXME RGY Titan doesn't support dot notation after valueof at the moment +// valueof(p_r2).northwest.longitude > valueof(p_r1).southeast.longitude or +// valueof(p_r2).southeast.longitude < valueof(p_r1).northwest.longitude or +// valueof(p_r2).southeast.latitude > valueof(p_r1).northwest.latitude or +// valueof(p_r2).northwest.latitude < valueof(p_r1).southeast.latitude + valueof(p_r2.northwest.longitude) > valueof(p_r1.southeast.longitude) or + valueof(p_r2.southeast.longitude) < valueof(p_r1.northwest.longitude) or + valueof(p_r2.southeast.latitude) > valueof(p_r1.northwest.latitude) or + valueof(p_r2.northwest.latitude) < valueof(p_r1.southeast.latitude) ); } // End of function f_isRectangularRegionsIntersected @@ -1778,12 +1793,12 @@ for (v_i := 0; v_i < lengthof(p_region); v_i := v_i + 1) { var PolygonalRegion v_region_base; - f_convertRectangularRegionIntoPolygonalRegion(p_region[v_i], v_region_base); + f_convertRectangularRegionIntoPolygonalRegion(valueof(p_region[v_i]), v_region_base); v_found := false; for (v_j := 0; v_j < lengthof(p_region); v_j := v_j + 1) { if (v_j != v_i) { var PolygonalRegion v_region; - f_convertRectangularRegionIntoPolygonalRegion(p_region[v_j], v_region); + f_convertRectangularRegionIntoPolygonalRegion(valueof(p_region[v_j]), v_region); if (f_isPolygonalRegionInside(v_region, v_region_base) == true) { v_found := true; } @@ -1812,9 +1827,9 @@ for (v_i := 0; v_i < lengthof(p_parent); v_i := v_i + 1) { var PolygonalRegion v_region_parent, v_region; - f_convertRectangularRegionIntoPolygonalRegion(p_parent[v_i], v_region_parent); + f_convertRectangularRegionIntoPolygonalRegion(valueof(p_parent[v_i]), v_region_parent); for (v_j := 0; v_j < lengthof(p_parent); v_j := v_j + 1) { - f_convertRectangularRegionIntoPolygonalRegion(p_region[v_j], v_region); + f_convertRectangularRegionIntoPolygonalRegion(valueof(p_region[v_j]), v_region); if (f_isPolygonalRegionInside(v_region, v_region_parent) == true) { return true; } @@ -1911,24 +1926,26 @@ ) return boolean { var boolean v_ret := false; - select (p_region.region_type) { +//FIXME RGY valeuof is missing: argument of select case is Expression (see $19.3.1) +// select (p_region.region_type) { + select (valueof(p_region.region_type)) { case (e_none) { v_ret := true; } case (e_circle) { - v_ret := f_isLocationInsideCircularRegion(p_region.region.circular_region, p_location); + v_ret := f_isLocationInsideCircularRegion(valueof(p_region.region.circular_region), p_location); } case (e_rectangle) { - v_ret := f_isLocationInsideRectangularRegion(p_region.region.rectangular_region, p_location); + v_ret := f_isLocationInsideRectangularRegion(valueof(p_region.region.rectangular_region), p_location); } case (e_polygon) { - v_ret := f_isLocationInsidePolygonalRegion(p_region.region.polygonal_region, p_location); + v_ret := f_isLocationInsidePolygonalRegion(valueof(p_region.region.polygonal_region), p_location); } case (e_id) { - v_ret := f_isLocationInsideIdentifiedRegion(p_region.region.id_region, p_location); + v_ret := f_isLocationInsideIdentifiedRegion(valueof(p_region.region.id_region), p_location); } case else { - v_ret := f_isLocationInsideOtherRegion(p_region.region.other_region, p_location); + v_ret := f_isLocationInsideOtherRegion(valueof(p_region.region.other_region), p_location); } } Index: Security/LibItsSecurity_Templates.ttcn3 =================================================================== --- Security/LibItsSecurity_Templates.ttcn3 (revision 1312) +++ Security/LibItsSecurity_Templates.ttcn3 (working copy) @@ -42,7 +42,9 @@ * @desc Its AID for Other * @see Draft ETSI TS 103 097 V1.1.14 Clause 7.3 Security profile for DENMs */ - const IntX c_its_aid_Other := PX_OTHER_ITS_AID; +//FIXME RGY definition type is changed to modulepar, as Titan doesn't support dynamic constants +// const IntX c_its_aid_Other := PX_OTHER_ITS_AID; + template IntX c_its_aid_Other := PX_OTHER_ITS_AID; /** * @desc Minimal value of Longitude @@ -2596,11 +2598,11 @@ template (value) ToBeSignedCertificate m_toBeSignedCertificate( in template (value) Certificate p_certificate ) := { - version := p_certificate.version, - signer_info := p_certificate.signer_info, - subject_info := p_certificate.subject_info, - subject_attributes := p_certificate.subject_attributes, - validity_restrictions := p_certificate.validity_restrictions + version := valueof(p_certificate.version), + signer_info := valueof(p_certificate.signer_info), + subject_info := valueof(p_certificate.subject_info), + subject_attributes := valueof(p_certificate.subject_attributes), + validity_restrictions := valueof(p_certificate.validity_restrictions) } // End of template m_toBeSignedCertificate } // End of group profileCertificates Index: SremSsem/LibItsSremSsem_Functions.ttcn =================================================================== --- SremSsem/LibItsSremSsem_Functions.ttcn (revision 1312) +++ SremSsem/LibItsSremSsem_Functions.ttcn (working copy) @@ -18,7 +18,7 @@ // LibIts import from ITS_Container language "ASN.1:1997" all; - import from DSRC language "ASN.1:1997" all; + import from IS_DSRC language "ASN.1:1997" all; // LibItsCommon import from LibItsCommon_TypesAndValues all; @@ -256,9 +256,10 @@ * @desc Setups default configuration * @param p_certificateId The certificate identifier the TA shall use in case of secured IUT */ +//FIXME RGY Titan doesn't support mtc and system clauses yet function f_cfUp( in charstring p_certificateId := PX_CERT_FOR_TS - ) runs on ItsSremSsem system ItsSremSsemSystem { + ) runs on ItsSremSsem /*system ItsSremSsemSystem*/ { map(self:acPort, system:acPort); map(self:utPort, system:utPort); @@ -279,7 +280,8 @@ /** * @desc Deletes default configuration */ - function f_cfDown() runs on ItsSremSsem system ItsSremSsemSystem { +//FIXME RGY Titan doesn't support mtc and system clauses yet + function f_cfDown() runs on ItsSremSsem /*system ItsSremSsemSystem*/ { // Initialise secured mode f_uninitialiseSecuredMode(); Index: SremSsem/LibItsSremSsem_Pixits.ttcn =================================================================== --- SremSsem/LibItsSremSsem_Pixits.ttcn (revision 1312) +++ SremSsem/LibItsSremSsem_Pixits.ttcn (working copy) @@ -16,7 +16,7 @@ import from LibCommon_BasicTypesAndValues all; // LibIts - import from DSRC language "ASN.1:1997" all; + import from IS_DSRC language "ASN.1:1997" all; // LibItsSremSsem import from LibItsSremSsem_TypesAndValues all; Index: SremSsem/LibItsSremSsem_Templates.ttcn =================================================================== --- SremSsem/LibItsSremSsem_Templates.ttcn (revision 1312) +++ SremSsem/LibItsSremSsem_Templates.ttcn (working copy) @@ -19,11 +19,12 @@ 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; + import from IS_DSRC language "ASN.1:1997" all; // LibItsCommon import from LibItsCommon_TypesAndValues all; import from LibItsCommon_Functions all; + import from LibItsCommon_ASN1_NamedNumbers all; // LibItsSremSsem import from LibItsSremSsem_TestSystem all; @@ -91,7 +92,9 @@ * @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( +//FIXME RGY template should be (present), no omit is assigned to it as a whole; Titan currently requires that the modified templte has at least the same restirction as the base +// template SremInd mw_sremIndWithBtpParameters( + template(present) SremInd mw_sremIndWithBtpParameters( template (present) SREM p_sremMsg, in template UInt16 p_btpDestinationPort := *, in template UInt16 p_btpInfo := * @@ -140,6 +143,7 @@ gnTrafficClass := *, btpDestinationPort := *, btpInfo := *, + ssp := *, its_aid := * }; @@ -173,7 +177,9 @@ * @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( +//FIXME RGY template should be (present), no omit is assigned to it as a whole; Titan currently requires that the modified templte has at least the same restirction as the base +// template SsemInd mw_ssemIndWithBtpParameters( + template(present) SsemInd mw_ssemIndWithBtpParameters( template (present) SSEM p_ssemMsg, template UInt16 p_btpDestinationPort := *, template UInt16 p_btpInfo := * @@ -375,19 +381,21 @@ second := PX_SECOND, sequenceNumber := omit, requests := { - m_signalRequestPackage( - m_signalRequest( - m_intersectionReferenceID, - 1, - priorityRequestTypeReserved, - { lane := 1 } - )) }, - requestor := m_requestorDescription(m_vehicleID(f_getIutStationId())), + valueof( + m_signalRequestPackage( + valueof( + m_signalRequest( + m_intersectionReferenceID, + 1, + priorityRequestTypeReserved, + { lane := 1 } + )))) }, + requestor := valueof(m_requestorDescription(m_vehicleID(f_getIutStationId()))), regional := omit } template (value) SignalRequestPackage m_signalRequestPackage( - in template (value) SignalRequest p_request + in template (value) SignalRequest p_request ) := { request := p_request, minute := omit, Index: SremSsem/LibItsSremSsem_TestSystem.ttcn =================================================================== --- SremSsem/LibItsSremSsem_TestSystem.ttcn (revision 1312) +++ SremSsem/LibItsSremSsem_TestSystem.ttcn (working copy) @@ -39,7 +39,9 @@ out AcSecPrimitive; in - AcSecResponse; +//FIXME RGY as discussed booelan responses are replaced by union of responses +// AcSecResponse; + AdapterControlResults } // end AdapterControlPort /** @@ -49,7 +51,9 @@ out UtInitialize, UtSremTrigger, UtSremUpdate; in - UtInitializeResult, UtSremTriggerResult, UtSremUpdateResult, UtSremEventInd , UtSsemEventInd; +//FIXME RGY as discussed, boolean results are replaced by union of booleans +// UtInitializeResult, UtSremTriggerResult, UtSremUpdateResult, UtSremEventInd , UtSsemEventInd; + UtCommonResults, UtSremResults, UtSremUpdateResult, UtSremEventInd , UtSsemEventInd; } // end UpperTesterPort } // end portDefinitions Index: SremSsem/LibItsSremSsem_TypesAndValues.ttcn =================================================================== --- SremSsem/LibItsSremSsem_TypesAndValues.ttcn (revision 1312) +++ SremSsem/LibItsSremSsem_TypesAndValues.ttcn (working copy) @@ -19,7 +19,7 @@ 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; + import from IS_DSRC language "ASN.1:1997" all; // LibItsCommon import from LibItsCommon_TypesAndValues all; @@ -42,7 +42,13 @@ /** * @desc Upper Tester result message of request of triggering of an event at IUT */ - type boolean UtSremTriggerResult; +//FIXME RGY as discussed, boolean results are replaced by unions + type union UtSremResults { + boolean utSremTriggerResult, + boolean utSremUpdateResult + } +// type UtSremResults.utSremTriggerResult UtSremTriggerResult; + type UtSremResults.utSremTriggerResult UtSremTriggerResult; /** * @desc Upper Tester message to request updating of an event at IUT @@ -55,7 +61,9 @@ /** * @desc Upper Tester result message of request of triggering of an event at IUT */ - type boolean UtSremUpdateResult; +//FIXME RGY As discussed, type is changed to a type derived from UpperTesterResultTypes +// type boolean UtSremUpdateResult; + type UtSremResults.utSremUpdateResult UtSremUpdateResult; /** * @desc Upper Tester message to check event/status at IUT Index: V2G/LibItsV2G_Templates.ttcn =================================================================== --- V2G/LibItsV2G_Templates.ttcn (revision 1312) +++ V2G/LibItsV2G_Templates.ttcn (working copy) @@ -7,18 +7,22 @@ */ module LibItsV2G_Templates { - // LibCommon - import from LibCommon_BasicTypesAndValues all; - import from LibCommon_DataStrings all; - - // LibIts + // LibCommon + import from LibCommon_BasicTypesAndValues all; + import from LibCommon_DataStrings all; + + // LibItsCommon + import from LibItsCommon_ASN1_NamedNumbers all; + + // LibItsV2G import from LibItsV2G_TestSystem all; import from LibItsV2G_TypesAndValues all; import from LibItsV2G_Pixits all; + import from LibItsV2G_TypeAliases all; //XSD - import from iso_15118_2_2010_MsgDef all; - import from iso_15118_2_2010_MsgDataTypes all; + import from urn_iso_15118_2_2010_MsgDef all; + import from urn_iso_15118_2_2010_MsgDataTypes all; group v2gPrimitivesTemplates { @@ -26,8 +30,8 @@ group utPrimitives { - /** - * @desc Initializes the V2G IUT. + /** + * @desc Initializes the V2G IUT. */ template (value) UtInitialize m_v2gInitialize := { utV2Ginitialize := { @@ -38,7 +42,9 @@ * @desc Upper Tester template for checking that V2G payload has been transmitted to upper layer * @param p_payload Payload to be checked */ - template (value) UtEvent m_checkPayload(in V2G_Message.Body p_body) := { +//FIXME RGY by standard conversion all field names are lowercase +// template (value) UtEvent m_checkPayload(in V2G_Message.Body p_body) := { + template (value) UtEvent m_checkPayload(in V2G_Message.body p_body) := { utV2Gevent := { v2gBody := p_body } @@ -92,6 +98,7 @@ */ template V2G_Message mw_v2gMsg_sessionRequest (in template (present) sessionIDType_TYPE p_sId, in template (present) evccIDType_TYPE p_evccId ):= { +/*FIXME RGY by standard conversion all field names are lowercase Header := { SessionID := p_sId, Notification := omit, @@ -99,6 +106,14 @@ }, Body := { BodyElement := omit//p_evccId +*/ + header := { + sessionID := p_sId, + notification := omit, + signature_ := omit + }, + body := { + bodyElement := omit//p_evccId } } Index: V2G/LibItsV2G_TestSystem.ttcn =================================================================== --- V2G/LibItsV2G_TestSystem.ttcn (revision 1312) +++ V2G/LibItsV2G_TestSystem.ttcn (working copy) @@ -16,8 +16,10 @@ import from LibItsV2G_TypesAndValues all; //XSD - import from iso_15118_2_2010_MsgDef all; - import from iso_15118_2_2010_MsgDataTypes all; + import from urn_iso_15118_2_2010_MsgDef all; + import from urn_iso_15118_2_2010_MsgDataTypes all; + + import from V2G_typeAliases all; group portDefinitions { Index: V2G/LibItsV2G_TypesAndValues.ttcn =================================================================== --- V2G/LibItsV2G_TypesAndValues.ttcn (revision 1312) +++ V2G/LibItsV2G_TypesAndValues.ttcn (working copy) @@ -13,84 +13,85 @@ // LibIts //import from iso_15118_2_2010_MsgBody all; //language "XSD" all with {extension "File:V2G_CI_MsgBody.xsd" }; - import from iso_15118_2_2010_AppProtocol all;//language "XSD" all with {extension "File:XSD/V2G_CI_AppProtocol.xsd" }; + import from urn_iso_15118_2_2010_AppProtocol all;//language "XSD" all with {extension "File:XSD/V2G_CI_AppProtocol.xsd" }; //import from iso_15118_2_2010_MsgDataTypes all;//language "XSD" all with {extension "File:XSD/V2G_CI_MsgDataTypes.xsd" }; - import from iso_15118_2_2010_MsgDef all;//language "XSD" all with {extension "File:XSD/V2G_CI_MsgDef.xsd" }; + import from urn_iso_15118_2_2010_MsgDef all;//language "XSD" all with {extension "File:XSD/V2G_CI_MsgDef.xsd" }; + //import from iso_15118_2_2010_MsgHeader all;//language "XSD" all with {extension "File:XSD/V2G_CI_MsgHeader.xsd" }; //import from org_w3_www__2000_09_xmldsig all;//language "XSD" all with {extension "File:XSD/xmldsig-core-schema.xsd" }; group v2gPdus { - group SDPMessages { - + group SDPMessages { + /** * @desc SDP (Session Discovery Protocol) message description */ type record Sdp_Message { - Sdp_Header sdpHeader, + Sdp_Header sdpHeader, Sdp_Payload sdpPayload - } + } } } // end v2gPdus group v2gHeaders { - - group SDPMessages { - + + group SDPMessages { + /** * @desc SDP (Session Discovery Protocol) Header description */ - type record Sdp_Header { - Oct1 protocolVersion, - Oct1 inverseProtocolVersion, - Oct2 payloadType, + type record Sdp_Header { + Oct1 protocolVersion, + Oct1 inverseProtocolVersion, + Oct2 payloadType, UInt16 payloadLength - } + } } } // end v2gHeaders - group v2gPayload { - - group SDPMessages { - + group v2gPayload { + + group SDPMessages { + /** * @desc SDP (Session Discovery Protocol) Payload description */ - type union Sdp_Payload { - Sdp_Request sdpRequest, - Sdp_Response sdpResponse - } - + type union Sdp_Payload { + Sdp_Request sdpRequest, + Sdp_Response sdpResponse + } + /** * @desc SDP (Session Discovery Protocol) Request message description - */ - type record Sdp_Request - { - Oct1 security, - Oct1 transportProtocol - } - + */ + type record Sdp_Request + { + Oct1 security, + Oct1 transportProtocol + } + /** * @desc SDP (Session Discovery Protocol) Response message description - */ - type record Sdp_Response - { - Ipv6Address seccIPAddress, // IPv6 - UInt16 seccPort, - Oct1 security, + */ + type record Sdp_Response + { + Ipv6Address seccIPAddress, // IPv6 + UInt16 seccPort, + Oct1 security, Oct1 transportProtocol - } + } } - } //end v2gPayload - - group IPAddress - { - /** - * @desc IPv6 Address - */ - type Oct16 Ipv6Address; + } //end v2gPayload + + group IPAddress + { + /** + * @desc IPv6 Address + */ + type Oct16 Ipv6Address; } // end IPAddress group acPrimitives { @@ -180,42 +181,45 @@ * @desc Upper Tester message generating V2G message */ type union UtV2Gevent { - V2G_Message.Header v2gHeader, - V2G_Message.Body v2gBody +//FIXME RGY by standard conversion all field names are lowercase +// V2G_Message.Header v2gHeader, +// V2G_Message.Body v2gBody + V2G_Message.header v2gHeader, + V2G_Message.body v2gBody } } // end utPrimitives - - group sdpValues { - - const Oct1 c_protocolVersion1 := '01'O; - const Oct1 c_inverseProtocolVersion1 := 'FE'O; - - const Oct2 c_sdpRequestMessagePayloadType := '9000'O; - const Oct2 c_sdpResponseMessagePayloadType := '9001'O; - - const UInt16 c_sdpRequestPayloadLength := 2; - const UInt16 c_sdpResponsePayloadLength := 18; - - const Oct1 c_securedwithTLS := '00'O; - const Oct1 c_noTransportLayerSecurity := '10'O; - - const Oct1 c_transportProtocolTCP := '00'O; - const Oct1 c_transportProtocolUDP := '10'O; - - const UInt16 c_V2G_UDP_SDP_SERVER := 15118; - - const integer c_maxNbrSdpRequestRetrans := 4; - const integer c_maxNbrConsecutiveSdpRequest := 5; - - } // end sdpValues - - group timerTimeouts - { - const float c_v2g_seccSequenceTimeout := 60.0; - const float c_v2g_evccSequenceTimeout := 40.0; - - const float c_v2g_sdpRetransmissionTimeout := 0.25; + + group sdpValues { + + const Oct1 c_protocolVersion1 := '01'O; + const Oct1 c_inverseProtocolVersion1 := 'FE'O; + + const Oct2 c_sdpRequestMessagePayloadType := '9000'O; + const Oct2 c_sdpResponseMessagePayloadType := '9001'O; + + const UInt16 c_sdpRequestPayloadLength := 2; + const UInt16 c_sdpResponsePayloadLength := 18; + + const Oct1 c_securedwithTLS := '00'O; + const Oct1 c_noTransportLayerSecurity := '10'O; + + const Oct1 c_transportProtocolTCP := '00'O; + const Oct1 c_transportProtocolUDP := '10'O; + + const UInt16 c_V2G_UDP_SDP_SERVER := 15118; + + const integer c_maxNbrSdpRequestRetrans := 4; + const integer c_maxNbrConsecutiveSdpRequest := 5; + + } // end sdpValues + + group timerTimeouts + { + const float c_v2g_seccSequenceTimeout := 60.0; + const float c_v2g_evccSequenceTimeout := 40.0; + + const float c_v2g_sdpRetransmissionTimeout := 0.25; } } with {