Commit 3e245523 authored by juvancic's avatar juvancic
Browse files

added Warning Message Transmission Procedures TPs

parent 53c75c42
Loading
Loading
Loading
Loading
+306 −27
Original line number Diff line number Diff line
@@ -136,7 +136,6 @@ module NGAP_TCFunctions {
                                ?,//template (present) PDUSessionResourceSetupItemSURes.pDUSessionResourceSetupResponseTransfer p_pDUSessionResourceSetupResponseTransfer := ?,
                                *//template PDUSessionResourceSetupItemSURes.iE_Extensions p_iE_Extensions := *
                              )

                            )
                          }
                        )
@@ -945,22 +944,228 @@ module NGAP_TCFunctions {
            //8.8.2
            group Downlink_RAN_Configuration_Transfer{
            } // End of group Downlink_RAN_Configuration_Transfer
        } // End of group Configuration_Transfer_Procedures
        //8.9
        group Warning_Message_Transmission_Procedures{
            } // End of group Warning_Message_Transmission_Procedures
            //8.9.1
            group Write_Replace_Warning{

               /**
                * @desc Testcase function for TC_NGAP_gNB_WTP_01
                */
                function f_TC_NGAP_GNB_WTP_01() runs on aMFNGAPComponent {
                   // Local variables

                   // Preamble
                   f_NGAP_amf_init();
                   f_NGAP_amf_UE_Register();

                   f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                   // Body
                   f_send_NGAP_PDU(
                     m_ngap_initMsg(
                       m_n2_WriteReplaceWarningRequest(
                         PX_MESSAGE_IDENTIFIER,
                         PX_SERIAL_NUMBER,
                         PX_REPETITION_PERIOD,
                         PX_NUMBER_OF_BROADCASTS_REQUESTED
                       )
                     ));

                   f_recv_NGAP_PDU(
                     mw_ngap_succMsg(
                       mw_n2_WriteReplaceWarningResponse(
                          PX_MESSAGE_IDENTIFIER,
                          PX_SERIAL_NUMBER
                       ) 
                     )
                   );

                   f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                   // Postamble
                   f_postamble_NGAP_gNB();
                   f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");

                } // End of function f_TC_NGAP_gNB_WTP_01

               /**
                * @desc Testcase function for TC_NGAP_gNB_WTP_02
                */
                function f_TC_NGAP_GNB_WTP_02() runs on aMFNGAPComponent {
                   // Local variables

                   // Preamble
                   f_NGAP_amf_init();
                   f_NGAP_amf_UE_Register();

                   f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                   // Body
                   f_send_NGAP_PDU(
                     m_ngap_initMsg(
                       m_n2_WriteReplaceWarningRequest(
                         PX_MESSAGE_IDENTIFIER, // indicating value "different from already being broadcasted",
                         PX_SERIAL_NUMBER, //indicating value "different from already being broadcasted",
                         PX_REPETITION_PERIOD,
                         PX_NUMBER_OF_BROADCASTS_REQUESTED
                       )
                     ));

                   f_recv_NGAP_PDU(
                     mw_ngap_succMsg(
                       mw_n2_WriteReplaceWarningResponse(
                          PX_MESSAGE_IDENTIFIER,
                          PX_SERIAL_NUMBER
                       ) 
                     )
                   );

                   f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                   // Postamble
                   f_postamble_NGAP_gNB();
                   f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");

                } // End of function f_TC_NGAP_gNB_WTP_02

            } // End of group Write_Replace_Warning
            //8.9.2
            group PWS_Cancel{

               /**
                * @desc Testcase function for TC_NGAP_gNB_WTP_03
                */
                function f_TC_NGAP_GNB_WTP_03() runs on aMFNGAPComponent {
                   // Local variables

                   // Preamble
                   f_NGAP_amf_init();
                   //f_NGAP_amf_UE_Register();

                   f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                   // Body
                   f_send_NGAP_PDU(
                     m_ngap_initMsg(
                       m_n2_PWSCancelRequest(
                         PX_MESSAGE_IDENTIFIER,
                         PX_SERIAL_NUMBER                         
                       )
                     ));

                   f_recv_NGAP_PDU(
                     mw_ngap_succMsg(
                       /*mw*/m_n2_PWSCancelResponse( //missing template
                          PX_MESSAGE_IDENTIFIER,
                          PX_SERIAL_NUMBER
                       ) 
                     )
                   );

                   f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                   // Postamble
                   f_postamble_NGAP_gNB();
                   f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");

                } // End of function f_TC_NGAP_gNB_WTP_03

            } // End of group PWS_Cancel
            //8.9.3
            group PWS_Restart_Indication{

               /**
                * @desc Testcase function for TC_NGAP_gNB_WTP_04
                */
                function f_TC_NGAP_GNB_WTP_04() runs on aMFNGAPComponent {
                   // Local variables

                   // Preamble
                   f_NGAP_amf_init();
                   //f_NGAP_amf_UE_Register();

                   f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                   // Body
                   action("Trigger PWS_Restart_Indication!");
                   
                   f_recv_NGAP_PDU(
                     mw_ngap_initMsg(
                      ?
                      //  /*mw*/m_n2_PWSRestartIndication( // missing template
                      //    ?,//in template (value) CellIDListForRestart p_cellIDListForRestart,
                      //    ?,//in template (value) GlobalRANNodeID p_globalRANNodeID,
                      //    ?,//in template (value) TAIListForRestart p_tAIListForRestart,
                      //    ?//in template (value) EmergencyAreaIDListForRestart p_emergencyAreaIDListForRestart
                      //  )    
                     )
                   );


                   f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                   // Postamble
                   f_postamble_NGAP_gNB();
                   f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");

                } // End of function f_TC_NGAP_gNB_WTP_04

            } // End of group PWS_Restart_Indication
            //8.9.4
            group PWS_Failure_Indication{

               /**
                * @desc Testcase function for TC_NGAP_gNB_WTP_05
                */
                function f_TC_NGAP_GNB_WTP_05() runs on aMFNGAPComponent {
                   // Local variables

                   // Preamble
                   f_NGAP_amf_init();
                   f_NGAP_amf_UE_Register();

                   f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                   // Body
                   action("Trigger PWS_Failure_Indication!");

                   f_recv_NGAP_PDU(
                     mw_ngap_unsuccMsg(
                      ?
                      // /*mw*/m_n2_PWSFailureIndication( //missing template
                      //     ?,//in template (value) PWSFailedCellList p_pWSFailedCellList,
                      //     ?//in template (value) GlobalRANNodeID p_globalRANNodeID
                      //   )   
                     )
                   );

                   f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                   // Postamble
                   f_postamble_NGAP_gNB();
                   f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");

                } // End of function f_TC_NGAP_gNB_WTP_05

            } // End of group PWS_Failure_Indication
        } // End of group Configuration_Transfer_Procedures
        } // End of group  Warning_Message_Transmission_Procedures
        //8.10
        group NRPPa_Transport_Procedures{
        } // End of group NRPPa_Transport_Procedures
