/** * @author ETSI / STF422_EETS * @version $URL:$ * $Id:$ * @desc Fast service advertisement protocol (ISO 24102-5) test cases */ module ItsFsap_TestCases { // Libcommon import from LibCommon_Time all; import from LibCommon_VerdictControl all; import from LibCommon_Sync all; // LibIts import from CALMiitsscu language "ASN.1:1997" all; import from CALMmsap language "ASN.1:1997" { type CommandRef, MF_Request }; import from LibItsFntp_TypesAndValues { const c_portSam; }; import from LibItsFntp_Templates { template m_llServiceAddr, m_linkId; }; import from LibItsFsap_TypesAndValues all; import from LibItsFsap_Templates all; import from LibItsFsap_Functions all; import from LibItsFsap_Pixits all; import from LibItsFsap_Pics all; import from LibItsMgt_Templates all; import from LibItsMgt_Functions { function f_getNextCommandRef, f_getNextPduCounter, f_getIutSourceItsScuId, f_getIutDestItsScuId, f_getIutMedType, f_getIutCiAccessClass, f_getIutCiClass }; //import from LibItsIicp_Templates all; import from LibItsIicp_Functions { function f_iicpTriggerRequest }; import from LibItsIicp_Templates { template m_iicRequest, // TODO To be removed mw_iicpRequest, mw_iicpResponse, // TODO To be removed mdw_iicRequest_notify, // TODO To be removed mdw_iicpResponse_success, // TODO To be removed mdw_mfCommandRequest_iicRequestTx, mdw_mfCommandRequest_iicResponseTx, mdw_iicRequestTx_mfCommandRequest, mdw_iicRequestTx_mfRequestRequest, mdw_iicResponseTx_mfRequestRequest, m_pduRequest_mfRequestRequest, mw_pduRequest_mfRequestRequest, mw_pduRequest_mfCommandReq }; import from LibItsCalm_TestSystem all; import from LibItsCalm_Interface all; // 9.1 Service provider group serviceProvider { // 9.1.1 Combined ITS-S host and ITS-S router group combinedITS_S_Host_ITS_S_Router { group validBehavior { /** * @desc Registration of ITS-S application for message distribution only (no session phase) with request of specific access technology *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND PICS_ROLE_RH
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT knows the requested access technology
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request for an ITS-S application including a required access technology and non-IP communications
                 *      }
                 *      then {
                 *          the IUT periodically sends out SAM via the requested access technology with the requested repetition rate, not inviting for a reply
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/HR/BV/01 */ testcase TC_FSAP_SP_HR_BV_01() runs on ItsMgt system ItsCalmSystem { // Local variables timer t_minRetransTimer := f_getIutSamRetransmitTimer(); timer t_maxRetransTimer := f_getIutSamRetransmitTimer() + f_getIutSamMaxJitter(); var CommandRef v_commandRef; var boolean v_samNotificationReceived := false; // Test control if (not(PICS_FSAP_ROLE_SP and PICS_ROLE_RH)) { log("*** TC_FSAP_SP_HR_BV_01: ERROR: 'PICS_FSAP_ROLE_SP AND PICS_ROLE_RH' required for executing the TC ***"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' // Assume that 'Initial conditions' are achieved f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_HR_BV_01: INFO: Preamble: IUT was setup properly ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGcScheduleWithAccessTechAndNonIp(), f_getIutServiceDataRegWithNoSession() ) ) ) ); log("*** TC_FSAP_SP_HR_BV_01: INFO: GCregServer registration request done ***"); // Clause 'then' tc_ac.start; t_maxRetransTimer.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( v_commandRef, mdw_mfCommand_gcSam( f_getIutApplicationId(), ?, mw_samDataServerciceWithAccessTechAndNonIp( ?, ?, { portLong := c_portSam } ) )))) { tc_ac.stop; if (v_samNotificationReceived == false) { v_samNotificationReceived := true; t_minRetransTimer.start; t_maxRetransTimer.start; // After the SAM received, check the retransmission tc_ac.start; repeat; } if(t_minRetransTimer.running) { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_HR_BV_01: FAIL: SAM not transmitted at prescribed periodicity (too early) ***"); } else { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_HR_BV_01: PASS: SAM transmitted at prescribed periodicity ***"); } } [] t_minRetransTimer.timeout { log("*** TC_FSAP_SP_HR_BV_01: INFO: Ready for retransmission ***"); repeat; } [] t_maxRetransTimer.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HR_BV_01: INCONC: SAM not transmitted at prescribed periodicity (too late) ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HR_BV_01: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_HR_BV_01: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf01Down(); } // End of testcase TC_FSAP_SP_HR_BV_01 /** * @desc Registration of ITS-S application for message distribution only (no session phase) with no request of specific access technology *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND PICS_ROLE_RH
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT knows a suitable access technology
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request for an ITS-S application requiring non-IP communications
                 *      }
                 *      then {
                 *          the IUT periodically sends out SAM via a suited access technology selected by the CI selection manager with the requested repetition rate, not inviting for a reply
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/HR/BV/02 */ testcase TC_FSAP_SP_HR_BV_02() runs on ItsMgt system ItsCalmSystem { // Local variables timer t_minRetransTimer := f_getIutSamRetransmitTimer(); timer t_maxRetransTimer := f_getIutSamRetransmitTimer() + f_getIutSamMaxJitter(); var CommandRef v_commandRef; var boolean v_samNotificationReceived := false; // Test control if (not(PICS_FSAP_ROLE_SP and PICS_ROLE_RH)) { log("*** TC_FSAP_SP_HR_BV_02: ERROR: 'PICS_FSAP_ROLE_SP AND PICS_ROLE_RH' required for executing the TC ***"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' // Assume that 'Initial conditions' are achieved f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_HR_BV_02: INFO: Preamble: IUT was setup properly ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGCscheduleWithNonIp(), f_getIutServiceDataRegWithNoSession() ) ) ) ); log("*** TC_FSAP_SP_HR_BV_02: INFO: GCregServer registration request done ***"); // Clause 'then' tc_ac.start; t_maxRetransTimer.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( v_commandRef, mdw_mfCommand_gcSam( f_getIutApplicationId(), ?, mw_samDataServerciceWithAccessTechAndNonIp( ?, ?, { portLong := c_portSam } ) )))) { tc_ac.stop; if (v_samNotificationReceived == false) { v_samNotificationReceived := true; t_minRetransTimer.start; t_maxRetransTimer.start; // After the SAM received, check the retransmission tc_ac.start; repeat; } if(t_minRetransTimer.running) { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_HR_BV_02: FAIL: SAM not transmitted at prescribed periodicity (too early) ***"); } else { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_HR_BV_02: PASS: SAM transmitted at prescribed periodicity ***"); } } [] t_minRetransTimer.timeout { log("*** TC_FSAP_SP_HR_BV_02: INFO: Ready for retransmission ***"); repeat; } [] t_maxRetransTimer.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HR_BV_02: INCONC: SAM not transmitted at prescribed periodicity (too late) ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HR_BV_02: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_HR_BV_02: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf01Down(); } // End of testcase TC_FSAP_SP_HR_BV_02 /** * @desc Registration of ITS-S application with need for a session, with no request of specific access technology, and without request to change communication channel for session phase *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND PICS_ROLE_RH
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT knows a suitable access technology
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request for an ITS-S application requiring non-IP communications in the session phase, but no change of communication channel
                 *      }
                 *      then {
                 *          the IUT periodically sends out SAM via a suited access technology selected by the CI selection manager with the requested repetition rate, inviting for a reply
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/HR/BV/03 */ testcase TC_FSAP_SP_HR_BV_03() runs on ItsMgt system ItsCalmSystem { // Local variables timer t_minRetransTimer := f_getIutSamRetransmitTimer(); timer t_maxRetransTimer := f_getIutSamRetransmitTimer() + f_getIutSamMaxJitter(); var CommandRef v_commandRef; var boolean v_samNotificationReceived := false; // Test control if (not(PICS_FSAP_ROLE_SP and PICS_ROLE_RH)) { log("*** TC_FSAP_SP_HR_BV_03: ERROR: 'PICS_FSAP_ROLE_SP AND PICS_ROLE_RH' required for executing the TC ***"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' // Assume that 'Initial conditions' are achieved f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_HR_BV_03: INFO: Preamble: IUT was setup properly ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGCscheduleWithNonIp(), f_getIutServiceDataRegWithSession() ) ) ) ); log("*** TC_FSAP_SP_HR_BV_03: INFO: GCregServer registration request done ***"); // Clause 'then' tc_ac.start; t_maxRetransTimer.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( v_commandRef, mdw_mfCommand_gcSam( f_getIutApplicationId(), ?, mw_samDataServerciceWithAccessTechAndNonIp( ?, ?, { portLong := c_portSam } ) )))) { tc_ac.stop; if (v_samNotificationReceived == false) { v_samNotificationReceived := true; t_minRetransTimer.start; t_maxRetransTimer.start; // After the SAM received, check the retransmission tc_ac.start; repeat; } if(t_minRetransTimer.running) { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_HR_BV_03: FAIL: SAM not transmitted at prescribed periodicity (too early) ***"); } else { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_HR_BV_03: PASS: SAM transmitted at prescribed periodicity ***"); } } [] t_minRetransTimer.timeout { log("*** TC_FSAP_SP_HR_BV_03: INFO: Ready for retransmission ***"); repeat; } [] t_maxRetransTimer.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HR_BV_03: INCONC: SAM not transmitted at prescribed periodicity (too late) ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HR_BV_03: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_HR_BV_03: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf01Down(); } // End of testcase TC_FSAP_SP_HR_BV_03 /** * @desc Registration of ITS-S application with need for a session, with no request of specific access technology, and with request to change communication channel for session phase *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND PICS_ROLE_RH
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT knows a suitable access technology
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request for an ITS-S application requiring non-IP communications, and requiring change of communication channel in the session phase
                 *      }
                 *      then {
                 *          the IUT periodically sends out SAM via a suited access technology selected by the CI selection manager with the requested repetition rate, inviting for a reply, requesting a change of channel
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/HR/BV/04 */ testcase TC_FSAP_SP_HR_BV_04() runs on ItsMgt system ItsCalmSystem { // Local variables timer t_minRetransTimer := f_getIutSamRetransmitTimer(); timer t_maxRetransTimer := f_getIutSamRetransmitTimer() + f_getIutSamMaxJitter(); var CommandRef v_commandRef; var boolean v_samNotificationReceived := false; // Test control if (not(PICS_FSAP_ROLE_SP and PICS_ROLE_RH)) { log("*** TC_FSAP_SP_HR_BV_04: ERROR: 'PICS_FSAP_ROLE_SP AND PICS_ROLE_RH' required for executing the TC ***"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' // Assume that 'Initial conditions' are achieved f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_HR_BV_04: INFO: Preamble: IUT was setup properly ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGcScheduleWithAccessTechAndNonIp(), f_getIutServiceDataRegWithNoSessionAndChannelChange() ) ) ) ); log("*** TC_FSAP_SP_HR_BV_04: INFO: GCregServer registration request done ***"); // Clause 'then' tc_ac.start; t_maxRetransTimer.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( v_commandRef, mdw_mfCommand_gcSam( f_getIutApplicationId(), ?, mw_samDataServerciceWithAccessTechAndNonIp( ?, ?, { portLong := c_portSam } ) )))) { tc_ac.stop; if (v_samNotificationReceived == false) { v_samNotificationReceived := true; t_minRetransTimer.start; t_maxRetransTimer.start; // After the SAM received, check the retransmission tc_ac.start; repeat; } if(t_minRetransTimer.running) { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_HR_BV_04: FAIL: SAM not transmitted at prescribed periodicity (too early) ***"); } else { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_HR_BV_04: PASS: SAM transmitted at prescribed periodicity ***"); } } [] t_minRetransTimer.timeout { log("*** TC_FSAP_SP_HR_BV_04: INFO: Ready for retransmission ***"); repeat; } [] t_maxRetransTimer.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HR_BV_04: INCONC: SAM not transmitted at prescribed periodicity (too late) ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HR_BV_04: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_HR_BV_04: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf01Down(); } // End of testcase TC_FSAP_SP_HR_BV_04 /** * @desc Finalization of SIP upon reception of CTX for non-IP session *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND PICS_ROLE_RH AND PICS_SIP_W_CTX
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT sending out periodically SAMs for one ITS-S application with non-IP based sessions
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a CTX as proper reply to a SAM
                 *      }
                 *      then {
                 *          the IUT generates a GCctx message to notify of reception of CTX
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/HR/BV/05 */ testcase TC_FSAP_SP_HR_BV_05() runs on ItsMgt system ItsCalmSystem { // Local variables timer t_minRetransTimer := f_getIutSamRetransmitTimer(); timer t_maxRetransTimer := f_getIutSamRetransmitTimer() + f_getIutSamMaxJitter(); var CommandRef v_commandRef; var boolean v_samNotificationReceived := false; // Test control if (not(PICS_FSAP_ROLE_SP and PICS_ROLE_RH and PICS_SIP_W_CTX)) { log("*** TC_FSAP_SP_HR_BV_05: ERROR: 'PICS_FSAP_ROLE_SP AND PICS_ROLE_RH AND PICS_SIP_W_CTX' required for executing the TC ***"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGcScheduleWithAccessTechAndNonIp(), f_getIutServiceDataRegWithNoSession() ) ) ) ); tc_ac.start; t_maxRetransTimer.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( v_commandRef, mdw_mfCommand_gcSam( f_getIutApplicationId(), ?, mw_samDataServerciceWithAccessTechAndNonIp( ?, ?, { portLong := c_portSam } ) )))) { tc_ac.stop; if (v_samNotificationReceived == false) { v_samNotificationReceived := true; t_minRetransTimer.start; t_maxRetransTimer.start; // After the SAM received, check the retransmission tc_ac.start; repeat; } if(t_minRetransTimer.running) { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_HR_BV_05: FAIL: SAM not transmitted at prescribed periodicity (too early) ***"); } else { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_HR_BV_05: INFO: Preamble: IUT was setup properly ***"); } } [] t_minRetransTimer.timeout { log("*** TC_FSAP_SP_HR_BV_05: INFO: Ready for retransmission ***"); repeat; } [] t_maxRetransTimer.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HR_BV_05: INCONC: SAM not transmitted at prescribed periodicity (too late) ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HR_BV_05: INCONC: Expected management message not received ***"); } } // End of 'alt' statement // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequest_ctx( m_llServiceAddr( m_linkId( f_getIutSrcRemoteCiId(), f_getIutSrcLocalCiId())), m_ctx(f_getIutClientId()) ) ) ) ); log("*** TC_FSAP_SP_HR_BV_05: INFO: CTX registration request done ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( ?, mdw_mfCommand_gCctx( f_getIutApplicationId(), f_getIutClientId(), mdw_ctxServiceDataNonIp( ?, // TODO Parameters shall be reviewed during ATS validation ?, ? ))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_HR_BV_05: PASS: GCtx notification sent as expected ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HR_BV_05: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_HR_BV_05: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf01Down(); } // End of testcase TC_FSAP_SP_HR_BV_05 } // End of group validBehavior group invalidBehavior { /** * @desc Registration of ITS-S application for message distribution only (no session phase) with request of specific but not available access technology *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND PICS_ROLE_RH
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT does not know the requested access technology,
                 *      the IUT knows another access technology  suited for FSAP
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request for an ITS-S application for the purpose of message distribution
                 *      }
                 *      then {
                 *          the IUT does not send out periodically SAMs via the existent access technology
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/HR/BI/01 */ testcase TC_FSAP_SP_HR_BI_01() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; // Test control if (not(PICS_FSAP_ROLE_SP and PICS_ROLE_RH)) { log("*** TC_FSAP_SP_HR_BI_01: ERROR: 'PICS_FSAP_ROLE_SP AND PICS_ROLE_RH' required for executing the TC ***"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_HR_BI_01: INFO: Preamble done ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGCscheduleWithUnknownAccessTechAndNonIp(), f_getIutServiceDataRegWithNoSession() ) ) ) ); log("*** TC_FSAP_SP_HR_BI_01: INFO: GCregServer registration request sent ***"); // Clause 'then' tc_noac.start; // No message expected alt { [] fsapPort.receive { tc_noac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_HR_BI_01: FAIL: No message was expected ***"); } [] tc_noac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_HR_BI_01: PASS: No message received as expected ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_HR_BI_01: INFO: test body done ***"); // Postamble f_poDefault(); f_cf01Down(); } // End of testcase TC_FSAP_SP_HR_BI_01 /** * @desc Registration of ITS-S application with need for a session, with no request of specific access technology which is not available, and without request to change communication channel for session phase *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND PICS_ROLE_RH
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT does not know a suitable access technology
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request for an ITS-S application offering a session phase
                 *      }
                 *      then {
                 *          the IUT does not send out periodically SAMs
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/HR/BI/02 */ testcase TC_FSAP_SP_HR_BI_02() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; // Test control if (not(PICS_FSAP_ROLE_SP and PICS_ROLE_RH)) { log("*** TC_FSAP_SP_HR_BI_02: ERROR: 'PICS_FSAP_ROLE_SP AND PICS_ROLE_RH' required for executing the TC ***"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_HR_BI_02: INFO: Preamble done ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGCscheduleWithUnknownAccessTechAndNonIp(), f_getIutServiceDataRegWithSession() ) ) ) ); log("*** TC_FSAP_SP_HR_BI_02: INFO: GCregServer registration request sent ***"); // Clause 'then' tc_noac.start; // No message expected alt { [] fsapPort.receive { tc_noac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_HR_BI_02: FAIL: No message was expected ***"); } [] tc_noac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_HR_BI_02: PASS: No message received as expected ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_HR_BI_02: INFO: test body done ***"); // Postamble f_poDefault(); f_cf01Down(); } // End of testcase TC_FSAP_SP_HR_BI_02 } // End of group invalidBehavior } // End of group combinedITS_S_Host_ITS_S_Router // 9.1.2 ITS-S host only group its_S_HostOnly { group validBehavior { /** * @desc Registration of ITS-S application for message distribution only (no session phase) with request of specific access technology available in an ITS-S router unit *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND (PICS_ROLE_HONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT knows about availability of the requested access technology in an ITS-S router
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request for an ITS-S application including a required access technology
                 *      }
                 *      then {
                 *          the IUT forwards this request to the proper ITS-S router ITS-SCU applying Inter-ITS-SCU communications
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/HO/BV/01 */ testcase TC_FSAP_SP_HO_BV_01() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; var template MF_Request v_mfReq; // Test control if (not(PICS_FSAP_ROLE_SP and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)))) { log("*** TC_FSAP_SP_HO_BV_01: ERROR: 'PICS_FSAP_ROLE_SP and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW))' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_HO_BV_01: INFO: Preamble: IUT was setup properly ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGcScheduleWithAccessTechAndNonIp(), f_getIutServiceDataRegWithNoSession() ); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ); log("*** TC_FSAP_SP_HO_BV_01: INFO: GCregServer registration request done ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfRequestRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfRequestRequest( v_commandRef, v_mfReq // Reuse the value template previously sent ))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_HO_BV_01: PASS: GCtx notification sent as expected ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HO_BV_01: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_HO_BV_01: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SP_HO_BV_01 /** * @desc Registration of ITS-S application for message distribution only (no session phase) with no request of specific access technology *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND (PICS_ROLE_HONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT knows about availability of a suitable access technology in an ITS-S router
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request for an ITS-S application
                 *      }
                 *      then {
                 *          the IUT forwards this request to the proper ITS-S router ITS-SCU applying Inter-ITS-SCU communications
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/HO/BV/02 */ testcase TC_FSAP_SP_HO_BV_02() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; var template MF_Request v_mfReq; // Test control if (not(PICS_FSAP_ROLE_SP and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)))) { log("*** TC_FSAP_SP_HO_BV_02: ERROR: 'PICS_FSAP_ROLE_SP and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW))' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_HO_BV_02: INFO: Preamble: IUT was setup properly ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGCscheduleWithNonIp(), f_getIutServiceDataRegWithNoSession() ); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ); log("*** TC_FSAP_SP_HO_BV_02: INFO: GCregServer registration request done ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfRequestRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfRequestRequest( v_commandRef, v_mfReq // Reuse the value template previously sent ))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_HO_BV_02: PASS: GCtx notification sent as expected ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HO_BV_02: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_HO_BV_02: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SP_HO_BV_02 /** * @desc Registration of ITS-S application with need for a session, with no request of specific access technology, and without request to change communication channel for session phase *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND (PICS_ROLE_HONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT knows about availability of a suitable access technology in an ITS-S router
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request for an ITS-S application requiring non-IP communications in the session phase, but no change of communication channel
                 *      }
                 *      then {
                 *          the IUT forwards this request to the proper ITS-S router ITS-SCU applying Inter-ITS-SCU communications
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/HO/BV/03 */ testcase TC_FSAP_SP_HO_BV_03() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; var template MF_Request v_mfReq; // Test control if (not(PICS_FSAP_ROLE_SP and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)))) { log("*** TC_FSAP_SP_HO_BV_03: ERROR: 'PICS_FSAP_ROLE_SP and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW))' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_HO_BV_03: INFO: Preamble: IUT was setup properly ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGCscheduleWithNonIp(), f_getIutServiceDataRegWithSession() ); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ); log("*** TC_FSAP_SP_HO_BV_03: INFO: GCregServer registration request done ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfRequestRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfRequestRequest( v_commandRef, valueof(v_mfReq) // Reuse the value template previously sent ))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_HO_BV_03: PASS: GCtx notification sent as expected ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HO_BV_03: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_HO_BV_03: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SP_HO_BV_03 /** * @desc Registration of ITS-S application with need for a session, with no request of specific access technology, and with request to change communication channel for session phase *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND (PICS_ROLE_HONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT knows about availability of a suitable access technology in an ITS-S router
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request for an ITS-S application requiring non-IP communications, and requiring change of communication channel in the session phase
                 *      }
                 *      then {
                 *          the IUT forwards this request to the proper ITS-S router ITS-SCU applying Inter-ITS-SCU communications
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/HO/BV/04 */ testcase TC_FSAP_SP_HO_BV_04() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; var template MF_Request v_mfReq; // Test control if (not(PICS_FSAP_ROLE_SP and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)))) { log("*** TC_FSAP_SP_HO_BV_04: ERROR: 'PICS_FSAP_ROLE_SP and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW))' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_HO_BV_04: INFO: Preamble: IUT was setup properly ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGcScheduleWithAccessTechAndNonIp(), f_getIutServiceDataRegWithNoSessionAndChannelChange() ); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ); log("*** TC_FSAP_SP_HO_BV_04: INFO: GCregServer registration request done ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfRequestRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfRequestRequest( v_commandRef, v_mfReq // Reuse the value template previously sent ))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_HO_BV_04: PASS: GCtx notification sent as expected ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HO_BV_04: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_HO_BV_04: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SP_HO_BV_04 /** * @desc Finalization of SIP upon reception of CTX for non-IP session *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND (PICS_ROLE_HONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW)) AND PICS_SIP_W_CTX
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT awaiting reception of CTX messages
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a CTX as proper reply to a SAM
                 *      }
                 *      then {
                 *          the IUT replies with the first session message (REQN or REQW) from the ITS-S application
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/HO/BV/05 */ testcase TC_FSAP_SP_HO_BV_05() runs on ItsMgt system ItsCalmSystem { // Local variables timer t_maxRetransTimer := f_getIutSamRetransmitTimer() + f_getIutSamMaxJitter(); var CommandRef v_commandRef; var template MF_Request v_mfReq; // Test control if (not(PICS_FSAP_ROLE_SP and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)) and PICS_SIP_W_CTX)) { log("*** TC_FSAP_SP_HO_BV_05: ERROR: 'PICS_FSAP_ROLE_SP AND (PICS_ROLE_HONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW)) AND PICS_SIP_W_CTX' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGcScheduleWithAccessTechAndNonIp(), f_getIutServiceDataRegWithNoSession() ); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ); tc_ac.start; alt { [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfRequestRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfRequestRequest( v_commandRef, v_mfReq // Reuse the value template previously sent ))))) { tc_ac.stop; log("*** TC_FSAP_SP_HO_BV_05: INFO: GCregServer notification sent as expected ***"); tc_ac.start; repeat; } [] fsapPort.receive(mw_fsapReq_mfCommandConfirm(?)) { log("*** TC_FSAP_SP_HO_BV_05: INFO: GCregServer response received as expected ***"); tc_ac.stop; t_maxRetransTimer.start; } [] t_maxRetransTimer.timeout { log("*** TC_FSAP_SP_HO_BV_05: INFO: t_maxRetransTimer timeout ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HO_BV_05: INCONC: Expected management message not received ***"); } } // End of 'alt' statement f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_HO_BV_05: INFO: Preamble: IUT was setup properly ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequest_ctx( m_llServiceAddr( m_linkId( f_getIutSrcRemoteCiId(), f_getIutSrcLocalCiId())), m_ctx(f_getIutClientId()) ); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ); log("*** TC_FSAP_SP_HO_BV_05: INFO: CTX registration request done ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfRequestRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfRequestRequest( v_commandRef, v_mfReq // Reuse the value template previously sent ))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_HO_BV_05: PASS: GCtx notification sent as expected ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_HO_BV_05: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_HO_BV_05: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SP_HO_BV_05 } // End of group validBehavior group invalidBehavior { /** * @desc Registration of ITS-S application for message distribution only (no session phase) with request of specific but not available access technology *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND (PICS_ROLE_HONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT does not know about existence of the requested access technology,
                 *      the IUT knows about availability of a suitable access technology in an ITS-S router
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request for an ITS-S application for the purpose of message distribution
                 *      }
                 *      then {
                 *          the IUT dows not forward this request to the proper ITS-S router ITS-SCU applying Inter-ITS-SCU communications
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/HO/BI/01 */ testcase TC_FSAP_SP_HO_BI_01() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; // Test control if (not(PICS_FSAP_ROLE_SP and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)))) { log("*** TC_FSAP_SP_HO_BI_01: ERROR: 'PICS_FSAP_ROLE_SP AND (PICS_ROLE_HONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_HO_BI_01: INFO: Preamble done ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGCscheduleWithUnknownAccessTechAndNonIp(), f_getIutServiceDataRegWithNoSession() ) ) ) ); log("*** TC_FSAP_SP_HO_BI_01: INFO: GCregServer registration request sent ***"); // Clause 'then' tc_noac.start; // No message expected alt { [] fsapPort.receive { tc_noac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_HO_BI_01: FAIL: No message was expected ***"); } [] tc_noac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_HO_BI_01: PASS: No message received as expected ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_HO_BI_01: INFO: test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SP_HO_BI_01 /** * @desc Registration of ITS-S application with need for a session, with no request of specific access technology which is not available, and without request to change communication channel for session phase *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND (PICS_ROLE_HONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT does not know about availability of a suitable access technology
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request for an ITS-S application offering a session phase
                 *      }
                 *      then {
                 *          the IUT dows not forward this request to the proper ITS-S router ITS-SCU applying Inter-ITS-SCU communications
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/HO/BI/02 */ testcase TC_FSAP_SP_HO_BI_02() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; // Test control if (not(PICS_FSAP_ROLE_SP and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)))) { log("*** TC_FSAP_SP_HO_BI_02: ERROR: 'PICS_FSAP_ROLE_SP AND (PICS_ROLE_HONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_HO_BI_02: INFO: Preamble done ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGCscheduleWithUnknownAccessTechAndNonIp(), f_getIutServiceDataRegWithSession() ) ) ) ); log("*** TC_FSAP_SP_HO_BI_02: INFO: GCregServer registration request sent ***"); // Clause 'then' tc_noac.start; // No message expected alt { [] fsapPort.receive { tc_noac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_HO_BI_02: FAIL: No message was expected ***"); } [] tc_noac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_HO_BI_02: PASS: No message received as expected ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_HO_BI_02: INFO: test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SP_HO_BI_02 } // End of group invalidBehavior } // End of group its_S_HostOnly // 9.1.3 ITS-S router only group its_S_RouterOnly { group validBehavior { /** * @desc Registration of ITS-S application for message distribution only (no session phase) with request of specific access technology *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for SAM transmission,
                 *      the IUT knows the requested access technology
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request via Inter-ITS-SCU communications for an ITS-S application including a required access technology and non-IP communications
                 *      }
                 *      then {
                 *          the IUT periodically sends out SAM via the requested access technology with the requested repetition rate, not inviting for a reply
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/RO/BV/01 */ testcase TC_FSAP_SP_RO_BV_01() runs on ItsMgt system ItsCalmSystem { // Local variables timer t_minRetransTimer := f_getIutSamRetransmitTimer(); timer t_maxRetransTimer := f_getIutSamRetransmitTimer() + f_getIutSamMaxJitter(); var CommandRef v_commandRef; var template MF_Request v_mfReq; var boolean v_samNotificationReceived := false; // Test control if (not(PICS_FSAP_ROLE_SP and (PICS_ROLE_RONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)))) { log("*** TC_FSAP_SP_RO_BV_01: ERROR: 'PICS_FSAP_ROLE_SP AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_RO_BV_01: INFO: Preamble: IUT was setup properly ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGcScheduleWithAccessTechAndNonIp(), f_getIutServiceDataRegWithNoSession() ); f_iicpTriggerRequest( m_iicRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), f_getNextPduCounter(), m_pduRequest_mfRequestRequest( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ) ); log("*** TC_FSAP_SP_RO_BV_01: INFO: GCregServer registration request done ***"); // Clause 'then' tc_ac.start; t_maxRetransTimer.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( v_commandRef, mdw_mfCommand_gcSam( f_getIutApplicationId(), ?, mw_samDataServerciceWithAccessTechAndNonIp( ?, ?, { portLong := c_portSam } ) )))) { tc_ac.stop; if (v_samNotificationReceived == false) { v_samNotificationReceived := true; t_minRetransTimer.start; t_maxRetransTimer.start; // After the SAM received, check the retransmission tc_ac.start; repeat; } if(t_minRetransTimer.running) { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_RO_BV_01: FAIL: SAM not transmitted at prescribed periodicity (too early) ***"); } else { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_RO_BV_01: PASS: SAM transmitted at prescribed periodicity ***"); } } [] t_minRetransTimer.timeout { log("*** TC_FSAP_SP_RO_BV_01: INFO: Ready for retransmission ***"); repeat; } [] t_maxRetransTimer.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_RO_BV_01: INCONC: SAM not transmitted at prescribed periodicity (too late) ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_RO_BV_01: INCONC: Expected message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_RO_BV_01: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SP_RO_BV_01 /** * @desc Registration of ITS-S application for message distribution only (no session phase) with no request of specific access technology *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT knows a suitable access technology
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request via Inter-ITS-SCU communications for an ITS-S application requiring non-IP communications
                 *      }
                 *      then {
                 *          the IUT periodically sends out SAM via a suited access technology selected by the CI selection manager with the requested repetition rate, not inviting for a reply
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/RO/BV/02 */ testcase TC_FSAP_SP_RO_BV_02() runs on ItsMgt system ItsCalmSystem { // Local variables timer t_minRetransTimer := f_getIutSamRetransmitTimer(); timer t_maxRetransTimer := f_getIutSamRetransmitTimer() + f_getIutSamMaxJitter(); var CommandRef v_commandRef; var template MF_Request v_mfReq; var boolean v_samNotificationReceived := false; // Test control if (not(PICS_FSAP_ROLE_SP and (PICS_ROLE_RONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)))) { log("*** TC_FSAP_SP_RO_BV_02: ERROR: 'PICS_FSAP_ROLE_SP AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_RO_BV_02: INFO: Preamble: IUT was setup properly ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGCscheduleWithNonIp(), f_getIutServiceDataRegWithNoSession() ); f_iicpTriggerRequest( m_iicRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), f_getNextPduCounter(), m_pduRequest_mfRequestRequest( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ) ); log("*** TC_FSAP_SP_RO_BV_02: INFO: GCregServer registration request done ***"); // Clause 'then' tc_ac.start; t_maxRetransTimer.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( v_commandRef, mdw_mfCommand_gcSam( f_getIutApplicationId(), ?, mw_samDataServerciceWithAccessTechAndNonIp( ?, ?, { portLong := c_portSam } ) )))) { tc_ac.stop; if (v_samNotificationReceived == false) { v_samNotificationReceived := true; t_minRetransTimer.start; t_maxRetransTimer.start; // After the SAM received, check the retransmission tc_ac.start; repeat; } if(t_minRetransTimer.running) { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_RO_BV_02: FAIL: SAM not transmitted at prescribed periodicity (too early) ***"); } else { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_RO_BV_02: PASS: SAM transmitted at prescribed periodicity ***"); } } [] t_minRetransTimer.timeout { log("*** TC_FSAP_SP_RO_BV_02: INFO: Ready for retransmission ***"); repeat; } [] t_maxRetransTimer.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_RO_BV_02: INCONC: SAM not transmitted at prescribed periodicity (too late) ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_RO_BV_02: INCONC: Expected message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_RO_BV_02: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SP_RO_BV_02 /** * @desc Registration of ITS-S application with need for a session, with no request of specific access technology, and without request to change communication channel for session phase *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT knows a suitable access technology
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request via Inter-ITS-SCU communications for an ITS-S application requiring non-IP communications
                 *      }
                 *      then {
                 *          the IUT periodically sends out SAM via a suited access technology selected by the CI selection manager with the requested repetition rate, inviting for a reply
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/RO/BV/03 */ testcase TC_FSAP_SP_RO_BV_03() runs on ItsMgt system ItsCalmSystem { // Local variables timer t_minRetransTimer := f_getIutSamRetransmitTimer(); timer t_maxRetransTimer := f_getIutSamRetransmitTimer() + f_getIutSamMaxJitter(); var CommandRef v_commandRef; var template MF_Request v_mfReq; var boolean v_samNotificationReceived := false; // Test control if (not(PICS_FSAP_ROLE_SP and (PICS_ROLE_RONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)))) { log("*** TC_FSAP_SP_RO_BV_03: ERROR: 'PICS_FSAP_ROLE_SP AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_RO_BV_03: INFO: Preamble: IUT was setup properly ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGCscheduleWithNonIp(), f_getIutServiceDataRegWithSession() ); f_iicpTriggerRequest( m_iicRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), f_getNextPduCounter(), m_pduRequest_mfRequestRequest( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ) ); log("*** TC_FSAP_SP_RO_BV_03: INFO: GCregServer registration request done ***"); // Clause 'then' tc_ac.start; t_maxRetransTimer.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( v_commandRef, mdw_mfCommand_gcSam( f_getIutApplicationId(), ?, mw_samDataServerciceWithAccessTechAndNonIp( ?, ?, { portLong := c_portSam } ) )))) { tc_ac.stop; if (v_samNotificationReceived == false) { v_samNotificationReceived := true; t_minRetransTimer.start; t_maxRetransTimer.start; // After the SAM received, check the retransmission tc_ac.start; repeat; } if(t_minRetransTimer.running) { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_RO_BV_03: FAIL: SAM not transmitted at prescribed periodicity (too early) ***"); } else { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_RO_BV_03: PASS: SAM transmitted at prescribed periodicity ***"); } } [] t_minRetransTimer.timeout { log("*** TC_FSAP_SP_RO_BV_03: INFO: Ready for retransmission ***"); repeat; } [] t_maxRetransTimer.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_RO_BV_03: INCONC: SAM not transmitted at prescribed periodicity (too late) ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_RO_BV_03: INCONC: Expected message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_RO_BV_03: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SP_RO_BV_03 /** * @desc Registration of ITS-S application with need for a session, with no request of specific access technology, and with request to change communication channel for session phase *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT knows a suitable access technology
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request via Inter-ITS-SCU communications for an ITS-S application requiring non-IP communications, and requiring change of communication channel in the session phase
                 *      }
                 *      then {
                 *          the IUT periodically sends out SAM via a suited access technology selected by the CI selection manager with the requested repetition rate, inviting for a reply, requesting a change of channel
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/RO/BV/04 */ testcase TC_FSAP_SP_RO_BV_04() runs on ItsMgt system ItsCalmSystem { // Local variables timer t_minRetransTimer := f_getIutSamRetransmitTimer(); timer t_maxRetransTimer := f_getIutSamRetransmitTimer() + f_getIutSamMaxJitter(); var CommandRef v_commandRef; var template MF_Request v_mfReq; var boolean v_samNotificationReceived := false; // Test control if (not(PICS_FSAP_ROLE_SP and (PICS_ROLE_RONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)))) { log("*** TC_FSAP_SP_RO_BV_04: ERROR: 'PICS_FSAP_ROLE_SP AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_RO_BV_04: INFO: Preamble: IUT was setup properly ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGcScheduleWithAccessTechAndNonIp(), f_getIutServiceDataRegWithNoSessionAndChannelChange() ); f_iicpTriggerRequest( m_iicRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), f_getNextPduCounter(), m_pduRequest_mfRequestRequest( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ) ); log("*** TC_FSAP_SP_RO_BV_04: INFO: GCregServer registration request done ***"); // Clause 'then' tc_ac.start; t_maxRetransTimer.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( v_commandRef, mdw_mfCommand_gcSam( f_getIutApplicationId(), ?, mw_samDataServerciceWithAccessTechAndNonIp( ?, ?, { portLong := c_portSam } ) )))) { tc_ac.stop; if (v_samNotificationReceived == false) { v_samNotificationReceived := true; t_minRetransTimer.start; t_maxRetransTimer.start; // After the SAM received, check the retransmission tc_ac.start; repeat; } if(t_minRetransTimer.running) { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_RO_BV_04: FAIL: SAM not transmitted at prescribed periodicity (too early) ***"); } else { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_RO_BV_04: PASS: SAM transmitted at prescribed periodicity ***"); } } [] t_minRetransTimer.timeout { log("*** TC_FSAP_SP_RO_BV_04: INFO: Ready for retransmission ***"); repeat; } [] t_maxRetransTimer.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_RO_BV_04: INCONC: SAM not transmitted at prescribed periodicity (too late) ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_RO_BV_04: INCONC: Expected message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_RO_BV_04: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SP_RO_BV_04 /** * @desc Finalization of SIP upon reception of CTX for non-IP session *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW)) AND PICS_SIP_W_CTX
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT sending out periodically SAMs for one ITS-S application with non-IP based sessions
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a CTX as proper reply to a SAM
                 *      }
                 *      then {
                 *          the IUT forwards the notification of CTX reception to the proper ITS-S host applying Inter-ITS-SCU communications
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/RO/BV/05 */ testcase TC_FSAP_SP_RO_BV_05() runs on ItsMgt system ItsCalmSystem { // Local variables timer t_minRetransTimer := f_getIutSamRetransmitTimer(); timer t_maxRetransTimer := f_getIutSamRetransmitTimer() + f_getIutSamMaxJitter(); var CommandRef v_commandRef; var template MF_Request v_mfReq; var boolean v_samNotificationReceived := false; // Test control if (not(PICS_FSAP_ROLE_SP and (PICS_ROLE_RONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)) and PICS_SIP_W_CTX)) { log("*** TC_FSAP_SP_RO_BV_05: ERROR: 'PICS_FSAP_ROLE_SP AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW)) AND PICS_SIP_W_CTX' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGcScheduleWithAccessTechAndNonIp(), f_getIutServiceDataRegWithNoSession() ); f_iicpTriggerRequest( m_iicRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), f_getNextPduCounter(), m_pduRequest_mfRequestRequest( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ) ); log("*** TC_FSAP_SP_RO_BV_05: INFO: GCregServer registration request done ***"); tc_ac.start; t_maxRetransTimer.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( v_commandRef, mdw_mfCommand_gcSam( f_getIutApplicationId(), ?, mw_samDataServerciceWithAccessTechAndNonIp( ?, ?, { portLong := c_portSam } ) )))) { tc_ac.stop; if (v_samNotificationReceived == false) { v_samNotificationReceived := true; t_minRetransTimer.start; t_maxRetransTimer.start; // After the SAM received, check the retransmission tc_ac.start; repeat; } if(t_minRetransTimer.running) { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_RO_BV_05: FAIL: SAM not transmitted at prescribed periodicity (too early) ***"); } else { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_RO_BV_05: INFO: Preamble: IUT was setup properly ***"); } } [] t_minRetransTimer.timeout { log("*** TC_FSAP_SP_RO_BV_05: INFO: Ready for retransmission ***"); repeat; } [] t_maxRetransTimer.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_RO_BV_05: INCONC: SAM not transmitted at prescribed periodicity (too late) ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_RO_BV_05: INCONC: Expected message not received ***"); } } // End of 'alt' statement // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequest_ctx( m_llServiceAddr( m_linkId( f_getIutSrcRemoteCiId(), f_getIutSrcLocalCiId())), m_ctx(f_getIutClientId()) ) ) ) ); log("*** TC_FSAP_SP_RO_BV_05: INFO: CTX registration request done ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( ?, mdw_mfCommand_gCctx( f_getIutApplicationId(), f_getIutClientId(), mdw_ctxServiceDataNonIp( ?, // TODO Parameters shall be reviewed during ATS validation ?, ? ))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_RO_BV_05: PASS: GCtx notification sent as expected ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SP_RO_BV_05: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_RO_BV_05: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SP_RO_BV_05 } // End of group validBehavior group invalidBehavior { /** * @desc Registration of ITS-S application for message distribution only (no session phase) with request of specific but not available access technology *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT does not know the requested access technology,
                 *      the IUT knows another access technology suited for FSAP
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request via Inter-ITS-SCU communications for an ITS-S application for the purpose of message distribution
                 *      }
                 *      then {
                 *          the IUT does not send out periodically SAMs via the known access technology
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/RO/BI/01 */ testcase TC_FSAP_SP_RO_BI_01() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; var template MF_Request v_mfReq; // Test control if (not(PICS_FSAP_ROLE_SP and (PICS_ROLE_RONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)))) { log("*** TC_FSAP_SP_RO_BI_01: ERROR: 'PICS_FSAP_ROLE_SP AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_RO_BI_01: INFO: Preamble done ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGCscheduleWithUnknownAccessTechAndNonIp(), f_getIutServiceDataRegWithSession() ); f_iicpTriggerRequest( m_iicRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), f_getNextPduCounter(), m_pduRequest_mfRequestRequest( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ) ); log("*** TC_FSAP_SP_RO_BI_01: INFO: GCregServer registration request done ***"); // Clause 'then' tc_noac.start; // No message expected alt { [] fsapPort.receive { tc_noac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_RO_BI_01: FAIL: No message was expected ***"); } [] tc_noac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_RO_BI_01: PASS: No message received as expected ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_RO_BI_01: INFO: test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SP_RO_BI_01 /** * @desc Registration of ITS-S application with need for a session, with no request of specific access technology which is not available, and without request to change communication channel for session phase *
                 * Pics Selection: PICS_FSAP_ROLE_SP AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having not registered any ITS-S application for service announcement,
                 *      the IUT does not know a suitable access technology
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a GCregServer registration request via Inter-ITS-SCU communications for an ITS-S application offering a session phase
                 *      }
                 *      then {
                 *          the IUT does not send out periodically SAMs
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SP/RO/BI/02 */ testcase TC_FSAP_SP_RO_BI_02() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; var template MF_Request v_mfReq; // Test control if (not(PICS_FSAP_ROLE_SP and (PICS_ROLE_RONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)))) { log("*** TC_FSAP_SP_RO_BI_02: ERROR: 'PICS_FSAP_ROLE_SP AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SP_RO_BI_02: INFO: Preamble done ***"); // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGCscheduleWithUnknownAccessTechAndNonIp(), f_getIutServiceDataRegWithNoSession() ); f_iicpTriggerRequest( m_iicRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), f_getNextPduCounter(), m_pduRequest_mfRequestRequest( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ) ); log("*** TC_FSAP_SP_RO_BI_02: INFO: GCregServer registration request done ***"); // Clause 'then' tc_noac.start; // No message expected alt { [] fsapPort.receive { tc_noac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SP_RO_BI_02: FAIL: No message was expected ***"); } [] tc_noac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SP_RO_BI_02: PASS: No message received as expected ***"); } } // End of 'alt' statement log("*** TC_FSAP_SP_RO_BI_02: INFO: test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SP_RO_BI_02 } // End of group invalidBehavior } } // End of group serviceProvider // 9.2 Service user group serviceUser { // 9.2.1 Combined ITS-S host and ITS-S router group combinedITS_S_Host_ITS_S_Router { group validBehavior { /** * @desc Registration of ITS-S application for message distribution only (no session phase) with request of specific access technology *
                 * Pics Selection: PICS_FSAP_ROLE_SU AND PICS_ROLE_RH
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having received GCregClient, 
                 *      and having properly registered any ITS-S application without a session 
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a SAM containing the expected ITS-AID
                 *      }
                 *      then {
                 *          the IUT forwards the related message to the ITS-S application using GCsam
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SU/HR/BV/01 */ testcase TC_FSAP_SU_HR_BV_01() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; // Test control if (not(PICS_FSAP_ROLE_SU and PICS_ROLE_RH)) { log("*** TC_FSAP_SU_HR_BV_01: ERROR: 'PICS_FSAP_ROLE_SU AND PICS_ROLE_RH' required for executing the TC ***"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequest_gCregClientWithNoSessionAndNoCtx( f_getIutClientApplicationId(), f_getIutServiceId() ) ) ) ); tc_noac.start; // No message expected on success alt { [] fsapPort.receive { tc_noac.stop; log("*** TC_FSAP_SU_HR_BV_01: FAIL: No message was expected ***"); } [] tc_noac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_success); log("*** TC_FSAP_SU_HR_BV_01: INFO: GCregClient registration request done ***"); } } // End of 'alt' statement // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequest_samRxNot( m_llServiceAddr( m_linkId( f_getIutSrcRemoteCiId(), f_getIutSrcLocalCiId())), f_getIutServerId(), f_getIutServicelistWithNoSessionAndNoChannelChange() ) ) ) ); log("*** TC_FSAP_SU_HR_BV_01: INFO: SAM message sent ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( ?, mdw_mfCommand_gcSam( f_getIutApplicationId(), ?, mw_samDataServerciceWithAccessTechAndNonIp( ?, ?, { portLong := c_portSam } ) )))) { tc_ac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SU_HR_BV_01: PASS: GCsam notification sent as expected ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SU_HR_BV_01: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SU_HR_BV_01: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf01Down(); } // End of testcase TC_FSAP_SU_HR_BV_01 /** * @desc Reception of SAM with need for a session, without request to change communication channel for session phase, with need to send CTX *
                 * Pics Selection: PICS_FSAP_ROLE_SU AND PICS_ROLE_RH AND PIC_SIP_W_CTX
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having received GCregClient, and having properly registered any ITS-S application with session initialisation using CTX 
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a SAM containing the expected ITS-AID
                 *      }
                 *      then {
                 *          the IUT forwards the related message to the ITS-S application using GCsamctx, with is acknowledged providing a port number for the session
                 *          the IUT sends the requested CTX containing the port number received in the acknowledgement
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SU/HR/BV/02 */ testcase TC_FSAP_SU_HR_BV_02() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; var FsapReq v_cmdConfirm; // Used to retrieve portNumber // Test control if (not(PICS_FSAP_ROLE_SU and PICS_ROLE_RH and PICS_SIP_W_CTX)) { log("*** TC_FSAP_SU_HR_BV_02: ERROR: 'PICS_FSAP_ROLE_SU AND PICS_ROLE_RH' required for executing the TC ***"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequest_gCregClientWithSessionAndCtx( f_getIutClientApplicationId(), f_getIutServiceId() ) ) ) ); tc_noac.start; // No message expected on success alt { [] fsapPort.receive { tc_noac.stop; log("*** TC_FSAP_SU_HR_BV_02: FAIL: No message was expected ***"); } [] tc_noac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_success); log("*** TC_FSAP_SU_HR_BV_02: INFO: GCregClient registration request done ***"); } } // End of 'alt' statement // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequest_samRxNot( m_llServiceAddr( m_linkId( f_getIutSrcRemoteCiId(), f_getIutSrcLocalCiId())), f_getIutServerId(), f_getIutServicelistWithSessionAndNoChangeChannel() ) ) ) ); log("*** TC_FSAP_SU_HR_BV_02: INFO: SAM message sent ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( ?, mdw_mfCommand_gcSamCtx( f_getIutApplicationId(), ?, ? )))) { tc_ac.stop; log("*** TC_FSAP_SU_HR_BV_02: INFO: GCsam notification sent as expected ***"); tc_ac.start; repeat; // Wait for response } [] fsapPort.receive( mw_fsapReq_mfCommandConfirm( mdw_mfCommandConfirm_gCsamctxConf(0) )) -> value v_cmdConfirm { tc_ac.stop; log("*** TC_FSAP_SU_HR_BV_02: INFO: Receive service port number ***"); tc_ac.start; repeat; // Wait for GCctxTxCmd sent } [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( ?, mdw_mfCommand_gcCtxTxCmd( ?, mdw_ctx_nonIpContext( mw_nonIpContext( ?, //v_cmdConfirm.mfCommandConfirmIn.cmdConfirm.mfCmdConf.gCsamctx.serviceInfo.info.nonipService.serviceID, v_cmdConfirm.mfCommandConfirmIn.cmdConfirm.mfCmdConf.gCsamctx.port_ ) ))))) { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SU_HR_BV_02: PASS: IUT has sent GCctxTxCmd ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SU_HR_BV_02: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SU_HR_BV_02: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf01Down(); } // End of testcase TC_FSAP_SU_HR_BV_02 /** * @desc Reception of SAM with need for a session, with request to change communication channel for session phase, with need to send CTX *
                 * Pics Selection: PICS_FSAP_ROLE_SU AND PICS_ROLE_RH AND PICS_SIP_W_CTX
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having received GCregClient, and having properly registered any ITS-S application with session initialisation using CTX 
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a SAM containing the expected ITS-AID
                 *      }
                 *      then {
                 *          the IUT forwards the related message to the ITS-S application using GCsamctx, with is acknowledged providing a port number for the session
                 *          the IUT sends the requested CTX in the new channel containing the port number received in the acknowledgement
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SU/HR/BV/03 */ testcase TC_FSAP_SU_HR_BV_03() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; var FsapReq v_cmdConfirm; // Used to retrieve new channel, including port number // Test control if (not(PICS_FSAP_ROLE_SU and PICS_ROLE_RH and PICS_SIP_W_CTX)) { log("*** TC_FSAP_SU_HR_BV_03: ERROR: 'PICS_FSAP_ROLE_SU AND PICS_ROLE_RH AND PICS_SIP_W_CTX' required for executing the TC ***"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequest_gCregClientWithSessionAndCtx( f_getIutClientApplicationId(), f_getIutServiceId() ) ) ) ); tc_noac.start; // No message expected on success alt { [] fsapPort.receive { tc_noac.stop; f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_error); log("*** TC_FSAP_SU_HR_BV_03: FAIL: No message was expected ***"); } [] tc_noac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_success); log("*** TC_FSAP_SU_HR_BV_03: INFO: GCregClient registration request done ***"); } } // End of 'alt' statement // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequest_samRxNot( m_llServiceAddr( m_linkId( f_getIutSrcRemoteCiId(), f_getIutSrcLocalCiId())), f_getIutServerId(), f_getIutServicelistWithSessionAndChangeChannel() ) ) ) ); log("*** TC_FSAP_SU_HR_BV_03: INFO: SAM message sent ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( ?, mdw_mfCommand_gcSamCtx( f_getIutApplicationId(), ?, ? )))) { tc_ac.stop; log("*** TC_FSAP_SU_HR_BV_03: INFO: GCsam notification sent as expected ***"); tc_ac.start; repeat; // Wait for response } [] fsapPort.receive( mw_fsapReq_mfCommandConfirm( mdw_mfCommandConfirm_gCsamctxConf(0) )) -> value v_cmdConfirm { tc_ac.stop; log("*** TC_FSAP_SU_HR_BV_03: INFO: Receive service port number ***"); tc_ac.start; repeat; // Wait for GCctxTxCmd sent } [] fsapPort.receive( mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( ?, mdw_mfCommand_gcCtxTxCmd( ?, mdw_ctx_nonIpContext( mw_nonIpContext( ?, //v_cmdConfirm.mfCommandConfirmIn.cmdConfirm.mfCmdConf.gCsamctx.serviceInfo.info.nonipService.serviceID, v_cmdConfirm.mfCommandConfirmIn.cmdConfirm.mfCmdConf.gCsamctx.port_ ) ))))) { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SU_HR_BV_03: PASS: IUT has sent GCctxTxCmd ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SU_HR_BV_03: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SU_HR_BV_03: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf01Down(); } // End of testcase TC_FSAP_SU_HR_BV_03 /** * @desc Reception of SAM with need for a session, with request to change communication channel for session phase, with need to send CTX *
                 * Pics Selection: PICS_FSAP_ROLE_SU AND PICS_ROLE_RH
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having registered ITS applications, but not the one offered in the SAM 
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a SAM containing an unwanted ITS-AID
                 *      }
                 *      then {
                 *          the IUT discards the SAM without further actions
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SU/HR/BV/04 */ testcase TC_FSAP_SU_HR_BV_04() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; // Test control if (not(PICS_FSAP_ROLE_SU and PICS_ROLE_RH)) { log("*** TC_FSAP_SU_HR_BV_04: ERROR: 'PICS_FSAP_ROLE_SU AND PICS_ROLE_RH' required for executing the TC ***"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGCscheduleWithNonIp(), f_getIutServiceDataRegWithNoSession() ) ) ) ); tc_noac.start; // No message expected on success alt { [] fsapPort.receive { tc_noac.stop; f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_error); log("*** TC_FSAP_SU_HR_BV_04: FAIL: No message was expected ***"); } [] tc_noac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_success); log("*** TC_FSAP_SU_HR_BV_04: INFO: GCregClient registration request done ***"); } } // End of 'alt' statement // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequest_samRxNot( m_llServiceAddr( m_linkId( f_getIutSrcRemoteCiId(), f_getIutSrcLocalCiId())), f_getIutServerId(), f_getIutServicelistWithUnknownServiceId() ) ) ) ); log("*** TC_FSAP_SU_HR_BV_04: INFO: SAM message sent ***"); // Clause 'then' tc_noac.start; // No message expected on success alt { [] fsapPort.receive { tc_noac.stop; log("*** TC_FSAP_SU_HR_BV_04: FAIL: No message was expected ***"); } [] tc_noac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_success); log("*** TC_FSAP_SU_HR_BV_04: PASS: GCregClient registration request done ***"); } } // End of 'alt' statement // Postamble f_poDefault(); f_cf01Down(); } // End of testcase TC_FSAP_SU_HR_BV_04 /** * @desc Reception of SAM with need for a session, with request to change communication channel for session phase, with the requested channel being unknown *
                 * Pics Selection: PICS_FSAP_ROLE_SU AND PICS_ROLE_RH
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having received GCregClient, and having properly registered any ITS-S application
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a SAM containing the expected ITS-AID with a request to change to an unknown channel
                 *      }
                 *      then {
                 *          the IUT discards the SAM without further actions
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SU/HR/BV/05 */ testcase TC_FSAP_SU_HR_BV_05() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; // Test control if (not(PICS_FSAP_ROLE_SU and PICS_ROLE_RH)) { log("*** TC_FSAP_SU_HR_BV_05: ERROR: 'PICS_FSAP_ROLE_SU AND PICS_ROLE_RH' required for executing the TC ***"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequestGcregServer( f_getIutApplicationId(), f_getIutGCscheduleWithNonIp(), f_getIutServiceDataRegWithNoSession() ) ) ) ); tc_noac.start; // No message expected on success alt { [] fsapPort.receive { tc_noac.stop; f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_error); log("*** TC_FSAP_SU_HR_BV_05: FAIL: No message was expected ***"); } [] tc_noac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_success); log("*** TC_FSAP_SU_HR_BV_05: INFO: GCregClient registration request done ***"); } } // End of 'alt' statement // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, m_mfRequest_samRxNot( m_llServiceAddr( m_linkId( f_getIutSrcRemoteCiId(), f_getIutSrcLocalCiId())), f_getIutServerId(), f_getIutServicelistWithUnknownChannel() ) ) ) ); log("*** TC_FSAP_SU_HR_BV_05: INFO: SAM message sent ***"); // Clause 'then' tc_noac.start; // No message expected on success alt { [] fsapPort.receive { tc_noac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); log("*** TC_FSAP_SU_HR_BV_05: FAIL: No message was expected ***"); } [] tc_noac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SU_HR_BV_05: PASS: SAM message was discarded as expected ***"); } } // End of 'alt' statement // Postamble //f_unInitializeFntpForwardingTable(); f_poDefault(); f_cf01Down(); } // End of testcase TC_FSAP_SU_HR_BV_05 } // End of group validBehavior group invalidBehavior { } // End of group invalidBehavior } // End of group combinedITS_S_Host_ITS_S_Router // 9.2.2 ITS-S host only group its_S_HostOnly { group validBehavior { /** * @desc Reception of SAM with need for a session with need to send CTX *
                 * Pics Selection: PICS_FSAP_ROLE_SU AND (PICS_ROLE_HONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW)) AND PICS_SIP_W_CTX
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having received GCregClient, 
                 *      and having properly registered any ITS-S application with session initialisation using CTX 
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a SAM from the ITS-S router via Inter-ITS-SCU communications containing the expected ITS-AID
                 *      }
                 *      then {
                 *          the IUT notifies reception of the SAM to the ITS-S application, which is acknowledged with a port number. 
                 *          the IUT sends the requested CTX to the ITS-S router applying Inter-ITS-SCU communications containing the port number received in the acknowledgement
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SU/HO/BV/01 */ testcase TC_FSAP_SU_HO_BV_01() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; var template MF_Request v_mfReq; var FsapReq v_cmdConfirm; // Used to retrieve portNumber // Test control if (not(PICS_FSAP_ROLE_SU and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)) and PICS_SIP_W_CTX)) { log("*** TC_FSAP_SU_HO_BV_01: ERROR: 'PICS_FSAP_ROLE_SU and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)) and PICS_SIP_W_CTX' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequest_gCregClientWithSessionAndCtx( f_getIutClientApplicationId(), f_getIutServiceId() ); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ); log("*** TC_FSAP_SU_HO_BV_01: INFO: GCregServer registration request done ***"); tc_ac.start; alt { [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfRequestRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfRequestRequest( v_commandRef, v_mfReq // Reuse the value template previously sent ))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_success); log("*** TC_FSAP_SU_HO_BV_01: INFO: GCregClient registration request done ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_timeout); log("*** TC_FSAP_SU_HO_BV_01: INCONC: Expected management message not received ***"); } } // End of 'alt' statement // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequest_samRxNot( m_llServiceAddr( m_linkId( f_getIutSrcRemoteCiId(), f_getIutSrcLocalCiId())), f_getIutServerId(), f_getIutServicelistWithSessionAndNoChangeChannel() ); f_iicpTriggerRequest( m_iicRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), f_getNextPduCounter(), m_pduRequest_mfRequestRequest( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ) ); log("*** TC_FSAP_SU_HO_BV_01: INFO: SAM message sent ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( // The IUT notifies reception of the SAM to the ITS-S application... mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( ?, mdw_mfCommand_gcSamCtx( f_getIutApplicationId(), ?, ? )))) { tc_ac.stop; log("*** TC_FSAP_SU_HO_BV_01: INFO: GCsam notification sent as expected ***"); tc_ac.start; repeat; // Wait for response } [] fsapPort.receive( // ...which is acknowledged with a port number mw_fsapReq_mfCommandConfirm( mdw_mfCommandConfirm_gCsamctxConf(0) )) -> value v_cmdConfirm { tc_ac.stop; log("*** TC_FSAP_SU_HO_BV_01: INFO: Receive service port number ***"); tc_ac.start; repeat; // Wait for GCctxTxCmd sent } [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfCommandRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfCommandRequest( ?, mdw_mfCommand_gcCtxTxCmd( ?, mdw_ctx_nonIpContext( mw_nonIpContext( ?, //v_cmdConfirm.mfCommandConfirmIn.cmdConfirm.mfCmdConf.gCsamctx.serviceInfo.info.nonipService.serviceID, v_cmdConfirm.mfCommandConfirmIn.cmdConfirm.mfCmdConf.gCsamctx.port_ )))))))) { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SU_HO_BV_01: PASS: IUT has sent GCctxTxCmd ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SU_HO_BV_01: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SU_HO_BV_01: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SU_HO_BV_01 /** * @desc Reception of SAM with need for a session with need to send CTX with need to change communication channel *
                 * Pics Selection: PICS_FSAP_ROLE_SU AND (PICS_ROLE_HONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW)) AND PICS_SIP_W_CTX
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having received GCregClient, 
                 *      and having properly registered any ITS-S application with session initialisation using CTX 
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a SAM from the ITS-S router via Inter-ITS-SCU communications containing the expected ITS-AID
                 *      }
                 *      then {
                 *          the IUT notifies reception of the SAM to the ITS-S application, which is acknowledged with a port number. 
                 *          the IUT sends the requested CTX to the ITS-S router applying Inter-ITS-SCU communications containing the port number received in the acknowledgement
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SU/HO/BV/02 */ testcase TC_FSAP_SU_HO_BV_02() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; var template MF_Request v_mfReq; var FsapReq v_cmdConfirm; // Used to retrieve portNumber // Test control if (not(PICS_FSAP_ROLE_SU and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)) and PICS_SIP_W_CTX)) { log("*** TC_FSAP_SU_HO_BV_02: ERROR: 'PICS_FSAP_ROLE_SU and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)) and PICS_SIP_W_CTX' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequest_gCregClientWithSessionAndCtx( f_getIutClientApplicationId(), f_getIutServiceId() ); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ); log("*** TC_FSAP_SU_HO_BV_02: INFO: GCregServer registration request done ***"); tc_ac.start; alt { [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfRequestRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfRequestRequest( v_commandRef, v_mfReq // Reuse the value template previously sent ))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_success); log("*** TC_FSAP_SU_HO_BV_02: INFO: GCregClient registration request done ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_timeout); log("*** TC_FSAP_SU_HO_BV_02: INCONC: Expected management message not received ***"); } } // End of 'alt' statement // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequest_samRxNot( m_llServiceAddr( m_linkId( f_getIutSrcRemoteCiId(), f_getIutSrcLocalCiId())), f_getIutServerId(), f_getIutServicelistWithSessionAndChangeChannel() ); f_iicpTriggerRequest( m_iicRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), f_getNextPduCounter(), m_pduRequest_mfRequestRequest( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ) ); log("*** TC_FSAP_SU_HO_BV_02: INFO: SAM message sent ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( // The IUT notifies reception of the SAM to the ITS-S application... mw_fsapReq_mfCommandRequest( mw_mfCommandRequest( ?, mdw_mfCommand_gcSamCtx( f_getIutApplicationId(), ?, ? )))) { tc_ac.stop; log("*** TC_FSAP_SU_HO_BV_02: INFO: GCsam notification sent as expected ***"); tc_ac.start; repeat; // Wait for response } [] fsapPort.receive( // ...which is acknowledged with a port number mw_fsapReq_mfCommandConfirm( mdw_mfCommandConfirm_gCsamctxConf(0) )) -> value v_cmdConfirm { tc_ac.stop; log("*** TC_FSAP_SU_HO_BV_02: INFO: Receive service port number ***"); tc_ac.start; repeat; // Wait for GCctxTxCmd sent } [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfCommandRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfCommandRequest( ?, mdw_mfCommand_gcCtxTxCmd( ?, mdw_ctx_nonIpContext( mw_nonIpContext( ?, //v_cmdConfirm.mfCommandConfirmIn.cmdConfirm.mfCmdConf.gCsamctx.serviceInfo.info.nonipService.serviceID, v_cmdConfirm.mfCommandConfirmIn.cmdConfirm.mfCmdConf.gCsamctx.port_ )))))))) { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SU_HO_BV_02: PASS: IUT has sent GCctxTxCmd ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SU_HO_BV_02: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SU_HO_BV_02: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SU_HO_BV_02 } // End of group validBehavior group invalidBehavior { } // End of group invalidBehavior } // End of group its_S_HostOnly // 9.2.3 ITS-S router only group its_S_RouterOnly { group validBehavior { /** * @desc Reception of SAM for message distribution only (no session phase) *
                 * Pics Selection: PICS_FSAP_ROLE_SU AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW))
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having received GCregClient, 
                 *      and having properly registered any ITS-S application without a session 
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a SAM containing the expected ITS-AID
                 *      }
                 *      then {
                 *          the IUT forwards the related message to the ITS-S application using GCsam via Inter-ITS-SCU communications
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SU/RO/BV/01 */ testcase TC_FSAP_SU_RO_BV_01() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; var template MF_Request v_mfReq; // Test control if (not(PICS_FSAP_ROLE_SU and (PICS_ROLE_RONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)))) { log("*** TC_FSAP_SU_RO_BV_01: ERROR: 'PICS_FSAP_ROLE_SU and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW))' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequest_gCregClientWithNoSessionAndNoCtx( f_getIutClientApplicationId(), f_getIutServiceId() ); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ); log("*** TC_FSAP_SU_RO_BV_01: INFO: GCregServer registration request done ***"); tc_ac.start; alt { [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfRequestRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfRequestRequest( v_commandRef, v_mfReq // Reuse the value template previously sent ))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SU_RO_BV_01: INFO: GCregClient registration request done ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); log("*** TC_FSAP_SU_RO_BV_01: INCONC: Expected management message not received ***"); } } // End of 'alt' statement // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequest_samRxNot( m_llServiceAddr( m_linkId( f_getIutSrcRemoteCiId(), f_getIutSrcLocalCiId())), f_getIutServerId(), f_getIutServicelistWithNoSessionAndNoChannelChange() ); f_iicpTriggerRequest( m_iicRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), f_getNextPduCounter(), m_pduRequest_mfRequestRequest( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ) ); log("*** TC_FSAP_SU_RO_BV_01: INFO: SAM message sent ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfCommandRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfCommandRequest( ?, mdw_mfCommand_gcSamCtx( f_getIutClientApplicationId(), f_getIutServerId(), ? )))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SU_RO_BV_01: PASS: GCsam sent as expected ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SU_RO_BV_01: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SU_RO_BV_01: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SU_RO_BV_01 /** * @desc Reception of SAM with need for a session with need to send CTX *
                 * Pics Selection: PICS_FSAP_ROLE_SU AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW)) AND PICS_SIP_W_CTX
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having received GCregClient, 
                 *      and having properly registered any ITS-S application without a session 
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a SAM containing the expected ITS-AID
                 *      }
                 *      then {
                 *          the IUT forwards the related message to the ITS-S application using GCsam via Inter-ITS-SCU communications
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SU/RO/BV/02 */ testcase TC_FSAP_SU_RO_BV_02() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; var template MF_Request v_mfReq; // Test control if (not(PICS_FSAP_ROLE_SU and (PICS_ROLE_RONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)) and PICS_SIP_W_CTX)) { log("*** TC_FSAP_SU_RO_BV_02: ERROR: 'PICS_FSAP_ROLE_SU and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)) and PICS_SIP_W_CTX' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequest_gCregClientWithSessionAndCtx( f_getIutClientApplicationId(), f_getIutServiceId() ); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ); log("*** TC_FSAP_SU_RO_BV_02: INFO: GCregServer registration request done ***"); tc_ac.start; alt { [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfRequestRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfRequestRequest( v_commandRef, v_mfReq // Reuse the value template previously sent ))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SU_RO_BV_02: INFO: GCregClient registration request done ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); log("*** TC_FSAP_SU_RO_BV_02: INCONC: Expected management message not received ***"); } } // End of 'alt' statement // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequest_samRxNot( m_llServiceAddr( m_linkId( f_getIutSrcRemoteCiId(), f_getIutSrcLocalCiId())), f_getIutServerId(), f_getIutServicelistWithSessionAndNoChangeChannel() ); f_iicpTriggerRequest( m_iicRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), f_getNextPduCounter(), m_pduRequest_mfRequestRequest( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ) ); log("*** TC_FSAP_SU_RO_BV_02: INFO: SAM message sent ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfCommandRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfCommandRequest( ?, mdw_mfCommand_gcSamCtx( f_getIutClientApplicationId(), f_getIutServerId(), ? )))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SU_RO_BV_02: PASS: GCsam sent as expected ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SU_RO_BV_02: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SU_RO_BV_02: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SU_RO_BV_02 /** * @desc Reception of SAM with need for a session with need to send CTX with need to change communication channel *
                 * Pics Selection: PICS_FSAP_ROLE_SU AND (PICS_ROLE_RONLY OR (PICS_ROLE_RH AND PICS_ITS_S_INW)) AND PICS_SIP_W_CTX
                 * Config Id: CF01
                 * Initial conditions: 
                 *  with {
                 *      the IUT having received GCregClient, 
                 *      and having properly registered any ITS-S application with session initialisation using CTX
                 *  }
                 * Expected behaviour:
                 *  evaluate whether {
                 *      when { 
                 *          the IUT having received a SAM containing the expected ITS-AID
                 *      }
                 *      then {
                 *          the IUT forwards the related message to the ITS-S application using GCsamctx via Inter-ITS-SCU communications
                 *      }
                 *  }
                 * 
* * @version 0.0.8 * @see ETSI TS 102 797-2 v0.0.8 TP/FSAP/SU/RO/BV/03 */ testcase TC_FSAP_SU_RO_BV_03() runs on ItsMgt system ItsCalmSystem { // Local variables var CommandRef v_commandRef; var template MF_Request v_mfReq; // Test control if (not(PICS_FSAP_ROLE_SU and (PICS_ROLE_RONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)) and PICS_SIP_W_CTX)) { log("*** TC_FSAP_SU_RO_BV_03: ERROR: 'PICS_FSAP_ROLE_SU and (PICS_ROLE_HONLY or (PICS_ROLE_RH and PICS_ITS_S_INW)) and PICS_SIP_W_CTX' required for executing the TC ***"); stop; } // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble // Clause 'Initial conditions' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequest_gCregClientWithSessionAndCtx( f_getIutClientApplicationId(), f_getIutServiceId() ); f_utCommandRequestWithoutConfirm( m_generateMfRequestReq( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ); log("*** TC_FSAP_SU_RO_BV_03: INFO: GCregServer registration request done ***"); tc_ac.start; alt { [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfRequestRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfRequestRequest( v_commandRef, valueof(v_mfReq) // Reuse the value template previously sent ))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); log("*** TC_FSAP_SU_RO_BV_03: INFO: GCregClient registration request done ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); log("*** TC_FSAP_SU_RO_BV_03: INCONC: Expected management message not received ***"); } } // End of 'alt' statement // Test Body // Clause 'when' v_commandRef := f_getNextCommandRef(); v_mfReq := m_mfRequest_samRxNot( m_llServiceAddr( m_linkId( f_getIutSrcRemoteCiId(), f_getIutSrcLocalCiId())), f_getIutServerId(), f_getIutServicelistWithSessionAndChangeChannel() ); f_iicpTriggerRequest( m_iicRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), f_getNextPduCounter(), m_pduRequest_mfRequestRequest( m_mfRequestRequest( v_commandRef, valueof(v_mfReq) ) ) ) ); log("*** TC_FSAP_SU_RO_BV_03: INFO: SAM message sent ***"); // Clause 'then' tc_ac.start; alt { [] fsapPort.receive( // See ISO/CD 24102-5 Clause 8.5 ITS station-internal management communications mw_fsapReq_mfCommandRequest( mdw_mfCommandRequest_iicRequestTx( mdw_iicRequestTx_mfCommandRequest( f_getIutSourceItsScuId(), f_getIutDestItsScuId(), mw_mfCommandRequest( ?, mdw_mfCommand_gcSamCtx( f_getIutClientApplicationId(), f_getIutServerId(), ? )))))) { tc_ac.stop; f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); log("*** TC_FSAP_SU_RO_BV_03: PASS: GCsam sent as expected ***"); } [] tc_ac.timeout { f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); log("*** TC_FSAP_SU_RO_BV_03: INCONC: Expected management message not received ***"); } } // End of 'alt' statement log("*** TC_FSAP_SU_RO_BV_03: INFO: Test body done ***"); // Postamble f_poDefault(); f_cf02Down(); } // End of testcase TC_FSAP_SU_RO_BV_03 } // End of group validBehavior group invalidBehavior { } // End of group invalidBehavior } // End of group its_S_RouterOnly } // End of group serviceUser } // End of module ItsFsap_TestCases