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<lengthof(vc_componentTable); i:=i+1) {
                 if (vc_componentTable[i].componentName == p_componentName) {
-                    if (isvalue(vc_componentTable[i].gnComponent)) {
-                        v_return := valueof(vc_componentTable[i].gnComponent);
-                    }
-                    else {
-                        testcase.stop(__SCOPE__ & " can not handle omitted GN components");
-                    }
+                    v_return := vc_componentTable[i].gnComponent;
                 }
             }
             
@@ -910,8 +905,9 @@
                 position := p_positionValue
             };
         }
-        
-        function @deterministic f_fillTimestamp(inout LongPosVector v_vector) 
+//FIXME RGY Titan doesn't support @deterministic yet   
+//        function @deterministic f_fillTimestamp(inout LongPosVector v_vector) 
+        function f_fillTimestamp(inout LongPosVector v_vector) 
         return LongPosVector {
             if (v_vector.timestamp_ == 0) {
                 v_vector.timestamp_ := f_computeGnTimestamp();
@@ -938,7 +934,9 @@
                 }
             }
             
-/*Spirent removed*/            
+            if (isbound(v_return) and (v_return.timestamp_ == 0)) {
+                v_return.timestamp_ := f_computeGnTimestamp();
+            }
             return v_return;
         }
         /**
@@ -1587,12 +1585,12 @@
                 var LongPosVector v_repDstPosVector;
                 
                 [vc_gnDefaultActive] a_receiveLsRequest(p_reqSeqNumber, p_mid, v_repDstPosVector) {
-                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(m_geoNwPdu(
+                    f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(m_geoNwPdu(
                         m_geoNwLsReplyPacket(
                             p_repSrcPosVector,
                             f_longPosVector2ShortPosVector(v_repDstPosVector),
                             vc_localSeqNumber
-                    ))));
+                    )))));
                 }
             }
           
@@ -1689,12 +1687,14 @@
             var GeoNetworkingInd v_msg;
             
             f_sendGeoNetMessage(
-                m_geoNwReq_linkLayerBroadcast(
-                    m_geoNwPdu(
-                        m_geoNwLsRequestPacket(
-                            p_reqSrcPosVector,
-                            p_reqSeqNumber,
-                            p_gnAddress
+                valueof(
+                    m_geoNwReq_linkLayerBroadcast(
+                        m_geoNwPdu(
+                            m_geoNwLsRequestPacket(
+                                p_reqSrcPosVector,
+                                p_reqSeqNumber,
+                                p_gnAddress
+                            )
                         )
                     )
                 )
@@ -2520,7 +2520,9 @@
                                             mw_geoNwSecPdu(
                                                 p_InSecMsg,
                                                 mw_geoNwAnyPacket_withPayload(?)
-                                        ))) -> 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 {