@@ -1483,14 +1688,88 @@ module NGAP_TCFunctions {
            //8.8.2
            group Downlink_RAN_Configuration_Transfer{
            } // End of group Downlink_RAN_Configuration_Transfer
        } // End of group Configuration_Transfer_Procedures
        //8.9
        group Warning_Message_Transmission_Procedures{
            } // End of group Warning_Message_Transmission_Procedures
            //8.9.1
            group Write_Replace_Warning{

              /**
               * @desc Testcase function for TC_NGAP_aMF_WTP_01
               */
               function f_TC_NGAP_AMF_WTP_01() runs on gNBNGAPComponent {
                   // Local variables

                   // Preamble
                   f_NGAP_gnb_init();
                   f_NGAP_gnb_UE_Register();
                   
                   f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                   // Body
                   action("Trigger WRITE REPLACE WARNING REQUEST !");

                   f_recv_NGAP_PDU(
                     mw_ngap_initMsg(
                       mw_n2_WriteReplaceWarningRequest(
                         ?,// template (present) MessageIdentifier p_messageIdentifier :=?,
                         ?,// template (present) SerialNumber p_serialNumber := ?,
                         ?,// template (present) RepetitionPeriod p_repetitionPeriod := ?,
                         ?// template (present) NumberOfBroadcastsRequested p_numberOfBroadcastsRequested := ?
                       )
                     )
                   );

                   f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                   // Postamble
                   f_postamble_NGAP_AMF();
                   f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");

                } // End of function f_TC_NGAP_AMF_WTP_01

            } // End of group Write_Replace_Warning
            //8.9.2
            group PWS_Cancel{

              /**
               * @desc Testcase function for TC_NGAP_aMF_WTP_02
               */
               function f_TC_NGAP_AMF_WTP_02() runs on gNBNGAPComponent {
                   // Local variables

                   // Preamble
                   f_NGAP_gnb_init();
                   f_NGAP_gnb_UE_Register();
                   
                   f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                   // Body
                   action("Trigger PWS CANCEL REQUEST !");

                   f_recv_NGAP_PDU(
                     mw_ngap_initMsg(
                       mw_n2_PWSCancelRequest(
                         ?,//template (present) MessageIdentifier p_messageIdentifier := ?,
                         ?// template (present) SerialNumber p_serialNumber := ?
                       )
                     )
                   );

                   f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                   // Postamble
                   f_postamble_NGAP_AMF();
                   f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");

                } // End of function f_TC_NGAP_AMF_WTP_02

            } // End of group PWS_Cancel
            //8.9.3
            group PWS_Restart_Indication{
@@ -1498,7 +1777,7 @@ module NGAP_TCFunctions {
            //8.9.4
            group PWS_Failure_Indication{
            } // End of group PWS_Failure_Indication
        } // End of group Configuration_Transfer_Procedures
        } // End of group Warning_Message_Transmission_Procedures
        //8.10
        group NRPPa_Transport_Procedures{
        } // End of group NRPPa_Transport_Procedures
