S1AP_TestCases.ttcn 102 KB
Newer Older
garciay's avatar
garciay committed
 *    @author   ETSI / STF519
garciay's avatar
garciay committed
 *    @desc     This module provides test cases for S1AP tests.
 *    @copyright   ETSI Copyright Notification
 *                 No part may be reproduced except as authorized by written permission.
 *                 The copyright and the foregoing restriction extend to reproduction in all media.
 *                 All rights reserved.
 *    @see      ETSI TS 136 413 / 3GPP TS 36.413 version 13.4.0 Release 13
garciay's avatar
garciay committed
module S1AP_TestCases {
    
    //LibCommon
    import from LibCommon_Sync all ;
    import from LibCommon_VerdictControl all;
    
    //LibS1AP
    //import from LibS1AP_TypesAndValues all;
    import from LibS1AP_Interface all;
garciay's avatar
garciay committed
    import from LibS1AP_Steps all;
    
    //Ats
    import from S1AP_TestConfiguration all;
    import from S1AP_TestSystem all;
    import from S1AP_TCFunctions all;
garciay's avatar
garciay committed
    import from S1AP_Pics all;
    import from S1AP_Pixits all;
    import from S1AP_Steps all;
    import from S1AP_TestSystem all;
    
garciay's avatar
garciay committed
    group eNB_Role {
        /**
         * @desc E-RAB management group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.2  E-RAB management group
         */
garciay's avatar
garciay committed
        group ERAB_management_group {
            
            /**
             * @desc Verify that the IUT can successfully process all mandatory IEs in an E-RAB_SETUP_REQUEST received 
             *       due to E-RAB management procedure and send E-RAB_SETUP_RESPONSE with successfully established E-RABs 
             *       included in the E-RAB_Setup_List IE.
             * <pre>
             * Pics Selection: PICS A.3/1.1
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an E-RAB_SETUP_REQUEST
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_to_be_Setup_List
             *                 containing an E-RAB_to_be_Setup Item 1
             *                     containing an E-RAB_ID
             *                     containing an E-RAB_Level_QoS_Parameters
             *                         containing QCI
             *                             indicating value 5
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU
             *         sends an E-RAB_SETUP_RESPONSE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_Setup_List
             *                 containing an E-RAB_Setup Item 1
             *                     containing an E-RAB_ID
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_RAB_01
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.2.1.2(1st dashed line in 5th dashed list) and 9.1.3.1 and 9.1.3.2
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_RAB_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
garciay's avatar
garciay committed
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_RAB_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
garciay's avatar
garciay committed
                f_cf_Down();
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_RAB_01
            /**
             * @desc Verify that the IUT after receiving an E-RAB_SETUP_REQUEST with failed E-RAB sends an E-RAB_SETUP_RESPONSE 
             *       with E-RAB_Failed_to_Setup_List.
             * <pre>
             * Pics Selection: PICS A.3/1.1
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an E-RAB_SETUP_REQUEST
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_to_be_Setup_List
             *                 containing an E-RAB_to_be_Setup Item 1
             *                     containing an E-RAB_ID
             *                         indicating value A
             *                     containing an E-RAB_Level_QoS_Parameters
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU
             *                 containing an E-RAB_to_be_Setup Item 2(not acceptable data for eNB)
             *                     containing an E-RAB_ID
             *                         indicating value B(different to value A)
             *                     containing an E-RAB_Level_QoS_Parameters
             *                         containing QCI
             *                             indicating not supported QCI value(255)
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU
             *         sends an E-RAB_SETUP_RESPONSE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_Setup_List
             *                 containing an E-RAB_Setup Item 1
             *                     containing an E-RAB_ID
             *                         indicating value A
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID
             *             containing an E-RAB_Failed_to_Setup_List
             *                 containing an E-RAB_List Item 1
             *                     containing an E-RAB_ID
             *                         indicating value B
             *                     containing a Cause
             *                         indicating ‘not-supported-QCI-value’.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_RAB_02
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.2.1.2(2nd dashed line in 5th dashed list) and 9.1.3.1 and 9.1.3.2
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_RAB_02() runs on S1AP system TestAdapter { 
garciay's avatar
garciay committed
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_RAB_02()); 
garciay's avatar
garciay committed
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_RAB_02
garciay's avatar
garciay committed
        } // End of group E-RAB_management_group
garciay's avatar
garciay committed
        /**
         * @desc Management group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.7 Management group
         */
        group Management_group {
            
            /**
             * @desc Verify that the IUT can successfully process all mandatory IEs in a RESET and sends a RESET_ACKNOWLEDGE due to a Reset procedure initiated from the MME.
             * <pre>
             * Pics Selection: PICS A.3/6.1.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a RESET
             *             containing a Cause
             *                 indicating an appropriate cause value
             *             containing a Reset_Type
             *                 containing a S1_Interface
             *                     indicating a value ‘Reset_all’
             *         sends a RESET_ACKNOWLEDGE
             *             containing a UE-associated_logical_S1-connection_list.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_MNP_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.1.2.1¶2 and 9.1.8.1 and 9.1.8.2
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_MNP_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_MNP_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_MNP_01
            
            /**
             * @desc Verify that the IUT can send an RESET due to a Reset procedure initiated from the E-UTRAN.
             * <pre>
             * Pics Selection: PICS A.3/6.1.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a Reset procedure initiated from the E-UTRAN
garciay's avatar
garciay committed
             *         sends a RESET
             *             containing a Cause
             *                 indicating an appropriate cause value
             *             containing a Reset_Type
             *                 containing a S1_Interface
             *                     indicating a value ‘Reset_all’.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_MNP_02
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.1.2.2¶1 and 9.1.8.1 and 9.1.8.2
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_MNP_02() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_MNP_02()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_MNP_02
            
            /**
             * @desc Verify that the IUT can successfully manage Reset procedure in case of Abnormal Condition at the E-UTRAN.
             * <pre>
             * Pics Selection: PICS A.3/6.1.1
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a RESET
             *             containing a Cause
             *                 indicating an appropriate cause value
             *             containing a Reset_Type
             *                 containing a Part_of_S1_interface
             *                     indicating one empty ‘UE-associated_logical_S1-connection’
             *         sends a RESET_ACKNOWLEDGE
             *             containing a UE-associated_logical_S1-connection_list.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_MNP_03
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.1.2.2¶1 and 9.1.8.1 and 9.1.8.2
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_MNP_03() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_MNP_03()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_eNB_MNP_03
            
            /**
             * @desc Verify that the IUT can send an ERROR_INDICATION due to an Error Indication procedure.
             * <pre>
             * Pics Selection: PICS A.3/6.2.2
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an Error Indication procedure
             *         sends an ERROR_INDICATION
             *             (containing a Cause
             *             or containing a Criticality_Diagnostics).
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_MNP_04
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.2.2 and 9.1.8.3
             */
            testcase TC_S1AP_eNB_MNP_04() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_MNP_04()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_eNB_MNP_04
            
            /**
             * @desc Verify that the IUT can send a S1_SETUP_REQUEST to indicate a S1 Setup procedure.
             * <pre>
             * Pics Selection: PICS A.3/6.3
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a S1 Setup procedure
             *         sends a S1_SETUP_REQUEST
             *         containing a Global_eNB_ID
             *         containing a Supported_TAs
             *             containing a TAC
             *         containing a Default_Paging_DRX.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_MNP_05
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.3.2¶1 and 9.1.8.4 and 9.1.8.5
             */
            testcase TC_S1AP_eNB_MNP_05() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_MNP_05()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_MNP_05
            /**
             * @desc Verify that the IUT can send an ENB_CONFIGURATION_UPDATE to indicate an eNB Configuration Update procedure.
             * <pre>
             * Pics Selection: PICS A.3/6.4
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an eNB Configuration Update procedure
             *         sends an ENB_CONFIGURATION_UPDATE
             *             containing a Global_eNB_ID
             *             containing a Supported_TAs
             *                 containing a TAC.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_MNP_06
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.4.2¶1 and 9.1.8.7 and 9.1.8.8
             */
            testcase TC_S1AP_eNB_MNP_06() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_MNP_06()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_eNB_MNP_06
            
            /**
             * @desc Verify that the IUT can successfully process all mandatory IEs in an MME_CONFIGURATION_UPDATE and 
             *       sends an MME_CONFIGURATION_UPDATE_ACKNOWLEDGE due to an MME Configuration Update procedure.
             * <pre>
             * Pics Selection: PICS A.3/6.5
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an MME_CONFIGURATION_UPDATE
             *             may containing a Served_GUMMEIs
             *             may containing a Served_PLMNs
             *         sends an MME_CONFIGURATION_UPDATE_ACKNOWLEDGE.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_MNP_07
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.5.2¶1 and 9.1.8.10 and 9.1.8.11
             */
            testcase TC_S1AP_eNB_MNP_07() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_MNP_07()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_eNB_MNP_07
            
            /**
             * @desc Verify that the IUT can successfully process all mandatory IEs in an MME_CONFIGURATION_UPDATE and 
             *       sends an MME CONFIGURATION UPDATE_FAILURE due to an invalid MME Configuration Update procedure.
             * <pre>
             * Pics Selection: PICS A.3/6.5
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an MME_CONFIGURATION_UPDATE
             *             containing a Broadcast_PLMNs
             *                 indicating at least one unknown PLMN identity
             *         sends an MME_CONFIGURATION_UPDATE_FAILURE
             *             containing a Cause
             *                 indicating an appropriate cause value.
             * </pre>
             * 
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_MNP_08
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.5.3 and 9.1.8.10 and 9.1.8.12
             */
            testcase TC_S1AP_eNB_MNP_08() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_MNP_08()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_eNB_MNP_08
            
        } // End of group Management_group
        
        /**
         * @desc S1 CDMA 2000 tunnelling group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.8   S1 CDMA 2000 tunnelling group group
         */
        group S1_CDMA_2000_tunelling_group {
            
            /**
             * @desc Verify that the IUT can send a DOWNLINK_S1_CDMA2000_TUNNELLING.
             * <pre>
             * Pics Selection: PICS A.3/7.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a CDMA2000 to be forwarded
             *         sends an UPLINK_S1_CDMA2000_TUNNELLING
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a CDMA2000_RAT_Type
             *             containing a CDMA2000_Sector_ID
             *             containing a CDMA2000_PDU.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_STP_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.8.2.2¶1 and 9.1.9.2 and 9.2.1.23
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_STP_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_STP_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_STP_01
            
        } // End of group S1_CDMA_2000_tunelling_group
        
        /**
         * @desc UE capability info indication group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.9   UE capability info indication group
         */
        group UE_capability_info_indication_group {
            
            /**
             * @desc Verify that the IUT can send a UE_CAPABILITY_INFO_INDICATION to indicate capability-related information update.
             * <pre>
             * Pics Selection: PICS A.3/8
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a capability-related information update
             *         sends an UE_CAPABILITY_INFO_INDICATION
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a containing a UE_Radio_Capability.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_UEC_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.9.2 and 9.1.10
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_UEC_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_UEC_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_UEC_01
            
        } // End of group UE_capability_info_indication_group
        
        /**
         * @desc Trace Procedures group
garciay's avatar
garciay committed
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.10  Trace group
         */
        group Trace_group {
            
            /**
             * @desc Verify that the IUT can successfully send a TRACE_FAILURE_INDICATION on TRACE_START.
             * <pre>
             * Pics Selection: PICS A.3/9.1 and A.3/9.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of a TRACE_START
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Trace_Activation
             *                 containing an E-UTRAN_Trace_ID
             *                 containing a Interfaces_To_Trace
             *                     indicating value ‘S1-MME’
             *                 containing a Trace_depth
             *                     indicating value ‘maximum’
             *                 containing a Trace_Collection_Entity_IP_Address
             *                 not containing an MDT_Configuration
             *         sends TRACE_FAILURE_INDICATION
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_Trace_ID
             *             containing a Cause
             *                 indicating an appropriate cause value.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_TRP_01
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.10.1.2-8 and 8.10.2.2 and 9.1.11.1 and 9.1.11.2
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_TRP_01() runs on S1AP system TestAdapter { 
garciay's avatar
garciay committed
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_TRP_01()); 
garciay's avatar
garciay committed
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_TRP_01
garciay's avatar
garciay committed
            
            /**
             * @desc Verify that the IUT can successfully send a TRACE_FAILURE_INDICATION on DEACTIVATE_TRACE.
             * <pre>
             * Pics Selection: PICS A.3/9.1 and A.3/9.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of a DEACTIVATE_TRACE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Trace_Activation
             *                 containing an E-UTRAN_Trace_ID
             *         sends TRACE_FAILURE_INDICATION
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_Trace_ID
             *             containing a Cause
             *                 indicating an appropriate cause value.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_TRP_02
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.10.3.2-3 and 8.10.2.2 and 9.1.11.3 and 9.1.11.2
garciay's avatar
garciay committed
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_TRP_02() runs on S1AP system TestAdapter { 
garciay's avatar
garciay committed
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_TRP_02()); 
garciay's avatar
garciay committed
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_TRP_02
garciay's avatar
garciay committed
            
            /**
             * @desc Verify that the IUT can send a CELL_TRAFFIC_TRACE when the conditions required for tracing are met.
             * <pre>
             * Pics Selection: PICS A.3/9.4
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate the conditions required for tracing are met
             *         sends CELL_TRAFFIC_TRACE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_Trace_ID
             *             containing an E-UTRAN_CGI
             *                 containing a PLMN_Identity
             *                 containing a Cell_Identity
             *             containing a Trace_Collection_Entity_IP_Address.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_TRP_03
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.10.4.2 and 9.1.18
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_TRP_03() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_TRP_03()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_TRP_03
garciay's avatar
garciay committed
        } // End of group Trace_group
        
        /**
         * @desc Location Reporting Procedures group
garciay's avatar
garciay committed
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.11  Location reporting group
         */
        group Location_reporting_group {
            
            /**
             * @desc Verify that the IUT can process all mandatory IEs in a LOCATION_REPORTING_CONTROL containing Event Type IE indicating Directly and sends a LOCATION_REPORT.
garciay's avatar
garciay committed
             * <pre>
             * Pics Selection: PICS A.3/10.1 and A.3/10.3
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of a LOCATION_REPORTING_CONTROL
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Request_Type
             *                 containing an Event_Type
             *                     indicating Directly
             *                 containing a Report_Area
             *                     indicating ECGI
             *         sends LOCATION_REPORT
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_CGI
             *                 containing a PLMN_Identity
             *                 containing a Cell_Identity
             *             containing a TAI
             *                 containing a PLMN_Identity
             *                 containing a TAC
             *             containing a Request_Type
             *                 containing a Event_Type
             *                 containing a Report_Area.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_LRP_01
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.11.1.2-2(1st dashed line) and 9.1.12.1 and 9.1.12.3 and 9.2.1.16,34,38
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_LRP_01() runs on S1AP system TestAdapter { 
garciay's avatar
garciay committed
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_LRP_01()); 
garciay's avatar
garciay committed
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_LRP_01
garciay's avatar
garciay committed
            
            /**
             * @desc Verify that the IUT can process all mandatory IEs in a LOCATION_REPORTING_CONTROL containing Event Type IE indicating Change of service cell and sends a LOCATION_REPORT.
garciay's avatar
garciay committed
             * <pre>
             * Pics Selection: PICS A.3/10.1 and A.3/10.3
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of a LOCATION_REPORTING_CONTROL
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Request_Type
             *                 containing an Event_Type
             *                     indicating change_of_service_cell
             *                 containing a Report_Area
             *                     indicating ECGI
             *         when UE changes to new cell
             *         sends LOCATION_REPORT
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_CGI
             *                 containing a PLMN_Identity
             *                 containing a Cell_Identity
             *             containing a TAI
             *                 containing a PLMN_Identity
             *                 containing a TAC
             *             containing a Request_Type
             *                 containing a Event_Type
             *                 containing a Report_Area.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_LRP_02
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.11.1.2-2(1st dashed line) and 9.1.12.1 and 9.1.12.3 and 9.2.1.16,34,38
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_LRP_02() runs on S1AP system TestAdapter { 
garciay's avatar
garciay committed
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_LRP_02()); 
garciay's avatar
garciay committed
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_LRP_02
garciay's avatar
garciay committed
            
            /**
             * @desc Verify that the IUT can process all mandatory IEs in a LOCATION_REPORTING_CONTROL containing Event Type IE indicating Stop change of service cell and sends a LOCATION_REPORT.
garciay's avatar
garciay committed
             * <pre>
             * Pics Selection: PICS A.3/10.1 and A.3/10.3
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of a LOCATION_REPORTING_CONTROL
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Request_Type
             *                 containing an Event_Type
             *                     indicating stop_change_of_service_cell
             *                 containing a Report_Area
             *                     indicating ECGI
             *         when UE changes to new cell
             *         sends LOCATION_REPORT
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_CGI
             *                 containing a PLMN_Identity
             *                 containing a Cell_Identity
             *             containing a TAI
             *                 containing a PLMN_Identity
             *                 containing a TAC
             *             containing a Request_Type
             *                 containing a Event_Type
             *                 containing a Report_Area.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_LRP_03
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.11.1.2-2(1st dashed line) and 9.1.12.1 and 9.1.12.3 and 9.2.1.16,34,38
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_LRP_03() runs on S1AP system TestAdapter { 
garciay's avatar
garciay committed
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_LRP_03()); 
garciay's avatar
garciay committed
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_LRP_03
garciay's avatar
garciay committed
            
            /**
             * @desc Verify that the IUT can send a LOCATION REPORT_FAILURE_INDICATION.
             * <pre>
             * Pics Selection: PICS A.3/10.1 and A.3/10.3
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of a LOCATION_REPORTING_CONTROL
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Request_Type
             *                 containing an Event_Type
             *                 containing a Report_Area
             *         sends LOCATION REPORT_FAILURE_INDICATION
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Cause
             *                 indicating an appropriate cause value.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_LRP_04
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.11.2.2-1 and 9.1.12.2
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_LRP_04() runs on S1AP system TestAdapter { 
garciay's avatar
garciay committed
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_LRP_04()); 
garciay's avatar
garciay committed
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_LRP_04
garciay's avatar
garciay committed
            
        } // End of group Location_reporting_group
        
        /**
         * @desc Warning message transmission group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.12 Warning message transmission group
         */
        group Warning_message_transmission_group {
            
            /**
             * @desc Verify that the IUT can successfully process all mandatory IEs in a WRITE-REPLACE_WARNING_REQUEST received and sends a WRITE-REPLACE_WARNING_RESPONSE.
garciay's avatar
garciay committed
             * <pre>
             * Pics Selection: PICS A.3/11.1
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of an WRITE-REPLACE_WARNING_REQUEST
             *             containing a Message_Identifier
             *             containing a Serial_Number
             *             containing a Repetition Period
             *             containing an Number_of_Broadcasts_Requested
             *         sends an WRITE-REPLACE_WARNING_RESPONSE
             *             containing a Serial_Number.
             * </pre>
             * 
garciay's avatar
garciay committed
             * @see       ETSI DTS/INT-00135-2 TP_S1AP_eNB_WTP_01
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.12.1.2-1 and 9.1.13.1 and 9.1.13.2
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_WTP_01() runs on S1AP system TestAdapter { 
garciay's avatar
garciay committed
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not PICS_S1AP_eNB_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                
                // Start
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_WTP_01()); 
garciay's avatar
garciay committed
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});