diff --git a/javasrc/codec/org/etsi/ttcn/codec/its/uppertester/UtPduId.java b/javasrc/codec/org/etsi/ttcn/codec/its/uppertester/UtPduId.java index cbbec82d0dac12ed0a3438a6c4050381c8fe007a..12f61c03debbc52520ae514665148c721d20bd76 100644 --- a/javasrc/codec/org/etsi/ttcn/codec/its/uppertester/UtPduId.java +++ b/javasrc/codec/org/etsi/ttcn/codec/its/uppertester/UtPduId.java @@ -15,6 +15,8 @@ public enum UtPduId { UtInitializeResult(0x01), UtChangePosition(0x02), UtChangePositionResult(0x03), + UtChangePseudonym(0x04), + UtChangePseudonymResult(0x05), UtResult(0x24), // FIXME: obsolete /* From LibItsDenm_TypesAndValues */ @@ -39,8 +41,6 @@ public enum UtPduId { UtCamTrigger_changeHeading(0x34), UtCamTrigger_setDriveDirection(0x35), UtCamTrigger_changeYawRate(0x36), - UtCamTrigger_changePosition(0x37),// FIXME: obsolete - UtCamTrigger_checkLdm(0x38),// FIXME: obsolete UtCamTrigger_setStationType(0x39), UtCamTrigger_setVehicleRole(0x3a), UtCamTrigger_setEmbarkationStatus(0x3b), @@ -83,6 +83,10 @@ public enum UtPduId { UtSec_setCertificate(0x93), UtSec_setPrivateKey(0x94), UtSec_setTrustPoint(0x95), + + /* From LibItsMapSpat_TypesAndValues */ + UtMapSpatTrigger(0xA0), + UtMapSpatTriggerResult(0xA1), /* Reserved */ reserved(0xFF); diff --git a/ttcn/AtsCAM/ItsCam_TestCases.ttcn b/ttcn/AtsCAM/ItsCam_TestCases.ttcn index a8116f0fda577b44bdd7275a98c8b85c7d73f277..bd1459bf8e52503f5aaeea23dca0d169f8fbd7f6 100644 --- a/ttcn/AtsCAM/ItsCam_TestCases.ttcn +++ b/ttcn/AtsCAM/ItsCam_TestCases.ttcn @@ -83,11 +83,11 @@ module ItsCam_TestCases { [] camPort.receive(mw_camInd ( mw_camMsg_any )){ tc_ac.stop; log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: CAM message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -146,16 +146,16 @@ module ItsCam_TestCases { [] camPort.receive(mw_camInd ( mw_camMsg_LF_any )){ tc_ac.stop; log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] camPort.receive(mw_camInd ( mw_camMsg_any )){ tc_ac.stop; log("*** " & testcasename() & ": FAIL: Expected CAM message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: CAM message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -231,7 +231,7 @@ module ItsCam_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Initial conditions: CAM message not received ***"); - f_selfOrClientSyncAndVerdictPreamble("error", e_timeout); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } } @@ -261,7 +261,7 @@ module ItsCam_TestCases { tc_ac.stop; if(v_nextCamWithLF == true) { log("*** " & testcasename() & ": FAIL: No LowFrequency container in received CAM ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": INFO: CAM retransmission w/o LowFrequency container ***"); @@ -276,12 +276,12 @@ module ItsCam_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: CAM message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } } log("*** " & testcasename() & ": PASS: Generation of CAM messages including lowFrequencyContainer was successful ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poDefault(); @@ -347,11 +347,11 @@ module ItsCam_TestCases { [] camPort.receive(mw_camInd ( mw_camMsg_SVC_any )){ tc_ac.stop; log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: CAM message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -434,7 +434,7 @@ module ItsCam_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Initial conditions: CAM message not received ***"); - f_selfOrClientSyncAndVerdictPreamble("error", e_timeout); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } } @@ -464,7 +464,7 @@ module ItsCam_TestCases { tc_ac.stop; if(v_nextCamWithSVC == true) { log("*** " & testcasename() & ": FAIL: No SpecialVehicle container in received CAM ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": INFO: CAM retransmission w/o SpecialVehicle container ***"); @@ -479,12 +479,12 @@ module ItsCam_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: CAM message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } } log("*** " & testcasename() & ": PASS: Generation of CAM messages including SpecialVehicleContainer was successful ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poDefault(); @@ -510,7 +510,7 @@ module ItsCam_TestCases { if (lengthof(p_utTriggers) != lengthof(p_camPdus)) { log("*** " & testcasename() & ": INCONC: Invalid testcase configuration: Number of event triggers and expected CAM messages differs ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } for (v_cnt:=0; v_cnt + * Pics Selection: PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * IUT sends a CAM + * } + * then { + * the IUT does not send another CAM afterbefore 1s + * } + * } + * + * + * @version 0.0.2 + * @see ETSI TS 102 868-2 v0.0.2 TP/CAM/MSD/GFQ/BV-08 + * @reference ETSI EN 302 637-2 , clause 6.1.4 + */ + testcase TC_CAM_MSD_GFQ_BV_08() runs on ItsCam system ItsCamSystem { + + // Local constants + const float c_minTime := 0.95; + const float c_maxTime := 1.05; + + // Local variables + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + camPort.clear; + tc_ac.start; + alt { + [] camPort.receive(mw_camInd ( mw_camMsg_any )){ + tc_ac.stop; + log("*** " & testcasename() & ": INFO: Initial conditions: First CAM message received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CAM message not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } + + // Test Body + tc_ac.start; + alt { + [] camPort.receive(mw_camInd ( mw_camMsg_any )){ + if ( ( tc_ac.read*1000.0 > c_minTime ) and ( tc_ac.read*1000.0 < c_maxTime )) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: CAM message received in time***"); + f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_success); + } + else { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: CAM message not received in time***"); + f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_error); + } + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": FAIL: CAM message not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_CAM_MSD_GFQ_BV_08 + } // end group camGenerationFrequency } // end group camMessageDissemination @@ -4102,6 +4176,7 @@ module ItsCam_TestCases { // Local variables var CamReq v_camReq; + var integer i; // Test control @@ -4126,9 +4201,18 @@ module ItsCam_TestCases { ); camPort.send( v_camReq ) ; - f_utCheckEvent(m_checkLdm(v_camReq.msgOut)); - log("*** " & testcasename() & ": PASS: CAM message received at LDM ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_sleep(PX_TNOAC); + for(i:=0; i < lengthof(vc_utEvents) and not match(v_camReq, vc_utEvents[i].camMsg); i:=i+1) { + // empty on purpose + } + if(i < lengthof(vc_utEvents)) { + log("*** " & testcasename() & ": FAIL: CAM was transmitted to upper layer ***"); + f_clientSyncAndVerdict(c_tbDone, e_error); + } + else { + log("*** " & testcasename() & ": PASS: CAM was not transmitted to upper layer ***"); + f_clientSyncAndVerdict(c_tbDone, e_success); + } // Postamble f_poDefault(); diff --git a/ttcn/AtsDENM/ItsDenm_TestCases.ttcn b/ttcn/AtsDENM/ItsDenm_TestCases.ttcn index 76183c5b6f21ac77e5af70488ea9d046e557306a..9a724d403ee85d1f7d197f532cb8d7de4558ea35 100644 --- a/ttcn/AtsDENM/ItsDenm_TestCases.ttcn +++ b/ttcn/AtsDENM/ItsDenm_TestCases.ttcn @@ -1,5 +1,5 @@ /** - * @author ETSI / STF449 + * @author ETSI / STF484 * @version $URL$ * $Id$ * @desc DENM Testcases (TS 102 869-2 V<2.1.1> (<2012-09>)) @@ -11,7 +11,7 @@ module ItsDenm_TestCases { import from LibCommon_Sync all; import from LibCommon_Time all; import from LibCommon_VerdictControl all; - + import from LibCommon_BasicTypesAndValues all; // LibIts import from LibItsCommon_Functions all; @@ -90,16 +90,16 @@ module ItsDenm_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received a DENM with incorrect header information. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -168,16 +168,16 @@ module ItsDenm_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received a DENM with incorrect location container information. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -246,16 +246,16 @@ module ItsDenm_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received a DENM with incorrect header and management information. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -266,7 +266,7 @@ module ItsDenm_TestCases { } // end TC_DEN_EVGN_BV_01 /** - * @desc Check that a new ActionID value is assigned for each generated DENM + * @desc Check that a new ActionID value is assigned for each newly generated DENM *
        
            * PICS Selection: none 
            * Initial conditions:
@@ -289,7 +289,7 @@ module ItsDenm_TestCases {
            * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVGN/BV-02, ETSI EN 302 637-3, clause 6.1.1 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVGN/BV-02, ETSI EN 302 637-3, clause 6.1.1.1 */ testcase TC_DEN_EVGN_BV_02() runs on ItsDenm system ItsDenmSystem { @@ -334,11 +334,11 @@ module ItsDenm_TestCases { } if (v_success==true) { log("*** " & testcasename() & ": PASS: actionID field indicating unused value. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: actionID field indicating used value. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } // Postamble @@ -350,7 +350,7 @@ module ItsDenm_TestCases { } // end TC_DEN_EVGN_BV_02 /** - * @desc Check that newly created ActionID contains the originator ITS-S ID + * @desc Check that a newly created ActionID contains the StationID of the originating ITS-S that detected the event *
        
            * PICS Selection: none 
            * Initial conditions:
@@ -366,14 +366,14 @@ module ItsDenm_TestCases {
            *          the IUT sends a valid DENM
            *              containing management container
            *                  containing actionID
-           *                      containing originatorStationID
+           *                      containing originatingStationID
            *                          indicating its own StationID
            *      }
            *  }
            * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVGN/BV-03, ETSI EN 302 637-3, clause 6.1.1 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVGN/BV-03, ETSI EN 302 637-3, clause 6.1.1.1 */ testcase TC_DEN_EVGN_BV_03() runs on ItsDenm system ItsDenmSystem { @@ -411,16 +411,16 @@ module ItsDenm_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -499,16 +499,16 @@ module ItsDenm_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -542,7 +542,7 @@ module ItsDenm_TestCases { * * * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVGN/BV-05, ETSI EN 302 637-3, clause 8.1.1.2 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVGN/BV-05, ETSI EN 302 637-3, clause 8.2.1.3 */ testcase TC_DEN_EVGN_BV_05() runs on ItsDenm system ItsDenmSystem { @@ -594,16 +594,16 @@ module ItsDenm_TestCases { tc_ac.stop; v_actionIds[lengthof(v_actionIds)] := v_denmInd.msgIn.denm.management.actionID; log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -616,114 +616,7 @@ module ItsDenm_TestCases { } // end TC_DEN_EVGN_BV_05 /** - * @desc Check that on startup, sequenceNumber is initialized with latest used value - *
        
-           * PICS Selection: none 
-           * Initial conditions:
-           *  with {
-           *      the IUT being in the "initial state"
-           *      and the IUT having generated several events
-           *      and the IUT having generated its last DENM
-           *          containing management container
-           *              containing actionID
-           *                  containing sequenceNumber
-           *                      indicating SEQ1
-           *      and the IUT having been restarted
-           *  }
-           * Expected behaviour:
-           *  ensure that {
-           *      when { 
-           *          the IUT is requested to generate a new event
-           *      }
-           *      then {
-           *          the IUT sends a valid DENM
-           *              containing management container
-           *                  containing actionID
-           *                      containing sequenceNumber
-           *                          indicating SEQ1 + 1
-           *      }
-           *  }
-           * 
- * - * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVGN/BV-06, ETSI EN 302 637-3, clause 8.1.1.1 - */ - testcase TC_DEN_EVGN_BV_06() runs on ItsDenm system ItsDenmSystem { - - // Local variables - var template (value) SituationContainerList v_situations := { - m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable), - m_situation(c_causeAccident, c_subCauseCode_Unavailable), - m_situation(c_causeRoadworks, c_subCauseCode_Unavailable), - m_situation(c_causeSlowVehicle, c_subCauseCode_Unavailable) - }; - var SequenceNumber v_sequenceNumber; - var ActionIDList v_actionIds; - var DenmInd v_denmInd; - var integer i; - - // Test control - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(); - for (i := 0; i < lengthof(v_situations) - 1; i:=i + 1) { - f_utTriggerEvent(m_utTriggerEvent(v_situations[i], m_denmLocation_zeroDelta)); - f_awaitDenMessage(mw_denmInd(mw_anyDenmPdu), v_denmInd); - v_actionIds[i] := v_denmInd.msgIn.denm.management.actionID; - } - //save the last sequence number - v_sequenceNumber := v_denmInd.msgIn.denm.management.actionID.sequenceNumber; - //Restart the IUT - f_utInitializeIut(m_denmInitialize); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - f_utTriggerEvent(m_utTriggerEvent(v_situations[lengthof(v_situations) - 1], m_denmLocation_zeroDelta)); - - tc_ac.start; - alt { - [] denmPort.receive( - mw_denmInd( - mw_denmPdu( - mw_denm( - mw_denmMgmtConWithActionID( - mw_actionId(-, f_increaseSequenceNumber(v_sequenceNumber)) - ) - ) - ) - ) - ) -> value v_denmInd { - tc_ac.stop; - v_actionIds[lengthof(v_actionIds)] := v_denmInd.msgIn.denm.management.actionID; - log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); - } - } - - // Postamble - for (i := 0; i < lengthof(v_actionIds); i:=i + 1) { - f_poCancelEvent(e_iut, v_actionIds[i]); - } - f_cfDown(); - - } // end TC_DEN_EVGN_BV_06 - - /** - * @desc Check that sequenceNumber is incremented and set to an unused value each time an event is detected + * @desc Check that sequenceNumber is set to a next unused value each time an event is detected *
        
            * PICS Selection: none 
            * Initial conditions:
@@ -753,7 +646,7 @@ module ItsDenm_TestCases {
            * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVGN/BV-07, ETSI EN 302 637-3, clauses 6.1.1, 8.1.1.1 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVGN/BV-07, ETSI EN 302 637-3, clauses 6.1.1.1, 8.2.1.2 */ testcase TC_DEN_EVGN_BV_07() runs on ItsDenm system ItsDenmSystem { @@ -806,16 +699,16 @@ module ItsDenm_TestCases { tc_ac.stop; v_actionId := v_denmInd.msgIn.denm.management.actionID; log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -826,7 +719,7 @@ module ItsDenm_TestCases { } // end TC_DEN_EVGN_BV_07 /** - * @desc Check that sequenceNumber is incremented and set to an unused value each time an event is detected + * @desc Check that sequenceNumber is set to a next unused value each time an event is detected (Sequence number wrap around) *
        
            * PICS Selection: none 
            * Initial conditions:
@@ -857,7 +750,7 @@ module ItsDenm_TestCases {
            * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVGN/BV-08, ETSI EN 302 637-3, clauses 6.1.1, 8.1.1.1 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVGN/BV-08, ETSI EN 302 637-3, clauses 6.1.1.1, 8.2.1.2 */ testcase TC_DEN_EVGN_BV_08() runs on ItsDenm system ItsDenmSystem { @@ -904,16 +797,16 @@ module ItsDenm_TestCases { ) -> value v_denmInd { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -925,19 +818,18 @@ module ItsDenm_TestCases { } // end TC_DEN_EVGN_BV_08 /** - * @desc Check that the sequence number restarts from 0 when it reaches its range limit + * @desc Check that actionID are generated using newly assigned stationID when a pseudonym change occurs *
        
            * PICS Selection: none 
            * Initial conditions:
            *  with {
            *      the IUT being in the "initial state"
            *      and the IUT having generated several events
-           *      and the IUT having generated its last DENM
            *          containing management container
            *              containing actionID
-           *                  containing sequenceNumber
-           *                      indicating 65535
-           *      and no active event being associated with sequenceNumber 0
+           *                  containing originatingStationID
+           *                      indicating STATION_ID_1
+           *      and the IUT having changed its StationID
            *  }
            * Expected behaviour:
            *  ensure that {
@@ -948,22 +840,21 @@ module ItsDenm_TestCases {
            *          the IUT sends a valid DENM
            *              containing management container
            *                  containing actionID
-           *                      containing sequenceNumber
-           *                          indicating 0
+           *                      containing originatingStationID
+           *                          indicating its new StationID
            *      }
            *  }
            * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVGN/BV-09, ETSI EN 302 637-3, clause 6.1.1 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVGN/BV-10, ETSI EN 302 637-3, clauses 6.1.1.2 */ - testcase TC_DEN_EVGN_BV_09() runs on ItsDenm system ItsDenmSystem { + testcase TC_DEN_EVGN_BV_10() runs on ItsDenm system ItsDenmSystem { // Local variables var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); - var SequenceNumber v_firstSequenceNumber, v_lastSequenceNumber; + var StationID v_stationId; var DenmInd v_denmInd; - var integer i; // Test control @@ -974,55 +865,41 @@ module ItsDenm_TestCases { // Preamble f_prInitialState(); - f_utTriggerEvent(m_utTriggerEvent(v_situation, m_denmLocation_zeroDelta)); - f_awaitDenMessage(mw_denmInd(mw_anyDenmPdu), v_denmInd); - v_firstSequenceNumber := v_denmInd.msgIn.denm.management.actionID.sequenceNumber; - f_poCancelEvent(e_iut, v_denmInd.msgIn.denm.management.actionID); - v_lastSequenceNumber := v_firstSequenceNumber; - while (v_lastSequenceNumber!=65535) { - f_utTriggerEvent(m_utTriggerEvent(v_situation, m_denmLocation_zeroDelta)); - f_awaitDenMessage(mw_denmInd(mw_anyDenmPdu), v_denmInd); - v_lastSequenceNumber := v_denmInd.msgIn.denm.management.actionID.sequenceNumber; - f_poCancelEvent(e_iut, v_denmInd.msgIn.denm.management.actionID); - } f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body + v_stationId := f_getIutStationId ( ); + f_utChangePseudonym ( m_utChangePseudonym ); f_utTriggerEvent(m_utTriggerEvent(v_situation, m_denmLocation_zeroDelta)); tc_ac.start; alt { - [] denmPort.receive( - mw_denmInd( - mw_denmPdu( - mw_denm( - mw_denmMgmtConWithActionID( - mw_actionId(-, 0) - ) - ) - ) - ) - ) -> value v_denmInd { + [] denmPort.receive ( mw_denmInd ( mw_denmPdu ( mw_denm ( mw_anyDenmMgmtCon ) ) ) ) -> value v_denmInd { tc_ac.stop; - log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + if ( v_denmInd.msgIn.denm.management.actionID.originatingStationID != v_stationId ) { + log("*** " & testcasename() & ": PASS: Successfully received expected DENM - Pseudonym changed. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: received expected DENM - Pseudonym not changed. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // Postamble - f_poCancelEvent(e_iut, m_actionId(0)); f_cfDown(); - } // end TC_DEN_EVGN_BV_09 + } // end TC_DEN_EVGN_BV_10 } // end denEventGeneration @@ -1089,16 +966,16 @@ module ItsDenm_TestCases { ) -> value v_denmInd { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1109,7 +986,7 @@ module ItsDenm_TestCases { } // end TC_DEN_EVUP_BV_01 /** - * @desc Check that the actionID is not changed by DENM update + * @desc Check that the actionID is not changed by DENM update, as long as the stationID of the originating ITS-S remains unchanged *
        
            * PICS Selection: none 
            * Initial conditions:
@@ -1119,6 +996,7 @@ module ItsDenm_TestCases {
            *          containing management container
            *              containing actionID
            *                  indicating ACTION_ID1
+           * 	  and the IUT not having changed its stationID
            *  }
            * Expected behaviour:
            *  ensure that {
@@ -1178,16 +1056,16 @@ module ItsDenm_TestCases {
                   ) -> value v_denmInd {
                       tc_ac.stop;
                       log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***");
-                      f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                      f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                   }
                   [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) {
                       tc_ac.stop;
                       log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***");
-                      f_selfOrClientSyncAndVerdict("error", e_error);
+                      f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                   }
                   [] tc_ac.timeout {
                       log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
-                      f_selfOrClientSyncAndVerdict("error", e_timeout);
+                      f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                   }
               }
               
@@ -1198,7 +1076,7 @@ module ItsDenm_TestCases {
           } // end TC_DEN_EVUP_BV_02
           
           /**
-           * @desc    Check that referenceTime is updated and superior to previous value for each DENM update
+           * @desc    Check that referenceTime is set to the current time when generating a DENM for an updated eventCheck 
            * 
        
            * PICS Selection: none 
            * Initial conditions:
@@ -1222,7 +1100,7 @@ module ItsDenm_TestCases {
            *                  containing actionID
            *                      indicating ACTION_ID1
            *                  and containing referenceTime
-           *                      indicating REFERENCETIME2 > REFERENCETIME1
+           *                      indicating CLT > REFERENCETIME1
            *      }
            *  }
            * 
@@ -1234,7 +1112,8 @@ module ItsDenm_TestCases { // Local variables var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); - var TimestampIts v_referenceTime1; + var TimestampIts v_referenceTime1 , v_timestampIts , v_msgtimestamp; + var Int16 v_diff; var ActionID v_actionId; var DenmInd v_denmInd; @@ -1272,23 +1151,25 @@ module ItsDenm_TestCases { ) ) -> value v_denmInd { tc_ac.stop; - if(v_denmInd.msgIn.denm.management.referenceTime > v_referenceTime1) { + v_timestampIts := f_getCurrentTime(); + v_msgtimestamp := v_denmInd.msgIn.denm.management.referenceTime; + if ( ( ( v_timestampIts + v_diff ) > v_msgtimestamp ) and ( v_msgtimestamp > v_referenceTime1 ) ) { log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: ReferenceTime not updated correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1299,14 +1180,14 @@ module ItsDenm_TestCases { } // end TC_DEN_EVUP_BV_03 /** - * @desc Check that DEN Basic Service does not send any update DENM if actionID is not in originator ITS-S message table + * @desc Check that DEN Basic Service does not send any update DENM if actionID is not in originating ITS-S message table *
        
            * PICS Selection: none 
            * Initial conditions:
            *  with {
            *      the IUT being in the "initial state"
            *      and the IUT having generated an event
-           *      and the IUT not having sent event being associated with actionID ACTION_ID1
+           *      and the IUT not having sent an event being associated with actionID ACTION_ID1
            *          containing originatorStationID
            *              indicating its own stationID
            *          and containing sequenceNumber
@@ -1370,16 +1251,16 @@ module ItsDenm_TestCases {
                   ) -> value v_denmInd {
                       tc_ac.stop;
                       log("*** " & testcasename() & ": FAIL: Received updated DENM for the actionId which is not in originator ITS-S message table. ***");
-                      f_selfOrClientSyncAndVerdict("error", e_error);
+                      f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                   }
                   [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) {
                       tc_ac.stop;
                       log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***");
-                      f_selfOrClientSyncAndVerdict("error", e_error);
+                      f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                   }
                   [] tc_ac.timeout {
                       log("*** " & testcasename() & ": PASS: No DENM was sent. ***");
-                      f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                      f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                   }
               }
               
@@ -1419,14 +1300,14 @@ module ItsDenm_TestCases {
            *              containing management container
            *                  containing actionID
            *                      indicating ACTION_ID1
-           *                  and containing isCancellation
-           *                     indicating value TRUE
+           *                  and containing termination
+           *                     indicating value isCancellation
            *      }
            *  }
            * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVTR/BV-01, ETSI EN 302 637-3, clauses 6.1.2.4, 8.1.1.2 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVTR/BV-01, ETSI EN 302 637-3, clauses 6.1.2.4, 8.2.1.3 */ testcase TC_DEN_EVTR_BV_01() runs on ItsDenm system ItsDenmSystem { @@ -1444,20 +1325,8 @@ module ItsDenm_TestCases { // Preamble f_prInitialState(); - f_utTriggerEvent(m_utTriggerEvent(v_situation, m_denmLocation_zeroDelta, c_validityDuration_10sec)); - f_awaitDenMessage( - mw_denmInd( - mw_denmPdu( - mw_denm( - mw_denmMgmtCon( - mw_anyActionId, -, -, -, - c_validityDuration_2sec - ) - ) - ) - ), - v_denmInd - ); + f_utTriggerEvent(m_utTriggerEvent(v_situation, m_denmLocation_zeroDelta, c_duration_10sec)); + f_awaitDenMessage ( mw_denmInd ( mw_denmPdu ( mw_denm ( mw_denmMgmtCon ( mw_anyActionId, -, -, -, c_duration_2sec ) ) ) ) , v_denmInd ); v_actionId := v_denmInd.msgIn.denm.management.actionID; f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); @@ -1466,32 +1335,20 @@ module ItsDenm_TestCases { tc_ac.start; alt { - [] denmPort.receive( - mw_denmInd( - mw_denmPdu( - mw_denm ( - mw_denmMgmtCon( - v_actionId, - -, - -, - true - ) - ) - ) - ) - ) -> value v_denmInd { + [] denmPort.receive ( mw_denmInd ( mw_denmPdu ( + mw_denm ( m_denmMgmtConTermination ( v_actionId, -, -, -, -, -, isCancellation ))))) -> value v_denmInd { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1525,8 +1382,8 @@ module ItsDenm_TestCases { * containing management container * containing actionID * indicating ACTION_ID1 - * and containing isNegation - * indicating value TRUE + * and containing termination + * indicating value isNegation * } * } *
@@ -1550,15 +1407,7 @@ module ItsDenm_TestCases { // Preamble f_prInitialState(); - v_actionId := f_sendDenMessage( - m_denm( - m_denmMgmtCon( - m_tsActionId - ), - v_situation, - m_denmLocation_zeroDelta - ) - ); + v_actionId := f_sendDenMessage ( m_denm ( m_denmMgmtCon ( m_tsActionId ), v_situation, m_denmLocation_zeroDelta ) ); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body @@ -1566,31 +1415,20 @@ module ItsDenm_TestCases { tc_ac.start; alt { - [] denmPort.receive( - mw_denmInd( - mw_denmPdu( - mw_denm ( - mw_denmMgmtCon( - v_actionId, - -, - true - ) - ) - ) - ) - ) -> value v_denmInd { + [] denmPort.receive ( mw_denmInd ( mw_denmPdu ( + mw_denm ( m_denmMgmtConTermination ( v_actionId, -, -, -, -, -, isNegation ))))) -> value v_denmInd { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1633,14 +1471,14 @@ module ItsDenm_TestCases { * indicating ACTION_ID1 * and containing referenceTime * indicating value REFERENCETIME2 - * and containing isNegation - * indicating value TRUE + * and containing termination + * indicating value isNegation * } * } * * * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVTR/BV-03, ETSI EN 302 637-3, clauses 6.1.2.4, 8.1.1.2 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVTR/BV-03, ETSI EN 302 637-3, clauses 6.1.2.4, 8.2.1.3 */ testcase TC_DEN_EVTR_BV_03() runs on ItsDenm system ItsDenmSystem { @@ -1660,29 +1498,11 @@ module ItsDenm_TestCases { // Preamble f_prInitialState(); - v_actionId := f_sendDenMessage( - m_denm( - m_denmMgmtCon( - m_tsActionId, -, -, -, -, -, - v_referenceTime1 - ), - v_situation, - m_denmLocation_zeroDelta - ) - ); + v_actionId := f_sendDenMessage ( m_denm ( m_denmMgmtCon ( m_tsActionId, -, -, -, v_referenceTime1 ), v_situation, m_denmLocation_zeroDelta ) ); v_referenceTime2 := f_getCurrentTime(); v_situation.eventType.subCauseCode := c_vehicleBreakDownSubCauseCode_engineProblem; - v_actionId := f_sendDenMessage( - m_denm( - m_denmMgmtCon( - m_tsActionId, -, -, -, -, -, - v_referenceTime2 - ), - v_situation, - m_denmLocation_zeroDelta - ) - ); + v_actionId := f_sendDenMessage ( m_denm ( m_denmMgmtCon ( m_tsActionId, -, -, -, v_referenceTime2 ), v_situation, m_denmLocation_zeroDelta ) ); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body @@ -1690,31 +1510,20 @@ module ItsDenm_TestCases { tc_ac.start; alt { - [] denmPort.receive( - mw_denmInd( - mw_denmPdu( - mw_denm ( - mw_denmMgmtCon( - v_actionId, - v_referenceTime2, - true - ) - ) - ) - ) - ) -> value v_denmInd { + [] denmPort.receive ( mw_denmInd ( mw_denmPdu ( + mw_denm ( m_denmMgmtConTermination ( v_actionId, -, -, -, -, v_referenceTime2, isNegation ))))) -> value v_denmInd { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1724,7 +1533,7 @@ module ItsDenm_TestCases { } // end TC_DEN_EVTR_BV_03 /** - * @desc Check that situation container and location container are not present in cancellation DENM + * @desc Check that situation container, location container and alacarte container are not present in a cancellation DENM *
        
            * PICS Selection: none 
            * Initial conditions:
@@ -1745,16 +1554,17 @@ module ItsDenm_TestCases {
            *              containing management container
            *                  containing actionID
            *                      indicating ACTION_ID1
-           *                  and containing isCancellation
-           *                      indicating value TRUE
+           *                  and containing termination
+           *                      indicating value isCancellation
            *              and not containing situation container
            *              and not containing location container
+           *              and not containing alacarte container
            *      }
            *  }
            * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVTR/BV-04, ETSI EN 302 637-3, clause 7.1 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVTR/BV-04, ETSI EN 302 637-3, clause 7.1.1 */ testcase TC_DEN_EVTR_BV_04() runs on ItsDenm system ItsDenmSystem { @@ -1772,19 +1582,8 @@ module ItsDenm_TestCases { // Preamble f_prInitialState(); - f_utTriggerEvent(m_utTriggerEvent(v_situation, m_denmLocation_zeroDelta, c_validityDuration_10sec)); - f_awaitDenMessage( - mw_denmInd( - mw_denmPdu( - mw_denm( - mw_denmMgmtCon( - mw_anyActionId - ) - ) - ) - ), - v_denmInd - ); + f_utTriggerEvent(m_utTriggerEvent(v_situation, m_denmLocation_zeroDelta, c_duration_10sec)); + f_awaitDenMessage( mw_denmInd ( mw_denmPdu ( mw_denm ( mw_denmMgmtCon ( mw_anyActionId ) ) ) ), v_denmInd ); v_actionId := v_denmInd.msgIn.denm.management.actionID; f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); @@ -1796,31 +1595,19 @@ module ItsDenm_TestCases { [] denmPort.receive( mw_denmInd( mw_denmPdu( - mw_denm ( - mw_denmMgmtCon( - v_actionId, - -, - -, - true - ), - omit, - omit - ) - ) - ) - ) -> value v_denmInd { + mw_denm ( m_denmMgmtConTermination ( v_actionId, -, -, -, -, -, isCancellation ), omit, omit, omit ) ) ) ) -> value v_denmInd { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1830,7 +1617,7 @@ module ItsDenm_TestCases { } // end TC_DEN_EVTR_BV_04 /** - * @desc Check that situation container and location container are not present in negation DENM + * @desc Check that situation container, location container and alacarte container are not present in a negation DENM *
        
            * PICS Selection: none 
            * Initial conditions:
@@ -1853,16 +1640,17 @@ module ItsDenm_TestCases {
            *              containing management container
            *                  containing actionID
            *                      indicating ACTION_ID1
-           *                  and containing isNegation
-           *                      indicating value TRUE
+           *                  and containing termination
+           *                      indicating value isNegation
            *              and not containing situation container
            *              and not containing location container
+           *              and not containing alacarte container
            *      }
            *  }
            * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVTR/BV-05, ETSI EN 302 637-3, clause 7.1 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVTR/BV-05, ETSI EN 302 637-3, clause 7.1.1 */ testcase TC_DEN_EVTR_BV_05() runs on ItsDenm system ItsDenmSystem { @@ -1880,15 +1668,7 @@ module ItsDenm_TestCases { // Preamble f_prInitialState(); - v_actionId := f_sendDenMessage( - m_denm( - m_denmMgmtCon( - m_tsActionId - ), - v_situation, - m_denmLocation_zeroDelta - ) - ); + v_actionId := f_sendDenMessage ( m_denm ( m_denmMgmtCon ( m_tsActionId ), v_situation, m_denmLocation_zeroDelta ) ); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body @@ -1899,30 +1679,19 @@ module ItsDenm_TestCases { [] denmPort.receive( mw_denmInd( mw_denmPdu( - mw_denm ( - mw_denmMgmtCon( - v_actionId, - -, - true - ), - omit, - omit - ) - ) - ) - ) -> value v_denmInd { + mw_denm ( m_denmMgmtConTermination ( v_actionId, -, -, -, -, -, isNegation ), omit, omit, omit ) ) ) ) -> value v_denmInd { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1933,7 +1702,7 @@ module ItsDenm_TestCases { /** * @desc Check that DEN Basic Service does not send any termination DENM if actionID is not in - * originator ITS-S message table or receiver ITS-S message table + * originating ITS-S message table or receiving ITS-S message table (own stationID) *
        
            * PICS Selection: none 
            * Initial conditions:
@@ -1941,7 +1710,7 @@ module ItsDenm_TestCases {
            *      the IUT being in the "initial state"
            *      and the IUT having generated several events
            *      and the IUT not having send event being associated with ACTION_ID1
-           *          containing originatorStationID
+           *          containing originatingStationID
            *              indicating its own stationID
            *          and containing sequenceNumber
            *              indicating SEQ1
@@ -1950,7 +1719,7 @@ module ItsDenm_TestCases {
            *  ensure that {
            *      when { 
            *          the IUT is requested to terminate an event associated to ACTION_ID1
-           *              containing originatorStationID
+           *              containing originatingStationID
            *                  indicating its own stationID
            *              and containing sequenceNumber
            *                  indicating SEQ1
@@ -1959,12 +1728,12 @@ module ItsDenm_TestCases {
            *          the IUT does not send send any termination DENM for this event
            *      }
            *  }
-           *  NOTE: Event associated to ACTION_ID1 cannot be present in receiver ITS-S message 
+           *  NOTE: Event associated to ACTION_ID1 cannot be present in receiving ITS-S message 
            *        table as its stationID is IUT’s stationID (see TP/DEN/EVTR/BV-07)
            * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVTR/BV-06, ETSI EN 302 637-3, clauses 8.1.2 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVTR/BV-06, ETSI EN 302 637-3, clauses 8.2.2 */ testcase TC_DEN_EVTR_BV_06() runs on ItsDenm system ItsDenmSystem { @@ -2019,16 +1788,16 @@ module ItsDenm_TestCases { ) -> value v_denmInd { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received termination DENM for the unknown actionId. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": PASS: No termination DENM was sent. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -2042,7 +1811,7 @@ module ItsDenm_TestCases { /** * @desc Check that DEN Basic Service does not send any termination DENM if actionID is not in - * originator ITS-S message table or receiver ITS-S message table + * originating ITS-S message table or receiving ITS-S message table (other stationID) *
        
            * PICS Selection: none 
            * Initial conditions:
@@ -2050,7 +1819,7 @@ module ItsDenm_TestCases {
            *      the IUT being in the "initial state"
            *      and the IUT having received several events
            *      and the IUT not having received event being associated with ACTION_ID1
-           *          containing originatorStationID
+           *          containing originatingStationID
            *              indicating STATION_ID1 different from its own stationID
            *          and containing sequenceNumber
            *              indicating SEQ1
@@ -2059,7 +1828,7 @@ module ItsDenm_TestCases {
            *  ensure that {
            *      when { 
            *          the IUT is requested to terminate an event associated to ACTION_ID1
-           *              containing originatorStationID
+           *              containing originatingStationID
            *                  indicating STATION_ID1
            *              and containing sequenceNumber
            *                  indicating SEQ1
@@ -2068,12 +1837,12 @@ module ItsDenm_TestCases {
            *          the IUT does not send send any termination DENM for this event
            *      }
            *  }
-           *  NOTE: Event associated to ACTION_ID1 cannot be present in originator ITS-S message table as its 
+           *  NOTE: Event associated to ACTION_ID1 cannot be present in originating ITS-S message table as its 
            *        stationID is not IUT’s stationID (see TP/DEN/EVTR/BV-06)
            * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVTR/BV-07, ETSI EN 302 637-3, clauses 8.1.2 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVTR/BV-07, ETSI EN 302 637-3, clauses 8.2.2 */ testcase TC_DEN_EVTR_BV_07() runs on ItsDenm system ItsDenmSystem { @@ -2103,15 +1872,7 @@ module ItsDenm_TestCases { f_prInitialState(); for (i := 0; i < lengthof(v_situations); i:=i + 1) { v_sequenceNumber := f_increaseSequenceNumber(v_sequenceNumber); - v_actionIds[i] := f_sendDenMessage( - m_denm( - m_denmMgmtCon( - m_tsActionId(v_sequenceNumber) - ), - v_situations[i], - m_denmLocation_zeroDelta - ) - ); + v_actionIds[i] := f_sendDenMessage( m_denm( m_denmMgmtCon( m_tsActionId(v_sequenceNumber) ), v_situations[i], m_denmLocation_zeroDelta ) ); } f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); @@ -2126,28 +1887,19 @@ module ItsDenm_TestCases { tc_ac.start; alt { - [] denmPort.receive( - mw_denmInd( - mw_anyDenmPdu( - mw_itsPduHeader, - mw_denm ( - mw_denmMgmtCon(v_unknownActionId) - ) - ) - ) - ) -> value v_denmInd { + [] denmPort.receive( mw_denmInd( mw_anyDenmPdu( mw_itsPduHeader, mw_denm ( mw_denmMgmtCon(v_unknownActionId) ) ) ) ) -> value v_denmInd { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received termination DENM for the unknown actionId. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": PASS: No termination DENM was sent. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -2159,14 +1911,8 @@ module ItsDenm_TestCases { } // end TC_DEN_EVTR_BV_07 - } // end denEventTermination - - // 5.2.1.5 - group denMessageRepetition { - /** - * @desc Check that DEN Basic Service repeats DENM transmission according to transmissionInterval - * parameter provided by application + * @desc Check that referenceTime is set to to the current time when generating a cancellation DENM *
        
            * PICS Selection: none 
            * Initial conditions:
@@ -2176,53 +1922,40 @@ module ItsDenm_TestCases {
            *          containing management container
            *              containing actionID
            *                  indicating ACTION_ID1
-           *              and containing validityDuration
-           *                  indicating DURATION_1
-           *              and containing transmissionInterval
-           *                  indicating INTERVAL_1
+		   *	          and containing validityDuration
+		   * 		          indicating DURATION_1
+           *              and containing referenceTime
+           *                  indicating REFERENCETIME1
            *  }
            * Expected behaviour:
            *  ensure that {
            *      when { 
-           *          the IUT is alerted of expiration of the time associated with INTERVAL_1
+           *          the IUT receives an AppDENM_termination request associated with ACTION_ID1 from the application layer
            *      }
            *      then {
-           *          the IUT repeats the transmission of the valid DENM associated with ACTION_ID1
+           *          the IUT sends a valid DENM
+           *              containing management container
+           *                  containing actionID
+           *                      indicating ACTION_ID1
+		   *	              and containing termination
+		   *		              indicating value isCancellation
+           *                  and containing referenceTime
+           *                      indicating CLT
            *      }
            *  }
            * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-01, ETSI EN 302 637-3, clause 6.1.2.3 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVTR/BV-08, ETSI EN 302 637-3, clause 8.2.1.3 */ - testcase TC_DEN_EVRP_BV_01() runs on ItsDenm system ItsDenmSystem { + testcase TC_DEN_EVTR_BV_08() runs on ItsDenm system ItsDenmSystem { - // Local constants - const ValidityDuration c_validityDuration := c_validityDuration_10sec; - const TransmissionInterval c_transmissionInterval := c_transmissionInterval_1sec; - const float c_lowerTransmissionInterval := int2float(c_transmissionInterval)*0.95; - const float c_upperTransmissionInterval := int2float(c_transmissionInterval)*1.05; - const ValidityDuration c_repetitionDuration := c_validityDuration; // Local variables var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); - var template (present) DenmInd v_expectedDenmInd := mw_denmInd( - mw_denmPdu( - mw_denm( - mw_denmMgmtCon( - mw_actionId, - -, - -, - -, - c_validityDuration, - c_transmissionInterval - ) - ) - ) - ); + var TimestampIts v_referenceTime1 , v_timestampIts , v_msgtimestamp; + var Int16 v_diff; var ActionID v_actionId; var DenmInd v_denmInd; - // Local timers - timer t_repetition; // Test control @@ -2233,43 +1966,147 @@ module ItsDenm_TestCases { // Preamble f_prInitialState(); - f_utTriggerEvent( - m_utTriggerEvent( - v_situation, - m_denmLocation_zeroDelta, - c_validityDuration, - c_transmissionInterval, - c_repetitionDuration - ) - ); - f_awaitDenMessage(v_expectedDenmInd, v_denmInd); - t_repetition.start(2.0 * int2float(c_transmissionInterval/1000)); - v_actionId := v_denmInd.msgIn.denm.management.actionID; + f_utTriggerEvent(m_utTriggerEvent(v_situation, m_denmLocation_zeroDelta)); + f_awaitDenMessage(mw_denmInd(mw_anyDenmPdu), v_denmInd); + v_timestampIts := f_getCurrentTime(); + v_actionId := v_denmInd.msgIn.denm.management.actionID; + v_referenceTime1 := v_denmInd.msgIn.denm.management.referenceTime; + v_diff := v_referenceTime1 - v_timestampIts; + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + f_utTerminateEvent ( m_utEventCancellation ( v_actionId ) ); + + tc_ac.start; + alt { + [] denmPort.receive ( + mw_denmInd ( mw_denmPdu ( mw_denm ( m_denmMgmtConTermination ( v_actionId, -, -, -, -, -, isCancellation ) ) ) ) ) -> value v_denmInd { + tc_ac.stop; + v_timestampIts := f_getCurrentTime(); + v_msgtimestamp := v_denmInd.msgIn.denm.management.referenceTime; + if ( ( ( v_timestampIts + v_diff ) > v_msgtimestamp ) and ( v_msgtimestamp > v_referenceTime1 ) ) { + log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: ReferenceTime not updated correctly ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poCancelEvent(e_iut, v_actionId); + f_cfDown(); + + } // end TC_DEN_EVTR_BV_08 + + } // end denEventTermination + + // 5.2.1.5 + group denMessageRepetition { + + /** + * @desc Check that DEN Basic Sercive repeats DENM transmission according to repetitionInterval parameter provided by application + *
        
+           * PICS Selection: none 
+           * Initial conditions:
+           *  with {
+           *      the IUT being in the "initial state"
+           *      and the IUT having received an AppDENM_trigger request from the application layer
+           *          containing repetitionInterval
+           *              indicating INTERVAL_1
+           *          and containing repetitionDuration
+           *              indicating DURATION_1
+           *          and containing validityDuration
+           *              indicating DURATION_2 > DURATION_1
+           *      and the IUT having generated an the corresponding event
+           *          containing management container
+           *              containing actionID
+           *                  indicating ACTION_ID1
+           *              and containing validityDuration
+           *                  indicating DURATION_1
+           *              and containing transmissionInterval
+           *                  indicating INTERVAL_1
+           *  }
+           * Expected behaviour:
+           *  ensure that {
+           *      when { 
+           *          the IUT is alerted of expiration of the time associated with INTERVAL_1
+           *      }
+           *      then {
+           *          the IUT repeats the transmission of the valid DENM associated with ACTION_ID1
+           *      }
+           *  }
+           * 
+ * + * @version 1.2.1 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-01, ETSI EN 302 637-3, clause 6.1.2.3 and 8.2.2 + */ + testcase TC_DEN_EVRP_BV_01() runs on ItsDenm system ItsDenmSystem { + + // Local constants + const TransmissionInterval c_repetitionInterval := c_interval_1sec; // INTERVAL_1 + const ValidityDuration c_validityDuration := c_duration_10sec; // DURATION_2 + const ValidityDuration c_repetitionDuration := c_validityDuration; // DURATION_1 + const float c_lowerRepetitionInterval := int2float(c_repetitionInterval)*0.95; + const float c_upperRepetitionInterval := int2float(c_repetitionInterval)*1.05; + // Local variables + var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); + var template (present) DenmInd v_expectedDenmInd := + mw_denmInd ( mw_denmPdu ( mw_denm ( mw_denmMgmtCon ( mw_actionId, -, -, c_validityDuration ) ) ) ); + var ActionID v_actionId; + var DenmInd v_denmInd; + // Local timers + timer t_repetition; + + // Test control + + // Test component configuration + f_cfUp(); + + // Test adapter configuration + + // Preamble + f_prInitialState(); + f_utTriggerEvent ( m_utTriggerEvent ( v_situation, m_denmLocation_zeroDelta, c_validityDuration, c_repetitionDuration, c_repetitionInterval ) ); + f_awaitDenMessage(v_expectedDenmInd, v_denmInd); + t_repetition.start(2.0 * int2float(c_repetitionInterval/1000)); + v_actionId := v_denmInd.msgIn.denm.management.actionID; v_expectedDenmInd.msgIn.denm.management.actionID := v_actionId; f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body alt { [] denmPort.receive(v_expectedDenmInd) -> value v_denmInd { - if (match(t_repetition.read*1000.0, (c_lowerTransmissionInterval..c_upperTransmissionInterval))) { + if (match(t_repetition.read*1000.0, (c_lowerRepetitionInterval..c_upperRepetitionInterval))) { t_repetition.stop; log("*** " & testcasename() & ": PASS: Successfully received expected DENM in the expected interval. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { t_repetition.stop; log("*** " & testcasename() & ": FAIL: Received expected DENM, interval was not correct. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { t_repetition.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] t_repetition.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2286,14 +2123,17 @@ module ItsDenm_TestCases { * Initial conditions: * with { * the IUT being in the "initial state" - * and the IUT having generated an event + * and the IUT having received an AppDENM_trigger request from the application layer + * containing repetitionInterval + * indicating INTERVAL_1 + * and containing repetitionDuration + * indicating DURATION_1 + * and containing validityDuration + * indicating DURATION_2 > DURATION_1 + * and the IUT having generated an the corresponding event * containing management container * containing actionID * indicating ACTION_ID1 - * and containing validityDuration - * indicating DURATION_1 - * and containing transmissionInterval - * indicating INTERVAL_1 * and the IUT having generated an update of the event associated with ACTION_ID1 modifying partly the event * } * Expected behaviour: @@ -2308,32 +2148,20 @@ module ItsDenm_TestCases { * * * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-02, ETSI EN 302 637-3, clause 6.1.2.3 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-02, ETSI EN 302 637-3, clause 6.1.2.3 and 8.2.2 */ testcase TC_DEN_EVRP_BV_02() runs on ItsDenm system ItsDenmSystem { // Local constants - const ValidityDuration c_validityDuration := c_validityDuration_10sec; - const TransmissionInterval c_transmissionInterval := c_transmissionInterval_5sec; + const ValidityDuration c_validityDuration := c_duration_10sec; + const TransmissionInterval c_repetitionInterval := c_interval_5sec; const ValidityDuration c_repetitionDuration := c_validityDuration; - const float c_lowerTransmissionInterval := int2float(c_transmissionInterval)*0.95; - const float c_upperTransmissionInterval := int2float(c_transmissionInterval)*1.05; + const float c_lowerRepetitionInterval := int2float(c_repetitionInterval)*0.95; + const float c_upperRepetitionInterval := int2float(c_repetitionInterval)*1.05; // Local variables var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); - var template (present) DenmInd v_expectedDenmInd := mw_denmInd( - mw_denmPdu( - mw_denm( - mw_denmMgmtCon( - mw_actionId, - -, - -, - -, - c_validityDuration, - c_transmissionInterval - ) - ) - ) - ); + var template (present) DenmInd v_expectedDenmInd := + mw_denmInd(mw_denmPdu(mw_denm( mw_denmMgmtCon( mw_actionId, -, -, c_validityDuration)))); var ActionID v_actionId; var DenmInd v_denmInd; // Local timers @@ -2348,15 +2176,7 @@ module ItsDenm_TestCases { // Preamble f_prInitialState(); - f_utTriggerEvent( - m_utTriggerEvent( - v_situation, - m_denmLocation_zeroDelta, - c_validityDuration, - c_transmissionInterval, - c_repetitionDuration - ) - ); + f_utTriggerEvent( m_utTriggerEvent( v_situation, m_denmLocation_zeroDelta, c_validityDuration, c_repetitionDuration, c_repetitionInterval ) ); f_awaitDenMessage(v_expectedDenmInd, v_denmInd); v_actionId := v_denmInd.msgIn.denm.management.actionID; v_expectedDenmInd.msgIn.denm.management.actionID := v_actionId; @@ -2367,31 +2187,31 @@ module ItsDenm_TestCases { f_utUpdateEvent(m_utUpdateEvent(v_actionId, v_situation)); v_expectedDenmInd.msgIn.denm.situation := v_situation; f_awaitDenMessage(v_expectedDenmInd, v_denmInd); - t_repetition.start(2.0 * int2float(c_transmissionInterval/1000)); + t_repetition.start(2.0 * int2float(c_repetitionInterval/1000)); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body alt { [] denmPort.receive(v_expectedDenmInd) -> value v_denmInd { - if (match(t_repetition.read*1000.0, (c_lowerTransmissionInterval..c_upperTransmissionInterval))) { + if (match(t_repetition.read*1000.0, (c_lowerRepetitionInterval..c_upperRepetitionInterval))) { t_repetition.stop; log("*** " & testcasename() & ": PASS: Successfully received expected DENM in the expected interval. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { t_repetition.stop; log("*** " & testcasename() & ": FAIL: Received expected DENM, interval was not correct. ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { t_repetition.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] t_repetition.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict("error", e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2409,52 +2229,45 @@ module ItsDenm_TestCases { * Initial conditions: * with { * the IUT being in the "initial state" - * and the IUT having generated an event + * and the IUT having received an AppDENM_trigger request from application layer + * containing repetitionInterval + * indicating INTERVAL_1 + * and containing repetitionDuration + * indicating DURATION_1 + * and containing validityDuration + * indicating DURATION_2 > DURATION_1 + * and the IUT having generated the corresponding event * containing management container * containing actionID * indicating ACTION_ID1 * and containing validityDuration * indicating DURATION_1 - * and containing transmissionInterval - * indicating INTERVAL_1 - * and the IUT having repeated (one or more) the transmission of the valid DENM associated with ACTION_ID1 + * and the IUT having repeated (one or more times) the transmission of the valid DENM associated with ACTION_ID1 * } * Expected behaviour: * ensure that { * when { - * the IUT is alerted of expiration of the time associated with DURATION_1 + * the IUT is alerted of expiration of the time associated with DURATION_2 * } * then { - * the IUT stops the retransmission of the most up-to-date valid DENM associated with ACTION_ID1 + * the IUT stops the retransmission of the DENM associated with ACTION_ID1 * } * } * * * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-03, ETSI EN 302 637-3, clauses 6.1.2.4, 8.1.2 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-03, ETSI EN 302 637-3, clauses 6.1.2.4 and 8.2.2 */ testcase TC_DEN_EVRP_BV_03() runs on ItsDenm system ItsDenmSystem { // Local constants - const ValidityDuration c_validityDuration := c_validityDuration_10sec; - const TransmissionInterval c_transmissionInterval := c_transmissionInterval_4sec; + const ValidityDuration c_validityDuration := c_duration_10sec; + const TransmissionInterval c_repetitionInterval := c_interval_4sec; const ValidityDuration c_repetitionDuration := c_validityDuration; // Local variables var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); - var template (present) DenmInd v_expectedDenmInd := mw_denmInd( - mw_denmPdu( - mw_denm( - mw_denmMgmtCon( - mw_actionId, - -, - -, - -, - c_validityDuration, - c_transmissionInterval - ) - ) - ) - ); + var template (present) DenmInd v_expectedDenmInd := + mw_denmInd(mw_denmPdu(mw_denm(mw_denmMgmtCon(mw_actionId, -, -, c_validityDuration)))); var ActionID v_actionId; var DenmInd v_denmInd; var integer i; @@ -2470,21 +2283,13 @@ module ItsDenm_TestCases { // Preamble f_prInitialState(); - f_utTriggerEvent( - m_utTriggerEvent( - v_situation, - m_denmLocation_zeroDelta, - c_validityDuration, - c_transmissionInterval, - c_repetitionDuration - ) - ); + f_utTriggerEvent(m_utTriggerEvent( v_situation, m_denmLocation_zeroDelta, c_validityDuration, c_repetitionDuration, c_repetitionInterval )); f_awaitDenMessage(v_expectedDenmInd, v_denmInd); t_validity.start(1.5 * int2float(c_validityDuration)); v_actionId := v_denmInd.msgIn.denm.management.actionID; v_expectedDenmInd.msgIn.denm.management.actionID := v_actionId; - //await retransmitted DENM message based on the transmission interval in between the validity duration - for (i:=0; i<(c_validityDuration/(c_transmissionInterval/1000)); i:=i+1) { + //await retransmitted DENM message based on the repetition interval in between the validity duration + for (i:=0; i<(c_validityDuration/(c_repetitionInterval/1000)); i:=i+1) { f_awaitDenMessage(v_expectedDenmInd, v_denmInd); } f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); @@ -2495,15 +2300,15 @@ module ItsDenm_TestCases { log("*** " & testcasename() & ": PASS: Retransmission of DENM stopped successfully. ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } - [] denmPort.receive(v_expectedDenmInd) -> value v_denmInd { + [] denmPort.receive(v_expectedDenmInd) { t_validity.stop; log("*** " & testcasename() & ": FAIL: Retransmission of DENM was not stopped. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { t_validity.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -2522,17 +2327,19 @@ module ItsDenm_TestCases { * with { * the IUT being in the "initial state" * and the IUT having received an AppDENM_trigger request from application layer - * containing repetitionDuration - * indicating DURATION_2 - * and the IUT having generated an event + * containing repetitionInterval + * indicating INTERVAL_1 + * and containing repetitionDuration + * indicating DURATION_1 + * and containing validityDuration + * indicating DURATION_2 > DURATION_1 + * and the IUT having generated the corresponding event * containing management container * containing actionID * indicating ACTION_ID1 * and containing validityDuration - * indicating DURATION_1 > DURATION_2 - * and containing transmissionInterval - * indicating INTERVAL_1 - * and the IUT having repeated (one or more) the transmission of the valid DENM associated with ACTION_ID1 + * indicating DURATION_2 + * and the IUT having repeated (one or more times) the transmission of the valid DENM associated with ACTION_ID1 * } * Expected behaviour: * ensure that { @@ -2546,14 +2353,101 @@ module ItsDenm_TestCases { * * * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-04, ETSI EN 302 637-3, clause 8.1.2 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-04, ETSI EN 302 637-3, clause 8.2.2 */ testcase TC_DEN_EVRP_BV_04() runs on ItsDenm system ItsDenmSystem { // Local constants - const ValidityDuration c_validityDuration := c_validityDuration_10sec; - const TransmissionInterval c_transmissionInterval := c_transmissionInterval_2sec; - const ValidityDuration c_repetitionDuration := c_repetitionDuration_5sec; + const ValidityDuration c_validityDuration := c_duration_10sec; + const TransmissionInterval c_repetitionInterval := c_interval_2sec; + const ValidityDuration c_repetitionDuration := c_duration_5sec; + // Local variables + var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); + var template (present) DenmInd v_expectedDenmInd := mw_denmInd(mw_denmPdu(mw_denm(mw_denmMgmtCon(mw_actionId, -, -, c_validityDuration)))); + var ActionID v_actionId; + var DenmInd v_denmInd; + var integer i; + // Local timers + timer t_repetition; + + // Test control + + // Test component configuration + f_cfUp(); + + // Test adapter configuration + + // Preamble + f_prInitialState(); + f_utTriggerEvent(m_utTriggerEvent(v_situation, m_denmLocation_zeroDelta, c_validityDuration, c_repetitionDuration, c_repetitionInterval )); + f_awaitDenMessage(v_expectedDenmInd, v_denmInd); + t_repetition.start(1.5 * int2float(c_repetitionDuration)); + v_actionId := v_denmInd.msgIn.denm.management.actionID; + v_expectedDenmInd.msgIn.denm.management.actionID := v_actionId; + //await retransmitted DENM message based on the repetition interval in between the repetition duration + for (i:=0; i<(c_repetitionDuration/(c_repetitionInterval/1000)); i:=i+1) { + f_awaitDenMessage(v_expectedDenmInd, v_denmInd); + } + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + alt { + [] t_repetition.timeout { + log("*** " & testcasename() & ": PASS: Retransmission of DENM stopped successfully. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] denmPort.receive(v_expectedDenmInd) -> value v_denmInd { + t_repetition.stop; + log("*** " & testcasename() & ": FAIL: Retransmission of DENM was not stopped. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { + t_repetition.stop; + log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + + // Postamble + f_poCancelEvent(e_iut, v_actionId); + f_cfDown(); + + } // end TC_DEN_EVRP_BV_04 + + /** + * @desc Check that DEN Basic Service does not repeat transmission of DENM if repetitionInterval is + * not provided by application + *
        
+           * PICS Selection: none 
+           * Initial conditions:
+           *  with {
+           *      the IUT being in the "initial state"
+           *      and the IUT having received an AppDENM_trigger request from application layer
+           *          not containing repetitionInterval
+           *      and the IUT having generated an the corresponding event
+           *          containing management container
+           *              containing actionID
+           *                  indicating ACTION_ID1
+           *  }
+           * Expected behaviour:
+           *  ensure that {
+           *      when { 
+           *          the IUT has detected that repetitionInterval is not provided for the event associated with ACTION_ID1
+           *      }
+           *      then {
+           *          the IUT does not repeat the transmission of the valid DENM associated with ACTION_ID1
+           *      }
+           *  }
+           * 
+ * + * @version 1.2.1 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-05, ETSI EN 302 637-3, clause 8.1.2 + */ + testcase TC_DEN_EVRP_BV_05() runs on ItsDenm system ItsDenmSystem { + + // Local constants + const ValidityDuration c_validityDuration := c_duration_10sec; + const ValidityDuration c_repetitionDuration := c_validityDuration; // Local variables var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); var template (present) DenmInd v_expectedDenmInd := mw_denmInd( @@ -2564,8 +2458,7 @@ module ItsDenm_TestCases { -, -, -, - c_validityDuration, - c_transmissionInterval + c_validityDuration ) ) ) @@ -2574,7 +2467,7 @@ module ItsDenm_TestCases { var DenmInd v_denmInd; var integer i; // Local timers - timer t_repetition; + timer t_validity; // Test control @@ -2590,35 +2483,31 @@ module ItsDenm_TestCases { v_situation, m_denmLocation_zeroDelta, c_validityDuration, - c_transmissionInterval, - c_repetitionDuration + c_repetitionDuration, + omit //no repetitionInterval ) ); f_awaitDenMessage(v_expectedDenmInd, v_denmInd); - t_repetition.start(1.5 * int2float(c_repetitionDuration)); + t_validity.start(1.5 * int2float(c_validityDuration)); v_actionId := v_denmInd.msgIn.denm.management.actionID; v_expectedDenmInd.msgIn.denm.management.actionID := v_actionId; - //await retransmitted DENM message based on the transmission interval in between the repetition duration - for (i:=0; i<(c_repetitionDuration/(c_transmissionInterval/1000)); i:=i+1) { - f_awaitDenMessage(v_expectedDenmInd, v_denmInd); - } f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body alt { - [] t_repetition.timeout { - log("*** " & testcasename() & ": PASS: Retransmission of DENM stopped successfully. ***"); + [] t_validity.timeout { + log("*** " & testcasename() & ": PASS: No retransmission of DENM occured as expected. ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] denmPort.receive(v_expectedDenmInd) -> value v_denmInd { - t_repetition.stop; - log("*** " & testcasename() & ": FAIL: Retransmission of DENM was not stopped. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + t_validity.stop; + log("*** " & testcasename() & ": FAIL: Unexpected retransmission of DENM occured. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { - t_repetition.stop; + t_validity.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -2626,10 +2515,10 @@ module ItsDenm_TestCases { f_poCancelEvent(e_iut, v_actionId); f_cfDown(); - } // end TC_DEN_EVRP_BV_04 + } // end TC_DEN_EVRP_BV_05 /** - * @desc Check that DEN Basic Service does not repeat transmission of DENM if transmissionInterval is + * @desc Check that DEN Basic Service does not repeat transmission of DENM if repetitionDuration is * not provided by application *
        
            * PICS Selection: none 
@@ -2637,18 +2526,16 @@ module ItsDenm_TestCases {
            *  with {
            *      the IUT being in the "initial state"
            *      and the IUT having received an AppDENM_trigger request from application layer
-           *          not containing transmissionInterval
-           *      and the IUT having generated an event
+           *          not containing repetitionDuration
+           *      and the IUT having generated an the corresponding event
            *          containing management container
            *              containing actionID
            *                  indicating ACTION_ID1
-           *              and containing validityDuration
-           *                  indicating DURATION_1
            *  }
            * Expected behaviour:
            *  ensure that {
            *      when { 
-           *          the IUT has detected that transmissionInterval is not provided for the event associated with ACTION_ID1
+           *          the IUT has detected that repetitionDuration is not provided for the event associated with ACTION_ID1
            *      }
            *      then {
            *          the IUT does not repeat the transmission of the valid DENM associated with ACTION_ID1
@@ -2657,13 +2544,13 @@ module ItsDenm_TestCases {
            * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-05, ETSI EN 302 637-3, clause 8.1.2 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-06, ETSI EN 302 637-3, clause 8.1.2 */ - testcase TC_DEN_EVRP_BV_05() runs on ItsDenm system ItsDenmSystem { + testcase TC_DEN_EVRP_BV_06() runs on ItsDenm system ItsDenmSystem { // Local constants - const ValidityDuration c_validityDuration := c_validityDuration_10sec; - const ValidityDuration c_repetitionDuration := c_validityDuration; + const ValidityDuration c_validityDuration := c_duration_10sec; + const TransmissionInterval c_repetitionInterval := c_interval_2sec; // Local variables var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); var template (present) DenmInd v_expectedDenmInd := mw_denmInd( @@ -2673,8 +2560,7 @@ module ItsDenm_TestCases { mw_actionId, -, -, - -, - c_validityDuration + c_validityDuration ) ) ) @@ -2694,152 +2580,449 @@ module ItsDenm_TestCases { // Preamble f_prInitialState(); - f_utTriggerEvent( - m_utTriggerEvent( - v_situation, - m_denmLocation_zeroDelta, - c_validityDuration, - omit, //no transmissionInterval - c_repetitionDuration - ) - ); - f_awaitDenMessage(v_expectedDenmInd, v_denmInd); - t_validity.start(1.5 * int2float(c_validityDuration)); + f_utTriggerEvent( + m_utTriggerEvent( + v_situation, + m_denmLocation_zeroDelta, + c_validityDuration, + omit, //no repetitionDuration + c_repetitionInterval + ) + ); + f_awaitDenMessage(v_expectedDenmInd, v_denmInd); + t_validity.start(1.5 * int2float(c_validityDuration)); + v_actionId := v_denmInd.msgIn.denm.management.actionID; + v_expectedDenmInd.msgIn.denm.management.actionID := v_actionId; + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + alt { + [] t_validity.timeout { + log("*** " & testcasename() & ": PASS: No retransmission of DENM occured as expected. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] denmPort.receive(v_expectedDenmInd) -> value v_denmInd { + t_validity.stop; + log("*** " & testcasename() & ": FAIL: Unexpected retransmission of DENM occured. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { + t_validity.stop; + log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + + // Postamble + f_poCancelEvent(e_iut, v_actionId); + f_cfDown(); + + } // end TC_DEN_EVRP_BV_06 + + /** + * @desc Check that existing actionID in originating ITS-S are updated when stationID is modified + * + *
        
+           * PICS Selection: none 
+           * Initial conditions:
+           *  with {
+           *      the IUT being in the "initial state"
+           *      and the IUT having received an AppDENM_trigger request from application layer
+           *      	containing repetitionInterval
+           *      		indicating INTERVAL_1
+           *      	and containing repetitionDuration
+           *      		indicating DURATION_1
+           *      	and containing validityDuration
+           *      		indicating DURATION_2 > DURATION_1
+           *      and the IUT having generated the corresponding event
+           *      	containing management container
+           *      		containing actionID
+           *      			containing originatororiginatingStationID
+           *      				indicating STATION_ID_1
+           *      		and containing validityDuration
+           *      			indicating DURATION_1
+           *     and the IUT having changed its StationID
+           *  }
+           * Expected behaviour:
+           *  ensure that {
+           *      when { 
+           *          the IUT changes its StationID and is alerted of expiration of the time associated with INTERVAL_1
+           *      }
+           *      then {
+           *      		the IUT repeats the transmission of the valid DENM
+           *      			containing management container
+           *      				containing actionID
+           *      					containing originatingStationID
+           *      						indicating its new StationID
+           *      }
+           *  }
+           * 
+ * + * @version 1.2.1 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-08, ETSI EN 302 637-3, clause 6.1.1.2 + */ + testcase TC_DEN_EVRP_BV_08() runs on ItsDenm system ItsDenmSystem { + + // Local constants + const ValidityDuration c_duration1 := 3 * c_duration_2sec; + const ValidityDuration c_duration2 := c_duration_10sec; + const TransmissionInterval c_interval1 := c_interval_1sec; + // Local variables + var template (value) SituationContainer v_situation := m_situation ( c_causeVehicleBreakdown, c_subCauseCode_Unavailable ); + var template (present) DenmInd v_expectedDenmInd := + mw_denmInd ( mw_denmPdu ( mw_denm ( mw_denmMgmtCon ( mw_actionId, -, -, c_duration2 ) ) ) ); + var ActionID v_actionId; + var DenmInd v_denmInd; + + // Preamble + f_prInitialState(); + f_utTriggerEvent ( m_utTriggerEvent ( v_situation, m_denmLocation_zeroDelta, c_duration2, c_duration1, c_interval1 ) ); + f_awaitDenMessage ( v_expectedDenmInd, v_denmInd ); + v_actionId := v_denmInd.msgIn.denm.management.actionID; + v_expectedDenmInd.msgIn.denm.management.actionID := v_actionId; + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + f_utChangePseudonym ( m_utChangePseudonym ); + + tc_ac.start; + alt { + [] denmPort.receive ( v_expectedDenmInd ) -> value v_denmInd { + tc_ac.stop; + if ( v_denmInd.msgIn.denm.management.actionID.originatingStationID != v_actionId.originatingStationID ) { + log("*** " & testcasename() & ": PASS: Successfully received expected DENM - Pseudonym changed. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: received expected DENM - Pseudonym not changed. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poCancelEvent(e_iut, v_actionId); + f_cfDown(); + + } // end TC_DEN_EVRP_BV_08 + + /** + * @desc Check that actionID is not modified in repetitions of DENM if stationID is not modified + * + *
        
+           * PICS Selection: none 
+           * Initial conditions:
+           *  with {
+           *      the IUT being in the "initial state"
+           *      and the IUT having received an AppDENM_trigger request from application layer
+           *      	containing repetitionInterval
+           *      		indicating INTERVAL_1
+           *      	and containing repetitionDuration
+           *      		indicating DURATION_1
+           *      	and containing validityDuration
+           *      		indicating DURATION_2 > DURATION_1
+           *      and the IUT having generated the corresponding event
+           *      	containing management container
+           *      		containing actionID
+           *      			indicating ACTION_ID_1
+           *      		and containing validityDuration
+           *      			indicating DURATION_1
+           *     and the IUT not having changed its StationID
+           *  }
+           * Expected behaviour:
+           *  ensure that {
+           *      when { 
+           *          the IUT is alerted of expiration of the time associated with INTERVAL_1
+           *      }
+           *      then {
+           *      		the IUT repeats the transmission of the valid DENM
+           *      			containing management container
+           *      				containing actionID
+           *      					indicating its ACTION_ID_1
+           *      }
+           *  }
+           * 
+ * + * @version 1.2.1 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-09, ETSI EN 302 637-3, clause 8.2.1.2 + */ + testcase TC_DEN_EVRP_BV_09() runs on ItsDenm system ItsDenmSystem { + // Local constants + const ValidityDuration c_duration1 := 3 * c_duration_2sec; + const ValidityDuration c_duration2 := c_duration_10sec; + const TransmissionInterval c_interval1 := c_interval_1sec; + const float c_lowerTransmissionInterval := int2float(c_interval1)*0.95; + const float c_upperTransmissionInterval := int2float(c_interval1)*1.05; + // Local variables + var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); + var template (present) DenmInd v_expectedDenmInd := + mw_denmInd(mw_denmPdu(mw_denm( mw_denmMgmtCon( mw_actionId, -, -, c_duration2)))); + var ActionID v_actionId; + var DenmInd v_denmInd; + // Local timers + timer t_repetition; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_utTriggerEvent( m_utTriggerEvent( v_situation, m_denmLocation_zeroDelta, c_duration2, c_duration1, c_interval1 ) ); + f_awaitDenMessage(v_expectedDenmInd, v_denmInd); + v_actionId := v_denmInd.msgIn.denm.management.actionID; + v_expectedDenmInd.msgIn.denm.management.actionID := v_actionId; + t_repetition.start(2.0 * int2float(c_interval1/1000)); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + alt { //FIXME rewrite TC + [] denmPort.receive(v_expectedDenmInd) -> value v_denmInd { + if (match(t_repetition.read*1000.0, (c_lowerTransmissionInterval..c_upperTransmissionInterval))) { + t_repetition.stop; + log("*** " & testcasename() & ": PASS: Successfully received expected DENM in the expected interval. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + t_repetition.stop; + log("*** " & testcasename() & ": FAIL: Received expected DENM, interval was not correct. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { + t_repetition.stop; + log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] t_repetition.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poCancelEvent(e_iut, v_actionId); + f_cfDown(); + + } // end TC_DEN_EVRP_BV_09 + + /** + * @desc Check that actionID is not modified in repetitions of DENM if stationID is not modified + * + *
        
+           * PICS Selection: none 
+           * Initial conditions:
+           *  with {
+           *      the IUT being in the "initial state"
+           *      and the IUT having received an AppDENM_trigger request from application layer
+           *      	containing repetitionInterval
+           *      		indicating INTERVAL_1
+           *      	and containing repetitionDuration
+           *      		indicating DURATION_1
+           *      	and containing validityDuration
+           *      		indicating DURATION_2 > DURATION_1
+           *      and the IUT having generated the corresponding event
+           *      	containing management container
+           *      		containing actionID
+           *      			indicating ACTION_ID_1
+           *      		and containing validityDuration
+           *      			indicating DURATION_2
+           *      		and containing referenceTime
+           *      			indicating REFERENCE_TIME_1
+           *  }
+           * Expected behaviour:
+           *  ensure that {
+           *      when { 
+           *          the IUT is alerted of expiration of the time associated with INTERVAL_1
+           *      }
+           *      then {
+           *      		the IUT repeats the transmission of the valid DENM
+           *      			containing management container
+           *      				containing actionID
+           *      					indicating its ACTION_ID_1
+           *      				and containing referenceTime
+           *      					indicating REFERENCE_TIME_1
+           *      }
+           *  }
+           * 
+ * + * @version 1.2.1 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-10, ETSI EN 302 637-3, clause 8.2.1.2 + */ + testcase TC_DEN_EVRP_BV_10() runs on ItsDenm system ItsDenmSystem { + // Local constants + const ValidityDuration c_duration1 := 3 * c_duration_2sec; + const ValidityDuration c_duration2 := c_duration_10sec; + const TransmissionInterval c_interval1 := c_interval_1sec; + const float c_lowerTransmissionInterval := int2float(c_interval1)*0.95; + const float c_upperTransmissionInterval := int2float(c_interval1)*1.05; + // Local variables + var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); + var template (present) DenmInd v_expected := mw_denmInd(mw_denmPdu(mw_denm( mw_denmMgmtCon( mw_actionId, -, -, c_duration2 )))); + var ActionID v_actionId; + var DenmInd v_denmInd; + var TimestampIts v_referenceTime; + // Local timers + timer t_repetition; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_utTriggerEvent( m_utTriggerEvent( v_situation, m_denmLocation_zeroDelta, c_duration2, c_duration1, c_interval1 ) ); + f_awaitDenMessage ( v_expected, v_denmInd ); + t_repetition.start(2.0 * int2float(c_interval1/1000)); v_actionId := v_denmInd.msgIn.denm.management.actionID; - v_expectedDenmInd.msgIn.denm.management.actionID := v_actionId; + v_referenceTime := v_denmInd.msgIn.denm.management.referenceTime; + v_expected.msgIn.denm.management.actionID := v_actionId; + v_expected.msgIn.denm.management.referenceTime := v_referenceTime; f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body - alt { - [] t_validity.timeout { - log("*** " & testcasename() & ": PASS: No retransmission of DENM occured as expected. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] denmPort.receive(v_expectedDenmInd) -> value v_denmInd { - t_validity.stop; - log("*** " & testcasename() & ": FAIL: Unexpected retransmission of DENM occured. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + alt { //FIXME rewrite TC + [] denmPort.receive ( v_expected ) -> value v_denmInd { + if (match(t_repetition.read*1000.0, (c_lowerTransmissionInterval..c_upperTransmissionInterval))) { + t_repetition.stop; + log("*** " & testcasename() & ": PASS: Successfully received expected DENM in the expected interval. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + t_repetition.stop; + log("*** " & testcasename() & ": FAIL: Received expected DENM, interval was not correct. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { - t_validity.stop; + t_repetition.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] t_repetition.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // Postamble f_poCancelEvent(e_iut, v_actionId); f_cfDown(); - - } // end TC_DEN_EVRP_BV_05 - + + } // end TC_DEN_EVRP_BV_10 + /** - * @desc Check that DEN Basic Service does not repeat transmission of DENM if repetitionDuration is - * not provided by application + * @desc Check that DEN Basic Service stops retransmitting DENM after event's validityDuration expiration + * *
        
            * PICS Selection: none 
            * Initial conditions:
            *  with {
            *      the IUT being in the "initial state"
            *      and the IUT having received an AppDENM_trigger request from application layer
-           *          not containing repetitionDuration
-           *      and the IUT having generated an event
-           *          containing management container
-           *              containing actionID
-           *                  indicating ACTION_ID1
-           *              and containing validityDuration
-           *                  indicating DURATION_1
-           *              and containing transmissionInterval
-           *                  indicating INTERVAL_1
+           *      	containing repetitionInterval
+           *      		indicating INTERVAL_1
+           *      	and containing repetitionDuration
+           *      		indicating DURATION_1 > defaultValidityDuration
+           *      	and not containing validityDuration
+           *      and the IUT having generated the corresponding event
+           *      	containing management container
+           *      		containing actionID
+           *      			indicating ACTION_ID_1
            *  }
            * Expected behaviour:
            *  ensure that {
-           *      when { 
-           *          the IUT has detected that repetitionDuration is not provided for the event associated with ACTION_ID1
+           *      when {
+           *          the IUT is alerted of expiration of the defaultValidityDuration
            *      }
            *      then {
-           *          the IUT does not repeat the transmission of the valid DENM associated with ACTION_ID1
+           *      		the IUT stops the retransmission of the DENM associated with ACTION_ID1
            *      }
            *  }
            * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-06, ETSI EN 302 637-3, clause 6.1.2.3 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/EVRP/BV-11, ETSI EN 302 637-3, clause 8.2.1.5 */ - testcase TC_DEN_EVRP_BV_06() runs on ItsDenm system ItsDenmSystem { - + testcase TC_DEN_EVRP_BV_11() runs on ItsDenm system ItsDenmSystem { // Local constants - const ValidityDuration c_validityDuration := c_validityDuration_10sec; - const TransmissionInterval c_transmissionInterval := c_transmissionInterval_2sec; + const ValidityDuration c_duration1 := c_defaultValidity + 100; + const ValidityDuration c_duration2 := c_defaultValidity; + const TransmissionInterval c_interval1 := c_interval_10sec; + const float c_diffValidity := int2float ( ( c_duration1 - c_duration2 ) ); // Local variables var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); - var template (present) DenmInd v_expectedDenmInd := mw_denmInd( - mw_denmPdu( - mw_denm( - mw_denmMgmtCon( - mw_actionId, - -, - -, - -, - c_validityDuration, - c_transmissionInterval - ) - ) - ) - ); + var template (present) DenmInd v_expected := mw_denmInd(mw_denmPdu(mw_denm( mw_denmMgmtCon( mw_actionId, -, -, c_duration2)))); var ActionID v_actionId; var DenmInd v_denmInd; - var integer i; + var TimestampIts v_referenceTime; // Local timers - timer t_validity; - - // Test control + timer t_repetition; + timer t_default; // Test component configuration f_cfUp(); - // Test adapter configuration - // Preamble f_prInitialState(); - f_utTriggerEvent( - m_utTriggerEvent( - v_situation, - m_denmLocation_zeroDelta, - c_validityDuration, - c_transmissionInterval, - omit //no repetitionDuration - ) - ); - f_awaitDenMessage(v_expectedDenmInd, v_denmInd); - t_validity.start(1.5 * int2float(c_validityDuration)); + f_utTriggerEvent( m_utTriggerEvent( v_situation, m_denmLocation_zeroDelta, omit, c_duration1, c_interval1 ) ); + f_awaitDenMessage ( v_expected, v_denmInd ); + t_repetition.start(2.0 * int2float(c_interval1/1000)); + t_default.start ( int2float( c_duration1/1000 ) ); v_actionId := v_denmInd.msgIn.denm.management.actionID; - v_expectedDenmInd.msgIn.denm.management.actionID := v_actionId; + v_expected.msgIn.denm.management.actionID := v_actionId; f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body alt { - [] t_validity.timeout { - log("*** " & testcasename() & ": PASS: No retransmission of DENM occured as expected. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] denmPort.receive(v_expectedDenmInd) -> value v_denmInd { - t_validity.stop; - log("*** " & testcasename() & ": FAIL: Unexpected retransmission of DENM occured. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + [] denmPort.receive ( v_expected ) -> value v_denmInd { + t_repetition.stop; + if ( t_default.read*1000.0 < c_diffValidity ) { + log("*** " & testcasename() & ": FAIL: DENM received after validity duration. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": INFO: DENM retransmission. ***"); + t_repetition.start(2.0 * int2float(c_interval1/1000)); + repeat; + } } [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { - t_validity.stop; + t_repetition.stop; log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict("error", e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] t_repetition.timeout { + if ( t_default.read*1000.0 < c_diffValidity ) { + t_default.stop; + log("*** " & testcasename() & ": PASS: Retransmission of DENM stopped. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + t_default.stop; + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + [] t_default.timeout { + t_repetition.stop; + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // Postamble f_poCancelEvent(e_iut, v_actionId); f_cfDown(); - - } // end TC_DEN_EVRP_BV_06 + + } // end TC_DEN_EVRP_BV_11 } // end denMessageRepetition @@ -2849,17 +3032,13 @@ module ItsDenm_TestCases { group denMessageReception { /** - * @desc Check that receiver ITS-S transmits DENM to application if it concerns an unknown ActionID - * and if it is not a termination DENM + * @desc Check that receiving ITS-S transmits DENM to application if it concerns an unknown ActionID and if it is not a termination DENM + * *
          * PICS Selection: none
          * Initial conditions:
          *  with {
          *      the IUT being in the "initial state"
-         *      and the IUT not having send DENM
-         *          containing management container
-         *              containing actionID
-         *                  indicating ACTION_ID1
          *      and the IUT not having received DENM
          *          containing management container
          *              containing actionID
@@ -2880,7 +3059,7 @@ module ItsDenm_TestCases {
          * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/MSRV/BV-01, ETSI EN 302 637-3, clause 8.3.2 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/MSRV/BV-01, ETSI EN 302 637-3, clause 8.4.2 */ testcase TC_DEN_MSRV_BV_01() runs on ItsDenm system ItsDenmSystem { @@ -2931,7 +3110,7 @@ module ItsDenm_TestCases { } // end TC_DEN_MSRV_BV_01 /** - * @desc Check that receiver ITS-S transmits DENM to application if it concerns a known ActionID + * @desc Check that receiving ITS-S transmits DENM to application if it concerns a known ActionID * and referenceTime is greater than highest value received for this ActionID *
          * PICS Selection: none
@@ -2963,7 +3142,7 @@ module ItsDenm_TestCases {
          * 
* * @version 1.2.1 - * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/MSRV/BV-02, ETSI EN 302 637-3, clause 8.3.2 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/MSRV/BV-02, ETSI EN 302 637-3, clause 8.4.2 */ testcase TC_DEN_MSRV_BV_02() runs on ItsDenm system ItsDenmSystem { @@ -3002,8 +3181,7 @@ module ItsDenm_TestCases { m_denm( m_denmMgmtCon( v_actionId, - -, -, -, -, -, - v_referenceTime2 + -, -, -, v_referenceTime2 ), v_situation2, m_denmLocation_zeroDelta @@ -3032,7 +3210,7 @@ module ItsDenm_TestCases { } // end TC_DEN_MSRV_BV_02 /** - * @desc Check that receiver ITS-S discards termination DENM if it concerns an unknown ActionID + * @desc Check that receiving ITS-S discards termination DENM if it concerns an unknown ActionID (own actionID) *
          * PICS Selection: none 
          * Initial conditions:
@@ -3083,8 +3261,7 @@ module ItsDenm_TestCases {
                 m_denm(
                     m_denmMgmtCon(
                         m_tsActionId,
-                        -,
-                        true
+                        -
                     ),
                     v_situation,
                     m_denmLocation_zeroDelta
@@ -3111,7 +3288,7 @@ module ItsDenm_TestCases {
         } // end TC_DEN_MSRV_BV_03
         
         /**
-         * @desc    Check that receiver ITS-S discards termination DENM if it concerns an unknown ActionID
+         * @desc    Check that receiving ITS-S discards termination DENM if it concerns an unknown ActionID (other actionID)
          * 
          * PICS Selection: none 
          * Initial conditions:
@@ -3163,9 +3340,8 @@ module ItsDenm_TestCases {
                     m_denmMgmtCon(
                         m_actionId(
                             f_increaseSequenceNumber(v_actionId.sequenceNumber)
+                        )
                         ),
-                        true
-                    ),
                     v_situation,
                     m_denmLocation_zeroDelta
                 )
@@ -3191,7 +3367,7 @@ module ItsDenm_TestCases {
         } // end TC_DEN_MSRV_BV_04
         
         /**
-         * @desc    Check that receiver ITS-S discards DENM if referenceTime is lower than highest value received for this ActionID
+         * @desc    Check that receiving ITS-S discards DENM if referenceTime is lower than highest value received for this ActionID
          * 
          * PICS Selection: none
          * Initial conditions:
@@ -3250,8 +3426,7 @@ module ItsDenm_TestCases {
                 m_denm(
                     m_denmMgmtCon(
                         m_tsActionId,
-                        -, -, -, -, -, 
-                        v_referenceTime1
+                        -, -, -, v_referenceTime1
                     ),
                     v_situation1,
                     m_denmLocation_zeroDelta
@@ -3259,17 +3434,7 @@ module ItsDenm_TestCases {
             );
             
             f_sleep(1.0);
-            v_actionId := f_sendDenMessage(
-                m_denm(
-                    m_denmMgmtCon(
-                        v_actionId,
-                        -, -, -, -, -, 
-                        v_referenceTime2
-                    ),
-                    v_situation2,
-                    m_denmLocation_zeroDelta
-                )
-            );
+            v_actionId := f_sendDenMessage ( m_denm ( m_denmMgmtCon ( v_actionId, -, -, -, v_referenceTime2 ), v_situation2, m_denmLocation_zeroDelta ) );
             
             f_sleep(PX_TNOAC);
             for(i:=0; i < lengthof(vc_utEvents) 
@@ -3293,8 +3458,8 @@ module ItsDenm_TestCases {
         } // end TC_DEN_MSRV_BV_05
         
         /**
-         * @desc    Check that receiver ITS-S discards DENM if referenceTime is equal to highest 
-         *          received value and detectionTime is not more recent
+         * @desc    Check that receiving ITS-S discards DENM if detectionTime is smaller than highest value received for this ActionID
+         *          
          * 
          * PICS Selection: none
          * Initial conditions:
@@ -3358,7 +3523,7 @@ module ItsDenm_TestCases {
             v_denm := m_denm(
                     m_denmMgmtCon(
                         m_tsActionId,
-                        -, - ,- ,-,
+                        -, - , -, 
                         v_detectionTime1,
                         v_referenceTime1
                     ),
@@ -3370,18 +3535,7 @@ module ItsDenm_TestCases {
             f_sleep(1.0);
             v_detectionTime2 := valueof(v_denm.management.detectionTime) - 1000;
             v_actionId := f_sendDenMessage(
-                m_denm(
-                    m_denmMgmtCon(
-                        v_actionId,
-                        -, - ,- ,-,
-                        v_detectionTime2,
-                        v_referenceTime1
-                    ),
-                    v_situation2,
-                    m_denmLocation_zeroDelta
-                )
-            );
-            
+            				m_denm ( m_denmMgmtCon ( v_actionId, -, - , -, v_detectionTime2, v_referenceTime1 ), v_situation2,  m_denmLocation_zeroDelta ) );
             f_sleep(PX_TNOAC);
             for(i:=0; i < lengthof(vc_utEvents) 
                       and not match(v_actionId, vc_utEvents[i].denMsg.denm.management.actionID)
@@ -3404,7 +3558,7 @@ module ItsDenm_TestCases {
         } // end TC_DEN_MSRV_BV_06
         
         /**
-         * @desc    Check that receiver ITS-S transmits DENM to application if it concerns a known ActionID and referenceTime 
+         * @desc    Check that receiving ITS-S transmits DENM to application if it concerns a known ActionID and referenceTime 
          *          is equal to highest received value and detectionTime is more recent
          * 
          * PICS Selection: none
@@ -3468,7 +3622,7 @@ module ItsDenm_TestCases {
             v_denm := m_denm(
                     m_denmMgmtCon(
                         m_tsActionId,
-                        -, - ,- ,-,
+                        -, - , -,
                         v_detectionTime1,
                         v_referenceTime1
                     ),
@@ -3483,7 +3637,7 @@ module ItsDenm_TestCases {
                 m_denm(
                     m_denmMgmtCon(
                         v_actionId,
-                        -, - ,- ,-,
+                        -, - , -,
                         v_detectionTime2,
                         v_referenceTime1
                     ),
@@ -3513,13 +3667,94 @@ module ItsDenm_TestCases {
             
         } // end TC_DEN_MSRV_BV_07
         
+        /**
+         * @desc    Check that receiving ITS-S replies to requestResponseIndication
+         *          
+         * 
+         * PICS Selection: none
+         * Initial conditions:
+         *  with {
+         *      the IUT being in the "initial state"
+         *  }
+         * Expected behaviour:
+         *  ensure that {
+         *      when { 
+         *          the IUT receives a DENM
+         *              containing management container
+         *                  containing actionID
+         *                      indicating ACTION_ID1
+         *              and containing alacarte container
+         *                  containing ImpactReductionContainer
+         *                  	containing requestResponseIndication
+         *                      	indicating request(0)
+         *      }
+         *      then {
+         *          the IUT sends a DENM
+         *              containing management container
+         *                  containing actionID
+         *                      indicating ACTION_ID2
+         *              and containing alacarte container
+         *                  containing ImpactReductionContainer
+         *                  	containing requestResponseIndication
+         *                      	indicating response(1)
+         *      }
+         *  }
+         * 
+ * + * @version 1.2.1 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/MSRV/BV-10, ETSI EN 302 637-3, clause B.40 + */ + testcase TC_DEN_MSRV_BV_10() runs on ItsDenm system ItsDenmSystem { + + //Local constants + + // Local variables + var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); + var ActionID v_actionId; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + v_actionId := f_sendDenMessage ( + m_denm ( m_denmMgmtCon ( m_tsActionId), v_situation, m_denmLocation_zeroDelta, m_alacarteConImpactReduction ) ); + + tc_ac.start; + alt { + [] denmPort.receive ( mw_denmInd ( mw_denmPdu ( mw_denm ( mw_denmMgmtCon ( mw_actionId ( f_getTsStationId() ) ), v_situation, mw_anyDenmLocation, + mw_alacarteConImpactReduction ) ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: DENM with correct alacarte container ***"); + f_clientSyncAndVerdict(c_tbDone, e_success); + } + [] denmPort.receive ( mw_denmInd ( mw_denmPdu ( mw_denm ( mw_denmMgmtCon ( mw_actionId ( f_getTsStationId() ) ) ) ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: DENM with incorrect containers ***"); + f_clientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: DENM not rreceived ***"); + f_clientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poCancelEvent(e_ets, v_actionId); + f_cfDown(); + + } // end TC_DEN_MSRV_BV_10 + } // end denMessageReception // 5.2.3 group denKeepAliveForwarding { /** - * @desc Check that forwarder ITS-S forwards DENM if no DENM with same ActionId has been received during forwarding delay + * @desc Check that forwarding ITS-S forwards DENM if no DENM with same ActionId has been received during forwarding delay *
          * PICS Selection: PICS_KAF 
          * Initial conditions:
@@ -3554,7 +3789,7 @@ module ItsDenm_TestCases {
         testcase TC_DEN_KAFW_BV_01() runs on ItsDenm system ItsDenmSystem {
             
             //Local constants
-            const TransmissionInterval c_transmissionInterval := c_transmissionInterval_10sec;
+            const TransmissionInterval c_transmissionInterval := c_interval_10sec;
             // Local variables
             var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable);
             var ActionID v_actionId;
@@ -3578,7 +3813,6 @@ module ItsDenm_TestCases {
                     m_denmMgmtCon(
                         m_tsActionId,
                         -,
-                        -,
                         c_transmissionInterval * 3,
                         c_transmissionInterval
                     ),
@@ -3627,7 +3861,7 @@ module ItsDenm_TestCases {
         } // end TC_DEN_KAFW_BV_01
         
         /**
-         * @desc    Check that forwarder ITS-S forwards DENM if no DENM with same ActionId and referenceTime greater 
+         * @desc    Check that forwarding ITS-S forwards DENM if no DENM with same ActionId and referenceTime greater 
          *          or equal to the last received DENM has been received during forwarding delay
          * 
          * PICS Selection: PICS_KAF 
@@ -3672,7 +3906,7 @@ module ItsDenm_TestCases {
         testcase TC_DEN_KAFW_BV_02() runs on ItsDenm system ItsDenmSystem {
             
             //Local constants
-            const TransmissionInterval c_transmissionInterval := c_transmissionInterval_10sec;
+            const TransmissionInterval c_transmissionInterval := c_interval_10sec;
             // Local variables
             var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable);
             var TimestampIts v_referenceTime1 := f_getCurrentTime();
@@ -3698,10 +3932,8 @@ module ItsDenm_TestCases {
                     m_denmMgmtCon(
                         m_tsActionId,
                         -,
-                        -,
                         c_transmissionInterval * 3,
                         c_transmissionInterval,
-                        -,
                         v_referenceTime1
                     ),
                     v_situation,
@@ -3717,10 +3949,8 @@ module ItsDenm_TestCases {
                     m_denmMgmtCon(
                         m_tsActionId,
                         -,
-                        -,
                         c_transmissionInterval * 3,
                         c_transmissionInterval,
-                        -,
                         v_referenceTime2
                     ),
                     v_situation,
@@ -3811,7 +4041,7 @@ module ItsDenm_TestCases {
         testcase TC_DEN_KAFW_BV_03() runs on ItsDenm system ItsDenmSystem {
             
             //Local constants
-            const TransmissionInterval c_transmissionInterval := c_transmissionInterval_10sec;
+            const TransmissionInterval c_transmissionInterval := c_interval_10sec;
             // Local variables
             var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable);
             var ActionID v_actionId;
@@ -3836,7 +4066,6 @@ module ItsDenm_TestCases {
                     m_denmMgmtCon(
                         m_tsActionId,
                         -,
-                        -,
                         c_transmissionInterval * 3,
                         c_transmissionInterval
                     ),
@@ -3885,7 +4114,7 @@ module ItsDenm_TestCases {
         } // end TC_DEN_KAFW_BV_03
 
         /**
-         * @desc    Check that Forwarder ITS-S replaces the ITS PDU header of forwarded DENMs
+         * @desc    Check that Forwarding ITS-S replaces the ITS PDU header of forwarded DENMs
          * 
          * PICS Selection: PICS_KAF 
          * Initial conditions:
@@ -3923,7 +4152,7 @@ module ItsDenm_TestCases {
         testcase TC_DEN_KAFW_BV_04() runs on ItsDenm system ItsDenmSystem {
             
             //Local constants
-            const TransmissionInterval c_transmissionInterval := c_transmissionInterval_10sec;
+            const TransmissionInterval c_transmissionInterval := c_interval_10sec;
             // Local variables
             var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable);
             var ActionID v_actionId;
@@ -3945,7 +4174,6 @@ module ItsDenm_TestCases {
                     m_denmMgmtCon(
                         m_tsActionId,
                         -,
-                        -,
                         c_transmissionInterval * 3,
                         c_transmissionInterval
                     ),
@@ -3997,7 +4225,7 @@ module ItsDenm_TestCases {
         } // end TC_DEN_KAFW_BV_04
 
         /**
-         * @desc    Check that forwarder ITS-S does not change actionID
+         * @desc    Check that forwarding ITS-S does not change actionID
          * 
          * PICS Selection: PICS_KAF 
          * Initial conditions:
@@ -4034,7 +4262,7 @@ module ItsDenm_TestCases {
         testcase TC_DEN_KAFW_BV_05() runs on ItsDenm system ItsDenmSystem {
             
             //Local constants
-            const TransmissionInterval c_transmissionInterval := c_transmissionInterval_10sec;
+            const TransmissionInterval c_transmissionInterval := c_interval_10sec;
             // Local variables
             var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable);
             var ActionID v_actionId;
@@ -4056,7 +4284,6 @@ module ItsDenm_TestCases {
                     m_denmMgmtCon(
                         m_tsActionId,
                         -,
-                        -,
                         c_transmissionInterval * 3,
                         c_transmissionInterval
                     ),
@@ -4106,7 +4333,7 @@ module ItsDenm_TestCases {
         } // end TC_DEN_KAFW_BV_05
         
         /**
-         * @desc    Check that forwarder ITS-S does not change referenceTime
+         * @desc    Check that forwarding ITS-S does not change referenceTime
          * 
          * PICS Selection: PICS_KAF 
          * Initial conditions:
@@ -4146,7 +4373,7 @@ module ItsDenm_TestCases {
         testcase TC_DEN_KAFW_BV_06() runs on ItsDenm system ItsDenmSystem {
             
             //Local constants
-            const TransmissionInterval c_transmissionInterval := c_transmissionInterval_10sec;
+            const TransmissionInterval c_transmissionInterval := c_interval_10sec;
             // Local variables
             var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable);
             var TimestampIts v_referenceTime1 := f_getCurrentTime();
@@ -4169,10 +4396,8 @@ module ItsDenm_TestCases {
                     m_denmMgmtCon(
                         m_tsActionId,
                         -,
-                        -,
                         c_transmissionInterval * 3,
                         c_transmissionInterval,
-                        -,
                         v_referenceTime1
                     ),
                     v_situation,
@@ -4221,7 +4446,7 @@ module ItsDenm_TestCases {
         } // end TC_DEN_KAFW_BV_06
 
         /**
-         * @desc    Check that forwarder ITS-S does not change isNegation
+         * @desc    Check that forwarding ITS-S does not change termination
          * 
          * PICS Selection: PICS_KAF 
          * Initial conditions:
@@ -4234,8 +4459,8 @@ module ItsDenm_TestCases {
          *              indicating TRANS_INTERVAL1
          *          and containing validityDuration
          *              indicating value DURATION_1 more than 3 times greater than TRANS_INTERVAL1
-         *          and containing isNegation
-         *              indicating ISNEGATION_1
+         *          and containing termination
+         *              indicating isNegation
          *      and the IUT having starting timer T_Forwarding for this DENM
          *      and the IUT not having received further DENM 
          *          containing actionID
@@ -4249,8 +4474,8 @@ module ItsDenm_TestCases {
          *      then {
          *          the IUT reconstructs and sends the DENM associated to ACTION_ID1
          *              containing management container
-         *                  containing isNegation
-         *                      indicating ISNEGATION_1
+         *                  containing termination
+         *                      indicating isNegation
          *      }
          *  }
          * 
@@ -4261,7 +4486,7 @@ module ItsDenm_TestCases { testcase TC_DEN_KAFW_BV_07() runs on ItsDenm system ItsDenmSystem { //Local constants - const TransmissionInterval c_transmissionInterval := c_transmissionInterval_10sec; + const TransmissionInterval c_transmissionInterval := c_interval_10sec; // Local variables var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); var ActionID v_actionId; @@ -4282,7 +4507,6 @@ module ItsDenm_TestCases { m_denm( m_denmMgmtCon( m_tsActionId, - false, -, c_transmissionInterval * 3, c_transmissionInterval @@ -4298,7 +4522,7 @@ module ItsDenm_TestCases { mw_denmInd( mw_denmPdu( mw_denm( - mw_denmMgmtCon(v_actionId, -, false) + mw_denmMgmtCon ( v_actionId, - ) ) ) ) @@ -4311,7 +4535,7 @@ module ItsDenm_TestCases { mw_denmInd( mw_denmPdu( mw_denm( - mw_denmMgmtCon(v_actionId, -, true) + mw_denmMgmtCon ( v_actionId, - ) ) ) ) @@ -4333,7 +4557,7 @@ module ItsDenm_TestCases { } // end TC_DEN_KAFW_BV_07 /** - * @desc Check that Forwarder ITS-S does not modify management, situation, location and alacarte containers + * @desc Check that Forwarding ITS-S does not modify management, situation, location and alacarte containers * when forwarding a DENM *
          * PICS Selection: PICS_KAF 
@@ -4349,6 +4573,8 @@ module ItsDenm_TestCases {
          *              indicating LOCATION_1
          *          and containing alacarte container
          *              indicating ALACARTE_1
+         *          and containing transmissionInterval
+         *              indicating TRANS_INTERVAL1
          *      and the IUT having starting timer T_Forwarding for this DENM
          *      and the IUT not having received further DENM 
          *          containing actionID
@@ -4379,7 +4605,7 @@ module ItsDenm_TestCases {
         testcase TC_DEN_KAFW_BV_08() runs on ItsDenm system ItsDenmSystem {
             
             //Local constants
-            const TransmissionInterval c_transmissionInterval := c_transmissionInterval_10sec;
+            const TransmissionInterval c_transmissionInterval := c_interval_10sec;
             // Local variables
             var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable);
             var ActionID v_actionId;
@@ -4401,7 +4627,6 @@ module ItsDenm_TestCases {
                     m_denmMgmtCon(
                         m_tsActionId,
                         -,
-                        -,
                         c_transmissionInterval * 3,
                         c_transmissionInterval
                     ),
@@ -4455,7 +4680,7 @@ module ItsDenm_TestCases {
         } // end TC_DEN_KAFW_BV_08
 
         /**
-         * @desc    Check that forwarder ITS-S stops forwarding DENM after validity expiration
+         * @desc    Check that forwarding ITS-S stops forwarding DENM after validity expiration
          * 
          * PICS Selection: PICS_KAF 
          * Initial conditions:
@@ -4467,6 +4692,8 @@ module ItsDenm_TestCases {
          *                  indicating ACTION_ID1
          *              and containing validityDuration
          *                  indicating DURATION_1
+         *          	and containing transmissionInterval
+         *              	indicating TRANS_INTERVAL1
          *      and the IUT having starting timer T_Forwarding for this DENM
          *      and the IUT not having received further DENM 
          *          containing actionID
@@ -4489,7 +4716,7 @@ module ItsDenm_TestCases {
         testcase TC_DEN_KAFW_BV_09() runs on ItsDenm system ItsDenmSystem {
             
             //Local constants
-            const TransmissionInterval c_transmissionInterval := c_transmissionInterval_10sec;
+            const TransmissionInterval c_transmissionInterval := c_interval_10sec;
             // Local variables
             var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable);
             var ActionID v_actionId;
@@ -4513,7 +4740,6 @@ module ItsDenm_TestCases {
                     m_denmMgmtCon(
                         m_tsActionId,
                         -,
-                        -,
                         c_transmissionInterval * 3,
                         c_transmissionInterval
                     ),
@@ -4569,7 +4795,7 @@ module ItsDenm_TestCases {
         } // end TC_DEN_KAFW_BV_09
                                   
         /**
-         * @desc    Check that forwarder ITS-S stops forwarding DENM if it is outside relevance area
+         * @desc    Check that forwarding ITS-S stops forwarding DENM if it is outside relevance area
          * 
          * PICS Selection: PICS_KAF 
          * Initial conditions:
@@ -4579,6 +4805,8 @@ module ItsDenm_TestCases {
          *          containing management container
          *              containing actionID
          *                  indicating ACTION_ID1
+         *          	and containing transmissionInterval
+         *              	indicating TRANS_INTERVAL1
          *      and the IUT having starting timer T_Forwarding for this DENM
          *      and the IUT not having received further DENM 
          *          containing actionID
@@ -4601,7 +4829,7 @@ module ItsDenm_TestCases {
         testcase TC_DEN_KAFW_BV_10() runs on ItsDenm system ItsDenmSystem {
             
             //Local constants
-            const TransmissionInterval c_transmissionInterval := c_transmissionInterval_10sec;
+            const TransmissionInterval c_transmissionInterval := c_interval_10sec;
             // Local variables
             var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable);
             var ActionID v_actionId;
@@ -4624,7 +4852,6 @@ module ItsDenm_TestCases {
                     m_denmMgmtCon(
                         m_tsActionId,
                         -,
-                        -,
                         c_transmissionInterval * 5,
                         c_transmissionInterval
                     ),
@@ -4675,6 +4902,66 @@ module ItsDenm_TestCases {
             
         } // end TC_DEN_KAFW_BV_10
         
+        /**
+         * @desc    Check that forwarding ITS-S does not forward DENM is transmissionInterval is not present
+         * 
+         * PICS Selection: PICS_KAF 
+         * Initial conditions:
+         *  with {
+         *      the IUT being in the "initial state"
+         *  }
+         * Expected behaviour:
+         *  ensure that {
+         *      when {
+         *          the IUT receives a DENM
+         *          	containing actionID
+         *          		indicating ACTION_ID1
+         *          	and not containing transmissionInterval
+         *      }
+         *      then {
+         *          the IUT does not reconstruct and send the DENM associated with ACTION_ID1
+         *      }
+         *  }
+         * 
+ * + * @version 1.2.1 + * @see ETSI TS 102 869-2 v1.2.1 TP/DEN/KAFW/BV-10, ETSI EN 302 637-3, clause 8.2.2 + */ + testcase TC_DEN_KAFW_BV_11() runs on ItsDenm system ItsDenmSystem { + + // Local variables + var template (value) SituationContainer v_situation := m_situation(c_causeVehicleBreakdown, c_subCauseCode_Unavailable); + var ActionID v_actionId; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + v_actionId := f_sendDenMessage( m_denm ( m_denmMgmtCon ( m_tsActionId ), v_situation, m_denmLocation_zeroDelta ) ); + + tc_ac.start; + alt { + [] denmPort.receive ( mw_denmInd ( mw_denmPdu ( mw_denm ( mw_denmMgmtCon ( v_actionId ) ) ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: IUT reconstructs and sends the DENM associated with ACTION_ID ***"); + f_clientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": PASS: IUT does not reconstruct and send the DENM associated with ACTION_ID1 ***"); + f_clientSyncAndVerdict(c_tbDone, e_success); + } + } + + // Postamble + f_poCancelEvent(e_ets, v_actionId); + f_cfDown(); + + } // end TC_DEN_KAFW_BV_11 + } // end denKeepAliveForwarding } // end ItsDenm_TestCases diff --git a/ttcn/AtsDENM/ItsDenm_TestControl.ttcn b/ttcn/AtsDENM/ItsDenm_TestControl.ttcn index a592fc326719e3e369c3cdd0cfb933fb5655245d..4857cfc0a70b4955f8eb569b0b04e8885f1120fe 100644 --- a/ttcn/AtsDENM/ItsDenm_TestControl.ttcn +++ b/ttcn/AtsDENM/ItsDenm_TestControl.ttcn @@ -21,10 +21,8 @@ module ItsDenm_TestControl { execute(TC_DEN_EVGN_BV_03()); execute(TC_DEN_EVGN_BV_04()); execute(TC_DEN_EVGN_BV_05()); - execute(TC_DEN_EVGN_BV_06()); execute(TC_DEN_EVGN_BV_07()); execute(TC_DEN_EVGN_BV_08()); - execute(TC_DEN_EVGN_BV_09()); execute(TC_DEN_EVUP_BV_01()); execute(TC_DEN_EVUP_BV_02()); diff --git a/ttcn/AtsGeoNetworking/ItsGeoNetworking_TestCases.ttcn b/ttcn/AtsGeoNetworking/ItsGeoNetworking_TestCases.ttcn index 68fea5982db5cdc0c41540736b2903ec237e3510..89136851473b03b11ae478b13d9b5978cf970c4d 100644 --- a/ttcn/AtsGeoNetworking/ItsGeoNetworking_TestCases.ttcn +++ b/ttcn/AtsGeoNetworking/ItsGeoNetworking_TestCases.ttcn @@ -52,7 +52,7 @@ module ItsGeoNetworking_TestCases { * } *
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/BAH/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/BAH/BV/01 * @reference EN 302 636-4-1 [1], clauses 9.3.2 , 8.6.2 and Annex G */ testcase TC_GEONW_FDV_BAH_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -70,23 +70,23 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeB.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwUnicastPacket(?, ?), -, f_getDefaultHopLimit()))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Basic Header correctly formatted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -119,7 +119,7 @@ module ItsGeoNetworking_TestCases { * } *
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/BAH/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/BAH/BV/02 * @reference EN 302 636-4-1 [1], clauses 9.3.3 */ testcase TC_GEONW_FDV_BAH_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -138,7 +138,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body v_gnPacket := m_geoNwPdu(m_geoNwShbPacket(v_longPosVectorNodeB)); @@ -152,11 +152,11 @@ module ItsGeoNetworking_TestCases { } if(i < lengthof(vc_utInds)) { log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: GN was discarded and not transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // Postamble @@ -197,7 +197,7 @@ module ItsGeoNetworking_TestCases { * } *
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/COH/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/COH/BV/01 * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.6 and 9.3.6 */ testcase TC_GEONW_FDV_COH_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -216,7 +216,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -224,11 +224,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBeaconPacket(?)))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Common Header correclty formatted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -270,7 +270,7 @@ module ItsGeoNetworking_TestCases { * } *
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/COH/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/COH/BV/02 * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.4, 9.3.4 and 9.3.10 */ testcase TC_GEONW_FDV_COH_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -290,9 +290,9 @@ module ItsGeoNetworking_TestCases { f_prNeighbour(); if ( not f_utTriggerEvent(m_generateShbMessageWithPayload(v_payload)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -302,7 +302,7 @@ module ItsGeoNetworking_TestCases { if(ispresent(v_geoNwInd.msgIn.gnPacket.packet.payload)) { if(v_geoNwInd.msgIn.gnPacket.packet.commonHeader.plLength == lengthof(v_geoNwInd.msgIn.gnPacket.packet.payload.rawPayload)) { log("*** " & testcasename() & ": PASS: PL field correctly indicates payload size ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: PL does correctly not indicate payload size (" @@ -310,23 +310,23 @@ module ItsGeoNetworking_TestCases { & " != " & int2str(lengthof(v_geoNwInd.msgIn.gnPacket.packet.payload.rawPayload)) & ")***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } else { if(v_geoNwInd.msgIn.gnPacket.packet.commonHeader.plLength == 0) { log("*** " & testcasename() & ": PASS: PL field correctly indicates empty payload ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: PL does not indicate empty payload ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -362,7 +362,7 @@ module ItsGeoNetworking_TestCases { *
* * @version 0.0.11 - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/COH/BV/03 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/COH/BV/03 * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.8.2, 9.3.4 and Annex G */ testcase TC_GEONW_FDV_COH_BV_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -380,12 +380,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeB.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; @@ -394,16 +394,16 @@ module ItsGeoNetworking_TestCases { mw_geoNwUnicastPacketWithHlAndFlags(?, ?, f_getDefaultHopLimit(), f_isMobile())))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Correct GeoNetworking Common Header received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] a_receiveAnyGeoUnicast() { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Incorrect GeoNetworking Common Header received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -444,7 +444,7 @@ module ItsGeoNetworking_TestCases { *
* * @version 0.0.11 - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/COH/BV/04 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/COH/BV/04 * @reference EN 302 636-4-1 [1], clauses 9.3.5 */ testcase TC_GEONW_FDV_COH_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -485,7 +485,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -516,11 +516,11 @@ module ItsGeoNetworking_TestCases { ) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: TSB packet was not discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: TSB was correctly discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -539,7 +539,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -556,11 +556,11 @@ module ItsGeoNetworking_TestCases { ) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: TSB packet was not discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: TSB was correctly discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -606,7 +606,7 @@ module ItsGeoNetworking_TestCases { * } *
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/BEA/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/BEA/BV/01 * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.8.6 and 9.3.6 */ testcase TC_GEONW_FDV_BEA_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -625,7 +625,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -633,11 +633,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBeaconPacket(mw_longPosVectorPosition(v_longPosVectorIut), e_any)))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Common Header correclty formatted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -675,7 +675,7 @@ module ItsGeoNetworking_TestCases { * *
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/BEA/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/BEA/BV/02 * @reference EN 302 636-4-1 [1], clauses 6.3 and 8.8.6.2 */ testcase TC_GEONW_FDV_BEA_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -694,7 +694,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -703,11 +703,11 @@ module ItsGeoNetworking_TestCases { mw_longPosVectorAny(f_getIutGnLocalAddress()))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GN address correctly received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -739,7 +739,7 @@ module ItsGeoNetworking_TestCases { * } *
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/BEA/BV/03 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/BEA/BV/03 * @reference EN 302 636-4-1 [1], clauses 8.5.2.2 and 8.8.6.2 */ testcase TC_GEONW_FDV_BEA_BV_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -758,7 +758,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -766,11 +766,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBeaconPacket(mw_longPosVectorPosition_withDelta(v_longPosVectorIut))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Position equaling GN-MNGT primitive value received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -802,7 +802,7 @@ module ItsGeoNetworking_TestCases { * } *
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/BEA/BV/04 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/BEA/BV/04 * @reference EN 302 636-4-1 [1], clauses 8.5.2.2 and 8.8.6.2 */ testcase TC_GEONW_FDV_BEA_BV_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -821,7 +821,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -829,11 +829,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBeaconPacket(mw_longPosVectorPosition_withDelta(v_longPosVectorIut))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Timestamp equaling GN-MNGT primitive value received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -879,7 +879,7 @@ module ItsGeoNetworking_TestCases { * } *
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/GUC/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/GUC/BV/01 * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.8.2.2 and 9.3.8 */ testcase TC_GEONW_FDV_GUC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -899,12 +899,12 @@ module ItsGeoNetworking_TestCases { v_longPosVectorNodeB := f_getPosition(c_compNodeB); v_longPosVectorIut := f_getPosition(c_compIut); f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeB.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; @@ -923,11 +923,11 @@ module ItsGeoNetworking_TestCases { tc_ac.stop; log("*** " & testcasename() & ": PASS: Fields of the received GeoUnicast message correctly set ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: GeoUnicast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -969,7 +969,7 @@ module ItsGeoNetworking_TestCases { * } *
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/GBC/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/GBC/BV/01 * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.5.2 and 9.3.11 */ testcase TC_GEONW_FDV_GBC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -990,12 +990,12 @@ module ItsGeoNetworking_TestCases { v_longPosVectorNodeB := f_getPosition(c_compNodeB); v_longPosVectorIut := f_getPosition(c_compIut); f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoBroadcastMessageWithPayload(f_getArea(c_area1), v_payload)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { @@ -1014,11 +1014,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Fields of the received GeoBroadcast message correctly set ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1060,7 +1060,7 @@ module ItsGeoNetworking_TestCases { * } *
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/GAC/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/GAC/BV/01 * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.5.2 and 9.3.12 */ testcase TC_GEONW_FDV_GAC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -1079,12 +1079,12 @@ module ItsGeoNetworking_TestCases { // Preamble v_longPosVectorIut := f_getPosition(c_compIut); f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoAnycastMessageWithPayload(f_getArea(c_area1), v_payload)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { @@ -1103,11 +1103,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Fields of the received GeoAnycast message correctly set ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: GeoAnycast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1153,7 +1153,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/SHB/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/SHB/BV/01 * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 9.3.4, 8.8.4.2 and 9.3.10 */ testcase TC_GEONW_FDV_SHB_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -1171,12 +1171,12 @@ module ItsGeoNetworking_TestCases { // Preamble v_longPosVectorIut := f_getPosition(c_compIut); f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateShbMessage) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { @@ -1192,11 +1192,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Fields of the received SHB message correctly set ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: SHB message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1240,7 +1240,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/FDV/TSB/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/TSB/BV/01 * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.3.2 and 9.3.9 */ testcase TC_GEONW_FDV_TSB_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -1258,12 +1258,12 @@ module ItsGeoNetworking_TestCases { // Preamble v_longPosVectorIut := f_getPosition(c_compIut); f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateTsbMessage) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { @@ -1279,11 +1279,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: message received with correct common and extended headers ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: TSB message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1337,8 +1337,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/01 - * @reference EN 302 636-4-1 [1], clauses 9.3.6.2 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/01 + * @reference EN 302 636-4-1 [1], clauses 9.3.10.3, 9.3.6.2 and 9.3.8.2 */ testcase TC_GEONW_PON_LOT_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -1355,12 +1355,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeB.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; @@ -1368,16 +1368,16 @@ module ItsGeoNetworking_TestCases { [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeB))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoUnicast packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] a_receiveAnyLsRequest() { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received Location Service Request ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": TIMEOUT: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1429,8 +1429,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/02 - * @reference EN 302 636-4-1 [1], clauses 9.3.7.1.2, 9.3.7.1.4 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/02 + * @reference EN 302 636-4-1 [1], clauses 9.3.7.1.4, 9.3.7.1.2 and 9.3.8.2 */ testcase TC_GEONW_PON_LOT_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -1456,7 +1456,7 @@ module ItsGeoNetworking_TestCases { if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeA.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } tc_ac.start; alt { @@ -1475,37 +1475,37 @@ module ItsGeoNetworking_TestCases { } else { log("*** " & testcasename() & ": Pre-conditions: GeoUnicast packet received without LS Request ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error); + f_selfOrClientSyncAndVerdict(c_prDone, e_error); } } [] tc_ac.timeout { log("*** " & testcasename() & ": Pre-conditions: Initial conditions not satisfied. ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeA.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { [] a_receiveLsRequest(?, v_gnAddressNodeA.mid, v_longPosVectorIut) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received Location Service Request ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeA))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Received second GeoUnicast packet without LS Request ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1553,8 +1553,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 */ testcase TC_GEONW_PON_LOT_BV_03_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -1607,8 +1607,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 */ testcase TC_GEONW_PON_LOT_BV_03_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -1663,8 +1663,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 */ testcase TC_GEONW_PON_LOT_BV_03_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -1719,8 +1719,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 */ testcase TC_GEONW_PON_LOT_BV_03_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -1775,8 +1775,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 */ testcase TC_GEONW_PON_LOT_BV_03_05() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -1830,8 +1830,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 */ testcase TC_GEONW_PON_LOT_BV_03_06() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -1884,8 +1884,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 */ testcase TC_GEONW_PON_LOT_BV_03_07() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -1942,8 +1942,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 */ testcase TC_GEONW_PON_LOT_BV_03_08() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -1993,7 +1993,7 @@ module ItsGeoNetworking_TestCases { f_sendGeoNetMessage( m_geoNwReq_linkLayerBroadcast(m_geoNwPdu(p_packet)) ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } // end f_TP_GEONW_PON_LOT_BV_03_pre_2 /** @@ -2004,7 +2004,7 @@ module ItsGeoNetworking_TestCases { // Test Body if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(valueof(p_longPosVectorNodeA.gnAddr))) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; @@ -2012,16 +2012,16 @@ module ItsGeoNetworking_TestCases { [] a_receiveAnyLsRequest() { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received Location Service Request ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(valueof(p_longPosVectorNodeA)))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoUnicast packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2058,7 +2058,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/04 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/04 * @reference EN 302 636-4-1 [1], clauses 7.1.3, 9.3.8.2, 9.3.7.1.2 and Annex G */ testcase TC_GEONW_PON_LOT_BV_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -2076,24 +2076,24 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); // NodeB will send Beacon only once f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(m_geoNwPdu(m_geoNwBeaconPacket(f_getPosition(c_compNodeB)), -, c_hopLimit1))); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sleep(f_getLifetimeLocTableEntry()); if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeB.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { [] a_receiveLsRequest(?, v_longPosVectorNodeB.gnAddr.mid, v_longPosVectorIut ) { log("*** " & testcasename() & ": PASS: LS Request received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: LS Request not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2144,8 +2144,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 */ testcase TC_GEONW_PON_LOT_BV_05_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -2206,8 +2206,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 */ testcase TC_GEONW_PON_LOT_BV_05_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -2268,8 +2268,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 */ testcase TC_GEONW_PON_LOT_BV_05_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -2330,8 +2330,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 */ testcase TC_GEONW_PON_LOT_BV_05_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -2391,8 +2391,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 */ testcase TC_GEONW_PON_LOT_BV_05_05() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -2451,8 +2451,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 */ testcase TC_GEONW_PON_LOT_BV_05_06() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -2515,8 +2515,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOT/BV/05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4 and 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV/05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 */ testcase TC_GEONW_PON_LOT_BV_05_07() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -2572,7 +2572,7 @@ module ItsGeoNetworking_TestCases { f_sendGeoNetMessage( m_geoNwReq_linkLayerBroadcast(m_geoNwPdu(p_packet)) ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } // end f_TP_GEONW_PON_LOT_BV_05_pre_2 /** @@ -2583,7 +2583,7 @@ module ItsGeoNetworking_TestCases { // Test Body if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(valueof(p_longPosVectorNodeB.gnAddr)))) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; @@ -2591,21 +2591,21 @@ module ItsGeoNetworking_TestCases { [] a_receiveAnyLsRequest() { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Received Location Service Request ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(valueof(p_obsoleteLongPosVectorNodeB)))) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: GeoUnicast received with obsolete Destination Position Vector ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(valueof(p_longPosVectorNodeB)))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoUnicast packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2651,7 +2651,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LPV/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LPV/BV/01 * @reference EN 302 636-4-1 [1], clauses 7.2.3, 9.2.2.2, 9.3.6.1 and Annex G */ testcase TC_GEONW_PON_LPV_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -2687,11 +2687,11 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": Pre-conditions: Expected message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } f_utChangePosition(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body geoNetworkingPort.clear; @@ -2706,16 +2706,16 @@ module ItsGeoNetworking_TestCases { //check if the position vector has changed if (match(v_geoNwInd.msgIn.gnPacket.packet.extendedHeader.beaconHeader.srcPosVector, v_previouslongPosVectorIut)) { log("*** " & testcasename() & ": FAIL: Sender Postion Vector not correctly updated ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: Sender Postion Vector correctly updated ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } f_acTriggerEvent(m_stopPassBeaconing); @@ -2739,6 +2739,7 @@ module ItsGeoNetworking_TestCases { * Initial conditions: * with { * the IUT being in the "initial state" and + * the IUT not having sent any GUC and * the IUT having received Beacon information from ItsNodeB * } * Expected behaviour: @@ -2760,7 +2761,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/SQN/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/SQN/BV/01 * @reference EN 302 636-4-1 [1], clauses 7.2.3, 9.3.8.2 */ testcase TC_GEONW_PON_SQN_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -2779,12 +2780,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeB.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; @@ -2792,16 +2793,16 @@ module ItsGeoNetworking_TestCases { [] a_receiveGeoUnicast(mw_shortPosVectorPosition_anyPos(f_longPosVector2ShortPosVector(v_longPosVectorNodeB)), v_expectedSequenceNumber) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoUnicast packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] a_receiveGeoUnicast(mw_shortPosVectorPosition_anyPos(f_longPosVector2ShortPosVector(v_longPosVectorNodeB)), ?) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: GeoUnicast packet received with incorrect sequence number ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2841,7 +2842,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/SQN/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/SQN/BV/02 * @reference EN 302 636-4-1 [1], clauses 7.2.3, 9.3.8.2 */ testcase TC_GEONW_PON_SQN_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -2866,7 +2867,7 @@ module ItsGeoNetworking_TestCases { // receive first packet if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeB.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } tc_ac.start; alt { @@ -2880,15 +2881,15 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": Pre-conditions: Expected message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeB.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { @@ -2897,13 +2898,13 @@ module ItsGeoNetworking_TestCases { v_nbReceivedPackets := v_nbReceivedPackets + 1; if(v_nbReceivedPackets >= vc_multipleMessagesCount) { log("*** " & testcasename() & ": PASS: GeoUnicast packets received with correct sequence numbers ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { v_expectedSequenceNumber := v_expectedSequenceNumber + 1; if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeB.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; repeat; @@ -2912,11 +2913,11 @@ module ItsGeoNetworking_TestCases { [] a_receiveGeoUnicast(mw_shortPosVectorPosition_anyPos(f_longPosVector2ShortPosVector(v_longPosVectorNodeB)), ?) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: GeoUnicast packet received with incorrect sequence number ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2962,8 +2963,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOS/BV/01 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.2, 9.2.4 and 9.3.7.1.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/01 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.2, 9.2.4, 6.3 and 9.3.7.1.2 */ testcase TC_GEONW_PON_LOS_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -2981,12 +2982,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_gnAddressNodeA)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; @@ -2998,16 +2999,16 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: LS Request received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] a_receiveAnyLsRequest() { tc_ac.stop; log("*** " & testcasename() & ": FAIL: LS Request does not contain GN Address of nodeA ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -3047,7 +3048,7 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOS/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/02 * @reference EN 302 636-4-1 [1], clauses 9.3.8.2, 9.2.4 and 9.3.7.1.2 */ testcase TC_GEONW_PON_LOS_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -3068,7 +3069,7 @@ module ItsGeoNetworking_TestCases { f_prNeighbour(); if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_gnAddressNodeA)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } tc_ac.start; alt { @@ -3078,23 +3079,23 @@ module ItsGeoNetworking_TestCases { tc_ac.start(f_getLsRetransmitTimer() - f_getDeltaTimer()); } } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_gnAddressNodeA)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } alt { [] a_receiveLsRequest(?, v_gnAddressNodeA.mid, v_longPosVectorIut) { tc_ac.stop; log("*** " & testcasename() & ": Second LS_REQUEST received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": No second LS_REQUEST received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -3134,8 +3135,8 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOS/BV/03 - * @reference EN 302 636-4-1 [1], clauses 7.4.2, 9.3.8.2, 9.2.4 and 9.3.7.1.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/03 + * @reference EN 302 636-4-1 [1], clauses 7.4.3, 9.3.7.1.4, 9.3.8.2, 9.2.4 and 9.3.7.1.2 */ testcase TC_GEONW_PON_LOS_BV_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -3156,7 +3157,7 @@ module ItsGeoNetworking_TestCases { f_prNeighbour(); if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeA.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } tc_ac.start; alt { @@ -3164,7 +3165,7 @@ module ItsGeoNetworking_TestCases { tc_ac.stop; } } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -3197,16 +3198,16 @@ module ItsGeoNetworking_TestCases { //we do not know exactly the time passed at IUT if (f_getLifetimeValue(v_geoNetInd.msgIn.basicHeader.lifeTime) * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOS/BV/04 - * @reference EN 302 636-4-1 [1], clauses 7.4.2, 9.3.8.2, 9.2.4 and 9.3.7.1.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/04 + * @reference EN 302 636-4-1 [1], clauses 7.4.3, 9.3.8.2, 9.2.4 and 9.3.7.1.2 */ testcase TC_GEONW_PON_LOS_BV_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -3284,7 +3285,7 @@ module ItsGeoNetworking_TestCases { if ( not f_utTriggerEvent(m_generateGeoUnicastMessageWithPayload(v_longPosVectorNodeA.gnAddr, v_payload1)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } tc_ac.start; @@ -3299,14 +3300,14 @@ module ItsGeoNetworking_TestCases { v_longPosVectorNodeA, f_longPosVector2ShortPosVector(v_longPosVectorIut), vc_localSeqNumber ) ) ) ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } else { log("*** " & testcasename() & ": First LsRequest received ***"); v_firstLsRequestReceived := true; if ( not f_utTriggerEvent(m_generateGeoUnicastMessageWithPayload(v_longPosVectorNodeA.gnAddr, v_payload2)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } tc_ac.start; repeat; @@ -3314,7 +3315,7 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout{ log("*** " & testcasename() & ": Pre-conditions: Expected message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } @@ -3337,7 +3338,7 @@ module ItsGeoNetworking_TestCases { v_msg1Received := true; if ( v_msg2Received ) { log("*** " & testcasename() & ": FAIL: Messages received in incorrect order ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": First Message received ***"); @@ -3360,7 +3361,7 @@ module ItsGeoNetworking_TestCases { v_msg2Received := true; if ( v_msg1Received ) { log("*** " & testcasename() & ": PASS: Messages received in correct order ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": Second Message received ***"); @@ -3369,7 +3370,7 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": Expected messages not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -3405,8 +3406,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOS/BV/05 - * @reference EN 302 636-4-1 [1], clauses 7.4.2, 9.3.8.2, 9.2.4 and 9.3.7.1.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/05 + * @reference EN 302 636-4-1 [1], clauses 7.4.3, 9.3.8.2, 9.2.4 and 9.3.7.1.2 */ testcase TC_GEONW_PON_LOS_BV_05() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -3429,24 +3430,24 @@ module ItsGeoNetworking_TestCases { if ( not f_utTriggerEvent(m_generateGeoUnicastMessageWithPayload(v_longPosVectorNodeA.gnAddr, v_payload1)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } if ( not f_utTriggerEvent(m_generateGeoUnicastMessageWithPayload(v_longPosVectorNodeA.gnAddr, v_payload2)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } tc_ac.start; alt { [] a_receiveLsRequest(?, v_longPosVectorNodeA.gnAddr.mid, v_longPosVectorIut) { tc_ac.stop; - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); //start retransmission timer tc_ac.start(f_getMaxPacketLifeTime() + f_getDeltaTimer()); } [] tc_ac.timeout{ log("*** " & testcasename() & ": Pre-conditions: Expected message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } @@ -3480,11 +3481,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive (mw_geoNwInd(mw_geoNwPdu(?))){ tc_noac.stop; log("*** " & testcasename() & ": Message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": No message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -3517,12 +3518,12 @@ module ItsGeoNetworking_TestCases { * } * then { * the IUT retransmits the LS_REQUEST packet - * after expiry of itsGnLocationServiceTimer + * upon expiry of itsGnLocationServiceTimer * } * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOS/BV/06 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/06 * @reference EN 302 636-4-1 [1], clauses 9.3.7.1.3, 9.3.7.1.2 and 9.3.8.2 */ testcase TC_GEONW_PON_LOS_BV_06() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -3548,20 +3549,20 @@ module ItsGeoNetworking_TestCases { if ( not f_utTriggerEvent(m_generateGeoUnicastMessageWithLifetime(v_longPosVectorNodeA.gnAddr, float2int(int2float(v_maxNbrRetrans + 2) * f_getLsRetransmitTimer() * 1000.0))) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } tc_ac.start; alt { [] a_receiveLsRequest(?, v_longPosVectorNodeA.gnAddr.mid, v_longPosVectorIut) { tc_ac.stop; - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); //start retransmission timer t_minRetrans.start; } [] tc_ac.timeout { log("*** " & testcasename() & ": Pre-conditions: Expected message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } @@ -3577,16 +3578,16 @@ module ItsGeoNetworking_TestCases { tc_ac.stop; if(v_retransmitOk == true) { log("*** " & testcasename() & ": LS_REQUEST correctly retransmitted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": LS_REQUEST retransmitted too early ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } [] tc_ac.timeout { log("*** " & testcasename() & ": No LS_REQUEST retransmitted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -3623,7 +3624,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOS/BV/07 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/07 * @reference EN 302 636-4-1 [1], clauses 9.3.7.1.2, 9.3.7.1.3 and 9.3.8.2 */ testcase TC_GEONW_PON_LOS_BV_07() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -3648,18 +3649,18 @@ module ItsGeoNetworking_TestCases { v_longPosVectorNodeA.gnAddr, float2int(int2float(v_maxNbrRetrans + 2) * f_getLsRetransmitTimer() * 1000.0))) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } tc_ac.start; alt { [] a_receiveLsRequest(?, v_longPosVectorNodeA.gnAddr.mid, v_longPosVectorIut) { tc_ac.stop; - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": Pre-conditions: Expected message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } @@ -3672,7 +3673,7 @@ module ItsGeoNetworking_TestCases { if(v_nbLsReceived > v_maxNbrRetrans) { //first LS request is not counted as a retransmission log("*** " & testcasename() & ": LS_REQUEST retransmitted more than itsGnLocationServiceMaxRetrans times ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { tc_ac.start; @@ -3683,11 +3684,11 @@ module ItsGeoNetworking_TestCases { if(v_nbLsReceived == (v_maxNbrRetrans)) { //first LS request is not counted as a retransmission log("*** " & testcasename() & ": LS_REQUEST retransmitted itsGnLocationServiceMaxRetrans times ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": LS_REQUEST retransmitted less than itsGnLocationServiceMaxRetrans times ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } } @@ -3726,8 +3727,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOS/BV/08 - * @reference EN 302 636-4-1 [1], clauses 9.3.7.1.4 and 9.3.5 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/08 + * @reference EN 302 636-4-1 [1], clauses 9.3.7.3 and 9.3.5 */ testcase TC_GEONW_PON_LOS_BV_08() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -3749,17 +3750,17 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body v_ret := f_processLocationService(v_longPosVectorNodeA, v_seqNbr, v_iutGnAddress, v_longPosVectorIut); if (v_ret == e_success) { log("*** " & testcasename() & ": LS_REPLY packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": LS_REPLY packet not received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } // Postamble @@ -3792,8 +3793,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOS/BV/09 - * @reference EN 302 636-4-1 [1], clauses 9.3.7.1.4 and 9.3.5 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/09 + * @reference EN 302 636-4-1 [1], clauses 9.3.7.3 and 9.3.5 */ testcase TC_GEONW_PON_LOS_BV_09() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -3840,10 +3841,10 @@ module ItsGeoNetworking_TestCases { v_longPosVectorIut.gnAddr, v_longPosVectorIut); if (v_ret == e_error) { - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } else { - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } // Test Body @@ -3861,11 +3862,11 @@ module ItsGeoNetworking_TestCases { ) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: LS_REQUEST has not been discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: LS_REQUEST discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -3887,7 +3888,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -3916,11 +3917,11 @@ module ItsGeoNetworking_TestCases { ) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: LS_REQUEST has not been discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: LS_REQUEST discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -3966,7 +3967,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOS/BV/10 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/10 * @reference EN 302 636-4-1 [1], clauses 9.3.7.2 */ testcase TC_GEONW_PON_LOS_BV_10() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -4006,7 +4007,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -4025,11 +4026,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Re-broadcasted LS Request received with HL field decreased by 1 ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: LS Request was not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -4047,7 +4048,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -4063,7 +4064,7 @@ module ItsGeoNetworking_TestCases { ) ) ); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -4102,7 +4103,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOS/BV/11 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/11 * @reference EN 302 636-4-1 [1], clauses 9.3.7.2 */ testcase TC_GEONW_PON_LOS_BV_11() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -4143,7 +4144,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -4161,11 +4162,11 @@ module ItsGeoNetworking_TestCases { ) ) { log("*** " & testcasename() & ": PASS: Forwarded LS Reply received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: LS Reply was not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -4184,7 +4185,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -4200,7 +4201,7 @@ module ItsGeoNetworking_TestCases { ) ) ); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -4226,7 +4227,7 @@ module ItsGeoNetworking_TestCases { * Expected behaviour: * ensure that { * when { - * the IUT receives a GeoUnicast packet from ItsNodeA before expiry of LT1 + * the IUT receives a GeoUnicast packet addressed to it from ItsNodeA before expiry of LT1 * } * then { * the IUT sends the waiting GeoUnicast packet to ItsNodeA @@ -4234,7 +4235,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOS/BV/12 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/12 * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.7.1.2 and 7.4.2 */ testcase TC_GEONW_PON_LOS_BV_12() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -4256,17 +4257,17 @@ module ItsGeoNetworking_TestCases { f_prNeighbour(); if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeA.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } tc_ac.start; alt { [] a_receiveLsRequest(?, v_longPosVectorNodeA.gnAddr.mid, v_longPosVectorIut) { tc_ac.stop; - f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Pre-conditions: LS Request not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } @@ -4287,12 +4288,12 @@ module ItsGeoNetworking_TestCases { alt { [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeA))) { tc_ac.stop; - log("*** " & testcasename() & ": GeoUnicast packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + log("*** " & testcasename() & ": PASS: GeoUnicast packet received correctly ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + log("*** " & testcasename() & ": FAIL: Expected message not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -4340,8 +4341,8 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOS/BV/13 - * @reference EN 302 636-4-1 [1], clauses 7.4.2, 9.3.7.1.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/13 + * @reference EN 302 636-4-1 [1], clauses 7.4.3, 9.3.7.1.2 */ testcase TC_GEONW_PON_LOS_BV_13() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -4367,26 +4368,26 @@ module ItsGeoNetworking_TestCases { if ( not f_utTriggerEvent(m_generateGeoUnicastMessageWithLifetimeWithPayload(v_longPosVectorNodeA.gnAddr, v_lt2*1000, v_payload2)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } if ( not f_utTriggerEvent(m_generateGeoUnicastMessageWithLifetimeWithPayload(v_longPosVectorNodeA.gnAddr, v_lt1*1000, v_payload1)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } tc_ac.start; alt { [] a_receiveLsRequest(?, v_longPosVectorNodeA.gnAddr.mid, v_longPosVectorIut) { tc_ac.stop; - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Pre-conditions: LS Request not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body //Send LS-REPLY after LT2 expiry @@ -4441,16 +4442,16 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: message with elapsed lifetime received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { if(v_msg1Received == true) { log("*** " & testcasename() & ": PASS: message with running lifetime received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: message with running lifetime not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } } @@ -4490,8 +4491,8 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/LOS/BV/14 - * @reference EN 302 636-4-1 [1], clauses 7.4.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/14 + * @reference EN 302 636-4-1 [1], clauses 7.4.3 */ testcase TC_GEONW_PON_LOS_BV_14() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -4515,7 +4516,7 @@ module ItsGeoNetworking_TestCases { v_LT1 := float2int(int2float(v_maxNbrRetrans + 2) * f_getLsRetransmitTimer() * 1000.0); if ( not f_utTriggerEvent(m_generateGeoUnicastMessageWithLifetime(v_longPosVectorNodeA.gnAddr,v_LT1)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } tc_wait.start(int2float(v_LT1)); @@ -4523,11 +4524,11 @@ module ItsGeoNetworking_TestCases { alt { [] a_receiveLsRequest(?, v_longPosVectorNodeA.gnAddr.mid, v_longPosVectorIut) { tc_ac.stop; - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": Pre-conditions: Expected message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } @@ -4539,7 +4540,7 @@ module ItsGeoNetworking_TestCases { if(v_nbLsReceived > v_maxNbrRetrans) { //first LS request is not counted as a retransmission log("*** " & testcasename() & ": Pre-conditions: LS_REQUEST retransmitted more than itsGnLocationServiceMaxRetrans times ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error); + f_selfOrClientSyncAndVerdict(c_prDone, e_error); } else { tc_ac.start; @@ -4550,11 +4551,11 @@ module ItsGeoNetworking_TestCases { if(v_nbLsReceived == (v_maxNbrRetrans)) { //first LS request is not counted as a retransmission log("*** " & testcasename() & ": Pre-conditions: LS_REQUEST retransmitted itsGnLocationServiceMaxRetrans times ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } else { log("*** " & testcasename() & ": Pre-conditions: LS_REQUEST retransmitted less than itsGnLocationServiceMaxRetrans times ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error); + f_selfOrClientSyncAndVerdict(c_prDone, e_error); } } } @@ -4579,18 +4580,18 @@ module ItsGeoNetworking_TestCases { // no check for ItsNodeA address as no other trigger for messages exists [] geoNetworkingPort.receive { tc_noac.stop; - log("*** " & testcasename() & ": Unexpected message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + log("*** " & testcasename() & ": FAIL: Unexpected message received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { - log("*** " & testcasename() & ": No message was sent ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + log("*** " & testcasename() & ": PASS: No message was sent ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } } else { - log("*** " & testcasename() & ": LT1 expired ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + log("*** " & testcasename() & ": FAIL: LT1 expired ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } // Postamble @@ -4598,6 +4599,303 @@ module ItsGeoNetworking_TestCases { f_cf01Down(); } // end TC_GEONW_PON_LOS_BV_14 + + /** + * @desc Test flushing of the LS buffer, initiated by the processing of a common header from the target destination + *
+             * Pics Selection: none
+             * Config Id: CF01
+             * Initial conditions:
+             *  with {
+             *  	the IUT being in the "initial state" and
+             *  	the IUT having no Location Table Entry for ItsNodeA and
+             *  	the IUT having been requested to send a GeoUnicast packet ItsNodeA
+             *  		containing LT field
+             *  			indicating LT1 and
+             *  	the IUT having sent a LS_REQUEST packet
+             *  }
+             * Expected behaviour:
+             *  ensure that {
+             *  	when {
+             *  		the IUT receives a GeoUnicast packet addressed to ItsNodeB from ItsNodeA before expiry of LT1
+             *  	}
+             *  	then {
+             *  		the IUT sends the waiting GeoUnicast packet to ItsNodeA
+             *  	}
+             *  }
+             * 
+ * + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/15 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, 9.3.7.1.2 and 7.4.2 + */ + testcase TC_GEONW_PON_LOS_BV_15() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + // Local variables + var LongPosVector v_longPosVectorNodeA; + var LongPosVector v_longPosVectorNodeB; + var LongPosVector v_longPosVectorIut; + var UInt16 v_seqNbr := vc_localSeqNumber; + + // Test control + + // Test component configuration + f_cf01Up(); + v_longPosVectorNodeA := f_getPosition(c_compNodeA); + v_longPosVectorNodeB := f_getPosition(c_compNodeB); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeA.gnAddr)) ) { + log("*** " & testcasename() & ": INCONC: Trigger failed ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + tc_ac.start; + alt { + [] a_receiveLsRequest(?, v_longPosVectorNodeA.gnAddr.mid, v_longPosVectorIut) { + tc_ac.stop; + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Pre-conditions: LS Request not received ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + } + + // Test Body + f_sendGeoNetMessage( + m_geoNwReq_linkLayerBroadcast( + m_geoNwPdu( + m_geoNwUnicastPacket( + v_longPosVectorNodeA, + f_longPosVector2ShortPosVector(v_longPosVectorNodeB), + vc_localSeqNumber + ) + ) + ) + ); + + tc_ac.start; + alt { + [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeA))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: GeoUnicast packet received correctly ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": FAIL: Expected message not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // end TC_GEONW_PON_LOS_BV_15 + + /** + * @desc Test of LS Request retransmission termination when indirect response is received + *
+             * Pics Selection: none
+             * Config Id: CF01
+             * Initial conditions:
+             *  with {
+             *  	the IUT being in the "initial state" and
+             *  	the IUT having no Location Table Entry for ItsNodeA and
+             *  	the IUT having been requested to send a GeoUnicast packet to ItsNodeA
+             *  		containing TrafficClass.SCF set to 1
+             *  		containing LT field
+             *  			indicating value LT1 higher than (itsGnLocationServiceTimer * itsGnLocationServiceMaxRetrans) and
+             *  	the IUT having sent a LS_REQUEST packet
+             *  	the IUT having retransmitted the LS_REQUEST packet less than itsGnLocationServiceMaxRetrans
+             *  }
+             * Expected behaviour:
+             *  ensure that {
+             *  	when {
+             *  		the IUT receives a GeoUnicast packet addressed to it from ItsNodeA before expiry of LT1
+             *  	}
+             *  	then {
+             *  		the IUT does not retransmits the LS_REQUEST packet
+             *  	}
+             *  }
+             * 
+ * + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/16 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.7.1.2, 9.3.7.1.3 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOS_BV_16() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + // Local variables + var LongPosVector v_longPosVectorNodeA; + var LongPosVector v_longPosVectorNodeB; + var LongPosVector v_longPosVectorIut; + var UInt16 v_seqNbr := vc_localSeqNumber; + + // Test control + + // Test component configuration + f_cf01Up(); + v_longPosVectorNodeA := f_getPosition(c_compNodeA); + v_longPosVectorNodeB := f_getPosition(c_compNodeB); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeA.gnAddr)) ) { + log("*** " & testcasename() & ": INCONC: Trigger failed ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + tc_ac.start; + alt { + [] a_receiveLsRequest(?, v_longPosVectorNodeA.gnAddr.mid, v_longPosVectorIut) { + tc_ac.stop; + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Pre-conditions: LS Request not received ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + } + + // Test Body + f_sendGeoNetMessage( + m_geoNwReq_linkLayerBroadcast( + m_geoNwPdu( + m_geoNwUnicastPacket( + v_longPosVectorNodeA, + f_longPosVector2ShortPosVector(v_longPosVectorIut), + vc_localSeqNumber + ) + ) + ) + ); + + tc_noac.start; + alt { + [] a_receiveLsRequest(?, v_longPosVectorNodeA.gnAddr.mid, v_longPosVectorIut) { + tc_noac.stop; + log("*** " & testcasename() & ": FAIL: LS Request retransmitted ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeA))) { + log("*** " & testcasename() & ": INFO: GeoUnicast packet received ***"); + repeat; + } + [] tc_noac.timeout { + log("*** " & testcasename() & ": PASS: LS Request not retransmitted ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + } + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // end TC_GEONW_PON_LOS_BV_16 + + /** + * @desc Test of LS Request retransmission termination when indirect response is received + *
+             * Pics Selection: none
+             * Config Id: CF01
+             * Initial conditions:
+             *  with {
+             *  	the IUT being in the "initial state" and
+             *  	the IUT having no Location Table Entry for ItsNodeA and
+             *  	the IUT having been requested to send a GeoUnicast packet to ItsNodeA
+             *  		containing TrafficClass.SCF set to 1
+             *  		containing LT field
+             *  			indicating value LT1 higher than (itsGnLocationServiceTimer * itsGnLocationServiceMaxRetrans) and
+             *  	the IUT having sent a LS_REQUEST packet
+             *  	the IUT having retransmitted the LS_REQUEST packet less than itsGnLocationServiceMaxRetrans
+             *  }
+             * Expected behaviour:
+             *  ensure that {
+             *  	when {
+             *  		the IUT receives a GeoUnicast packet addressed to ItsNodeB from ItsNodeA before expiry of LT1
+             *  	}
+             *  	then {
+             *  		the IUT does not retransmits the LS_REQUEST packet
+             *  	}
+             *  }
+             * 
+ * + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV/17 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, 9.3.7.1.2, 9.3.7.1.3 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOS_BV_17() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + // Local variables + var LongPosVector v_longPosVectorNodeA; + var LongPosVector v_longPosVectorNodeB; + var LongPosVector v_longPosVectorIut; + var UInt16 v_seqNbr := vc_localSeqNumber; + + // Test control + + // Test component configuration + f_cf01Up(); + v_longPosVectorNodeA := f_getPosition(c_compNodeA); + v_longPosVectorNodeB := f_getPosition(c_compNodeB); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeA.gnAddr)) ) { + log("*** " & testcasename() & ": INCONC: Trigger failed ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + tc_ac.start; + alt { + [] a_receiveLsRequest(?, v_longPosVectorNodeA.gnAddr.mid, v_longPosVectorIut) { + tc_ac.stop; + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Pre-conditions: LS Request not received ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + } + + // Test Body + f_sendGeoNetMessage( + m_geoNwReq_linkLayerBroadcast( + m_geoNwPdu( + m_geoNwUnicastPacket( + v_longPosVectorNodeA, + f_longPosVector2ShortPosVector(v_longPosVectorNodeB), + vc_localSeqNumber + ) + ) + ) + ); + + tc_noac.start; + alt { + [] a_receiveLsRequest(?, v_longPosVectorNodeA.gnAddr.mid, v_longPosVectorIut) { + tc_noac.stop; + log("*** " & testcasename() & ": FAIL: LS Request retransmitted ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeA))) { + log("*** " & testcasename() & ": INFO: GeoUnicast packet received ***"); + repeat; + } + [] tc_noac.timeout { + log("*** " & testcasename() & ": PASS: LS Request not retransmitted ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + } + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // end TC_GEONW_PON_LOS_BV_17 } // end geoLocationService @@ -4634,8 +4932,8 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/01 - * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.4.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/01 + * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3, 9.3.4.2 and 9.3.8.3 */ testcase TC_GEONW_PON_FPB_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -4675,7 +4973,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); // NodeB is not yet a neighbour - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sleepIgnoreDef(1.0); @@ -4686,18 +4984,18 @@ module ItsGeoNetworking_TestCases { [] a_receiveAnyLsRequest() { tc_ac.stop; log("*** " & testcasename() & ": INCONC: Received Location Service Request ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwUnicastPacket( mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeA)), ?)))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: packet correctly forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -4727,24 +5025,24 @@ module ItsGeoNetworking_TestCases { ) ))); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body // /!\ This pre-condition has impact on test body if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeA.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_noac.start; alt { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(?))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoUnicast packet received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: No message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -4796,7 +5094,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/02 * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, 7.5.3, 9.3.6.3 */ testcase TC_GEONW_PON_FPB_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -4839,7 +5137,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); // NodeB is not yet a neighbour vc_localSeqNumber := p_sequenceNumberC; - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sleep(1.0); @@ -4861,11 +5159,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Packet correctly forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -4901,10 +5199,10 @@ module ItsGeoNetworking_TestCases { ) ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -4965,7 +5263,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/03 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/03 * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.8.3 */ testcase TC_GEONW_PON_FPB_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -5012,7 +5310,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); // NodeB is not yet a neighbour vc_multipleMessagesCount := p_messageCount; - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sleep(1.0); @@ -5027,7 +5325,7 @@ module ItsGeoNetworking_TestCases { v_nbReceivedPackets := v_nbReceivedPackets + 1; if(v_nbReceivedPackets >= vc_multipleMessagesCount) { log("*** " & testcasename() & ": PASS: GeoUnicast packets received in correct order ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { v_expectedSequenceNumber := v_expectedSequenceNumber + 1; @@ -5040,11 +5338,11 @@ module ItsGeoNetworking_TestCases { ?) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: GeoUnicast packet received in incorrect order ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -5082,10 +5380,10 @@ module ItsGeoNetworking_TestCases { ); } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -5125,7 +5423,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/03 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/03 * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.8.3 */ testcase TC_GEONW_PON_FPB_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -5169,7 +5467,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); // NodeB is not yet a neighbour - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sleep(int2float(p_packetLifetime + 1)); @@ -5182,11 +5480,11 @@ module ItsGeoNetworking_TestCases { ?) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoUnicast packet received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: No message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -5221,10 +5519,10 @@ module ItsGeoNetworking_TestCases { ) ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -5236,7 +5534,7 @@ module ItsGeoNetworking_TestCases { group GEONW_PON_FPB_BV_06 { /** - * @desc Test of Source packet buffering into BC forwarding buffer for no GeoBroadcast recipients + * @desc Test of Source packet buffering into BC forwarding buffer for no recipients *
                  * Pics Selection: none
                  * Config Id: CF02
@@ -5245,7 +5543,7 @@ module ItsGeoNetworking_TestCases {
                  *      the IUT being in the "initial state" and
                  *      the IUT not having received Beacon information from ItsNodeD and
                  *      the IUT not having received Beacon information from ItsNodeB and
-                 *      the IUT having been requested to send a GeoBroadcast packet to AREA1
+                 *      the IUT having been requested to send a TSB packet
                  *          containing TrafficClass.SCF set to 1
                  *  }
                  * Expected behaviour:
@@ -5254,12 +5552,12 @@ module ItsGeoNetworking_TestCases {
                  *          the IUT receives a Beacon packet from either ItsNodeB or ItsNodeD
                  *      }
                  *      then {
-                 *          the IUT broadcasts the buffered GeoBroadcast packet
+                 *          the IUT broadcasts the buffered TSB packet
                  *      }
                  *   }
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/06 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/06 * @reference EN 302 636-4-1 [1], clauses 9.3.5, 7.5.3, 9.3.6.3 and 9.3.11.2 */ testcase TC_GEONW_PON_FPB_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -5300,27 +5598,26 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); - if ( not f_utTriggerEvent(m_generateGeoBroadcastMessage(f_getArea(c_area1))) ) { + if (not f_utTriggerEvent(m_generateTsbMessage)) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sleep(1.0); f_startBeingNeighbour(); tc_ac.start; alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacket( - mw_longPosVectorPosition_withDelta(v_longPosVectorIut), - ?)))) -> value v_geoNetInd { + [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwTsbPacket(?, + mw_longPosVectorPosition_withDelta(v_longPosVectorIut))))) -> value v_geoNetInd { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -5340,21 +5637,20 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacket( - mw_longPosVectorPosition_withDelta(v_longPosVectorIut), - ?)))) -> value v_geoNetInd { + [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwTsbPacket(?, + mw_longPosVectorPosition_withDelta(v_longPosVectorIut))))) -> value v_geoNetInd { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -5377,20 +5673,20 @@ module ItsGeoNetworking_TestCases { * the IUT being in the "initial state" and * the IUT not having received Beacon information from ItsNodeD and * the IUT not having received Beacon information from ItsNodeB and - * the IUT having been requested to send a GeoBroadcast (GEOBROAD1) packet to AREA1 + * the IUT having been requested to send a TSB (TSB1) packet * containing TrafficClass.SCF set to 1 * containing Basic Header * containing LT field * indicating LT1 - * containing GBC Extended Header + * containing TSB Extended Header * containing SN field * indicating value SN1 - * the IUT having been requested to send a GeoBroadcast (GEOBROAD2) packet to AREA1 + * the IUT having been requested to send a TSB (TSB2) packet * containing TrafficClass.SCF set to 1 * containing Basic Header * containing LT field * indicating LT2 - * containing GBC Extended Header + * containing TSB Extended Header * containing SN field * indicating value SN2 * } @@ -5401,19 +5697,19 @@ module ItsGeoNetworking_TestCases { * before expiry of LT1 and LT2 * } * then { - * the IUT broadcasts GEOBROAD1 packet - * containing GBC Extended Header + * the IUT broadcasts TSB1 packet + * containing TSB Extended Header * containing SN field * indicating value SN1 - * the IUT broadcasts GEOBROAD2 packet - * containing GBC Extended Header + * the IUT broadcasts TSB2 packet + * containing TSB Extended Header * containing SN field * indicating value SN2 * } * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/07 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/07 * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.11.2 */ testcase TC_GEONW_PON_FPB_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -5460,24 +5756,23 @@ module ItsGeoNetworking_TestCases { f_prDefault(); vc_multipleMessagesCount := p_messageCount; for(i:=0; i < vc_multipleMessagesCount; i:=i+1) { - if ( not f_utTriggerEvent(m_generateGeoBroadcastMessage(f_getArea(c_area1))) ) { + if(not f_utTriggerEvent(m_generateTsbMessage)) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } tc_ac.start(1.0); alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacket( - mw_longPosVectorPosition_withDelta(v_longPosVectorIut), - ?)))) { + [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwTsbPacket(?, + mw_longPosVectorPosition_withDelta(v_longPosVectorIut))))) { tc_ac.stop; log("*** " & testcasename() & ": INCONC: GeoBroadcast packet not buffered ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error); + f_selfOrClientSyncAndVerdict(c_prDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast packet buffered ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } } @@ -5485,31 +5780,30 @@ module ItsGeoNetworking_TestCases { f_startBeingNeighbour(); tc_ac.start; alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacket( - mw_longPosVectorPosition_withDelta(v_longPosVectorIut), - v_expectedSequenceNumber)))) -> value v_geoNetInd { + [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwTsbPacket( + v_expectedSequenceNumber, + mw_longPosVectorPosition_withDelta(v_longPosVectorIut))))) -> value v_geoNetInd { tc_ac.stop; v_nbReceivedPackets := v_nbReceivedPackets + 1; if(v_nbReceivedPackets >= vc_multipleMessagesCount) { - log("*** " & testcasename() & ": PASS: GeoBroadcast packets received in correct order ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + log("*** " & testcasename() & ": PASS: TSB packets received in correct order ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { - v_expectedSequenceNumber := v_geoNetInd.msgIn.gnPacket.packet.extendedHeader.geoBroadcastHeader.seqNumber + 1; + v_expectedSequenceNumber := v_geoNetInd.msgIn.gnPacket.packet.extendedHeader.tsbHeader.seqNumber + 1; tc_ac.start; repeat; } } - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacket( - mw_longPosVectorPosition_withDelta(v_longPosVectorIut), - ?)))) { + [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwTsbPacket(?, + mw_longPosVectorPosition_withDelta(v_longPosVectorIut))))) { tc_ac.stop; - log("*** " & testcasename() & ": FAIL: GeoBroadcast packet received in incorrect order ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + log("*** " & testcasename() & ": FAIL: TSB packet received in incorrect order ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -5533,36 +5827,34 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); vc_multipleMessagesCount := p_messageCount; - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacket( - mw_longPosVectorPosition_withDelta(v_longPosVectorIut), - v_expectedSequenceNumber)))) -> value v_geoNetInd { + [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwTsbPacket(v_expectedSequenceNumber, + mw_longPosVectorPosition_withDelta(v_longPosVectorIut))))) -> value v_geoNetInd { tc_ac.stop; v_nbReceivedPackets := v_nbReceivedPackets + 1; if(v_nbReceivedPackets >= vc_multipleMessagesCount) { - log("*** " & testcasename() & ": PASS: GeoBroadcast packets received in correct order ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + log("*** " & testcasename() & ": PASS: TSB packets received in correct order ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { - v_expectedSequenceNumber := v_geoNetInd.msgIn.gnPacket.packet.extendedHeader.geoBroadcastHeader.seqNumber + 1; + v_expectedSequenceNumber := v_geoNetInd.msgIn.gnPacket.packet.extendedHeader.tsbHeader.seqNumber + 1; tc_ac.start; repeat; } } - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacket( - mw_longPosVectorPosition_withDelta(v_longPosVectorIut), - ?)))) { + [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwTsbPacket(?, + mw_longPosVectorPosition_withDelta(v_longPosVectorIut))))) { tc_ac.stop; - log("*** " & testcasename() & ": FAIL: GeoBroadcast packet received in incorrect order ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + log("*** " & testcasename() & ": FAIL: TSB packet received in incorrect order ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -5585,12 +5877,12 @@ module ItsGeoNetworking_TestCases { * the IUT being in the "initial state" and * the IUT not having received Beacon information from ItsNodeD and * the IUT not having received Beacon information from ItsNodeB and - * the IUT having been requested to send a GeoBroadcast (GEOBROAD1) packet to AREA1 + * the IUT having been requested to send a TSB (TSB1) packet * containing TrafficClass.SCF set to 1 * containing Basic Header * containing LT field * indicating LT1 - * the IUT having been requested to send a GeoBroadcast (GEOBROAD2) packet to AREA1 + * the IUT having been requested to send a TSB (TSB2) packet * containing TrafficClass.SCF set to 1 * containing Basic Header * containing LT field @@ -5603,12 +5895,12 @@ module ItsGeoNetworking_TestCases { * after expiry of LT1 and LT2 * } * then { - * the IUT does not broadcast any of the buffered GEOBROAD1 and GEOBROAD2 + * the IUT does not broadcast any of the buffered TSB1 and TSB2 * } * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/08 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/08 * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.11.2 */ testcase TC_GEONW_PON_FPB_BV_08() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -5649,15 +5941,15 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); - if ( not f_utTriggerEvent(m_generateGeoBroadcastMessageWithLifetime(f_getArea(c_area1), c_lifetime )) ) { + if(not f_utTriggerEvent(m_generateTsbMessageWithLifetime(c_lifetime))) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } - if ( not f_utTriggerEvent(m_generateGeoBroadcastMessageWithLifetime(f_getArea(c_area1), c_lifetime)) ) { + if(not f_utTriggerEvent(m_generateTsbMessageWithLifetime(c_lifetime))) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sleep(int2float(c_defaultLifetime + 1)); @@ -5666,16 +5958,15 @@ module ItsGeoNetworking_TestCases { tc_noac.start; alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacket( - mw_longPosVectorPosition_withDelta(v_longPosVectorIut), - ?)))) { + [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwTsbPacket(?, + mw_longPosVectorPosition_withDelta(v_longPosVectorIut))))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast packet received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: No message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -5695,7 +5986,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sleep(int2float(c_defaultLifetime + 1)); @@ -5704,16 +5995,15 @@ module ItsGeoNetworking_TestCases { tc_noac.start; alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacket( - mw_longPosVectorPosition_withDelta(v_longPosVectorIut), - ?)))) { + [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwTsbPacket(?, + mw_longPosVectorPosition_withDelta(v_longPosVectorIut))))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast packet received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: No message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -5757,7 +6047,7 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/09 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/09 * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.8.2 */ testcase TC_GEONW_PON_FPB_BV_09() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -5799,7 +6089,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sleep(1.0); @@ -5815,16 +6105,16 @@ module ItsGeoNetworking_TestCases { //we do not know exactly the time passed at IUT if (f_getLifetimeValue(v_geoNetInd.msgIn.basicHeader.lifeTime) < f_getMaxPacketLifeTime()) { log("*** " & testcasename() & ": PASS: Lifetime was handled properly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: Lifetime was not handled properly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -5857,12 +6147,12 @@ module ItsGeoNetworking_TestCases { if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeA.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -5875,7 +6165,7 @@ module ItsGeoNetworking_TestCases { /** * @desc Test of Source packet buffering into BC forwarding buffer for handling of LT fields for no - * GeoBroadcast recipients + * recipients *
                  * Pics Selection: none
                  * Config Id: CF02
@@ -5884,7 +6174,7 @@ module ItsGeoNetworking_TestCases {
                  *      the IUT being in the "initial state" and
                  *      the IUT not having received Beacon information from ItsNodeD and
                  *      the IUT not having received Beacon information from ItsNodeB and
-                 *      the IUT having been requested to send a GeoBroadcast packet to AREA1
+                 *      the IUT having been requested to send a TSB packet
                  *          containing TrafficClass.SCF set to 1
                  *  }
                  * Expected behaviour:
@@ -5893,8 +6183,8 @@ module ItsGeoNetworking_TestCases {
                  *          the IUT receives a Beacon packet from either ItsNodeB or ItsNodeD
                  *      }
                  *      then {
-                 *          the IUT broadcasts the buffered GeoBroadcast packet
-                 *              containing GBC Extended Header
+                 *          the IUT broadcasts the buffered TSB packet
+                 *              containing TSB Extended Header
                  *                  containing LT field
                  *                      indicating (default LT value - WaitingTime (see note))
                  *      }
@@ -5903,7 +6193,7 @@ module ItsGeoNetworking_TestCases {
                  *  
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/10 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/10 * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.11.2 */ testcase TC_GEONW_PON_FPB_BV_10() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -5944,36 +6234,35 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); - if ( not f_utTriggerEvent(m_generateGeoBroadcastMessage(f_getArea(c_area1))) ) { + if(not f_utTriggerEvent(m_generateTsbMessage)) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sleep(1.0); f_startBeingNeighbour(); tc_ac.start; alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacket( - mw_longPosVectorPosition_withDelta(v_longPosVectorIut), - ?)))) -> value v_geoNetInd { + [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwTsbPacket(?, + mw_longPosVectorPosition_withDelta(v_longPosVectorIut))))) -> value v_geoNetInd { tc_ac.stop; //we only check that the lifetime is less than the default lifetime due to //we do not know exactly the time passed at IUT if (f_getLifetimeValue(v_geoNetInd.msgIn.basicHeader.lifeTime) < f_getMaxPacketLifeTime()) { log("*** " & testcasename() & ": PASS: Lifetime was handled properly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: Lifetime was not handled properly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -5992,22 +6281,21 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacket( - mw_longPosVectorPosition_withDelta(v_longPosVectorIut), - ?)))) { + [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwTsbPacket(?, + mw_longPosVectorPosition_withDelta(v_longPosVectorIut))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -6047,8 +6335,8 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/11-X - * @reference EN 302 636-4-1 [1], clauses 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/11-X + * @reference EN 302 636-4-1 [1], Annex D2 */ testcase TC_GEONW_PON_FPB_BV_11_01() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -6087,7 +6375,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -6104,11 +6392,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -6136,14 +6424,14 @@ module ItsGeoNetworking_TestCases { vc_localSeqNumber ) ))); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if(not f_utTriggerEvent(m_generateGeoUnicastMessageWithTrafficClass( v_longPosVectorNodeA.gnAddr, valueof(m_trafficClass(e_scfDisabled))))) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { @@ -6159,11 +6447,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -6201,8 +6489,8 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/11-X - * @reference EN 302 636-4-1 [1], clauses 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/11-X + * @reference EN 302 636-4-1 [1], Annex D2 */ testcase TC_GEONW_PON_FPB_BV_11_02() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -6241,7 +6529,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -6258,11 +6546,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -6281,14 +6569,14 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if(not f_utTriggerEvent(m_generateGeoAnycastMessageWithTrafficClass( f_getArea(c_area2), valueof(m_trafficClass(e_scfDisabled))))) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { @@ -6304,11 +6592,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -6346,8 +6634,8 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/11-X - * @reference EN 302 636-4-1 [1], clauses 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/11-X + * @reference EN 302 636-4-1 [1], Annex D2 */ testcase TC_GEONW_PON_FPB_BV_11_03() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -6386,7 +6674,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -6403,11 +6691,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -6426,14 +6714,14 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if(not f_utTriggerEvent(m_generateGeoBroadcastMessageWithTrafficClass( f_getArea(c_area2), valueof(m_trafficClass(e_scfDisabled))))) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { @@ -6449,11 +6737,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -6489,8 +6777,8 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/11-X - * @reference EN 302 636-4-1 [1], clauses 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/11-X + * @reference EN 302 636-4-1 [1], Annex D2 */ testcase TC_GEONW_PON_FPB_BV_11_04() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -6529,7 +6817,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -6546,11 +6834,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -6569,12 +6857,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if(not f_utTriggerEvent(valueof(m_generateTsbMessageWithTrafficClass(valueof(m_trafficClass(e_scfDisabled)))))) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { @@ -6590,11 +6878,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -6630,8 +6918,8 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/11-X - * @reference EN 302 636-4-1 [1], clauses 9.3.8.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/11-X + * @reference EN 302 636-4-1 [1], Annex D2 */ testcase TC_GEONW_PON_FPB_BV_11_05() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -6670,7 +6958,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -6686,11 +6974,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -6709,12 +6997,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if(not f_utTriggerEvent(valueof(m_generateShbMessageWithTrafficClass(valueof(m_trafficClass(e_scfDisabled)))))) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { @@ -6729,11 +7017,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -6772,8 +7060,8 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/12-X - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/12-X + * @reference EN 302 636-4-1 [1], Annex D2 */ testcase TC_GEONW_PON_FPB_BV_12_01() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -6812,7 +7100,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -6829,11 +7117,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -6853,7 +7141,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -6887,11 +7175,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -6928,8 +7216,8 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/12-X - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/12-X + * @reference EN 302 636-4-1 [1], Annex D2 */ testcase TC_GEONW_PON_FPB_BV_12_02() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -6968,7 +7256,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -6985,11 +7273,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -7008,7 +7296,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -7039,11 +7327,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -7080,8 +7368,8 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/12-X - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/12-X + * @reference EN 302 636-4-1 [1], Annex D2 */ testcase TC_GEONW_PON_FPB_BV_12_03() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -7120,7 +7408,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -7137,11 +7425,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -7160,7 +7448,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -7191,11 +7479,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -7230,8 +7518,8 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/FPB/BV/12-X - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV/12-X + * @reference EN 302 636-4-1 [1], Annex D2 */ testcase TC_GEONW_PON_FPB_BV_12_04() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -7270,7 +7558,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -7287,11 +7575,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -7310,7 +7598,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -7342,11 +7630,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: TSB not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -7392,7 +7680,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GNA/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GNA/BV/01 * @reference EN 302 636-4-1 [1], clauses 9.2.1.2 and 9.3.6.2 */ testcase TC_GEONW_PON_GNA_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -7416,7 +7704,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -7427,7 +7715,7 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": GN address is correct ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu( mw_geoNwBeaconPacket( @@ -7435,11 +7723,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": GN address is not correct ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -7478,7 +7766,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GNA/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GNA/BV/02 * @reference EN 302 636-4-1 [1], clauses 9.2.1.4 */ testcase TC_GEONW_PON_GNA_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -7512,10 +7800,10 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": Expected message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body v_longPosVectorNodeB.gnAddr := v_iutGnAddress; @@ -7536,11 +7824,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": IUT used new GN address ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -7578,7 +7866,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BEA/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BEA/BV/01 * @reference EN 302 636-4-1 [1], clauses 9.3.6.2 */ testcase TC_GEONW_PON_BEA_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -7599,7 +7887,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); @@ -7616,11 +7904,11 @@ module ItsGeoNetworking_TestCases { } if(t_minRetransTimer.running) { log("*** " & testcasename() & ": Beacon not transmitted at prescribed periodicity (too early) ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": Beacon transmitted at prescribed periodicity ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] t_minRetransTimer.timeout { @@ -7629,7 +7917,7 @@ module ItsGeoNetworking_TestCases { } [] t_maxRetransTimer.timeout { log("*** " & testcasename() & ": Beacon not transmitted at prescribed periodicity (too late) ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } f_acTriggerEvent(m_stopPassBeaconing); @@ -7664,7 +7952,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BEA/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BEA/BV/02 * @reference EN 302 636-4-1 [1], clauses 9.2.3 and 9.3.10.2 */ testcase TC_GEONW_PON_BEA_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -7689,12 +7977,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateShbMessage) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { @@ -7711,11 +7999,11 @@ module ItsGeoNetworking_TestCases { } if(not(v_readyForRetransmission)) { log("*** " & testcasename() & ": Beacon not transmitted at prescribed periodicity (too early) ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": Beacon transmitted at prescribed periodicity ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] t_minRetransTimer.timeout { @@ -7725,11 +8013,11 @@ module ItsGeoNetworking_TestCases { } [] t_maxRetransTimer.timeout { log("*** " & testcasename() & ": Beacon not transmitted at prescribed periodicity (too late) ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": GeoUnicast not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } f_acTriggerEvent(m_stopPassBeaconing); @@ -7739,6 +8027,72 @@ module ItsGeoNetworking_TestCases { f_cf01Down(); } // end TC_GEONW_PON_BEA_BV_02 + + /** + * @desc Check that IUT sends a Beacon at startup + *
+             * Pics Selection: none
+             * Config Id: CF01
+             * Initial conditions:
+             *  with {
+             *  	the IUT being switched off
+             *  }
+             * Expected behaviour:
+             *  ensure that {
+             *  	when {
+             *  		the IUT is switched on
+             *  	}
+             *  	then {
+             *  		the IUT sends a Beacon packet immediately
+             *  	}
+             *  }
+             * 
+ * + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BEA/BV/03 + * @reference EN 302 636-4-1 [1], clauses 9.2.3 and 9.3.10.2 + */ + testcase TC_GEONW_PON_BEA_BV_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + // Local variables + var LongPosVector v_longPosVectorIut; + + // Test control + + // Test component configuration + f_cf01Up(); + v_longPosVectorIut := f_getPosition(c_compIut); + + // Test adapter configuration + + // Preamble + f_prDefault(); + action("Please turn IUT OFF"); + f_sleep(PX_TWAIT); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + + // Test Body + f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); + geoNetworkingPort.clear; + + action("Please turn IUT ON"); + tc_ac.start; + alt { + [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBeaconPacket(?)))) { + log("*** " & testcasename() & ": PASS: Initial Beacon received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": FAIL: Initial Beacon not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + f_acTriggerEvent(m_stopPassBeaconing); + + // Postamble + f_poDefault(); + f_cf01Down(); + + } // end TC_GEONW_PON_BEA_BV_03 } // end geoBeaconing @@ -7749,7 +8103,8 @@ module ItsGeoNetworking_TestCases { * @desc Test that the reception of a unicast packet over upper Gn SAP triggers the origination of a * GeoUnicast packet *
-             * Pics Selection: none
+             * Pics Selection: PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'GREEDY' 
+             * 				   OR PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'UNSPECIFIED'
              * Config Id: CF01
              * Initial conditions:
              *  with {
@@ -7773,7 +8128,7 @@ module ItsGeoNetworking_TestCases {
              *  }
              * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GUC/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV/01 * @reference EN 302 636-4-1 [1], clauses 9.3.8.2, 9.3.6.3 */ testcase TC_GEONW_PON_GUC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -7782,7 +8137,12 @@ module ItsGeoNetworking_TestCases { var LongPosVector v_longPosVectorNodeB; // Test control - + if ((f_getGeoUnicastForwardingAlgorithm() != e_greedy) and (f_getGeoUnicastForwardingAlgorithm() != e_unspecified)) { + log("*** " & testcasename() & ": PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == (e_greedy or e_unspecified) required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf01Up(); v_longPosVectorNodeB := f_getPosition(c_compNodeB); @@ -7791,12 +8151,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeB.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { @@ -7812,7 +8172,7 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": DEPV of the received GeoUnicast message correctly set ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] geoNetworkingPort.receive( mw_geoNwInd( @@ -7826,11 +8186,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": DEPV of the received GeoUnicast message incorrectly set ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -7872,7 +8232,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GUC/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV/02 * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.2 */ testcase TC_GEONW_PON_GUC_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -7920,7 +8280,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -7937,11 +8297,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Forwarded GeoUnicast received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoUnicast was not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -7959,7 +8319,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -7977,7 +8337,7 @@ module ItsGeoNetworking_TestCases { ) ); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -7993,10 +8353,10 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -8052,7 +8412,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GUC/BV/03 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV/03 * @reference EN 302 636-4-1 [1], clauses 9.3.8.3 */ testcase TC_GEONW_PON_GUC_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -8105,7 +8465,7 @@ module ItsGeoNetworking_TestCases { f_getIutMacAddress() ) ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -8125,7 +8485,7 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Forwarded GeoUnicast received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] geoNetworkingPort.receive( mw_geoNwInd( @@ -8139,11 +8499,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Fields not correctly updated ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoUnicast was not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -8164,7 +8524,7 @@ module ItsGeoNetworking_TestCases { f_prNeighbour(); v_obsoleteLongPosVectorNodeA.timestamp := v_obsoleteLongPosVectorNodeA.timestamp - 1000; v_obsoleteLongPosVectorNodeA.latitude := v_obsoleteLongPosVectorNodeA.latitude - 1; - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -8183,7 +8543,7 @@ module ItsGeoNetworking_TestCases { ) ); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -8220,7 +8580,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GUC/BV/04 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV/04 * @reference EN 302 636-4-1 [1], clauses 9.3.8.3 */ testcase TC_GEONW_PON_GUC_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -8260,7 +8620,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -8279,11 +8639,11 @@ module ItsGeoNetworking_TestCases { ) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: Forwarded GeoUnicast received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoUnicast was not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -8302,7 +8662,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -8320,7 +8680,7 @@ module ItsGeoNetworking_TestCases { ) ); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -8350,7 +8710,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GUC/BV/05 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV/05 * @reference EN 302 636-4-1 [1], clauses 9.3.8.4 */ testcase TC_GEONW_PON_GUC_BV_05() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -8368,7 +8728,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body v_gnPacket := m_geoNwPdu( @@ -8386,11 +8746,11 @@ module ItsGeoNetworking_TestCases { } if(i < lengthof(vc_utInds)) { log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } // Postamble @@ -8426,7 +8786,7 @@ module ItsGeoNetworking_TestCases { * } * then { * the IUT re-broadcasts the received GeoUnicast packet - * after expiry of calculated CBF delay (see note) + * upon expiry of calculated CBF delay (see note) * } * } * NOTE: The CBF delay timer value is calculated from the itsGnDefaultMaxCommunicationRange, @@ -8435,7 +8795,7 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GUC/BV/06 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV/06 * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 */ testcase TC_GEONW_PON_GUC_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -8492,7 +8852,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body log("*** " & testcasename() & ": INFO: Message sent ***"); @@ -8515,11 +8875,11 @@ module ItsGeoNetworking_TestCases { if(t_toCbf.running) { t_toCbf.stop; log("*** " & testcasename() & ": FAIL: IUT re-broadcasted the packet too early ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: Forwarded GeoUnicast received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] t_toCbf.timeout { @@ -8528,7 +8888,7 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoUnicast was not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -8547,7 +8907,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -8581,11 +8941,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Re-broadcasted GeoUnicast received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoUnicast was not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -8623,12 +8983,12 @@ module ItsGeoNetworking_TestCases { * } * then { * the IUT re-broadcasts the received GeoUnicast packet - * after expiry of itsGnGeoUnicastCbfMinTime delay + * upon expiry of itsGnGeoUnicastCbfMinTime delay * } * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GUC/BV/07 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV/07 * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 */ testcase TC_GEONW_PON_GUC_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -8680,7 +9040,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body log("*** " & testcasename() & ": INFO: Message sent ***"); @@ -8703,11 +9063,11 @@ module ItsGeoNetworking_TestCases { if(t_toCbf.running) { t_toCbf.stop; log("*** " & testcasename() & ": FAIL: IUT re-broadcasted the packet too early ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: Forwarded GeoUnicast received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] t_toCbf.timeout { @@ -8717,7 +9077,7 @@ module ItsGeoNetworking_TestCases { [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoUnicast was not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -8736,7 +9096,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -8770,11 +9130,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Forwarded GeoUnicast received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoUnicast was not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -8823,7 +9183,7 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GUC/BV/08 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV/08 * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 */ testcase TC_GEONW_PON_GUC_BV_08() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -8874,7 +9234,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sleepIgnoreDef(int2float(f_getGeoUnicastCbfMaxTime())/2000.0); @@ -8908,12 +9268,12 @@ module ItsGeoNetworking_TestCases { ) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: Forwarded GeoUnicast received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoUnicast was not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -8932,7 +9292,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body //Note: Sending of the GeoUnicast packet move to test body in contrast to the test purpose due to time critical behaviour @@ -8965,11 +9325,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Forwarded GeoUnicast received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoUnicast was not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -9007,13 +9367,13 @@ module ItsGeoNetworking_TestCases { * } * then { * the IUT re-broadcasts the received GeoUnicast packet - * after expiry of CBF_MAX + * upon expiry of CBF_MAX * } * } * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GUC/BV/10 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV/10 * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 */ testcase TC_GEONW_PON_GUC_BV_10() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -9064,7 +9424,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sleepIgnoreDef(int2float(f_getGeoUnicastCbfMaxTime())/2000.0); @@ -9083,12 +9443,12 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Re-broadcasted GeoUnicast received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoUnicast was not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -9107,7 +9467,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -9141,11 +9501,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Re-broadcasted GeoUnicast received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoUnicast was not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -9155,7 +9515,519 @@ module ItsGeoNetworking_TestCases { } // end f_GEONW_PON_GUC_BV_10_nodeC } // end GEONW_PON_GUC_BV_10 - + + group GEONW_PON_GUC_BV_11 { + + /** + * @desc Test that the reception of a unicast packet over upper Gn SAP triggers the origination of a GeoUnicast packet + *
+                 * Pics Selection: PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'CBF'
+                 * Config Id: CF03
+                 * Initial conditions:
+                 *  with {
+                 *  	the IUT being in the "initial state" and
+                 *  	the IUT having received Beacon information from ItsNodeB
+                 *  }
+                 * Expected behaviour:
+                 *  ensure that {
+                 *  	when {
+                 *  		the IUT is requested to send a GeoUnicast packet to ItsNodeB
+                 *  	}
+                 *  	then {
+                 *  		the IUT broadcasts a GeoNetworking packet
+                 *  			containing a correctly formatted Common Header
+                 *  				containing HT field
+                 *  					set to '2' (GEOUNICAST)
+                 *  			containing GeoUnicast Extended Header
+                 *  				containing DEPV field
+                 *  					indicating same position as the SOPV value of the received Beacon information
+                 *  	}
+                 *  }
+                 * 
+ * + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV/11 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 + */ + testcase TC_GEONW_PON_GUC_BV_11() runs on ItsMtc system ItsGeoNetworkingSystem { + + // Local variables + var ItsGeoNetworking v_nodeB; + var ItsGeoNetworking v_nodeC; + + // Test control + if (f_getGeoUnicastForwardingAlgorithm() != e_cbf) { + log("*** " & testcasename() & ": PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_cbf required for executing the TC ***"); + setverdict(inconc); + stop; + } + + // Test component configuration + f_cf03Up(); + + // Preamble + + // Start components + v_nodeB := f_getComponent(c_compNodeB); + v_nodeC := f_getComponent(c_compNodeC); + v_nodeB.start(f_GEONW_PON_GUC_BV_11_nodeB()); + v_nodeC.start(f_GEONW_PON_GUC_BV_11_nodeC()); + + // Synchronization + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + // Cleanup + f_cf03Down(); + + } // end TC_GEONW_PON_GUC_BV_11 + + /** + * @desc Behavior function for NodeB (TC_GEONW_PON_GUC_BV_11) + */ + function f_GEONW_PON_GUC_BV_11_nodeB() runs on ItsGeoNetworking { + + // Local variables + var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + + // Test Body + if(not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeB.gnAddr))) { + log("*** " & testcasename() & ": INCONC: Trigger failed ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwPdu( + mw_geoNwUnicastPacket( + mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeB)), + ? + ) + ) + ) + ) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: GeoUnicast received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": FAIL: GeoUnicast was not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + + // Postamble + f_poNeighbour(); + + } // end f_GEONW_PON_GUC_BV_11_nodeB + + /** + * @desc Behavior function for NodeC (TC_GEONW_PON_GUC_BV_11) + */ + function f_GEONW_PON_GUC_BV_11_nodeC() runs on ItsGeoNetworking { + + // Local variables + var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwPdu( + mw_geoNwUnicastPacket( + mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeB)), + ? + ) + ) + ) + ) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: broadcasted GeoUnicast received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": FAIL: GeoUnicast was not broadcasted ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + + // Postamble + f_poNeighbour(); + + } // end f_GEONW_PON_GUC_BV_11_nodeC + + } // end GEONW_PON_GUC_BV_11 + + group GEONW_PON_GUC_BV_12 { + + /** + * @desc Test that a received GUC packet is not triggering forwarding if received twice or more + *
+                 * Pics Selection: PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == ‘GREEDY’ OR 
+                 * 				   PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == ‘UNSPECIFIED’
+                 * Config Id: CF03
+                 * Initial conditions:
+                 *  with {
+                 *  	the IUT being in the "initial state" and
+                 *  	the IUT having received Beacon information from ItsNodeC and
+                 *  	the IUT having received Beacon information from ItsNodeB and
+                 *  	the IUT having received a GeoUnicast packet addressed to ItsNodeA from ItsNodeC
+                 *  		containing TrafficClass.SCF set to 1
+                 *  		containing Basic Header
+                 *  			containing RHL field
+                 *  				indicating value greater than 1 and
+                 *  	the IUT having forwarded the GUC packet
+                 *  }
+                 * Expected behaviour:
+                 *  ensure that {
+                 *  	when {
+                 *  		the IUT receives the same GUC packet from ItsNodeB
+                 *  			containing Basic Header
+                 *  				containing RHL field
+                 *  					indicating HL1 - 1
+                 *  	}
+                 *  	then {
+                 *  		the IUT does forward the packet
+                 *  	}
+                 *  }
+                 * 
+ * + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV/12 + * @reference EN 302 636-4-1 [1], clause 9.3.9.3 + */ + testcase TC_GEONW_PON_GUC_BV_12() runs on ItsMtc system ItsGeoNetworkingSystem { + + // Local variables + var ItsGeoNetworking v_nodeB; + var ItsGeoNetworking v_nodeC; + + // Test control + if ((f_getGeoUnicastForwardingAlgorithm() != e_greedy) and (f_getGeoUnicastForwardingAlgorithm() != e_unspecified)) { + log("*** " & testcasename() & ": PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == (e_greedy or e_unspecified) required for executing the TC ***"); + setverdict(inconc); + stop; + } + + // Test component configuration + f_cf03Up(); + + // Preamble + + // Start components + v_nodeB := f_getComponent(c_compNodeB); + v_nodeC := f_getComponent(c_compNodeC); + v_nodeB.start(f_GEONW_PON_GUC_BV_12_nodeB()); + v_nodeC.start(f_GEONW_PON_GUC_BV_12_nodeC()); + + // Synchronization + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + // Cleanup + f_cf03Down(); + + } // end TC_GEONW_PON_GUC_BV_12 + + /** + * @desc Behavior function for NodeB (TC_GEONW_PON_GUC_BV_12) + */ + function f_GEONW_PON_GUC_BV_12_nodeB() runs on ItsGeoNetworking { + + // Local variables + var LongPosVector v_longPosVectorNodeA := f_getPosition(c_compNodeA); + + // Preamble + f_prNeighbour(); + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwPdu( + mw_geoNwUnicastPacket( + mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeA)), + ? + ) + ) + ) + ) { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: First GeoUnicast forwarded ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: First GeoUnicast was not forwarded ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + } + + // Test Body + f_sendGeoNetMessage( + m_geoNwReq_withLinkLayerDestination( + m_geoNwPdu( + m_geoNwUnicastPacket( + f_getPosition(c_compNodeC), + f_longPosVector2ShortPosVector(v_longPosVectorNodeA), + vc_localSeqNumber + ), + -, + c_defaultHopLimit - 1 + ), + f_getIutMacAddress() + ) + ); + + tc_noac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwPdu( + mw_geoNwUnicastPacket( + mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeA)), + ? + ) + ) + ) + ) { + tc_noac.stop; + log("*** " & testcasename() & ": FAIL: Duplicate GeoUnicast was forwarded ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_noac.timeout { + log("*** " & testcasename() & ": PASS: Duplicate GeoUnicast not forwarded ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + } + + // Postamble + f_poNeighbour(); + + } // end f_GEONW_PON_GUC_BV_12_nodeB + + /** + * @desc Behavior function for NodeC (TC_GEONW_PON_GUC_BV_12) + */ + function f_GEONW_PON_GUC_BV_12_nodeC() runs on ItsGeoNetworking { + + // Local variables + var LongPosVector v_longPosVectorNodeA := f_getPosition(c_compNodeA); + + // Preamble + f_prNeighbour(); + f_sendGeoNetMessage( + m_geoNwReq_withLinkLayerDestination( + m_geoNwPdu( + m_geoNwUnicastPacket( + f_getPosition(c_compNodeC), + f_longPosVector2ShortPosVector(v_longPosVectorNodeA), + vc_localSeqNumber + ), + -, + c_defaultHopLimit + ), + f_getIutMacAddress() + ) + ); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + + // Test Body + tc_noac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwPdu( + mw_geoNwUnicastPacket( + mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeA)), + ? + ) + ) + ) + ) { + tc_noac.stop; + log("*** " & testcasename() & ": FAIL: Duplicate GeoUnicast was forwarded ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_noac.timeout { + log("*** " & testcasename() & ": PASS: Duplicate GeoUnicast not forwarded ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + } + + // Postamble + f_poNeighbour(); + + } // end f_GEONW_PON_GUC_BV_12_nodeC + + } // end GEONW_PON_GUC_BV_12 + + group GEONW_PON_GUC_BV_13 { + + /** + * @desc Test that a received GUC packet is not passed over the Gn SAP to the correct upper protocol + * when the Destination address matches the IUT address if received twice or more + *
+                 * Pics Selection: PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == ‘GREEDY’ OR 
+                 * 				   PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == ‘UNSPECIFIED’
+                 * Config Id: CF03
+                 * Initial conditions:
+                 *  with {
+                 *  	the IUT being in the "initial state" and
+                 *  	the IUT having received Beacon information from ItsNodeC and
+                 *  	the IUT having received Beacon information from ItsNodeB and
+                 *  	the IUT having received a GeoUnicast packet addressed to IUT from ItsNodeC
+                 *  		containing TrafficClass.SCF set to 1
+                 *  		containing Basic Header
+                 *  			containing RHL field
+                 *  				indicating value greater than 1 and
+                 *  	the IUT having forwarded the GUC packet
+                 *  }
+                 * Expected behaviour:
+                 *  ensure that {
+                 *  	when {
+                 *  		the IUT receives the same GUC packet from ItsNodeB
+                 *  			containing Basic Header
+                 *  				containing RHL field
+                 *  					indicating HL1 - 1
+                 *  	}
+                 *  	then {
+                 *  		the IUT does not pass the received GUC packet to any Upper Layer protocol
+                 *  	}
+                 *  }
+                 * 
+ * + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV/13 + * @reference EN 302 636-4-1 [1], clause 9.3.9.3 + */ + testcase TC_GEONW_PON_GUC_BV_13() runs on ItsMtc system ItsGeoNetworkingSystem { + + // Local variables + var ItsGeoNetworking v_nodeB; + var ItsGeoNetworking v_nodeC; + + // Test control + if ((f_getGeoUnicastForwardingAlgorithm() != e_greedy) and (f_getGeoUnicastForwardingAlgorithm() != e_unspecified)) { + log("*** " & testcasename() & ": PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == (e_greedy or e_unspecified) required for executing the TC ***"); + setverdict(inconc); + stop; + } + + // Test component configuration + f_cf03Up(c_compNodeB); + + // Preamble + + // Start components + v_nodeB := f_getComponent(c_compNodeB); + v_nodeC := f_getComponent(c_compNodeC); + v_nodeB.start(f_GEONW_PON_GUC_BV_13_nodeB()); + v_nodeC.start(f_GEONW_PON_GUC_BV_13_nodeC()); + + // Synchronization + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + // Cleanup + f_cf03Down(); + + } // end TC_GEONW_PON_GUC_BV_13 + + /** + * @desc Behavior function for NodeB (TC_GEONW_PON_GUC_BV_13) + */ + function f_GEONW_PON_GUC_BV_13_nodeB() runs on ItsGeoNetworking { + + // Local variables + var LongPosVector v_longPosVectorIut := f_getPosition(c_compIut); + var integer i; + var template (present) GeoNetworkingPdu v_gnPacket := m_geoNwPdu( + m_geoNwUnicastPacket( + f_getPosition(c_compNodeC), + f_longPosVector2ShortPosVector(v_longPosVectorIut), + vc_localSeqNumber + ), + -, + c_defaultHopLimit - 1 + ); + + // Preamble + f_prNeighbour(); + f_sleep(PX_TAC); + for(i:=0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_gnPacket.gnPacket.packet.payload.rawPayload); i:=i+1) { + // empty on purpose + } + if(i < lengthof(vc_utInds)) { + log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer ***"); + //flush received upper indications + vc_utInds := {}; + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + } + else { + log("*** " & testcasename() & ": INCONC: GN was not transmitted to upper layer ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_error); + } + + // Test Body + f_sendGeoNetMessage(m_geoNwReq_withLinkLayerDestination(valueof(v_gnPacket), f_getIutMacAddress())); + + f_sleep(PX_TAC); + for(i:=0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_gnPacket.gnPacket.packet.payload.rawPayload); i:=i+1) { + // empty on purpose + } + if(i < lengthof(vc_utInds)) { + log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + + // Postamble + f_poNeighbour(); + + } // end f_GEONW_PON_GUC_BV_13_nodeB + + /** + * @desc Behavior function for NodeC (TC_GEONW_PON_GUC_BV_13) + */ + function f_GEONW_PON_GUC_BV_13_nodeC() runs on ItsGeoNetworking { + + // Local variables + var LongPosVector v_longPosVectorIut := f_getPosition(c_compIut); + + // Preamble + f_prNeighbour(); + f_sendGeoNetMessage( + m_geoNwReq_withLinkLayerDestination( + m_geoNwPdu( + m_geoNwUnicastPacket( + f_getPosition(c_compNodeC), + f_longPosVector2ShortPosVector(v_longPosVectorIut), + vc_localSeqNumber + ), + -, + c_defaultHopLimit + ), + f_getIutMacAddress() + ) + ); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + + // Test Body + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + + // Postamble + f_poNeighbour(); + + } // end f_GEONW_PON_GUC_BV_13_nodeC + + } // end GEONW_PON_GUC_BV_13 + } // end geoGeoUnicast // 6.2.2.9 @@ -9191,7 +10063,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/01 * @reference EN 302 636-4-1 [1], clauses 9.3.11.2 */ testcase TC_GEONW_PON_GBC_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -9231,12 +10103,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoBroadcastMessage(f_getArea(c_area1))) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; @@ -9247,11 +10119,11 @@ module ItsGeoNetworking_TestCases { f_getGeoBroadcastArea(c_area1)) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -9270,7 +10142,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -9281,11 +10153,11 @@ module ItsGeoNetworking_TestCases { f_getGeoBroadcastArea(c_area1)) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -9302,7 +10174,9 @@ module ItsGeoNetworking_TestCases { * @desc Test that the reception of a broadcast indication over upper Gn SAP triggers the origination of a * GeoBroadcast packet's line forwarding if the IUT is outside the Destination Area *
-                 * Pics Selection: none
+                 * Pics Selection: PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' OR 
+                 * 				   PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED' OR
+                 * 				   PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED'
                  * Config Id: CF02
                  * Initial conditions:
                  *  with {
@@ -9327,7 +10201,7 @@ module ItsGeoNetworking_TestCases {
                  *  
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/02 * @reference EN 302 636-4-1 [1], clauses 9.3.11.2, Annex E.2 */ testcase TC_GEONW_PON_GBC_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -9337,7 +10211,12 @@ module ItsGeoNetworking_TestCases { var ItsGeoNetworking v_nodeD; // Test control - + if ((f_getGeoBroadcastForwardingAlgorithm() != e_simple) and (f_getGeoBroadcastForwardingAlgorithm() != e_unspecified) and (f_getGeoBroadcastForwardingAlgorithm() != e_advanced)) { + log("*** " & testcasename() & ": PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == ( e_simple or e_unspecified ) required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf02Up(); @@ -9367,12 +10246,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoBroadcastMessage(f_getArea(c_area2))) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; @@ -9383,11 +10262,11 @@ module ItsGeoNetworking_TestCases { f_getGeoBroadcastArea(c_area2)) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -9406,7 +10285,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -9417,11 +10296,11 @@ module ItsGeoNetworking_TestCases { f_getGeoBroadcastArea(c_area2)) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: received GeoBroadcast message ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -9460,7 +10339,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/03 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/03 * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2 */ testcase TC_GEONW_PON_GBC_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -9505,7 +10384,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -9528,11 +10407,11 @@ module ItsGeoNetworking_TestCases { f_getGeoBroadcastArea(c_area1)) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -9551,7 +10430,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -9562,11 +10441,11 @@ module ItsGeoNetworking_TestCases { f_getGeoBroadcastArea(c_area1)) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -9620,7 +10499,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/04 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/04 * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex A.2 */ testcase TC_GEONW_PON_GBC_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -9686,11 +10565,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: GeoBroadcast message received correctly ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Pre-conditions: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } @@ -9702,11 +10581,11 @@ module ItsGeoNetworking_TestCases { ?) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -9735,11 +10614,11 @@ module ItsGeoNetworking_TestCases { )))) -> value v_msgInd { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: GeoBroadcast message received correctly ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Pre-conditions: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error); + f_selfOrClientSyncAndVerdict(c_prDone, e_error); } } @@ -9756,11 +10635,11 @@ module ItsGeoNetworking_TestCases { ?) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -9775,7 +10654,7 @@ module ItsGeoNetworking_TestCases { /** * @desc Test that a received GeoBroadcast packet is triggering line forwarding if received out of its - * destination area for the first time + * destination area for the first time from a known ITS-Station *
                  * Pics Selection: none
                  * Config Id: CF04
@@ -9783,7 +10662,8 @@ module ItsGeoNetworking_TestCases {
                  *  with {
                  *      the IUT being in the "initial state" and
                  *      the IUT having received Beacon information from ItsNodeB and
-                 *      the IUT having received Beacon information from ItsNodeD
+                 *      the IUT having received Beacon information from ItsNodeD and
+				 *      the IUT having received Beacon information from ItsNodeC
                  *  }
                  * Expected behaviour:
                  *  ensure that {
@@ -9802,7 +10682,7 @@ module ItsGeoNetworking_TestCases {
                  *  
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/05 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/05 * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2 */ testcase TC_GEONW_PON_GBC_BV_05() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -9845,7 +10725,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -9856,11 +10736,11 @@ module ItsGeoNetworking_TestCases { f_getGeoBroadcastArea(c_area2)) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message correctly forwarded to area center ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -9880,7 +10760,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -9894,7 +10774,7 @@ module ItsGeoNetworking_TestCases { ) ) ); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -9911,7 +10791,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -9922,12 +10802,12 @@ module ItsGeoNetworking_TestCases { f_getGeoBroadcastArea(c_area2)) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast message not forwarded to area center ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -9944,7 +10824,8 @@ module ItsGeoNetworking_TestCases { * @desc Test that a received GeoBroadcast packet is not triggering line forwarding if received out of its * destination area for the second or more time *
-                 * Pics Selection: none
+                 * Pics Selection: PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' OR 
+                 * 				   PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED'
                  * Config Id: CF04
                  * Initial conditions:
                  *  with {
@@ -9980,7 +10861,7 @@ module ItsGeoNetworking_TestCases {
                  *  }
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/06 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/06 * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 */ testcase TC_GEONW_PON_GBC_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -9992,6 +10873,11 @@ module ItsGeoNetworking_TestCases { var UInt16 v_sequenceNumber := f_getInitialSequenceNumber(); // Test control + if ((f_getGeoBroadcastForwardingAlgorithm() != e_simple) and (f_getGeoBroadcastForwardingAlgorithm() != e_unspecified)) { + log("*** " & testcasename() & ": PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == ( e_simple or e_unspecified ) required for executing the TC ***"); + setverdict(inconc); + stop; + } // Test component configuration f_cf04Up(); @@ -10034,11 +10920,11 @@ module ItsGeoNetworking_TestCases { )))) -> value v_msgInd { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: GeoBroadcast message correctly forwarded to area center ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Pre-conditions: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } @@ -10049,11 +10935,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(v_msgInd) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast message re-forwarded to area center ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message not re-forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -10085,10 +10971,10 @@ module ItsGeoNetworking_TestCases { ) ) ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -10114,11 +11000,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_noac.stop; log("*** " & testcasename() & ": INCONC: Pre-conditions: GeoBroadcast message not forwarded to area center ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error); + f_selfOrClientSyncAndVerdict(c_prDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: Pre-conditions: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } } @@ -10147,11 +11033,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast re-forwarded! (not to area center!) ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -10168,8 +11054,7 @@ module ItsGeoNetworking_TestCases { * @desc Test that the protocol header fields (RHL) are correctly updated during a GeoBroadcast re- * broadcasting step *
-                 * Pics Selection:  PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' 
-                 *                  OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED'
+                 * Pics Selection:  none
                  * Config Id: CF02
                  * Initial conditions:
                  *  with {
@@ -10203,7 +11088,7 @@ module ItsGeoNetworking_TestCases {
                  *  }
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/07 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/07 * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 */ testcase TC_GEONW_PON_GBC_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -10213,11 +11098,6 @@ module ItsGeoNetworking_TestCases { var ItsGeoNetworking v_nodeD; // Test control - if ((f_getGeoBroadcastForwardingAlgorithm() != e_simple) and (f_getGeoBroadcastForwardingAlgorithm() != e_unspecified)) { - log("*** " & testcasename() & ": PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == ( e_simple or e_unspecified ) required for executing the TC ***"); - setverdict(inconc); - stop; - } // Test component configuration f_cf02Up(); @@ -10248,7 +11128,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -10276,11 +11156,11 @@ module ItsGeoNetworking_TestCases { c_defaultHopLimit) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message correctly re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -10300,7 +11180,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -10313,11 +11193,11 @@ module ItsGeoNetworking_TestCases { c_defaultHopLimit) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message correctly re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -10333,8 +11213,7 @@ module ItsGeoNetworking_TestCases { /** * @desc Test that the RHL restriction is correctly handled at a GeoBroadcast re-broadcasting step *
-                 * Pics Selection:  PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' 
-                 *                  OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED'
+                 * Pics Selection: none
                  * Config Id: CF02
                  * Initial conditions:
                  *  with {
@@ -10360,21 +11239,16 @@ module ItsGeoNetworking_TestCases {
                  *  }
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/08 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/08 * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 */ testcase TC_GEONW_PON_GBC_BV_08() runs on ItsMtc system ItsGeoNetworkingSystem { // Local variables var ItsGeoNetworking v_nodeB; - var ItsGeoNetworking v_nodeD; - - // Test control - if ((f_getGeoBroadcastForwardingAlgorithm() != e_simple) and (f_getGeoBroadcastForwardingAlgorithm() != e_unspecified)) { - log("*** " & testcasename() & ": PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == ( e_simple or e_unspecified ) required for executing the TC ***"); - setverdict(inconc); - stop; - } + var ItsGeoNetworking v_nodeD; + + // Test control // Test component configuration f_cf02Up(); @@ -10405,7 +11279,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -10429,11 +11303,11 @@ module ItsGeoNetworking_TestCases { ?) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -10452,7 +11326,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -10462,11 +11336,11 @@ module ItsGeoNetworking_TestCases { ?) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -10502,7 +11376,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/09 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/09 * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 */ testcase TC_GEONW_PON_GBC_BV_09() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -10522,7 +11396,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body v_gnPacket := m_geoNwPdu(m_geoNwBroadcastPacket( @@ -10540,11 +11414,11 @@ module ItsGeoNetworking_TestCases { } if(i < lengthof(vc_utInds)) { log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } // Postamble @@ -10559,7 +11433,8 @@ module ItsGeoNetworking_TestCases { * @desc Test that a received GeoBroadcast packet is not passed over the Gn SAP if it is received for the * second or more time *
-                 * Pics Selection: none
+                 * Pics Selection: PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' OR 
+                 * 				   PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED'
                  * Config Id: CF02
                  * Initial conditions:
                  *  with {
@@ -10594,8 +11469,8 @@ module ItsGeoNetworking_TestCases {
                  *  }
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/10 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/10 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 */ testcase TC_GEONW_PON_GBC_BV_10() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -10604,6 +11479,11 @@ module ItsGeoNetworking_TestCases { var ItsGeoNetworking v_nodeD; // Test control + if ((f_getGeoBroadcastForwardingAlgorithm() != e_simple) and (f_getGeoBroadcastForwardingAlgorithm() != e_unspecified)) { + log("*** " & testcasename() & ": PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == ( e_simple or e_unspecified ) required for executing the TC ***"); + setverdict(inconc); + stop; + } // Test component configuration f_cf02Up(c_compNodeB); @@ -10670,11 +11550,11 @@ module ItsGeoNetworking_TestCases { log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer ***"); //flush received upper indications vc_utInds := {}; - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } else { log("*** " & testcasename() & ": INCONC: GN was not transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error); + f_selfOrClientSyncAndVerdict(c_prDone, e_error); } // Test Body @@ -10685,11 +11565,11 @@ module ItsGeoNetworking_TestCases { } if(i < lengthof(vc_utInds)) { log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: GN was NOT transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // Postamble @@ -10720,18 +11600,18 @@ module ItsGeoNetworking_TestCases { )))) -> value v_msgInd { tc_ac.stop; log("*** " & testcasename() & ": INFO: Pre-conditions: GeoBroadcast message rebroadcasted ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INFO: Pre-conditions: GeoBroadcast message not rebroadcasted ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } // Test Body v_msgInd.msgIn.basicHeader.routerHopLimit := valueof(v_msgInd.msgIn.basicHeader.routerHopLimit) / 2; f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_msgInd.msgIn)); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -10765,7 +11645,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/11 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/11 * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 */ testcase TC_GEONW_PON_GBC_BV_11() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -10785,7 +11665,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body v_gnPacket := m_geoNwPdu(m_geoNwBroadcastPacket( @@ -10802,11 +11682,11 @@ module ItsGeoNetworking_TestCases { } if(i < lengthof(vc_utInds)) { log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: GN was NOT transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // Postamble @@ -10821,8 +11701,7 @@ module ItsGeoNetworking_TestCases { * @desc Test that the reception of a broadcast indication over upper Gn SAP triggers the origination of a * Simple GeoBroadcast if this method is selected in the MIB *
-                 * Pics Selection:  PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' 
-                 *                  OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED'
+                 * Pics Selection:  PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' 
                  * Config Id: CF02
                  * Initial conditions:
                  *  with {
@@ -10844,7 +11723,7 @@ module ItsGeoNetworking_TestCases {
                  *  }
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/12 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/12 * @reference EN 302 636-4-1 [1], clauses 9.3.11.2, Annex D.2 */ testcase TC_GEONW_PON_GBC_BV_12() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -10854,8 +11733,8 @@ module ItsGeoNetworking_TestCases { var ItsGeoNetworking v_nodeD; // Test control - if ((f_getGeoBroadcastForwardingAlgorithm() != e_simple) and (f_getGeoBroadcastForwardingAlgorithm() != e_unspecified)) { - log("*** " & testcasename() & ": PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == ( e_simple or e_unspecified ) required for executing the TC ***"); + if ((f_getGeoBroadcastForwardingAlgorithm() != e_cbf)) { + log("*** " & testcasename() & ": PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == ( e_cbf ) required for executing the TC ***"); setverdict(inconc); stop; } @@ -10889,12 +11768,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoBroadcastMessage(f_getArea(c_area1))) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; @@ -10905,11 +11784,11 @@ module ItsGeoNetworking_TestCases { f_getGeoBroadcastArea(c_area1)) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -10928,7 +11807,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -10939,11 +11818,11 @@ module ItsGeoNetworking_TestCases { f_getGeoBroadcastArea(c_area1)) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -10981,7 +11860,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/19 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/19 * @reference EN 302 636-4-1 [1], Annex B.3 */ testcase TC_GEONW_PON_GBC_BV_19() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -11031,7 +11910,7 @@ module ItsGeoNetworking_TestCases { f_getPosition(c_compNodeB), p_distanceTooBig ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -11043,11 +11922,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast message forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -11082,10 +11961,10 @@ module ItsGeoNetworking_TestCases { ) ) ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -11107,7 +11986,7 @@ module ItsGeoNetworking_TestCases { f_getPosition(c_compNodeB), p_distanceTooBig ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -11119,11 +11998,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast message forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -11157,13 +12036,13 @@ module ItsGeoNetworking_TestCases { * indicating AREA2 * } * then { - * the IUT re-broadcasts the GeoBroadcast packet + * the IUT re-broadcasts the GeoBroadcast packet immediately * } * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/20 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/20 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2, E3 and E.4 */ testcase TC_GEONW_PON_GBC_BV_20() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -11205,7 +12084,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -11217,11 +12096,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -11240,7 +12119,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -11252,11 +12131,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -11275,7 +12154,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -11298,11 +12177,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -11337,13 +12216,13 @@ module ItsGeoNetworking_TestCases { * indicating AREA2 * } * then { - * the IUT re-broadcasts the GeoBroadcast packet + * the IUT re-broadcasts the GeoBroadcast packet immediately * } * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GBC/BV/21 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV/21 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2, E.3 and E.4 */ testcase TC_GEONW_PON_GBC_BV_21() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -11385,7 +12264,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -11397,11 +12276,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -11420,7 +12299,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -11432,11 +12311,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -11458,7 +12337,7 @@ module ItsGeoNetworking_TestCases { v_longPosVectorNodeD.pai := int2bit(0,1); f_changePositon(c_compNodeD, v_longPosVectorNodeD); f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -11481,11 +12360,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -11525,7 +12404,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/TSB/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/TSB/BV/01 * @reference EN 302 636-4-1 [1], clauses 9.3.9.2 */ testcase TC_GEONW_PON_TSB_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -11565,12 +12444,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateTsbMessage) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; alt { @@ -11583,11 +12462,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: TSB packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected TSB message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -11606,7 +12485,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -11620,11 +12499,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: TSB packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected TSB message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -11662,7 +12541,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/TSB/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/TSB/BV/02 * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 */ testcase TC_GEONW_PON_TSB_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -11702,7 +12581,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -11732,11 +12611,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: TSB packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected TSB message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -11755,7 +12634,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -11772,11 +12651,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: TSB packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected TSB message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -11826,7 +12705,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/TSB/BV/03 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/TSB/BV/03 * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 */ testcase TC_GEONW_PON_TSB_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -11892,11 +12771,11 @@ module ItsGeoNetworking_TestCases { ) { tc_noac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB packet received correctly ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } [] tc_noac.timeout { log("*** " & testcasename() & ": INCONC: Pre-conditions: Expected TSB message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } @@ -11915,11 +12794,11 @@ module ItsGeoNetworking_TestCases { ) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: The same TSB packet was re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: The same TSB packet was not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -11953,11 +12832,11 @@ module ItsGeoNetworking_TestCases { ) -> value v_msgInd { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB packet received correctly ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Pre-conditions: Expected TSB message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } @@ -11970,11 +12849,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(v_msgInd) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: The same TSB packet was re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: The same TSB packet was not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -12022,7 +12901,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/TSB/BV/04 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/TSB/BV/04 * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 */ testcase TC_GEONW_PON_TSB_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -12062,7 +12941,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -12095,7 +12974,7 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: TSB packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] geoNetworkingPort.receive( mw_geoNwInd( @@ -12111,11 +12990,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: TSB packet received with incorrect HopLimit ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected TSB message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -12134,7 +13013,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -12154,7 +13033,7 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: TSB packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] geoNetworkingPort.receive( mw_geoNwInd( @@ -12170,11 +13049,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: TSB packet received with incorrect HopLimit ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected TSB message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -12210,7 +13089,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/TSB/BV/05 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/TSB/BV/05 * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 */ testcase TC_GEONW_PON_TSB_BV_05() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -12250,7 +13129,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -12265,7 +13144,7 @@ module ItsGeoNetworking_TestCases { ) ) ); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -12282,7 +13161,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -12299,11 +13178,11 @@ module ItsGeoNetworking_TestCases { ) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: TSB message was re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: TSB message was not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -12335,7 +13214,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/TSB/BV/06 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/TSB/BV/06 * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 */ testcase TC_GEONW_PON_TSB_BV_06() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -12355,7 +13234,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body v_gnPacket := m_geoNwPdu(m_geoNwTsbPacket( @@ -12371,15 +13250,15 @@ module ItsGeoNetworking_TestCases { } if(i < lengthof(vc_utInds)) { log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } log("*** " & testcasename() & ": TSB packet passed to Upper Layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poDefault(); @@ -12424,7 +13303,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/TSB/BV/07 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/TSB/BV/07 * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 */ testcase TC_GEONW_PON_TSB_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -12495,16 +13374,16 @@ module ItsGeoNetworking_TestCases { } if(i < lengthof(vc_utInds)) { log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly rebroadcasted and passed to Upper Layer ***"); - f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": INCONC: TSB was not transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Pre-conditions: TSB not rebroadcasted ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } @@ -12515,11 +13394,11 @@ module ItsGeoNetworking_TestCases { } if(i < lengthof(vc_utInds)) { log("*** " & testcasename() & ": FAIL: Same TSB packet was transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: Same TSB packet was not passed to Upper Layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // Postamble @@ -12555,11 +13434,11 @@ module ItsGeoNetworking_TestCases { ) -> value v_msgInd { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: TSB correctly rebroadcasted ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Pre-conditions: TSB not rebroadcasted ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } @@ -12567,7 +13446,7 @@ module ItsGeoNetworking_TestCases { v_msgInd.msgIn.basicHeader.routerHopLimit := valueof(v_msgInd.msgIn.basicHeader.routerHopLimit) - 1; v_gnPacket := v_msgInd.msgIn; f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_msgInd.msgIn)); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -12606,7 +13485,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/SHB/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/SHB/BV/01 * @reference EN 302 636-4-1 [1], clauses 9.3.10.2 */ testcase TC_GEONW_PON_SHB_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -12646,12 +13525,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateShbMessage) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; @@ -12665,11 +13544,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: SHB packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected SHB message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -12688,7 +13567,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -12702,11 +13581,11 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": PASS: SHB packet received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected SHB message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -12738,7 +13617,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/SHB/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/SHB/BV/02 * @reference EN 302 636-4-1 [1], clauses 9.3.10.3 */ testcase TC_GEONW_PON_SHB_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -12758,7 +13637,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body v_gnPacket := m_geoNwPdu(m_geoNwShbPacket(v_longPosVectorNodeB)); @@ -12770,11 +13649,11 @@ module ItsGeoNetworking_TestCases { } if(i < lengthof(vc_utInds)) { log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } // Postamble @@ -12818,7 +13697,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GAC/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV/01 * @reference EN 302 636-4-1 [1], clauses 9.3.12.2 */ testcase TC_GEONW_PON_GAC_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -12858,12 +13737,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoAnycastMessage(f_getArea(c_area1))) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; @@ -12874,11 +13753,11 @@ module ItsGeoNetworking_TestCases { f_getGeoAnycastArea(c_area1)) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoAnycast message received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoAnycast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -12897,7 +13776,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -12908,11 +13787,11 @@ module ItsGeoNetworking_TestCases { f_getGeoAnycastArea(c_area1)) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoAnycast message received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoAnycast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -12929,7 +13808,8 @@ module ItsGeoNetworking_TestCases { * @desc Test that the reception of an anycast indication over upper Gn SAP triggers the origination of a * GeoAnycast packet's line forwarding if the IUT is outside the Destination Area *
-                 * Pics Selection: none
+                 * Pics Selection: PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'GREEDY' OR
+                 * 				   PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'UNSPECIFIED'
                  * Config Id: CF02
                  * Initial conditions:
                  *  with {
@@ -12956,8 +13836,8 @@ module ItsGeoNetworking_TestCases {
                  *  
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GAC/BV/02 - * @reference EN 302 636-4-1 [1], clauses 9.3.12.2, Annex E.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV/02 + * @reference EN 302 636-4-1 [1], clauses 9.3.12.2, Annex D.2 */ testcase TC_GEONW_PON_GAC_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -12966,7 +13846,12 @@ module ItsGeoNetworking_TestCases { var ItsGeoNetworking v_nodeD; // Test control - + if ((f_getGeoBroadcastForwardingAlgorithm() != e_simple) and (f_getGeoBroadcastForwardingAlgorithm() != e_unspecified)) { + log("*** " & testcasename() & ": PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == ( e_simple or e_unspecified ) required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf02Up(); @@ -12996,12 +13881,12 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body if ( not f_utTriggerEvent(m_generateGeoAnycastMessage(f_getArea(c_area2))) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } tc_ac.start; @@ -13012,11 +13897,11 @@ module ItsGeoNetworking_TestCases { f_getGeoAnycastArea(c_area2)) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoAnycast message received correctly ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoAnycast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -13035,7 +13920,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -13046,11 +13931,11 @@ module ItsGeoNetworking_TestCases { f_getGeoAnycastArea(c_area2)) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: received GeoAnycast message ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoAnycast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -13089,7 +13974,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GAC/BV/03 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV/03 * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 */ testcase TC_GEONW_PON_GAC_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -13129,7 +14014,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -13152,11 +14037,11 @@ module ItsGeoNetworking_TestCases { f_getGeoAnycastArea(c_area1)) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoAnycast message re-forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoAnycast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -13175,7 +14060,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -13186,11 +14071,11 @@ module ItsGeoNetworking_TestCases { f_getGeoAnycastArea(c_area1)) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoAnycast message re-forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoAnycast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -13232,7 +14117,7 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GAC/BV/04 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV/04 * @reference EN 302 636-4-1 [1], clauses 9.3.12.3, Annex E.2 */ testcase TC_GEONW_PON_GAC_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -13275,7 +14160,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -13286,11 +14171,11 @@ module ItsGeoNetworking_TestCases { f_getGeoAnycastArea(c_area2)) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoAnycast message correctly forwarded to area center ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoAnycast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -13309,7 +14194,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -13323,7 +14208,7 @@ module ItsGeoNetworking_TestCases { ) ) ); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -13340,7 +14225,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -13351,11 +14236,11 @@ module ItsGeoNetworking_TestCases { f_getGeoAnycastArea(c_area2)) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoAnycast message not forwarded to area center ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoAnycast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -13408,7 +14293,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GAC/BV/05 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV/05 * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 */ testcase TC_GEONW_PON_GAC_BV_05() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -13468,11 +14353,11 @@ module ItsGeoNetworking_TestCases { ) -> value v_msgInd { tc_ac.stop; log("*** " & testcasename() & ": PASS: Pre-conditions: GeoAnycast message correctly forwarded to area center ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Pre-conditions: GeoAnycast message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } @@ -13483,11 +14368,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(v_msgInd) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoAnycast message re-forwarded to area center ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoAnycast message not re-forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -13519,7 +14404,7 @@ module ItsGeoNetworking_TestCases { ) ) ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -13530,11 +14415,11 @@ module ItsGeoNetworking_TestCases { f_getGeoAnycastArea(c_area2)) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoAnycast re-forwarded! (not to area center!) ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoAnycast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -13562,11 +14447,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_noac.stop; log("*** " & testcasename() & ": INCONC: Pre-conditions: GeoAnycast message not forwarded to area center ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error); + f_selfOrClientSyncAndVerdict(c_prDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: Pre-conditions: GeoAnycast message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } } @@ -13594,11 +14479,11 @@ module ItsGeoNetworking_TestCases { f_getGeoAnycastArea(c_area2)) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoAnycast re-forwarded! (not to area center!) ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoAnycast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -13651,7 +14536,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GAC/BV/06 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV/06 * @reference EN 302 636-4-1 [1], clauses 9.3.6.3 and 9.3.12.3 */ testcase TC_GEONW_PON_GAC_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -13691,7 +14576,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -13704,11 +14589,11 @@ module ItsGeoNetworking_TestCases { c_defaultHopLimit) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoAnycast message correctly forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoAnycast message not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -13728,7 +14613,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -13745,7 +14630,7 @@ module ItsGeoNetworking_TestCases { ) ) ); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -13784,7 +14669,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GAC/BV/07 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV/07 * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 */ testcase TC_GEONW_PON_GAC_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -13824,7 +14709,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -13835,11 +14720,11 @@ module ItsGeoNetworking_TestCases { f_getGeoAnycastArea(c_area2)) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoAnycast message re-forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoAnycast message not re-forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -13858,7 +14743,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -13874,7 +14759,7 @@ module ItsGeoNetworking_TestCases { ) ) ); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -13907,7 +14792,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GAC/BV/08 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV/08 * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 */ testcase TC_GEONW_PON_GAC_BV_08() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -13927,7 +14812,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body v_gnPacket := m_geoNwPdu(m_geoNwAnycastPacket( @@ -13944,15 +14829,15 @@ module ItsGeoNetworking_TestCases { } if(i < lengthof(vc_utInds)) { log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } log("*** " & testcasename() & ": GeoAnycast packet passed to Upper Layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -14000,7 +14885,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GAC/BV/09 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV/09 * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 */ testcase TC_GEONW_PON_GAC_BV_09() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -14050,11 +14935,11 @@ module ItsGeoNetworking_TestCases { } if(i < lengthof(vc_utInds)) { log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); } else { log("*** " & testcasename() & ": INCONC: GN was not transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error); + f_selfOrClientSyncAndVerdict(c_prDone, e_error); } // Test Body @@ -14074,11 +14959,11 @@ module ItsGeoNetworking_TestCases { } if(i < lengthof(vc_utInds)) { log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: GN was NOT transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // Postamble @@ -14108,10 +14993,10 @@ module ItsGeoNetworking_TestCases { ); f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_gnPacket)); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -14144,7 +15029,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GAC/BV/10 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV/10 * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 */ testcase TC_GEONW_PON_GAC_BV_10() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -14164,7 +15049,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body v_gnPacket := m_geoNwPdu(m_geoNwAnycastPacket( @@ -14181,11 +15066,11 @@ module ItsGeoNetworking_TestCases { } if(i < lengthof(vc_utInds)) { log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: GN was NOT transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // Postamble @@ -14221,7 +15106,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GAC/BV/11 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV/11 * @reference EN 302 636-4-1 [1], Annex B.3 */ testcase TC_GEONW_PON_GAC_BV_11() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -14271,7 +15156,7 @@ module ItsGeoNetworking_TestCases { f_computePosition(f_getPosition(c_compNodeB), 1000, 0), p_distanceTooBig ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -14283,11 +15168,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoAnycast message forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoAnycast message not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -14322,10 +15207,10 @@ module ItsGeoNetworking_TestCases { ) ) ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -14347,7 +15232,7 @@ module ItsGeoNetworking_TestCases { f_computePosition(f_getPosition(c_compNodeB), 1000, 0), p_distanceTooBig ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -14359,11 +15244,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoAnycast message forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoAnycast message not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -14373,185 +15258,144 @@ module ItsGeoNetworking_TestCases { } // end f_GEONW_PON_GAC_BV_11_nodeD } // end GEONW_PON_GAC_BV_11 - - group GEONW_PON_GAC_BV_12 { + + group GEONW_PON_GAC_BV_13 { /** - * @desc Test that a received GeoAnycast packet is triggering rebroadcast if received out of its - * destination area for the first time from an unknown sender + * @desc Test that the reception of an anycast indication over upper Gn SAP triggers the origination of a + * GeoAnycast packet immediate broadcast if the IUT is outside the Destination Area *
-                 * Pics Selection: none
-                 * Config Id: CF04
+                 * Pics Selection: PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'CBF' 
+                 * Config Id: CF02
                  * Initial conditions:
                  *  with {
-                 *      the IUT being in the "initial state" and
-                 *      the IUT having received Beacon information from ItsNodeB and
-                 *      the IUT not having received any message from ItsNodeD
+                 *  	the IUT being in the "initial state" and
+                 *  	the IUT having received Beacon information from ItsNodeD and
+                 *  	the IUT having received Beacon information from ItsNodeB
                  *  }
                  * Expected behaviour:
                  *  ensure that {
-                 *      when {
-                 *          the IUT receives a GeoAnycast packet generated by ItsNodeC from ItsNodeD
-                 *              containing TrafficClass.SCF set to 1 
-                 *              containing GeoAnycast DestinationArea
-                 *                  indicating AREA2
-                 *      }
-                 *      then {
-                 *          the IUT re-broadcasts the GeoAnycast packet
-                 *      }
+                 *  	when {
+                 *  		the IUT is requested to send a GeoAnycast packet
+                 *  			containing TrafficClass.SCF set to 1
+                 *  			containing GeoAnycast DestinationArea
+                 *  				indicating AREA2
+                 *  	}
+                 *  	then {
+                 *  		the IUT broadcasts the packet immediately
+                 *  	}
                  *  }
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/GAC/BV/12 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV/13 + * @reference EN 302 636-4-1 [1], clauses 9.3.12.2 */ - testcase TC_GEONW_PON_GAC_BV_12() runs on ItsMtc system ItsGeoNetworkingSystem { + testcase TC_GEONW_PON_GAC_BV_13() runs on ItsMtc system ItsGeoNetworkingSystem { // Local variables var ItsGeoNetworking v_nodeB; - var ItsGeoNetworking v_nodeC; var ItsGeoNetworking v_nodeD; // Test control - + if(f_getGeoBroadcastForwardingAlgorithm() != e_cbf) { + log("*** " & testcasename() & ": PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == ( e_cbf ) required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration - f_cf04Up(); + f_cf02Up(); // Preamble // Start components v_nodeB := f_getComponent(c_compNodeB); - v_nodeC := f_getComponent(c_compNodeC); v_nodeD := f_getComponent(c_compNodeD); - v_nodeB.start(f_GEONW_PON_GAC_BV_12_nodeB()); - v_nodeC.start(f_GEONW_PON_GAC_BV_12_nodeC()); - v_nodeD.start(f_GEONW_PON_GAC_BV_12_nodeD()); + v_nodeB.start(f_GEONW_PON_GAC_BV_13_nodeB()); + v_nodeD.start(f_GEONW_PON_GAC_BV_13_nodeD()); // Synchronization - f_serverSync3ClientsAndStop({c_prDone, c_tbDone}); + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Cleanup - f_cf04Down(); + f_cf02Down(); - } // end TC_GEONW_PON_GAC_BV_12 + } // end TC_GEONW_PON_GAC_BV_13 /** - * @desc Behavior function for NodeB (TC_GEONW_PON_GAC_BV_12) + * @desc Behavior function for NodeB (TC_GEONW_PON_GAC_BV_13) */ - function f_GEONW_PON_GAC_BV_12_nodeB() runs on ItsGeoNetworking { + function f_GEONW_PON_GAC_BV_13_nodeB() runs on ItsGeoNetworking { // Local variables - var LongPosVector v_longPosVectorNodeC := f_getPosition(c_compNodeC); + var LongPosVector v_longPosVectorIut := f_getPosition(c_compIut); // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwAnycastPacketWithArea( - mw_longPosVectorPosition(v_longPosVectorNodeC), - ?, - f_getGeoAnycastArea(c_area2) - )))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: GeoAnycast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": FAIL: GeoAnycast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } + if(not f_utTriggerEvent(m_generateGeoAnycastMessage(f_getArea(c_area2)))) { + log("*** " & testcasename() & ": INCONC: Trigger failed ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } - // Postamble - f_poNeighbour(); - - } // end f_GEONW_PON_GAC_BV_12_nodeB - - /** - * @desc Behavior function for NodeC (TC_GEONW_PON_GAC_BV_12) - */ - function f_GEONW_PON_GAC_BV_12_nodeC() runs on ItsGeoNetworking { - - // Local variables - var LongPosVector v_longPosVectorNodeC := f_getPosition(c_compNodeC); - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body tc_ac.start; alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwAnycastPacketWithArea( - mw_longPosVectorPosition(v_longPosVectorNodeC), + [] a_receiveGeoAnycastWithArea( + mw_longPosVectorPosition_withDelta(v_longPosVectorIut), ?, - f_getGeoAnycastArea(c_area2) - )))) { + f_getGeoAnycastArea(c_area2)) { tc_ac.stop; - log("*** " & testcasename() & ": PASS: GeoAnycast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + log("*** " & testcasename() & ": PASS: GeoAnycast message received correctly ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": FAIL: GeoAnycast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + log("*** " & testcasename() & ": FAIL: GeoAnycast message not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } // Postamble f_poNeighbour(); - } // end f_GEONW_PON_GAC_BV_12_nodeC + } // end f_GEONW_PON_GAC_BV_13_nodeB /** - * @desc Behavior function for NodeD (TC_GEONW_PON_GAC_BV_12) + * @desc Behavior function for NodeD (TC_GEONW_PON_GAC_BV_13) */ - function f_GEONW_PON_GAC_BV_12_nodeD() runs on ItsGeoNetworking { + function f_GEONW_PON_GAC_BV_13_nodeD() runs on ItsGeoNetworking { // Local variables - var LongPosVector v_longPosVectorNodeC := f_getPosition(c_compNodeC); + var LongPosVector v_longPosVectorIut := f_getPosition(c_compIut); // Preamble - f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_prNeighbour(); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body - f_sendGeoNetMessage( - m_geoNwReq_linkLayerBroadcast( - m_geoNwPdu( - m_geoNwAnycastPacket( - v_longPosVectorNodeC, - vc_localSeqNumber, - f_getGeoAnycastArea(c_area2) - ) - ) - ) - ); tc_ac.start; alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwAnycastPacketWithArea( - mw_longPosVectorPosition(v_longPosVectorNodeC), + [] a_receiveGeoAnycastWithArea( + mw_longPosVectorPosition_withDelta(v_longPosVectorIut), ?, - f_getGeoAnycastArea(c_area2) - )))) { + f_getGeoAnycastArea(c_area2)) { tc_ac.stop; - log("*** " & testcasename() & ": PASS: GeoAnycast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + log("*** " & testcasename() & ": PASS: received GeoAnycast message ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": FAIL: GeoAnycast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + log("*** " & testcasename() & ": FAIL: GeoAnycast message not broadcasted ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } // Postamble f_poNeighbour(); - } // end f_GEONW_PON_GAC_BV_12_nodeD + } // end f_GEONW_PON_GAC_BV_13_nodeD - } // end GEONW_PON_GAC_BV_12 + } // end GEONW_PON_GAC_BV_13 } // end geoGeoAnycast @@ -14589,7 +15433,7 @@ module ItsGeoNetworking_TestCases { * } * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BCA/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV/01 * @reference EN 302 636-4-1 [1], Annex E.3 */ testcase TC_GEONW_PON_BCA_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -14644,7 +15488,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -14656,11 +15500,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -14690,7 +15534,7 @@ module ItsGeoNetworking_TestCases { ) ) ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -14702,11 +15546,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -14725,7 +15569,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -14749,11 +15593,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -14767,7 +15611,7 @@ module ItsGeoNetworking_TestCases { group GEONW_PON_BCA_BV_02 { /** - * @desc Test that a received GeoBroadcast packet is triggering contention if received for the first time + * @desc Test that a received GeoBroadcast packet is triggering contention if received for the first time from a known sender * when inside of the destination area *
                  * Pics Selection: PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF'
@@ -14776,7 +15620,8 @@ module ItsGeoNetworking_TestCases {
                  *  with {
                  *      the IUT being in the "initial state" and
                  *      the IUT having received Beacon information from ItsNodeB and
-                 *      the IUT having received Beacon information from ItsNodeD
+                 *      the IUT having received Beacon information from ItsNodeD and
+                 *      the IUT having received Beacon information from ItsNodeC
                  *  }
                  * Expected behaviour:
                  *  ensure that {
@@ -14790,13 +15635,13 @@ module ItsGeoNetworking_TestCases {
                  *      then {
                  *          the IUT saves the GeoBroadcast packet into the CBF buffer and
                  *          the IUT starts the contention timer and
-                 *          the IUT broadcasts the received GeoBroadcast packet
-                 *              after expiry of the contention timer
+                 *          the IUT re-broadcasts the received GeoBroadcast packet
+                 *              upon expiry of the contention timer
                  *      }
                  *  }
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BCA/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV/02 * @reference EN 302 636-4-1 [1], Annex E.3 */ testcase TC_GEONW_PON_BCA_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -14850,7 +15695,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -14862,11 +15707,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -14891,7 +15736,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -14919,11 +15764,11 @@ module ItsGeoNetworking_TestCases { if(t_toCbf.running) { t_toCbf.stop; log("*** " & testcasename() & ": FAIL: GBC retransmitted before CBF timer expiration ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: GeoBroadcast message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] t_toCbf.timeout { @@ -14932,7 +15777,7 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -14951,7 +15796,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -14963,11 +15808,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -15011,7 +15856,7 @@ module ItsGeoNetworking_TestCases { * NOTE: Next hop ITS Statoin being identified by the MAC layer address of ItsNodeB * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BCA/BV/03 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV/03 * @reference EN 302 636-4-1 [1], Annex E.3 */ testcase TC_GEONW_PON_BCA_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -15065,7 +15910,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body @@ -15080,11 +15925,11 @@ module ItsGeoNetworking_TestCases { )) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast correctly forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -15103,7 +15948,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -15123,11 +15968,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(?))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: Message was broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: Message not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -15145,7 +15990,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -15153,11 +15998,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(?))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: Message was broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: Message not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -15198,7 +16043,7 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BCA/BV/04 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV/04 * @reference EN 302 636-4-1 [1], Annex E.3 */ testcase TC_GEONW_PON_BCA_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -15251,7 +16096,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -15259,11 +16104,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(?))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast received and not discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -15281,7 +16126,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -15289,11 +16134,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(?))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast received and not discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -15312,7 +16157,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -15332,11 +16177,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(?))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: GeoBroadcast received and not discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: GeoBroadcast message discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -15374,13 +16219,13 @@ module ItsGeoNetworking_TestCases { * the IUT saves the GeoBroadcast packet into the CBF buffer and * the IUT starts the contention timer set to CBF_MAX and * the IUT broadcasts the received GeoBroedcast packet - * after expiry of the contention timer + * upon expiry of the contention timer * } * } * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BCA/BV/05 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV/05 * @reference EN 302 636-4-1 [1], Annex E.3 */ testcase TC_GEONW_PON_BCA_BV_05() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -15434,7 +16279,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -15446,11 +16291,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -15469,7 +16314,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -15481,11 +16326,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -15505,7 +16350,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -15533,11 +16378,11 @@ module ItsGeoNetworking_TestCases { if(t_toCbf.running) { t_toCbf.stop; log("*** " & testcasename() & ": FAIL: GBC retransmitted before CBF timer expiration ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: GeoBroadcast message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] t_toCbf.timeout { @@ -15546,7 +16391,7 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -15560,8 +16405,8 @@ module ItsGeoNetworking_TestCases { group GEONW_PON_BCA_BV_06 { /** - * @desc Test that a received GeoBroadcast packet from outside of the destination area is triggering line - * forwarding if received for the first time when IUT is outside of the destination area from an + * @desc Test that a received GeoBroadcast packet from outside of the destination area is triggering re-broadcast + * if received for the first time when IUT is outside of the destination area from an * unknown sender *
                  * Pics Selection: PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF'
@@ -15582,13 +16427,13 @@ module ItsGeoNetworking_TestCases {
                  *                      indicating AREA2
                  *      }
                  *      then {
-                 *          the IUT broadcasts the GeoBroadcast packet
+                 *          the IUT re-broadcasts the GeoBroadcast packet immediately
                  *      }
                  *  }
                  *  
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BCA/BV/06 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV/06 * @reference EN 302 636-4-1 [1], Annex E.3 */ testcase TC_GEONW_PON_BCA_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -15642,7 +16487,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -15654,11 +16499,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -15676,19 +16521,19 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body - tc_noac.start; + tc_ac.start; alt { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(?))) { - tc_noac.stop; + tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } - [] tc_noac.timeout { + [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -15707,7 +16552,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -15722,16 +16567,16 @@ module ItsGeoNetworking_TestCases { ) ); - tc_noac.start; + tc_ac.start; alt { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(?))) { - tc_noac.stop; + tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } - [] tc_noac.timeout { + [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not re-broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -15758,7 +16603,7 @@ module ItsGeoNetworking_TestCases { * containing Beacon ExtendedHeader * containing SOPV field * containing PAI - * set to ‘0’ + * set to '0' * } * Expected behaviour: * ensure that { @@ -15770,13 +16615,13 @@ module ItsGeoNetworking_TestCases { * indicating AREA2 * } * then { - * the IUT broadcasts the GeoBroadcast packet + * the IUT re-broadcasts the GeoBroadcast packet * } * } * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BCA/BV/07 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV/07 * @reference EN 302 636-4-1 [1], Annex E.3 */ testcase TC_GEONW_PON_BCA_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -15830,7 +16675,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -15842,11 +16687,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -15868,7 +16713,7 @@ module ItsGeoNetworking_TestCases { v_longPosVectorNodeC.pai := int2bit(0,1); f_changePositon(c_compNodeC, v_longPosVectorNodeC); f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -15892,11 +16737,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -15915,7 +16760,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -15927,11 +16772,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -15958,7 +16803,7 @@ module ItsGeoNetworking_TestCases { * containing Beacon ExtendedHeader * containing SOPV field * containing PAI - * set to ‘0’ + * set to '0' * } * Expected behaviour: * ensure that { @@ -15972,14 +16817,14 @@ module ItsGeoNetworking_TestCases { * then { * the IUT saves the GeoBroadcast packet into the CBF buffer and * the IUT starts the contention timer set to CBF_MAX and - * the IUT broadcasts the received GeoBroedcast packet - * after expiry of the contention timer + * the IUT re-broadcasts the received GeoBroedcast packet + * upon expiry of the contention timer * } * } * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BCA/BV/08 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV/08 * @reference EN 302 636-4-1 [1], Annex E.3 */ testcase TC_GEONW_PON_BCA_BV_08() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -16033,7 +16878,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -16045,11 +16890,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -16068,7 +16913,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -16080,11 +16925,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not broadcasted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -16107,7 +16952,7 @@ module ItsGeoNetworking_TestCases { v_longPosVectorNodeD.pai := int2bit(0,1); f_changePositon(c_compNodeD, v_longPosVectorNodeD); f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -16135,11 +16980,11 @@ module ItsGeoNetworking_TestCases { if(t_toCbf.running) { t_toCbf.stop; log("*** " & testcasename() & ": FAIL: GBC retransmitted before CBF timer expiration ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: GeoBroadcast message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] t_toCbf.timeout { @@ -16148,7 +16993,7 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -16198,7 +17043,7 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BAA/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV/01 * @reference EN 302 636-4-1 [1], Annex E.4 */ testcase TC_GEONW_PON_BAA_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -16248,7 +17093,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -16256,11 +17101,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(?))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: Message not discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: No message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -16288,7 +17133,7 @@ module ItsGeoNetworking_TestCases { ) ); f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_gnPacket)); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body for(i:=1; i < f_getAdvancedGbcForwardingMaxCounter(); i:=i+1) { @@ -16300,11 +17145,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(?))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: Message not discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: No message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -16349,7 +17194,7 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BAA/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV/02 * @reference EN 302 636-4-1 [1], Annex E.4 */ testcase TC_GEONW_PON_BAA_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -16408,7 +17253,7 @@ module ItsGeoNetworking_TestCases { ) ) )); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -16416,11 +17261,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(?))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: Message not discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: No message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -16439,7 +17284,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast( @@ -16455,11 +17300,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive (mw_geoNwInd(mw_geoNwPdu(?))){ tc_noac.stop; log("*** " & testcasename() & ": FAIL: Message not discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: No message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -16474,7 +17319,7 @@ module ItsGeoNetworking_TestCases { /** * @desc Test that a received GeoBroadcast packet is triggering contention if received more than 1 times when the IUT - * is inside of the destination area and outside the sectorial area of the GeoBroadcast packet Sender + * is inside of the destination area and outside the sectorial area of the GeoBroadcast packet Sender (Angle_FSR > Angle_TH) *
                  * Pics Selection: PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED'
                  * Config Id: CF06
@@ -16499,15 +17344,15 @@ module ItsGeoNetworking_TestCases {
                  *      then {
                  *          the IUT saves the GeoBroadcast packet GBC1 from ItsNodeF and
                  *          the IUT starts the contention timer and
-                 *          the IUT broadcasts the received GeoBroadcast packet
-                 *              after expiry of the contention timer
+                 *          the IUT re-broadcasts the received GeoBroadcast packet
+                 *              upon expiry of the contention timer
                  *      }
                  *  }
                  *  
                  *  Note: In this configuration IUT is outside sectorial area of ItsNodeB to the angle FSR
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BAA/BV/03 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV/03 * @reference EN 302 636-4-1 [1], Annex E.4 */ testcase TC_GEONW_PON_BAA_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -16566,7 +17411,7 @@ module ItsGeoNetworking_TestCases { ) ) )); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -16578,11 +17423,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -16608,7 +17453,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast( @@ -16632,11 +17477,11 @@ module ItsGeoNetworking_TestCases { if(t_toCbf.running) { t_toCbf.stop; log("*** " & testcasename() & ": FAIL: GBC retransmitted before CBF timer expiration ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: GeoBroadcast message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] t_toCbf.timeout { @@ -16645,7 +17490,7 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -16688,7 +17533,7 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BAA/BV/04 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV/04 * @reference EN 302 636-4-1 [1], Annex E.4 */ testcase TC_GEONW_PON_BAA_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -16739,7 +17584,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -16751,11 +17596,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: packet correctly forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -16774,7 +17619,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -16788,7 +17633,7 @@ module ItsGeoNetworking_TestCases { f_getIutMacAddress() ) ); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -16796,12 +17641,168 @@ module ItsGeoNetworking_TestCases { } // end f_GEONW_PON_BAA_BV_04_nodeE } // end GEONW_PON_BAA_BV_04 - + + group GEONW_PON_BAA_BV_05 { + + /** + * @desc Test that a received GeoBroadcast packet with Unicast MAC destination is triggering + * rebroadcast if received for the first time when IUT is inside the destination area. + *
+                 * Pics Selection: PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED'
+                 * Config Id: CF05
+                 * Initial conditions:
+                 *  with {
+                 *  	the IUT being in the "initial state" and
+                 *  	the IUT having received Beacon information from ItsNodeB and
+                 *  	the IUT having received Beacon information from ItsNodeE
+                 *  }
+                 * Expected behaviour:
+                 *  ensure that {
+                 *  	when {
+                 *  		the IUT receives a GeoBroadcast packet from ItsNodeE addressed to IUT’s link-layer address
+                 *  			containing TrafficClass.SCF set to 1
+                 *  			containing GBC Extended Header
+                 *  				containing GeoBroadcast DestinationArea
+                 *  					indicating AREA1
+                 *  	}
+                 *  	then {
+                 *  		the IUT saves the GeoBroadcast packet into the CBF buffer and
+                 *  		the IUT starts the contention timer set to CBF_MAX and
+                 *  		the IUT re-broadcasts the received GeoBroadcast packet
+                 *  			upon expiry of the contention timer
+                 *  	}
+                 *  }
+                 * 
+ * + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV/05 + * @reference EN 302 636-4-1 [1], Annex E.4 + */ + testcase TC_GEONW_PON_BAA_BV_05() runs on ItsMtc system ItsGeoNetworkingSystem { + + // Local variables + var ItsGeoNetworking v_nodeB; + var ItsGeoNetworking v_nodeE; + + // Test control + if (f_getGeoBroadcastForwardingAlgorithm() != e_advanced) { + log("*** " & testcasename() & ": PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_advanced required for executing the TC ***"); + setverdict(inconc); + stop; + } + + if (f_getGeoBroadcastCbfMinTime() < 300) { + log("*** " & testcasename() & ": PICS_GN_GEOBROADCAST_CBF_MIN_TIME >= 300 required for executing the TC ***"); + setverdict(inconc); + stop; + } + + // Test component configuration + f_cf05Up(); + + // Preamble + + // Start components + v_nodeB := f_getComponent(c_compNodeB); + v_nodeE := f_getComponent(c_compNodeE); + v_nodeB.start(f_GEONW_PON_BAA_BV_05_nodeB()); + v_nodeE.start(f_GEONW_PON_BAA_BV_05_nodeE()); + + // Synchronization + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + // Cleanup + f_cf05Down(); + + } // end TC_GEONW_PON_BAA_BV_05 + + /** + * @desc Behavior function for NodeB (TC_GEONW_PON_BAA_BV_05) + */ + function f_GEONW_PON_BAA_BV_05_nodeB() runs on ItsGeoNetworking { + + // Local variables + var LongPosVector v_longPosVectorNodeA := f_getPosition(c_compNodeA); + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacketWithArea( + mw_longPosVectorPosition(v_longPosVectorNodeA), + ?, + f_getGeoBroadcastArea(c_area1) + )))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: packet correctly broadcasted ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": FAIL: Expected message not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + + // Postamble + f_poNeighbour(); + + } // end f_GEONW_PON_BAA_BV_05_nodeB + + /** + * @desc Behavior function for NodeE (TC_GEONW_PON_BAA_BV_05) + */ + function f_GEONW_PON_BAA_BV_05_nodeE() runs on ItsGeoNetworking { + + // Local variables + var LongPosVector v_longPosVectorNodeA := f_getPosition(c_compNodeA); + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + + // Test Body + f_sendGeoNetMessage( + m_geoNwReq_withLinkLayerDestination( + m_geoNwPdu(m_geoNwBroadcastPacket( + v_longPosVectorNodeA, + 0, + f_getGeoBroadcastArea(c_area1) + ) + ), + f_getIutMacAddress() + ) + ); + tc_ac.start; + alt { + [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacketWithArea( + mw_longPosVectorPosition(v_longPosVectorNodeA), + ?, + f_getGeoBroadcastArea(c_area1) + )))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: packet correctly broadcasted ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": FAIL: Expected message not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + + // Postamble + f_poNeighbour(); + + } // end f_GEONW_PON_BAA_BV_05_nodeE + + } // end GEONW_PON_BAA_BV_05 + group GEONW_PON_BAA_BV_06 { /** * @desc Test that a received GeoBroadcast packet with Broadcast destination is triggering contention if - * received for the first time when IUT is inside the destination area + * received for the first time from known sender when IUT is inside the destination area *
                  * Pics Selection: PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED'
                  * Config Id: CF05
@@ -16823,14 +17824,14 @@ module ItsGeoNetworking_TestCases {
                  *      }
                  *      then {
                  *          the IUT calculates and starts the contention timer and
-                 *          the IUT broadcasts the received GeoBroadcast packet
-                 *              after expiry of the contention timer
+                 *          the IUT re-broadcasts the received GeoBroadcast packet
+                 *              upon expiry of the contention timer
                  *      }
                  *  }
                  *  
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BAA/BV/06 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV/06 * @reference EN 302 636-4-1 [1], Annex E.4 */ testcase TC_GEONW_PON_BAA_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -16887,7 +17888,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body t_toCbf.start; @@ -16903,11 +17904,11 @@ module ItsGeoNetworking_TestCases { if(t_toCbf.running) { t_toCbf.stop; log("*** " & testcasename() & ": FAIL: GBC retransmitted before CBF timer expiration ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: GeoBroadcast message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] t_toCbf.timeout { @@ -16916,7 +17917,7 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -16941,7 +17942,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -16968,11 +17969,11 @@ module ItsGeoNetworking_TestCases { if(t_toCbf.running) { t_toCbf.stop; log("*** " & testcasename() & ": FAIL: GBC retransmitted before CBF timer expiration ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: GeoBroadcast message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] t_toCbf.timeout { @@ -16981,7 +17982,7 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -16996,7 +17997,7 @@ module ItsGeoNetworking_TestCases { /** * @desc Test that a received GeoBroadcast packet from outside the destination area is triggering line - * forwarding if received for the first time when IUT is outside the destination area + * forwarding if received for the first time from known sender when IUT is outside the destination area *
                  * Pics Selection: PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED'
                  * Config Id: CF04
@@ -17024,7 +18025,7 @@ module ItsGeoNetworking_TestCases {
                  *  
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BAA/BV/07 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV/07 * @reference EN 302 636-4-1 [1], Annex E.4 */ testcase TC_GEONW_PON_BAA_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -17078,7 +18079,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -17090,11 +18091,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: packet correctly forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -17113,7 +18114,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -17126,7 +18127,7 @@ module ItsGeoNetworking_TestCases { ) ) ); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -17142,7 +18143,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_noac.start; @@ -17150,11 +18151,11 @@ module ItsGeoNetworking_TestCases { [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(?))) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: Message not discarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: No message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -17169,7 +18170,7 @@ module ItsGeoNetworking_TestCases { /** * @desc Test that a received GeoBroadcast packet with from inside the destination area is discarded if - * received for the first time when IUT is outside the destination area + * received for the first time from known sender when IUT is outside the destination area *
                  * Pics Selection: PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED'
                  * Config Id: CF04
@@ -17249,7 +18250,7 @@ module ItsGeoNetworking_TestCases {
                     
                     // Preamble
                     f_prNeighbour();
-                    f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                    f_selfOrClientSyncAndVerdict(c_prDone, e_success);
                     
                     // Test Body
                     tc_noac.start;
@@ -17257,11 +18258,11 @@ module ItsGeoNetworking_TestCases {
                         [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(?))) {
                             tc_noac.stop;
                             log("*** " & testcasename() & ": FAIL: Message not discarded ***");
-                            f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
+                            f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                         }
                         [] tc_noac.timeout {
                             log("*** " & testcasename() & ": PASS: No message received ***");
-                            f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                            f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                         }
                     }
                     
@@ -17279,7 +18280,7 @@ module ItsGeoNetworking_TestCases {
                     
                     // Preamble
                     f_prNeighbour();
-                    f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                    f_selfOrClientSyncAndVerdict(c_prDone, e_success);
                     
                     // Test Body
                     tc_noac.start;
@@ -17287,11 +18288,11 @@ module ItsGeoNetworking_TestCases {
                         [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(?))) {
                             tc_noac.stop;
                             log("*** " & testcasename() & ": FAIL: Message not discarded ***");
-                            f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
+                            f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                         }
                         [] tc_noac.timeout {
                             log("*** " & testcasename() & ": PASS: No message received ***");
-                            f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                            f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                         }
                     }
                     
@@ -17310,7 +18311,7 @@ module ItsGeoNetworking_TestCases {
                     
                     // Preamble
                     f_prNeighbour();
-                    f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                    f_selfOrClientSyncAndVerdict(c_prDone, e_success);
                     
                     // Test Body
                     f_sendGeoNetMessage(
@@ -17323,7 +18324,7 @@ module ItsGeoNetworking_TestCases {
                             )
                         )
                     );
-                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                     
                     // Postamble
                     f_poNeighbour();
@@ -17360,14 +18361,14 @@ module ItsGeoNetworking_TestCases {
                  *      then {
                  *          the IUT saves the GeoBroadcast packet into the CBF buffer and
                  *          the IUT starts the contention timer set to CBF_MAX and
-                 *          the IUT broadcasts the received GeoBroadcast packet
-                 *              after expiry of the contention timer
+                 *          the IUT re-broadcasts the received GeoBroadcast packet
+                 *              upon expiry of the contention timer
                  *      }
                  *  }
                  *  
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BAA/BV/09 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV/09 * @reference EN 302 636-4-1 [1], Annex E.4 */ testcase TC_GEONW_PON_BAA_BV_09() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -17419,7 +18420,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body t_toCbf.start; @@ -17435,11 +18436,11 @@ module ItsGeoNetworking_TestCases { if(t_toCbf.running) { t_toCbf.stop; log("*** " & testcasename() & ": FAIL: GBC retransmitted before CBF timer expiration ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: GeoBroadcast message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] t_toCbf.timeout { @@ -17448,7 +18449,7 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -17468,7 +18469,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -17495,11 +18496,11 @@ module ItsGeoNetworking_TestCases { if(t_toCbf.running) { t_toCbf.stop; log("*** " & testcasename() & ": FAIL: GBC retransmitted before CBF timer expiration ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: GeoBroadcast message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] t_toCbf.timeout { @@ -17508,7 +18509,7 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -17544,13 +18545,13 @@ module ItsGeoNetworking_TestCases { * indicating AREA2 * } * then { - * the IUT re-broadcasts the GeoBroadcast packet + * the IUT re-broadcasts the GeoBroadcast packet immediately * } * } * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BAA/BV/10 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV/10 * @reference EN 302 636-4-1 [1], Annex E.4 */ testcase TC_GEONW_PON_BAA_BV_10() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -17604,7 +18605,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -17616,11 +18617,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: packet correctly forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -17639,7 +18640,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNonNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage( @@ -17661,11 +18662,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: packet correctly forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -17684,7 +18685,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -17696,11 +18697,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: packet correctly forwarded ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -17715,7 +18716,7 @@ module ItsGeoNetworking_TestCases { /** * @desc Test that a received GeoBroadcast packet is triggering contention if received more than 1 times when IUT - * is inside the destination area and outside the sectorial area of the GeoBroadcast packet Sender + * is inside the destination area and outside the sectorial area of the GeoBroadcast packet Sender (Dist_R > Dist_F) *
                  * Pics Selection: PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED'
                  * Config Id: CF07
@@ -17740,15 +18741,15 @@ module ItsGeoNetworking_TestCases {
                  *      then {
                  *          the IUT saves the GeoBroadcast packet into the CBF buffer and
                  *          the IUT starts the contention timer and
-                 *          the IUT broadcasts the received GeoBroadcast packet
-                 *              after expiry of the contention timer
+                 *          the IUT re-broadcasts the received GeoBroadcast packet
+                 *              upon expiry of the contention timer
                  *      }
                  *  }
                  * 
                  * Note: In this configuration IUT is outside sectorial area of ItsNodeB because of dist_R > dist_F 
                  * 
* - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BAA/BV/11 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV/11 * @reference EN 302 636-4-1 [1], Annex E.4 */ testcase TC_GEONW_PON_BAA_BV_11() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -17807,7 +18808,7 @@ module ItsGeoNetworking_TestCases { ) ) )); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; @@ -17819,11 +18820,11 @@ module ItsGeoNetworking_TestCases { )))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: GeoBroadcast message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -17848,7 +18849,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast( @@ -17873,11 +18874,11 @@ module ItsGeoNetworking_TestCases { if(t_toCbf.running) { t_toCbf.stop; log("*** " & testcasename() & ": FAIL: GBC retransmitted before CBF timer expiration ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: GeoBroadcast message received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] t_toCbf.timeout { @@ -17886,7 +18887,7 @@ module ItsGeoNetworking_TestCases { } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: GeoBroadcast message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -17941,8 +18942,8 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/CAP/LOS/BV/01 - * @reference EN 302 636-4-1 [1], clauses 7.4.2 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/CAP/LOS/BV/01 + * @reference EN 302 636-4-1 [1], clauses 7.4.3 */ testcase TC_GEONW_CAP_LOS_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { @@ -17971,7 +18972,7 @@ module ItsGeoNetworking_TestCases { // Trigger message to NodeB in order to get an estimation of packet size if ( not f_utTriggerEvent(m_generateGeoUnicastMessageWithPayload(v_longPosVectorNodeB.gnAddr, char2oct("PAYLOAD_" & oct2str(int2oct(0, 2))))) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } tc_ac.start; alt { @@ -17997,7 +18998,7 @@ module ItsGeoNetworking_TestCases { // implicitely trigger LS_REQUEST if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeA.gnAddr)) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } tc_ac.start; alt { @@ -18008,7 +19009,7 @@ module ItsGeoNetworking_TestCases { ) { } } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body // Fill the LS buffer + one more message to remove an older message @@ -18017,7 +19018,7 @@ module ItsGeoNetworking_TestCases { for (v_index:=1; v_index <= v_nbrOfPackets; v_index:=v_index+1) { if ( not f_utTriggerEvent(m_generateGeoUnicastMessageWithPayload(v_longPosVectorNodeA.gnAddr, char2oct("PAYLOAD_" & oct2str(int2oct(v_index, 2))))) ) { log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -18057,11 +19058,11 @@ module ItsGeoNetworking_TestCases { } tc_ac.stop; log("*** " & testcasename() & ": Older message was removed, new message was inserted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": Expected amount of messages were not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -18112,7 +19113,7 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/CAP/FPB/BV/01 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/CAP/FPB/BV/01 * @reference EN 302 636-4-1 [1], clauses 7.5.3 */ testcase TC_GEONW_CAP_FPB_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -18183,7 +19184,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); // NodeB is not yet a neighbour - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_startBeingNeighbour(); @@ -18216,16 +19217,16 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Unexpected message received (Bad sequence number) ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { if(v_nbReceivedMessages == (p_nbrOfPackets - p_nbrOfDiscardedMessages)) { log("*** " & testcasename() & ": PASS: Older messages wer removed, new messages were inserted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: Expected amount of messages were not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } } @@ -18262,10 +19263,10 @@ module ItsGeoNetworking_TestCases { p_geoNetworkingMsg.gnPacket.packet.extendedHeader.geoUnicastHeader.seqNumber := vc_localSeqNumber; f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(p_geoNetworkingMsg)); } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); @@ -18313,7 +19314,7 @@ module ItsGeoNetworking_TestCases { * * * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/CAP/FPB/BV/02 + * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/CAP/FPB/BV/02 * @reference EN 302 636-4-1 [1], clauses 7.5.3 */ testcase TC_GEONW_CAP_FPB_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { @@ -18378,7 +19379,7 @@ module ItsGeoNetworking_TestCases { // Preamble f_prDefault(); // NodeB is not yet a neighbour - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_startBeingNeighbour(); @@ -18399,16 +19400,16 @@ module ItsGeoNetworking_TestCases { ) { tc_ac.stop; log("*** " & testcasename() & ": FAIL: Unexpected message received (Bad sequence number) ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { if(v_nbReceivedMessages == (p_nbrOfPackets - p_nbrOfDiscardedMessages)) { log("*** " & testcasename() & ": PASS: Older messages wer removed, new messages were inserted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: Expected amount of messages were not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } } @@ -18447,10 +19448,10 @@ module ItsGeoNetworking_TestCases { p_geoNetworkingMsg.gnPacket.packet.extendedHeader.geoBroadcastHeader.seqNumber := vc_localSeqNumber; f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(p_geoNetworkingMsg)); } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poNeighbour(); diff --git a/ttcn/AtsGeoNetworking/ItsGeoNetworking_TestControl.ttcn b/ttcn/AtsGeoNetworking/ItsGeoNetworking_TestControl.ttcn index 69c5f6b73fa2ec621c543029295cb2d35f15acf0..c93d2c06f8b2e0fb3b1cab034ef4d44e14036f3e 100644 --- a/ttcn/AtsGeoNetworking/ItsGeoNetworking_TestControl.ttcn +++ b/ttcn/AtsGeoNetworking/ItsGeoNetworking_TestControl.ttcn @@ -78,6 +78,9 @@ module ItsGeoNetworking_TestControl { execute(TC_GEONW_PON_LOS_BV_12()); execute(TC_GEONW_PON_LOS_BV_13()); execute(TC_GEONW_PON_LOS_BV_14()); + execute(TC_GEONW_PON_LOS_BV_15()); + execute(TC_GEONW_PON_LOS_BV_16()); + execute(TC_GEONW_PON_LOS_BV_17()); execute(TC_GEONW_PON_FPB_BV_01()); execute(TC_GEONW_PON_FPB_BV_02()); @@ -105,9 +108,10 @@ module ItsGeoNetworking_TestControl { execute(TC_GEONW_PON_BEA_BV_01()); execute(TC_GEONW_PON_BEA_BV_02()); + execute(TC_GEONW_PON_BEA_BV_03()); - execute(TC_GEONW_PON_GUC_BV_01()); if ((PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_greedy) or (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_unspecified)) { + execute(TC_GEONW_PON_GUC_BV_01()); execute(TC_GEONW_PON_GUC_BV_02()); } execute(TC_GEONW_PON_GUC_BV_03()); @@ -118,24 +122,34 @@ module ItsGeoNetworking_TestControl { execute(TC_GEONW_PON_GUC_BV_07()); execute(TC_GEONW_PON_GUC_BV_08()); execute(TC_GEONW_PON_GUC_BV_10()); + execute(TC_GEONW_PON_GUC_BV_11()); + } + if ((PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_greedy) or (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_unspecified)) { + execute(TC_GEONW_PON_GUC_BV_12()); + execute(TC_GEONW_PON_GUC_BV_13()); } execute(TC_GEONW_PON_GBC_BV_01()); - execute(TC_GEONW_PON_GBC_BV_02()); + if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_advanced)) { + execute(TC_GEONW_PON_GBC_BV_02()); + } if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified)) { execute(TC_GEONW_PON_GBC_BV_03()); execute(TC_GEONW_PON_GBC_BV_04()); } execute(TC_GEONW_PON_GBC_BV_05()); - execute(TC_GEONW_PON_GBC_BV_06()); if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified)) { - execute(TC_GEONW_PON_GBC_BV_07()); - execute(TC_GEONW_PON_GBC_BV_08()); + execute(TC_GEONW_PON_GBC_BV_06()); } + execute(TC_GEONW_PON_GBC_BV_07()); + execute(TC_GEONW_PON_GBC_BV_08()); + execute(TC_GEONW_PON_GBC_BV_09()); - execute(TC_GEONW_PON_GBC_BV_10()); - execute(TC_GEONW_PON_GBC_BV_11()); if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified)) { + execute(TC_GEONW_PON_GBC_BV_10()); + } + execute(TC_GEONW_PON_GBC_BV_11()); + if (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_cbf) { execute(TC_GEONW_PON_GBC_BV_12()); } execute(TC_GEONW_PON_GBC_BV_19()); @@ -154,7 +168,9 @@ module ItsGeoNetworking_TestControl { execute(TC_GEONW_PON_SHB_BV_02()); execute(TC_GEONW_PON_GAC_BV_01()); - execute(TC_GEONW_PON_GAC_BV_02()); + if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified)) { + execute(TC_GEONW_PON_GAC_BV_02()); + } execute(TC_GEONW_PON_GAC_BV_03()); execute(TC_GEONW_PON_GAC_BV_04()); execute(TC_GEONW_PON_GAC_BV_05()); @@ -164,9 +180,11 @@ module ItsGeoNetworking_TestControl { execute(TC_GEONW_PON_GAC_BV_09()); execute(TC_GEONW_PON_GAC_BV_10()); execute(TC_GEONW_PON_GAC_BV_11()); - execute(TC_GEONW_PON_GAC_BV_12()); + if (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_cbf) { + execute(TC_GEONW_PON_GAC_BV_13()); + } - if (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM != e_cbf) { + if (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_cbf) { execute(TC_GEONW_PON_BCA_BV_01()); execute(TC_GEONW_PON_BCA_BV_02()); execute(TC_GEONW_PON_BCA_BV_03()); @@ -176,11 +194,12 @@ module ItsGeoNetworking_TestControl { execute(TC_GEONW_PON_BCA_BV_07()); } - if (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM != e_advanced) { + if (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_advanced) { execute(TC_GEONW_PON_BAA_BV_01()); execute(TC_GEONW_PON_BAA_BV_02()); execute(TC_GEONW_PON_BAA_BV_03()); execute(TC_GEONW_PON_BAA_BV_04()); + execute(TC_GEONW_PON_BAA_BV_05()); execute(TC_GEONW_PON_BAA_BV_06()); execute(TC_GEONW_PON_BAA_BV_07()); execute(TC_GEONW_PON_BAA_BV_08()); diff --git a/ttcn/AtsMapSpat/ItsMapSpat_TestCases.ttcn b/ttcn/AtsMapSpat/ItsMapSpat_TestCases.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..88460cc8803c06941c07ea3c590eb39e58b81ad4 --- /dev/null +++ b/ttcn/AtsMapSpat/ItsMapSpat_TestCases.ttcn @@ -0,0 +1,1291 @@ +/** + * @author ETSI / STF484 + * @version $URL$ + * $Id$ + * @desc CAM Testcases (TP version: 0.0.1) + * + */ + +module ItsMapSpat_TestCases { + + // LibCommon + import from LibCommon_Sync all; + import from LibCommon_VerdictControl all; + import from LibCommon_Time all; + + // LibIts + import from LibItsCommon_Functions all; + import from LibItsCommon_TypesAndValues { + type UtChangePosition + }; + import from LibItsMapSpat_TestSystem all; + import from LibItsMapSpat_Functions all; + import from LibItsMapSpat_Templates all; + import from LibItsMapSpat_TypesAndValues all; + import from LibItsMapSpat_Pics {modulepar all}; + + import from ITS_Container language "ASN.1:1997" all; + import from DSRC language "ASN.1:1997" all; + import from EU language "ASN.1:1997" all; + + group MapSpatMessageDissemination { + + /** + * @desc Verify that when sending a MapData message the DSRCmsgSubID is set to value 0. + *
+        * Pics Selection: PICS_RSU
+        * Initial conditions: 
+		*   with {
+		*		the IUT being in the "initial state"
+		*	}
+        * Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a MapData message is generated
+		*		}
+		*		then {
+		*			the IUT sends a valid MapData message
+		*				containing DSRCmsgSubID
+		*					set to value 0
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 v0.0.1 TP/MAP-SPAT/MSD/BV-01 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_01 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_mapSubId0 ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Successfully received MAP with DSRCmsgSubID == 0. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-01 + + /** + * @desc Verify that when sending a SPAT message the DSRCmsgSubID is set to value 0. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a SPAT message is generated
+		*		}
+		*		then {
+		*			the IUT sends a valid SPAT message
+		*				containing DSRCmsgSubID
+		*					set to value 0
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-02 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_02 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + var MsgCount v_msgCount; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + // Triggering a SPAT message + v_msgCount := f_utTriggerEvent ( m_utTriggerEvent ( spatMsg ) ); + + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_spatInd ( mw_spatPdu ( mw_itsPduHeaderSpat , mw_spatSubId0 ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Successfully received SPAT with DSRCmsgSubID == 0. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] mapSpatPort.receive ( mw_spatInd ( mw_spatPdu ( mw_itsPduHeaderSpat , mw_anySpat ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-02 + + /** + * @desc Verify that: when the IUT sends a new MapData message with a new content the MsgCount is set to one greather than the previous value sent. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*		and the IUT has sent a MapData message
+		*			containing MsgCount
+		*				set to VALUE_1
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a new MapData message with a new content is generated
+		*		}
+		*		then {
+		*			the IUT sends a valid MapData message
+		*				containing MsgCount
+		*					set to VALUE_1 + 1
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-03 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_03 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + var MsgCount v_msgCount; + var MapInd v_message; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + tc_ac.start; + // Receiving first MAP message + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) -> value v_message { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Successfully received first MAP message. ***"); + v_msgCount := v_message.msgIn.msg.mapData.msgIssueRevision; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + } + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + // Receiving second MAP message + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) -> value v_message { + tc_ac.stop; + if ( v_message.msgIn.msg.mapData.msgIssueRevision == v_msgCount + 1 ) { + log("*** " & testcasename() & ": PASS: Successfully received Second MAP message with Count + 1. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-03 + + /** + * @desc Verify that: when the IUT sends a new MapData message with a new content the MsgCount is set to 0 when the previous value sent was 127. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*		and the IUT has sent a MapData message
+		*			containing MsgCount
+		*				set to 127
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a new MapData message with a new content is generated
+		*		}
+		*		then {
+		*			the IUT sends a valid MapData message
+		*				containing MsgCount
+		*					set to 0
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-04 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_04 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + var MsgCount v_msgCount; + var MapInd v_message; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + // Waitin for MAP message with MsgCount = 127 + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) -> value v_message { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Successfully received first MAP message. ***"); + v_msgCount := v_message.msgIn.msg.mapData.msgIssueRevision; + if ( v_msgCount != 127 ) { + tc_ac.start; + repeat; + } + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + } + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + // Triggering a MAP message with different content + v_msgCount := f_utTriggerEvent ( m_utTriggerEvent ( mapNewContent ) ); + // Receiving second MAP message + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) -> value v_message { + tc_ac.stop; + if ( v_message.msgIn.msg.mapData.msgIssueRevision == 0 ) { + log("*** " & testcasename() & ": PASS: Successfully received Second MAP message with Count = 0. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-04 + + /** + * @desc Repetition < 10s. Verify that: when the IUT is composing a new message with the same content as the most recent message + * with the same DSRCmsgID, and less than 10 seconds have elapsed since it sent the previous message, the IUT uses the same MsgCount value. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*		and the IUT has sent a MapData message
+		*			containing MsgCount
+		*				set to VALUE_1
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a new MapData message with the same content is generated
+		*			and the repetition time is lesser than 10 s
+		*		}
+		*		then {
+		*			the IUT sends a valid MapData message
+		*				containing MsgCount
+		*					set to VALUE_1
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-05 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_05 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + var MsgCount v_msgCount; + var MapInd v_message; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + // Triggering MAP message repetition lesser than 10s + v_msgCount := f_utTriggerEvent ( m_utTriggerEvent ( mapRepL10s ) ); + // Receiving first MAP message + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) -> value v_message { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Successfully received first MAP message. ***"); + v_msgCount := v_message.msgIn.msg.mapData.msgIssueRevision; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + } + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + // Receiving repetition MAP message before 10s + tc_ac.start (10.0); + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) -> value v_message { + tc_ac.stop; + if ( v_message.msgIn.msg.mapData.msgIssueRevision == v_msgCount ) { + log("*** " & testcasename() & ": PASS: Successfully received Second MAP message with correct Count. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-05 + + /** +. * @desc Repetition >= 10s Verify that: when the IUT is composing a new message with the same content as the most recent message + * with the same DSRCmsgID, and at least 10 seconds have elapsed since it sent the previous message, the IUT sets the MsgCount to any valid value. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*		and the IUT has sent a MapData message
+		*			containing MsgCount
+		*				set to VALUE_1
+}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a new MapData message with the same content is generated
+		*			and the repetition time is greather or egal  than 10 s
+		*		}
+		*		then {
+		*			the IUT sends a valid MapData message
+		*				containing MsgCount
+		*					set to any valid value
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-06 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_06 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + var MsgCount v_msgCount; + var MapInd v_message; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + // Triggering MAP message repetition greather than 10s + v_msgCount := f_utTriggerEvent ( m_utTriggerEvent ( mapRepG10s ) ); + // Receiving first MAP message + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) -> value v_message { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Successfully received first MAP message. ***"); + v_msgCount := v_message.msgIn.msg.mapData.msgIssueRevision; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + } + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + // Receiving repetition MAP message after 10s + tc_ac.start (20.0); + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) -> value v_message { + tc_ac.stop; + if ( v_message.msgIn.msg.mapData.msgIssueRevision != v_msgCount ) { + log("*** " & testcasename() & ": PASS: Successfully received Second MAP message with correct Count. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-06 + + /** + * @desc Verify that: when the IUT having sent a MapData message containing a MsgCount set to Value1 and is now sending + * another DSRC message containing MsgCount. This MsgCount shall have a value not egal to Value1. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*		and the IUT has sent a MapData message
+		*			containing MsgCount
+		*				set to VALUE_1
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			another DSRC message is generated
+		*		}
+		*		then {
+		*			the IUT sends a valid DSRC message
+		*			containing MsgCount
+		*				set to value not egal to VALUE_1
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-07 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_07 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + + // TODO receiving DSRC message different from MAP and SPAT messages not actually implemented + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-07 + + /** + * @desc Verify that the MsgCRC (if present) is the last data element of the MapData message. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a MapData message is generated
+		*		}
+		*		then {
+		*			the IUT sends a valid MapData message
+		*				not containing MsgCRC
+		*				or
+		*				containing MsgCRC
+		*					as the last data element of the message
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-08 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_08 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_mapNoMsgCrc ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Successfully received MAP with no MsgCRC. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_mapMsgCrcLast ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Successfully received MAP with MsgCRC as the last data element of the message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-08 + + /** + * @desc Verify that the LayerType is not contained in the MapData message. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a MapData message is generated
+		*		}
+		*		then {
+		*			the IUT sends a valid MapData message
+		*				not containing LayerType
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-09 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_09 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_mapNoLayerType ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Successfully received MAP with no LayerType. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-09 + + /** + * @desc Verify that the IntersectionReferenceID contained in the SPAT message correspond to a previously received intersection MAP. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*		and the IUT has sent a MapData message
+		*			containing IntersectionList
+		*				containing INTERSECTION_1
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a SPAT message is generated
+		*		}
+		*		then {
+		*			the IUT sends a valid SPAT message
+		*				 containing IntersectionReferenceID
+		*					corresponding to INTERSECTION_1 
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-10 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_10 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + var MsgCount v_msgCount; + var MapInd v_message; + var SpatInd v_spat; + var IntersectionGeometryList v_intersections; + var integer i,j; + var boolean v_result := false; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + // Receiving MAP message - Saving IntersectionList + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) -> value v_message { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Successfully received MAP message. ***"); + v_msgCount := v_message.msgIn.msg.mapData.msgIssueRevision; + v_intersections := v_message.msgIn.msg.mapData.intersections; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + } + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + v_msgCount := f_utTriggerEvent ( m_utTriggerEvent ( spatMsg ) ); + + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_spatInd ( mw_spatPdu ( mw_itsPduHeaderSpat , mw_anySpat ) ) ) -> value v_spat { + tc_ac.stop; + log("*** " & testcasename() & ": Successfully received SPAT message. ***"); + for ( i := 0 ; i < lengthof ( v_intersections ) and not v_result ; i := i+1 ) { + for ( j := 0 ; j < lengthof ( v_spat.msgIn.msg.spat.intersections ) ; j := j+1 ) { + if ( v_intersections[ i ].id == v_spat.msgIn.msg.spat.intersections[ j ].id ) { + v_result := true; + } + } + } + if ( v_result ) { + log("*** " & testcasename() & ": PASS: concordance of intersection ID. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: non concordance of intersection ID. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-10 + + /** + * @desc Verify that the MapData message is well formatted. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a MapData message is generated
+		*		}
+		*		then {
+		*			the IUT sends a valid MapData message
+		*				containing DSRCmsgSubID
+		*					set to value 0
+		*				containing MsgCount
+		*				not containing LayerType
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-11 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_11 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_mapWellFormatted ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Successfully received a well formatted MAP. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-11 + + /** + * @desc Verify that the SPAT message is well formatted. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a SPAT message is generated
+		*		}
+		*		then {
+		*			the IUT sends a valid SPAT message
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-12 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_12 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + var MsgCount v_msgCount; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + // Triggering a SPAT message + v_msgCount := f_utTriggerEvent ( m_utTriggerEvent ( spatMsg ) ); + + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_spatInd ( mw_spatPdu ( mw_itsPduHeaderSpat , mw_spatSubId0 ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Successfully received SPAT with DSRCmsgSubID == 0. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] mapSpatPort.receive ( mw_spatInd ( mw_spatPdu ( mw_itsPduHeaderSpat , mw_anySpat ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-12 + + /** + * @desc Verify that IUT uses UPER for ASN1 encoding of the MapData message. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a MapData message is generated
+		*		}
+		*		then {
+		*			the IUT sends a valid MapData message encoded with ASN1 UPER
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-13 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_13 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + var MapInd v_message; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_mapWellFormatted ) ) ) -> value v_message { + tc_ac.stop; + if ( fx_checkUperEncoding ( v_message.msgIn.rawData ) ) { + log("*** " & testcasename() & ": PASS: Successfully received MAP correctly ASN 1 UPER encoded. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: Received a MAP message incorrectly ASN 1 UPER encoded. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-13 + + /** + * @desc Verify that IUT uses UPER for ASN1 encoding of the SPAT message. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a SPAT message is generated
+		*		}
+		*		then {
+		*			the IUT sends a valid SPAT message encoded with ASN1 UPER
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-14 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_14 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + var MsgCount v_msgCount; + var SpatInd v_message; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + v_msgCount := f_utTriggerEvent ( m_utTriggerEvent ( spatMsg ) ); + + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_spatInd ( mw_spatPdu ( mw_itsPduHeaderSpat , mw_spatSubId0 ) ) ) -> value v_message { + tc_ac.stop; + if ( fx_checkUperEncoding ( v_message.msgIn.rawData ) ) { + log("*** " & testcasename() & ": PASS: Successfully received SPAT correctly ASN 1 UPER encoded. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: Received a SPAT message incorrectly ASN 1 UPER encoded. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + [] mapSpatPort.receive ( mw_spatInd ( mw_spatPdu ( mw_itsPduHeaderSpat , mw_anySpat ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-14 + + /** + * @desc Verify that when sending a MapData message, the IUT encapsulates the message into a GN SHB message. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a MapData message is generated
+		*		}
+		*		then {
+		*			the IUT sends a valid MapData message encapsulated into a GN SHB message
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-15 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_15 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + var MapInd v_message; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeader , mw_mapWellFormatted ) ) ) -> value v_message { + tc_ac.stop; + if ( v_message.msgIn.msg.header.messageID == c_mapMessageId ) { + log("*** " & testcasename() & ": PASS: Successfully received MAP. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + [] mapSpatPort.receive ( mw_mapInd ( mw_mapPdu ( mw_itsPduHeaderMap , mw_anyMap ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-15 + + /** + * @desc Verify that when sending a SPAT message, the IUT encapsulates the message into a GN SHB message. + *
+		* Pics Selection: PICS_RSU
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			a SPAT message is generated
+		*		}
+		*		then {
+		*			the IUT sends a valid SPAT message encapsulated into a GN SHB message
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSD//BV-16 + * @reference + */ + testcase TC_MAP_SPAT_MSD_BV_16 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + var MsgCount v_msgCount; + var SpatInd v_message; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + v_msgCount := f_utTriggerEvent ( m_utTriggerEvent ( spatMsg ) ); + + tc_ac.start; + alt { + [] mapSpatPort.receive ( mw_spatInd ( mw_spatPdu ( mw_itsPduHeader , mw_spatSubId0 ) ) ) -> value v_message { + tc_ac.stop; + if ( v_message.msgIn.msg.header.messageID == c_spatMessageId ) { + log("*** " & testcasename() & ": PASS: Successfully received SPAT. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: Received an incorrect SPAT message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + [] mapSpatPort.receive ( mw_spatInd ( mw_spatPdu ( mw_itsPduHeaderSpat , mw_anySpat ) ) ) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Received an incorrect MAP message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSD_BV-16 + + } // end group MapSpatMessageDissemination + + group MapSpatMessageProcessing { + + /** + * @desc Verify that: when the IUT receives a GN SHB message encapsulating a MapData message, it pass the message to the application layer. + *
+		* Pics Selection: PICS_VEHICLE
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			the IUT receives a valid MapData message encapsulated into a GN SHB message
+			*	}
+		*		then {
+		*			the IUT forwards the MapData message content to upper layers
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSP//BV-01 + * @reference + */ + testcase TC_MAP_SPAT_MSP_BV_01 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + var MsgCount v_msgCount; + var MapReq v_mapReq; + var integer i; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + v_mapReq := valueof ( m_mapReq ( m_mapPdu ( m_map ) ) ); + mapSpatPort.send( v_mapReq ) ; + + f_sleep(PX_TAC); + for ( i:=0 ; i < lengthof ( vc_utMapEvents ) and not match ( v_mapReq, vc_utMapEvents[i].mapMsg ) ; i := i+1 ) { + // empty on purpose + } + if ( i < lengthof ( vc_utMapEvents ) ) { + log("*** " & testcasename() & ": PASS: MAP was transmitted to upper layer ***"); + f_clientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: MAP was not transmitted to upper layer ***"); + f_clientSyncAndVerdict(c_tbDone, e_error); + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSP_BV_01 + + /** + * @desc Verify that: when the IUT receives a GN SHB message encapsulating a SPAT message, it pass the message to the application layer. + *
+		* Pics Selection: PICS_VEHICLE
+		* Initial conditions: 
+		*	with {
+		*		the IUT being in the "initial state"
+		*	}
+		* Expected behaviour:
+		*	ensure that {
+		*		when { 
+		*			the IUT receives a valid SPAT message encapsulated into a GN SHB message
+			*	}
+		*		then {
+		*			the IUT forwards the SPAT message content to upper layers
+		*		}
+		*	}
+		* 
+ * + * @version 0.0.1 + * @see ETSI TS 103 191-2 V0.0.1 TP/MAP-SPAT/MSP//BV-02 + * @reference + */ + testcase TC_MAP_SPAT_MSP_BV_02 () runs on ItsMapSpat system ItsMapSpatSystem { + + // Local variables + var SpatReq v_spatReq; + var integer i; + + // Test component configuration + f_cfUp(); + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + v_spatReq := valueof ( m_spatReq ( m_spatPdu ( m_spat ) ) ); + mapSpatPort.send ( v_spatReq ) ; + + f_sleep(PX_TAC); + for ( i:=0 ; i < lengthof ( vc_utSpatEvents ) and not match ( v_spatReq , vc_utSpatEvents[i].spatMsg ) ; i:=i+1 ) { + // empty on purpose + } + if ( i < lengthof ( vc_utSpatEvents ) ) { + log("*** " & testcasename() & ": PASS: SPAT was transmitted to upper layer ***"); + f_clientSyncAndVerdict(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: SPAT was not transmitted to upper layer ***"); + f_clientSyncAndVerdict(c_tbDone, e_error); + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // end TC_MAP_SPAT_MSP_BV_02 + + } // end group MapSpatMessageProcessing + +} // end ItsMapSpat_TestCases diff --git a/ttcn/AtsMapSpat/ItsMapSpat_TestControl.ttcn b/ttcn/AtsMapSpat/ItsMapSpat_TestControl.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..0eeb9c209453646ef1b9fc7b65d129472015fd24 --- /dev/null +++ b/ttcn/AtsMapSpat/ItsMapSpat_TestControl.ttcn @@ -0,0 +1,44 @@ +/** + * @author ETSI / STF484 + * @version $URL$ + * $Id$ + * @desc Test Control file for MAP SPAT + * + */ +module ItsMapSpat_TestControl { + + // ATS MAPSpat + import from ItsMapSpat_TestCases {testcase all}; + + // LibIts + import from LibItsMapSpat_Pics all; + + // Test Execution + control { + + if ( PICS_RSU ) { + execute(TC_MAP_SPAT_MSD_BV_01()); + execute(TC_MAP_SPAT_MSD_BV_02()); + execute(TC_MAP_SPAT_MSD_BV_03()); + execute(TC_MAP_SPAT_MSD_BV_04()); + execute(TC_MAP_SPAT_MSD_BV_05()); + execute(TC_MAP_SPAT_MSD_BV_06()); + execute(TC_MAP_SPAT_MSD_BV_07()); + execute(TC_MAP_SPAT_MSD_BV_08()); + execute(TC_MAP_SPAT_MSD_BV_09()); + execute(TC_MAP_SPAT_MSD_BV_10()); + execute(TC_MAP_SPAT_MSD_BV_11()); + execute(TC_MAP_SPAT_MSD_BV_12()); + execute(TC_MAP_SPAT_MSD_BV_13()); + execute(TC_MAP_SPAT_MSD_BV_14()); + execute(TC_MAP_SPAT_MSD_BV_15()); + execute(TC_MAP_SPAT_MSD_BV_16()); + } + else { + execute(TC_MAP_SPAT_MSP_BV_01()); + execute(TC_MAP_SPAT_MSP_BV_02()); + } + + } + +} // end ItsMapSpat_TestControl \ No newline at end of file