+205 −8
Original line number Diff line number Diff line
@@ -572,22 +572,163 @@ module NGAP_TestCases {
            //8.8.2
            group Downlink_RAN_Configuration_Transfer{
            } // End of group Downlink_RAN_Configuration_Transfer
        } // End of group Configuration_Transfer_Procedures
        //8.9
        group Warning_Message_Transmission_Procedures{
            } // End of group Warning_Message_Transmission_Procedures
            
            //8.9.1
            group Write_Replace_Warning{

                /**
                 * @desc Verify that the NG-RAN node successfully processes a WRITE-REPLACE WARNING REQUEST containing mandatory IEs and answers with WRITE-REPLACE WARNING RESPONSE to start broadcasting of warning messages.
                 */
                testcase TC_NGAP_GNB_WTP_01() runs on aMFNGAPComponent system TestAdapter {

                    // Local variables
                    var aMFNGAPComponent v_ngap_amf;

                    // Test control
                    if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_8_1)){
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_8_1' shall be set to true for executing the TC. ***");
                        stop;
                    }

                    // Test component configuration
                    f_cf_NGAP_aMF_Up(v_ngap_amf);

                    // Start
                    v_ngap_amf.start(f_TC_NGAP_GNB_WTP_01());

                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});

                    f_cf_Down/*gNBoraMF*/();

                } // End of testcase TC_NGAP_GNB_WTP_01

                /**
                 * @desc "Verify that the NG-RAN node successfully processes a WRITE-REPLACE WARNING REQUEST containing Message Identifier IE and/or Serial Number IE different from those in the warning message being broadcast and if Concurent Warning Message Indicator is not present then IUT node answers with WRITE-REPLACE WARNING RESPONSE  and replaces the warning message being broadcast with newly received one for that area."
                 */
                testcase TC_NGAP_GNB_WTP_02() runs on aMFNGAPComponent system TestAdapter {

                    // Local variables
                    var aMFNGAPComponent v_ngap_amf;

                    // Test control
                    if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_8_1)){
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_8_1' shall be set to true for executing the TC. ***");
                        stop;
                    }

                    // Test component configuration
                    f_cf_NGAP_aMF_Up(v_ngap_amf);

                    // Start
                    v_ngap_amf.start(f_TC_NGAP_GNB_WTP_02());

                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});

                    f_cf_Down/*gNBoraMF*/();

                } // End of testcase TC_NGAP_GNB_WTP_02

            } // End of group Write_Replace_Warning
            //8.9.2
            group PWS_Cancel{

                /**
                 * @desc "Verify that the NG-RAN node successfully processes a PWS CANCEL REQUEST containing mandatory IEs and answers with PWS CANCEL RESPONSE to cancel an already ongoing broadcast warning messages in all of the cells in the NG-RAN."
                 */
                testcase TC_NGAP_GNB_WTP_03() runs on aMFNGAPComponent system TestAdapter {

                    // Local variables
                    var aMFNGAPComponent v_ngap_amf;

                    // Test control
                    if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_8_2)){
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_8_2' shall be set to true for executing the TC. ***");
                        stop;
                    }

                    // Test component configuration
                    f_cf_NGAP_aMF_Up(v_ngap_amf);

                    // Start
                    v_ngap_amf.start(f_TC_NGAP_GNB_WTP_03());

                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});

                    f_cf_Down/*gNBoraMF*/();

                } // End of testcase TC_NGAP_GNB_WTP_03

            } // End of group PWS_Cancel
            //8.9.3
            group PWS_Restart_Indication{

                /**
                 * @desc  "Verify that the IUT can send a PWS RESTART INDICATION to inform AMF that PWS information for some or all cells may be reloaded from the CBC if needed."
                 */
                testcase TC_NGAP_GNB_WTP_04() runs on aMFNGAPComponent system TestAdapter {

                    // Local variables
                    var aMFNGAPComponent v_ngap_amf;

                    // Test control
                    if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_8_3)){
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_8_3' shall be set to true for executing the TC. ***");
                        stop;
                    }

                    // Test component configuration
                    f_cf_NGAP_aMF_Up(v_ngap_amf);

                    // Start
                    v_ngap_amf.start(f_TC_NGAP_GNB_WTP_04());

                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});

                    f_cf_Down/*gNBoraMF*/();

                } // End of testcase TC_NGAP_GNB_WTP_04

            } // End of group PWS_Restart_Indication
            //8.9.4
            group PWS_Failure_Indication{

                /**
                 * @desc "Verify that the IUT can send a PWS FAILURE INDICATION to inform AMF that ongoing PWS operation for one or more cells has failed."
                 */
                testcase TC_NGAP_GNB_WTP_05() runs on aMFNGAPComponent system TestAdapter {

                    // Local variables
                    var aMFNGAPComponent v_ngap_amf;

                    // Test control
                    if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_8_4)){
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_8_4' shall be set to true for executing the TC. ***");
                        stop;
                    }

                    // Test component configuration
                    f_cf_NGAP_aMF_Up(v_ngap_amf);

                    // Start
                    v_ngap_amf.start(f_TC_NGAP_GNB_WTP_05());

                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});

                    f_cf_Down/*gNBoraMF*/();

                } // End of testcase TC_NGAP_GNB_WTP_05

            } // End of group PWS_Failure_Indication
        } // End of group Configuration_Transfer_Procedures
        } // End of group Warning_Message_Transmission_Procedures
        
        //8.10
        group NRPPa_Transport_Procedures{
        } // End of group NRPPa_Transport_Procedures
