S1AP_TestCases.ttcn 186 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 ;
    
    // S1AP_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_TestSystem all;
    
garciay's avatar
garciay committed
    group eNB_Role {
         * @see ETSI TS 103 497-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>
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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>
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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
            testcase TC_S1AP_eNB_CMP_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
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_01()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_01
            testcase TC_S1AP_eNB_CMP_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 configuration
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_02()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_02
            testcase TC_S1AP_eNB_CMP_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 configuration
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_03()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_03
            testcase TC_S1AP_eNB_CMP_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 configuration
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_04()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_04
            
            testcase TC_S1AP_eNB_CMP_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 configuration
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_05()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_05                        
            testcase TC_S1AP_eNB_CMP_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 configuration
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_06()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_06
            testcase TC_S1AP_eNB_CMP_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 configuration
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_07()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_07
            testcase TC_S1AP_eNB_CMP_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 configuration
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_08()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_08
            testcase TC_S1AP_eNB_CMP_09() 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
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_09()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_09
            testcase TC_S1AP_eNB_CMP_10() 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
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_10()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_10
            testcase TC_S1AP_eNB_CMP_11() 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
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_11()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_11
            testcase TC_S1AP_eNB_CMP_12() 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
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_12()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_12
            testcase TC_S1AP_eNB_CMP_13() 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
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_13()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_13
            testcase TC_S1AP_eNB_CMP_14() 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
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_14()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_14
            testcase TC_S1AP_eNB_CMP_15() 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
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_15()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_15                     
            testcase TC_S1AP_eNB_CMP_16() 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
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_16()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_16
            testcase TC_S1AP_eNB_CMP_17() 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
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_17()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_17
            testcase TC_S1AP_eNB_CMP_18() 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
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_18()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_18
            testcase TC_S1AP_eNB_CMP_19() 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
                f_cf_S1AP_eNB_Up(v_s1ap_enb);
                // Start
                v_s1ap_enb.start(f_TC_S1AP_eNB_CMP_19()); 
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
            } // End of testcase TC_S1AP_eNB_CMP_19
            
        } // End of group Context_Management_group
garciay's avatar
garciay committed
        
         * @desc NAS transport group
         * @see ETSI TS 103 497-2 Clause 5.2.2.1.6   NAS transport group
         */
        group NAS_transport_group {
            
            /**
             * @desc Verify that the IUT can send an INITIAL_UE_MESSAGE to indicate the initiation of a NAS Transport procedure.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/5.1
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate the initiation of a NAS Transport procedure
             *         sends an INITIAL_UE_MESSAGE
             *             containing an eNB_UE_S1AP_ID
             *             containing a NAS-PDU
             *             containg a TAI
             *                 containing a PLMN_Identity
             *                 containing a TAC
             *             containing an E-UTRAN_CGI
             *                 containing a PLMN_Identity
             *                 containing a Cell_Identity
             *             containing a RRC_Establishment_Cause.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_eNB_NAS_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.6.2.1¶1 and 9.1.7.1
             */
            testcase TC_S1AP_eNB_NAS_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
                v_s1ap_enb.start(f_TC_S1AP_eNB_NAS_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_eNB_NAS_01
            
            /**
             * @desc Verify that the IUT can send an UPLINK_NAS_TRANSPORT to indicate an ongoing NAS Transport procedure.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/5.3
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an ongoing NAS Transport procedure
             *         sends an UPLINK_NAS_TRANSPORT
             *             containing an MME UE S1AP ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a NAS-PDU
             *             containg a TAI
             *                 containing a PLMN_Identity
             *                 containing a TAC
             *             containing an E-UTRAN_CGI
             *                 containing a PLMN_Identity
             *                 containing a Cell_Identity
             *             containing a RRC_Establishment_Cause.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_eNB_NAS_02
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.6.2.3¶1 and 9.1.7.3
             */
            testcase TC_S1AP_eNB_NAS_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
                v_s1ap_enb.start(f_TC_S1AP_eNB_NAS_02()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_eNB_NAS_02
            
            /**
             * @desc Verify that the IUT can send a NAS_NON_DELIVERY_INDICATION to indicate the eNB was unable to ensure that the message has been received by the UE.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/5.4
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a UE has not received a INITIAL_UE_MESSAGE
             *         sends a NAS_NON_DELIVERY_INDICATION
             *             containing an MME UE S1AP ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a NAS-PDU
             *             containing a Cause
             *                 indicating an appropriate cause value.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_eNB_NAS_03
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.6.2.4 and 9.1.7.4
             */
            testcase TC_S1AP_eNB_NAS_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_NAS_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_NAS_03
            
        } // End of group group NAS_transport_group
        
garciay's avatar
garciay committed
        /**
         * @desc Management group
         * @see ETSI TS 103 497-2 Clause 5.2.2.1.7 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.
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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>
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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>
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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>
garciay's avatar
garciay committed
             * Pics Selection: A.3/6.2.2
garciay's avatar
garciay committed
             * 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 TS 103 497-2 TP_S1AP_eNB_MNP_04
garciay's avatar
garciay committed
             * @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>
garciay's avatar
garciay committed
             * Pics Selection: A.3/6.3
garciay's avatar
garciay committed
             * 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 TS 103 497-2 TP_S1AP_eNB_MNP_05
garciay's avatar
garciay committed
             * @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>
garciay's avatar
garciay committed
             * Pics Selection: 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 TS 103 497-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();