@@ -942,14 +1083,70 @@ module NGAP_TestCases {
            //8.8.2
            group Downlink_RAN_Configuration_Transfer{
            } // End of group Downlink_RAN_Configuration_Transfer
        } // End of group Configuration_Transfer_Procedures
        //8.9
        group Warning_Message_Transmission_Procedures{
            } // End of group Warning_Message_Transmission_Procedures
            //8.9.1
            group Write_Replace_Warning{

                /**
                 * @desc "Verify that the IUT can send a WRITE REPLACE WARNING REQUEST to start broadcasting of warning messages."
                 */
                testcase TC_NGAP_AMF_WTP_01() runs on gNBNGAPComponent system TestAdapter {

                    // Local variables
                    var gNBNGAPComponent v_ngap_gnb;

                    // Test control
                    if ((not PICS_NGAP_AMF_IUT) and (not PICS_A4_8_1)){
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_8_1' shall be set to true for executing the TC. ***");
                        stop;
                    }

                    // Test component configuration
                    f_cf_NGAP_gNB_Up(v_ngap_gnb);

                    // Start
                    v_ngap_gnb.start(f_TC_NGAP_AMF_WTP_01());

                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});

                    f_cf_Down/*gNBoraMF*/();

                } // End of testcase TC_NGAP_AMF_WTP_01

            } // End of group Write_Replace_Warning
            //8.9.2
            group PWS_Cancel{

                /**
                 * @desc "Verify that the IUT can send a PWS CANCEL REQUEST to cancel broadcasting of warning messages."
                 */
                testcase TC_NGAP_AMF_WTP_02() runs on gNBNGAPComponent system TestAdapter {

                    // Local variables
                    var gNBNGAPComponent v_ngap_gnb;

                    // Test control
                    if ((not PICS_NGAP_AMF_IUT) and (not PICS_A4_8_2)){
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_8_2' shall be set to true for executing the TC. ***");
                        stop;
                    }

                    // Test component configuration
                    f_cf_NGAP_gNB_Up(v_ngap_gnb);

                    // Start
                    v_ngap_gnb.start(f_TC_NGAP_AMF_WTP_02());

                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});

                    f_cf_Down/*gNBoraMF*/();

                } // End of testcase TC_NGAP_AMF_WTP_02

            } // End of group PWS_Cancel
            //8.9.3
            group PWS_Restart_Indication{
@@ -957,7 +1154,7 @@ module NGAP_TestCases {
            //8.9.4
            group PWS_Failure_Indication{
            } // End of group PWS_Failure_Indication
        } // End of group Configuration_Transfer_Procedures
        } // End of group Warning_Message_Transmission_Procedures
        //8.10
        group NRPPa_Transport_Procedures{
        } // End of group NRPPa_Transport_Procedures