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();
                
            } // 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>
garciay's avatar
garciay committed
             * Pics Selection: 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 TS 103 497-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>
garciay's avatar
garciay committed
             * Pics Selection: 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 TS 103 497-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 TS 103 497-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>
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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 TS 103 497-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>
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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
         * @see ETSI TS 103 497-2 Clause 5.2.2.1.10  Trace group
garciay's avatar
garciay committed
         */
        group Trace_group {
            
            /**
             * @desc Verify that the IUT can successfully send a TRACE_FAILURE_INDICATION on TRACE_START.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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>
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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>
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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
         * @see ETSI TS 103 497-2 Clause 5.2.2.1.11  Location reporting group
garciay's avatar
garciay committed
         */
        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>
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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>
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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>
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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>
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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 TS 103 497-2 Clause 5.2.2.1.12 Warning message transmission group
garciay's avatar
garciay committed
         */
        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>
garciay's avatar
garciay committed
             * Pics Selection: 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>
             * 
             * @see       ETSI TS 103 497-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});
                
                f_cf_Down();
                
garciay's avatar
garciay committed
            } // End of testcase TC_S1AP_eNB_WTP_01
garciay's avatar
garciay committed
            
            /**
             * @desc Verify that the IUT can successfully process all mandatory IEs in an KILL_REQUEST received and sends a KILL_RESPONSE.
garciay's avatar
garciay committed
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/11.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of a KILL_REQUEST
             *             containing a Message_Identifier
             *             containing a Serial_Number
             *         sends sends a KILL_RESPONSE
             *             containing a Message_Identifier
             *             containing a Serial_Number.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_eNB_WTP_02
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.12.2.2-1,3 and 9.1.13.3 and 9.1.13.4
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_WTP_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_WTP_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_WTP_02
garciay's avatar
garciay committed
            
            /**
             * @desc Verify that the IUT can send a PWS_RESTART_INDICATION to indicate a PWS Restart Indication procedure.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/11.3
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         to indicate a PWS Restart Indication procedure
             *         sends a PWS_RESTART_INDICATION
             *             containing an E-CGI_List_for_Restart
             *                 indicating a valid list of E-CGI
garciay's avatar
garciay committed
             *             containing a Global_ENB_ID
garciay's avatar
garciay committed
             *             containing a TAI_List_for_Restart
             *                 indicating a valid list of eNB identifier
             *             containing an Emergency_Area_ID_List_for_Restart
             *                 indicating an empty list.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_eNB_WTP_03
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.12.3.2 and 9.1.13.5
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_WTP_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_WTP_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_WTP_03
garciay's avatar
garciay committed
            
            /**
             * @desc Verify that the IUT can send a PWS_FAILURE_INDICATION to indicate PWS Failure Indication procedure.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/11.4
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         to indicate a PWS Failure Indication procedure
             *         sends a PWS_FAILURE_INDICATION
             *             containing an PWS failed E-CGI List
             *                 indicating a valid list of E-CGI
garciay's avatar
garciay committed
             *             containing a Global_ENB_ID.
garciay's avatar
garciay committed
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_eNB_WTP_04
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.12.4.2 and 9.1.13.6
             */
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_WTP_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_WTP_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_WTP_04
garciay's avatar
garciay committed
            
        } // End of group Warning_message_transmission_group
        
        /**
         * @desc eNB direct information transfer group
         * @see ETSI TS 103 497-2 Clause 5.2.2.1.13  eNB direct information transfer group
         */
        group ENB_direct_information_transfer_group {
            
            /**
             * @desc Verify that the IUT can send an eNB_DIRECT_INFORMATION_TRANSFER to indicate an eNB Direct Information Transfer procedure.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.4/12
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an eNB direct information Transfer procedure,
             *         sends an eNB_DIRECT_INFORMATION_TRANSFER
             *             containing an Inter-system_Information_Transfer_Type
             *                 containing a RIM
             *                     containing a RIM_Transfer
             *                         containing a RIM_Information
             *                         containing a RIM_Routing_Address.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_eNB_EIT_01
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.13.2.1 and 9.1.14 and 9.2.3.23
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_EIT_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_EIT_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_EIT_01
            
        } // End of group ENB_direct_information_transfer_group
        
        /**
         * @desc eNB configuration transfer group
         * @see ETSI TS 103 497-2 Clause 5.2.2.1.15  eNB configuration transfer group
         */
        group ENB_configuration_transfer_group {
            
            /**
             * @desc Verify that the IUT can send an eNB_CONFIGURATION_TRANSFER to indicate an eNB Configuration Transfer procedure.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.4/14
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an eNB Configuration Transfer procedure,
             *         sends an eNB_CONFIGURATION_TRANSFER
             *             containing a SON_Configuration_Transfer
             *                 containing a Target_eNB-ID
             *                 containing a Source_eNB-ID
             *                 containing a SON_Information.
             *                     containing a SON_Information_Request
             *                         indicating X2TNL_Configuration_Info
             *                 containing an X2_TNL_Configuration_Info.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_eNB_ECT_01
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.15.2.1 and 9.1.16
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_ECT_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
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_ECT_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_ECT_01
            
        } // End of group ENB_configuration_transfer_group
        
        /**
         * @desc LPPa transport group
         * @see ETSI TS 103 497-2 Clause 5.2.2.1.17  LPPa transport group
         */
        group LPPa_transport_group {
            
            /**
             * @desc Verify that the IUT can send a UPLINK_UE_ASSOCIATED_LPPA_TRANSPORT to indicate a LPPa Transport procedure 
             *       using a UE associated signalling.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/16.2
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a LPPa Transport procedure using a UE associated signalling,
             *         sends a UPLINK_UE_ASSOCIATED_LPPA_TRANSPORT
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Routing_ID
             *                 indicating a valid routing identifier value
             *             containing an LPPa-PDU.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_eNB_LPP_01
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.17.2.2 and 9.1.19.2
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_LPP_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
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_LPP_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_LPP_01
            
            /**
             * @desc Verify that the IUT can send a UPLINK_UE_ASSOCIATED_LPPA_TRANSPORT to indicate a LPPa Transport procedure 
             *       using a Non-UE associated signalling.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/16.4
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a LPPa Transport procedure using a UE associated signalling,
             *         sends a UPLINK_UE_ASSOCIATED_LPPA_TRANSPORT
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Routing_ID
             *                 indicating a valid routing identifier value
             *             containing an LPPa-PDU.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_eNB_LPP_02
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.17.2.4 and 9.1.19.4
garciay's avatar
garciay committed
            testcase TC_S1AP_eNB_LPP_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
garciay's avatar
garciay committed
                v_s1ap_enb.start(f_TC_S1AP_eNB_LPP_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_LPP_02
        /**
         * @desc Unknown, Unforseen and Erroneous Protocol Data
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.18  Unknown, Unforseen and Erroneous Protocol Data
         */
        group Unknown_unforseen_errorneous_group {
            
garciay's avatar
garciay committed
            /**
             * @desc Verify that the IUT rejects the procedure using Error Indication Procedure if message contains different types of received 
             *       criticality information of the Procedure Code IE and include Procedure Code IE, Triggering Message IE and 
             *       Procedure Criticality IE in the Criticality Diagnostics IE within ERROR_INDICATION.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.4/2.8 and A.4/6.2.2 and A.4/17.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an INITIAL_CONTEXT_SETUP_REQUEST,
             *         with Criticality set to value from the Table 4
             *             containing an MME UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a UE_Aggregate_Maximum_Bit_Rate
             *             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 a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU
             *             containing a UE_Security_Capabilities
             *                 containing an Encription_Algorithms
             *                     indicating not supported algoithm
             *                 containing an Integrity_Protection_Algorithms
             *             containing a Security_Key
             *         sends an ERROR_INDICATION
             *             containing a Criticality_Diagnostics
             *                 containing a Procedure_Code
             *                 containing a Triggering_Message
             *                 containing a Procedure_Criticality.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_ENB_ERR_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.4.1¶8
             */
            testcase TC_S1AP_ENB_ERR_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not (PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' 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_ERR_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_ERR_01
            
            /**
garciay's avatar
garciay committed
             * @desc Verify that the IUT rejects the procedure if message contains not comprehended IEs/IE groups marked with 
             *       ‘Reject IE’ or ‘Ignore IE and Notify Sender’ and include Information Element Criticality Diagnostics IE in 
             *       the Criticality Diagnostics IE for each reported IEs/IE groups within response message for this procedure.
garciay's avatar
garciay committed
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.4/2.8 and NOT A.4/6.2.2 and A.4/17
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an INITIAL_CONTEXT_SETUP_REQUEST,
             *         with Criticality set to value from the Table 4
             *             containing an MME UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an Unknown_ID
             *                 containing Criticality
             *                     indicating Reject or Ignore and Notify Sender
             *             containing a UE_Aggregate_Maximum_Bit_Rate
             *             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 a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU
             *             containing a UE_Security_Capabilities
             *                 containing an Encription_Algorithms
             *                     indicating not supported algoithm
             *                 containing an Integrity_Protection_Algorithms
             *             containing a Security_Key
             *         sends an an INITIAL_CONTEXT_SETUP_FAILURE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Cause
             *                 indicating appropriate Protocol Cause
             *             containing a Criticality_Diagnostics
             *                 containing an Information Element Criticality_Diagnostics
             *                     containing an IE_Criticality
             *                     containing an IE_ID
             *                     containing an IE_Type_of_Error.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_ENB_ERR_02
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.4.2¶3(1st dashed line) and 13
             */
            testcase TC_S1AP_ENB_ERR_02() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not (PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' 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_ERR_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_ERR_02
            
            /**
             * @desc Verify that the IUT rejects the procedure using Error Indication Procedure if message contains different types of received 
             *       criticality information of the Procedure Code IE and include Procedure Code IE, Triggering Message IE and 
             *       Procedure Criticality IE in the Criticality Diagnostics IE within ERROR_INDICATION.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/2.1 and A.3/6.2.2 and A.3/17.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an INITIAL_CONTEXT_SETUP_REQUEST,
             *         with Criticality set to value from the Table 4
             *             containing an MME UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an Unknown_ID
             *                 containing Criticality
             *                     indicating Reject or Ignore and Notify Sender
             *             containing a UE_Aggregate_Maximum_Bit_Rate
             *             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 a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU
             *             containing a UE_Security_Capabilities
             *                 containing an Encription_Algorithms
             *                     indicating not supported algoithm
             *                 containing an Integrity_Protection_Algorithms
             *             containing a Security_Key
             *         sends an ERROR_INDICATION
             *             containing a Criticality_Diagnostics
             *                 containing a Procedure_Code
             *                 containing a Triggering_Message
             *                 containing a Procedure_Criticality
             *                 containing an Information Element Criticality_Diagnostics
             *                     containing an IE_Criticality
             *                     containing an IE_ID
             *                     containing an IE_Type_of_Error.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_ENB_ERR_03
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.4.2¶4(2nd dashed line) and 14
             */
            testcase TC_S1AP_ENB_ERR_03() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not (PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' 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_ERR_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_ERR_03
            
            /**
             * @desc Verify that the IUT rejects the procedure if message not contains mandatory IEs/IE groups and 
             *       include Information Element Criticality Diagnostics IE in the Criticality Diagnostics IE for each 
             *       reported IEs/IE groups within response message for this procedure.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/2.1 and A.3/6.2.2 and A.3/17.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an INITIAL_CONTEXT_SETUP_REQUEST,
             *         with Criticality set to value from the Table 4
             *             containing an MME UE_S1AP_ID
             *             not containing an eNB_UE_S1AP_ID
             *             containing an Unknown_ID
             *                 containing Criticality
             *                     indicating Reject or Ignore and Notify Sender
             *             containing a UE_Aggregate_Maximum_Bit_Rate
             *             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 a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU
             *             containing a UE_Security_Capabilities
             *                 containing an Encription_Algorithms
             *                     indicating not supported algoithm
             *                 containing an Integrity_Protection_Algorithms
             *             containing a Security_Key
             *         sends an ERROR_INDICATION
             *             containing a Criticality_Diagnostics
             *                 containing a Procedure_Code
             *                 containing a Triggering_Message
             *                 containing a Procedure_Criticality
             *                 containing an Information Element Criticality_Diagnostics
             *                     containing an IE_Criticality
             *                     containing an IE_ID
             *                     containing an IE_Type_of_Error.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_ENB_ERR_04
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.5¶3(1st dashed line) and 13
             */
            testcase TC_S1AP_ENB_ERR_04() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not (PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' 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_ERR_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_ERR_04
            
            /**
             * @desc Verify that the IUT rejects the procedure using Error Indication Procedure if message not contains mandatory IEs/IE groups and 
             *       include Procedure Code IE, Triggering Message IE and Procedure Criticality IE and Information Element Criticality Diagnostics IE 
             *       in the Criticality Diagnostics IE for each reported IEs/IE groups within ERROR_INDICATION.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/2.1 and A.3/6.2.2 and A.3/17.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an E-RAB_SETUP_REQUEST,
             *             containing an MME UE_S1AP_ID
             *             not containing an eNB_UE_S1AP_ID
             *             containing a UE_Aggregate_Maximum_Bit_Rate
             *             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 ERROR_INDICATION
             *             containing a Criticality_Diagnostics
             *                 containing a Procedure_Code
             *                 containing a Triggering_Message
             *                 containing a Procedure_Criticality
             *                 containing an Information Element Criticality_Diagnostics
             *                     containing an IE_Criticality
             *                     containing an IE_ID
             *                     containing an IE_Type_of_Error.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_ENB_ERR_05
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.5¶4(2nd dashed line) and 14
             */
            testcase TC_S1AP_ENB_ERR_05() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not (PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' 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_ERR_05()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_ENB_ERR_05
            
            /**
             * @desc Verify that the IUT rejects the procedure if message contains too many occurrances of the same IEs/IE groups with 
             *       response message for this procedure and report the cause value ‘Abstract Syntax Error(Falsely Constructed Message)’.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/2.1 and A.3/6.2.2 and A.3/17.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an INITIAL_CONTEXT_SETUP_REQUEST,
             *             containing an MME UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID(same IE as already present)
             *             containing a UE_Aggregate_Maximum_Bit_Rate
             *             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 a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU
             *             containing a UE_Security_Capabilities
             *                 containing an Encription_Algorithms
             *                     indicating not supported algoithm
             *                 containing an Integrity_Protection_Algorithms
             *             containing a Security_Key
             *         sends an ERROR_INDICATION
             *             containing a Criticality_Diagnostics
             *                 containing a Procedure_Code
             *                 containing a Triggering_Message
             *                 containing a Procedure_Criticality
             *                 containing an Information Element Criticality_Diagnostics
             *                     containing an IE_Criticality
             *                     containing an IE_ID
             *                     containing an IE_Type_of_Error.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_ENB_ERR_06
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.6¶2(1st dashed line)
             */
            testcase TC_S1AP_ENB_ERR_06() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not (PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' 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_ERR_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_ERR_06
            
            /**
             * @desc Verify that the IUT terminate the procedure that does not have message to report unsuccessful outcome and message contains 
             *       too many occurrances of the same IEs/IE groups and initiate Error Indication Procedure with cause value 
             *       ‘Abstract Syntax Error(Falsely Constructed Message)’.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/2.1 and A.3/6.2.2 and A.3/17.2
garciay's avatar
garciay committed
             * 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 eNB_UE_S1AP_ID(same IE as already present)
             *             containing a UE_Aggregate_Maximum_Bit_Rate
             *             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 ERROR_INDICATION
             *             containing a Cause
             *                 indicating ‘Abstract Syntax Error(Falsely Constructed Message)’.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_ENB_ERR_07
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.5¶3(2nd dashed line)
             */
            testcase TC_S1AP_ENB_ERR_07() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not (PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' 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_ERR_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_ERR_07
            
            /**
             * @desc Verify that the IUT initiate an Error Indication procedure with inclusion of only the previousy received AP ID from the peer node 
             *       and appropriate cause value in case if AP ID has been stored previously for another UE-associated logical connection for same 
             *       peer node.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/2.1 and A.3/6.2.2 and A.3/17.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an E-RAB_SETUP_REQUEST,
             *             containing an MME UE_S1AP_ID
             *                 indicating already used AP ID
             *             containing an eNB_UE_S1AP_ID
             *                 indicating already used AP ID
             *             containing a UE_Aggregate_Maximum_Bit_Rate
             *             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 ERROR_INDICATION
             *             containing an eNB_UE_S1AP_ID
             *             containing a Cause
             *                 indicating ‘Unknown or already allocated eNB UE S1AP ID’.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_ENB_ERR_08
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.5¶3(2nd dashed line)
             */
            testcase TC_S1AP_ENB_ERR_08() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_enb; 
                
                // Test control
                if (not (PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_eNB_IUT and PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' 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_ERR_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_ERR_08
            
        } // End of group Unknown_unforseen_errorneous_group
        
garciay's avatar
garciay committed
    } // End of group eNB_Role
    
garciay's avatar
garciay committed
    group MME_Role { 
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.2   E-RAB management group
garciay's avatar
garciay committed
        group ERAB_management_group { 
            
            /**
             * @desc Verify that the IUT can send an E-RAB_SETUP_REQUEST with at least one E-RAB IE to indicate an E-RAB Setup procedure.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.4/1.1
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an E-RAB Setup procedure,
             *         sends 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 a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU.
             * </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 and 9.1.3.1
             */
            testcase TC_S1AP_MME_RAB_01() runs on S1AP system TestAdapter { 
               // Local variables
garciay's avatar
garciay committed
               var S1AP v_s1ap_mme; 
               
               // Test control
               if (not PICS_S1AP_MME_IUT) {
                   log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                   stop;
               }
garciay's avatar
garciay committed
               
               // Test component configuration
garciay's avatar
garciay committed
               f_cf_S1AP_MME_Up(v_s1ap_mme);
               
               v_s1ap_mme.start(f_TC_S1AP_MME_RAB_01());
garciay's avatar
garciay committed
               
               // synchronize PTC on 1 sychronization points
               f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
garciay's avatar
garciay committed
               
               f_cf_Down();
               
            } // End of testcase TC_S1AP_MME_RAB_01
garciay's avatar
garciay committed
            
        } // End of group ERAB_management_group

        group Context_Management_group {
garciay's avatar
garciay committed
            
            testcase TC_S1AP_MME_CMP_01() runs on S1AP system TestAdapter { 
               // Local variables
               var S1AP v_s1ap_mme; 
               
               // Test control
               if (not PICS_S1AP_MME_IUT) {
                   log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                   stop;
               }
               
               // Test component configuration
               f_cf_S1AP_MME_Up(v_s1ap_mme);
               
               // Start
               v_s1ap_mme.start(f_TC_S1AP_mME_CMP_01());
               
               // synchronize PTC on 1 sychronization points
               f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
               
               f_cf_Down();
               
            } // End of testcase TC_S1AP_MME_CMP_01
            
            testcase TC_S1AP_MME_CMP_02() runs on S1AP system TestAdapter { 
               // Local variables
               var S1AP v_s1ap_mme; 
               
               // Test control
               if (not PICS_S1AP_MME_IUT) {
                   log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                   stop;
               }
               
               // Test component configuration
               f_cf_S1AP_MME_Up(v_s1ap_mme);
               
               // Start
               v_s1ap_mme.start(f_TC_S1AP_mME_CMP_02());
               
               // synchronize PTC on 1 sychronization points
               f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
               
               f_cf_Down();
               
            } // End of testcase TC_S1AP_MME_CMP_02
garciay's avatar
garciay committed

rennoch's avatar
rennoch committed
            testcase TC_S1AP_MME_CMP_03() runs on S1AP system TestAdapter { 
               // Local variables
               var S1AP v_s1ap_mme; 
               
               // Test control
               if (not PICS_S1AP_MME_IUT) {
                   log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                   stop;
               }
               
               // Test component configuration
               f_cf_S1AP_MME_Up(v_s1ap_mme);
               
               // Start
               v_s1ap_mme.start(f_TC_S1AP_mME_CMP_03());
               
               // synchronize PTC on 1 sychronization points
               f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
               
               f_cf_Down();
               
            } // End of testcase TC_S1AP_MME_CMP_03
            
            testcase TC_S1AP_MME_CMP_04() runs on S1AP system TestAdapter { 
               // Local variables
               var S1AP v_s1ap_mme; 
               
               // Test control
               if (not PICS_S1AP_MME_IUT) {
                   log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                   stop;
               }
               
               // Test component configuration
               f_cf_S1AP_MME_Up(v_s1ap_mme);
               
               // Start
               v_s1ap_mme.start(f_TC_S1AP_mME_CMP_04());
               
               // synchronize PTC on 1 sychronization points
               f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
               
               f_cf_Down();
               
            } // End of testcase TC_S1AP_MME_CMP_04
            
            testcase TC_S1AP_MME_CMP_05() runs on S1AP system TestAdapter { 
               // Local variables
               var S1AP v_s1ap_mme; 
               
               // Test control
               if (not PICS_S1AP_MME_IUT) {
                   log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                   stop;
               }
               
               // Test component configuration
               f_cf_S1AP_MME_Up(v_s1ap_mme);
               
               // Start
               v_s1ap_mme.start(f_TC_S1AP_mME_CMP_05());
               
               // synchronize PTC on 1 sychronization points
               f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
               
               f_cf_Down();
               
            } // End of testcase TC_S1AP_MME_CMP_05
            
            testcase TC_S1AP_MME_CMP_06() runs on S1AP system TestAdapter { 
               // Local variables
               var S1AP v_s1ap_mme; 
               
               // Test control
               if (not PICS_S1AP_MME_IUT) {
                   log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                   stop;
               }
               
               // Test component configuration
               f_cf_S1AP_MME_Up(v_s1ap_mme);
               
               // Start
               v_s1ap_mme.start(f_TC_S1AP_mME_CMP_06());
               
               // synchronize PTC on 1 sychronization points
               f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
               
               f_cf_Down();
               
            } // End of testcase TC_S1AP_MME_CMP_06
            
            testcase TC_S1AP_MME_CMP_07() runs on S1AP system TestAdapter { 
               // Local variables
               var S1AP v_s1ap_mme; 
               
               // Test control
               if (not PICS_S1AP_MME_IUT) {
                   log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                   stop;
               }
               
               // Test component configuration
               f_cf_S1AP_MME_Up(v_s1ap_mme);
               
               // Start
               v_s1ap_mme.start(f_TC_S1AP_mME_CMP_07());
               
               // synchronize PTC on 1 sychronization points
               f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
               
               f_cf_Down();
               
            } // End of testcase TC_S1AP_MME_CMP_07
            
            testcase TC_S1AP_MME_CMP_08() runs on S1AP system TestAdapter { 
               // Local variables
               var S1AP v_s1ap_mme; 
               
               // Test control
               if (not PICS_S1AP_MME_IUT) {
                   log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                   stop;
               }
               
               // Test component configuration
               f_cf_S1AP_MME_Up(v_s1ap_mme);
               
               // Start
               v_s1ap_mme.start(f_TC_S1AP_mME_CMP_08());
               
               // synchronize PTC on 1 sychronization points
               f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
               
               f_cf_Down();
               
            } // End of testcase TC_S1AP_MME_CMP_08
            
            testcase TC_S1AP_MME_CMP_09() runs on S1AP system TestAdapter { 
               // Local variables
               var S1AP v_s1ap_mme; 
               
               // Test control
               if (not PICS_S1AP_MME_IUT) {
                   log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                   stop;
               }
               
               // Test component configuration
               f_cf_S1AP_MME_Up(v_s1ap_mme);
               
               // Start
               v_s1ap_mme.start(f_TC_S1AP_mME_CMP_09());
               
               // synchronize PTC on 1 sychronization points
               f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
               
               f_cf_Down();
               
            } // End of testcase TC_S1AP_MME_CMP_09
            
            testcase TC_S1AP_MME_CMP_10() runs on S1AP system TestAdapter { 
               // Local variables
               var S1AP v_s1ap_mme; 
               
               // Test control
               if (not PICS_S1AP_MME_IUT) {
                   log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                   stop;
               }
               
               // Test component configuration
               f_cf_S1AP_MME_Up(v_s1ap_mme);
               
               // Start
               v_s1ap_mme.start(f_TC_S1AP_mME_CMP_10());
               
               // synchronize PTC on 1 sychronization points
               f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
               
               f_cf_Down();
               
            } // End of testcase TC_S1AP_MME_CMP_10
            
            testcase TC_S1AP_MME_CMP_11() runs on S1AP system TestAdapter { 
               // Local variables
               var S1AP v_s1ap_mme; 
               
               // Test control
               if (not PICS_S1AP_MME_IUT) {
                   log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                   stop;
               }
               
               // Test component configuration
               f_cf_S1AP_MME_Up(v_s1ap_mme);
               
               // Start
               v_s1ap_mme.start(f_TC_S1AP_mME_CMP_11());
               
               // synchronize PTC on 1 sychronization points
               f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
               
               f_cf_Down();
               
            } // End of testcase TC_S1AP_MME_CMP_11
            
        } // End of group Context_Management_group
         * @desc Paging group
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.5  Paging group
         */
        group Pagin_group {
            
            /**
             * @desc Verify that the IUT can send a PAGING to indicate a Paging procedure.
             * <pre>
             * Pics Selection: A.4/4.4
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a Paging  procedure
             *         sends a PAGING
             *             containing a UE_Identity_Index_value
             *             containing a UE_Paging_Identity
             *                 containing a S-TMSI
             *                 containing an IMSI
             *             containing a CN_Domain.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_PAG_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.5.2¶1 and 9.1.6
             */
            testcase TC_S1AP_MME_PAG_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_PAG_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_PAG_01
            
        } // End of group Pagin_group
         * @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 a DOWNLINK_NAS_TRANSPORT to indicate an ongoing NAS Transport procedure.
             * <pre>
             * Pics Selection: A.4/5.2
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an ongoing NAS Transport procedure
             *         sends a DOWNLINK_NAS_TRANSPORT
             *             containing an MME UE S1AP ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a NAS-PDU.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_NAS_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.6.2.2¶1 and 9.1.7.2
             */
            testcase TC_S1AP_MME_NAS_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_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_MME_NAS_01
            
            /**
             * @desc Verify that the IUT can send a REROUTE_NAS_REQUEST to indicate a Reroute NAS Request procedure.
             * <pre>
             * Pics Selection: A.4/5.5
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a Reroute NAS Request procedure
             *         sends a REROUTE_NAS_REQUEST
             *             containing an MME UE S1AP ID
             *             containing a S1_Message
             *             containing an MME_Group_ID.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_NAS_02
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.6.2.2¶1 and 9.1.7.2
             */
            testcase TC_S1AP_MME_NAS_02() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_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_MME_NAS_02
            
        } // End of group NAS_transport_group
        
        /**
         * @desc Management group
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.7 Management group
         */
        group Management_group {
            
            /**
             * @desc Verify that the IUT can send a RESET to indicate a Reset procedure initiated from the MME.
             * <pre>
             * Pics Selection: A.4/6.1.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a Reset procedure initiated from the MME
             *         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_MME_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
             */
            testcase TC_S1AP_MME_MNP_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_MNP_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_MNP_01
            
            /**
             * @desc Verify that the IUT can send process successfully all mandatory IEs in a RESET and sends a RESET_ACKNOWLEDGE 
garciay's avatar
garciay committed
             *       due to a Reset procedure initiated from the E-UTRAN.
             * <pre>
             * Pics Selection: A.4/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 an S1_Interface
             *                 indicating value ‘Reset_all’
             *         sends a RESET_ACKNOWLEDGE
             *             containing a UE-associated_logical_S1-connection_list.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_MNP_02
garciay's avatar
garciay committed
             * @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
             */
            testcase TC_S1AP_MME_MNP_02() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_MNP_02()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_MNP_02
            
garciay's avatar
garciay committed
            /**
             * @desc Verify that the IUT can successfully all mandatory IEs in a RESET and sends a RESET_ACKNOWLEDGE 
garciay's avatar
garciay committed
             *       due to a Reset procedure in case of Abnormal Condition at the EPC.
             * <pre>
             * Pics Selection: A.4/6.1.1
             * 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 an empty ‘UE-associated_logical_S1-connection’
             *         sends a RESET_ACKNOWLEDGE
             *             containing a UE-associated_logical_S1-connection_list
             *                 indicating an empty ‘UE-associated_logical_S1-connection’.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_MNP_03
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.1.3.2¶1 and 9.1.8.1 and 9.1.8.2
             */
            testcase TC_S1AP_MME_MNP_03() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_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_MME_MNP_03
            
            /**
             * @desc Verify that the IUT can send a RESET to indicate a Reset procedure initiated from the eNB.
             * <pre>
             * Pics Selection: A.4/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 TS 103 497-2 TP_S1AP_MME_MNP_04
garciay's avatar
garciay committed
             * @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
             */
            testcase TC_S1AP_MME_MNP_04() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_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_MME_MNP_04
            
            /**
             * @desc Verify that the IUT can process all mandatory IEs in a S1_SETUP_REQUEST and 
             *       sends a S1_SETUP_RESPONSE to indicate a S1 Setup procedure.
garciay's avatar
garciay committed
             * <pre>
             * Pics Selection: A.4/6.3
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a S1_SETUP_REQUEST
garciay's avatar
garciay committed
             *             containing a Global_eNB_ID
             *             containing a Supported_TAs
             *                 containing a TAC
             *             containing a Default_Paging_DRX
             *         sends a S1_SETUP_RESPONSE.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_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_MME_MNP_05() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_MNP_05()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_MNP_05
            
            /**
             * @desc Verify that the IUT can process all mandatory IEs in a S1_SETUP_REQUEST and 
             *       sends a S1_SETUP_FAILURE to indicate an invalid S1 Setup procedure due to an unknown PLMN identities.
             * <pre>
             * Pics Selection: A.4/6.3
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a S1_SETUP_REQUEST
             *             containing a Global_eNB_ID
             *             containing a Supported_TAs
             *                 containing a TAC
             *             containing a Broadcast_PLMNs
             *                 indicating at least one unknown PLMN identity
             *         sends a S1_SETUP_FAILURE
             *             containing a Cause
             *                 indicating the cause value 'Unknown PLMN'.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_MNP_06
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.3.2¶1 and 9.1.8.4 and 9.1.8.6
             */
            testcase TC_S1AP_MME_MNP_06() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_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_MME_MNP_06
            
            /**
             * @desc Verify that the IUT can process all mandatory IEs in an ENB_CONFIGURATION_UPDATE and 
             *       sends an ENB_CONFIGURATION_UPDATE_ACKNOWLEDGE to indicate an eNB Configuration Update procedure.
             * <pre>
             * Pics Selection: A.4/6.4
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an ENB_CONFIGURATION_UPDATE
             *             containing a Global_eNB_ID
             *             containing a Supported_TAs
             *                 containing a TAC
             *         sends an MME_CONFIGURATION_UPDATE_ACKNOWLEDGE.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_MNP_07
             * @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_MME_MNP_07() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_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_MME_MNP_07
            
            /**
             * @desc Verify that the IUT can process all mandatory IEs in an ENB_CONFIGURATION_UPDATE and 
             *       sends an ENB_CONFIGURATION_UPDATE_FAILURE to indicate an invalid eNB Configuration Update procedure due to an invalid Global eNB identifier.
             * <pre>
             * Pics Selection: A.4/6.4
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an ENB_CONFIGURATION_UPDATE
             *             containing a Global_eNB_ID
             *                 indicating invalid value
             *         sends an ENB_CONFIGURATION_UPDATE_FAILURE
             *             containing a Cause
             *                 indicating an appropriate cause value.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_MNP_08
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.3.2¶1 and 9.1.8.7 and 9.1.8.9
             */
            testcase TC_S1AP_MME_MNP_08() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_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_MME_MNP_08
            
            /**
             * @desc Verify that the IUT can send an ENB_CONFIGURATION_UPDATE to indicate an eNB Configuration Update procedure.
             * <pre>
             * Pics Selection: A.4/6.5
             * 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_MME_MNP_09
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.4.2¶1 and 9.1.8.10
             */
            testcase TC_S1AP_MME_MNP_09() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_MNP_09()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_MNP_09
            
            /**
             * @desc Verify that the IUT can send an OVERLOAD_START to indicate an Overload Start procedure.
             * <pre>
             * Pics Selection: A.4/6.6
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an Overload Start procedure
             *         sends an OVERLOAD_START
             *             containing an Overload_Response.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_MNP_10
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.6.2¶1 and 9.1.8.13
             */
            testcase TC_S1AP_MME_MNP_10() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_MNP_10()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_MNP_10
            
            /**
             * @desc Verify that the IUT can send an OVERLOAD_STOP to indicate an Overload Stop procedure.
             * <pre>
             * Pics Selection: A.4/6.7
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an Overload Stop procedure
             *         sends an OVERLOAD_STOP
             *             containing an Overload_Response.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_MNP_11
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.7.7.2¶1 and 9.1.8.14
             */
            testcase TC_S1AP_MME_MNP_11() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_MNP_11()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_MNP_11
            
        } // End of group Management_group
        
        /**
         * @desc S1 CDMA 2000 tunnelling group group
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.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>
garciay's avatar
garciay committed
             * Pics Selection: A.3/7.1
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a CDMA2000 signalling event
             *         sends a DOWNLINK_S1_CDMA2000_TUNNELLING
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             not containing an E-RABs_Subject_to_Forwarding_Lis
             *             containing a CDMA2000_HO_type
             *             containing a CDMA2000_PDU.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_STP_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.8.2.1¶1 and 9.1.9.1
             */
            testcase TC_S1AP_MME_STP_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // 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_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_STP_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_STP_01
            
        } // End of group S1_CDMA_2000_tunelling_group
        
garciay's avatar
garciay committed
        /**
         * @desc Warning message transmission group
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.10  Trace group
garciay's avatar
garciay committed
         */
        group Trace_group {
            
            /**
             * @desc Verify that the IUT can send a TRACE_START message to indicate Trace Start procedure.
             * <pre>
             * Pics Selection: A.4/9.1
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         to indicate a Trace Start procedure
             *         sends 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.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_TRP_01
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.10.1.2¶1 and 9.1.11.1 and 9.2.1.4
             */
            testcase TC_S1AP_MME_TRP_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_TRP_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_TRP_01
            
            /**
             * @desc Verify that the IUT can successfully process all mandatory IEs in a DEACTIVATE_TRACE.
             * <pre>
             * Pics Selection: A.4/9.3
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         to indicate a Deactivate Trace procedure
             *         sends a DEACTIVATE_TRACE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_Trace_ID.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_TRP_02
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.10.1.211 and 9.1.11.2
garciay's avatar
garciay committed
             */
            testcase TC_S1AP_MME_TRP_02() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_TRP_02()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_TRP_02
            
        } // End of goup Trace_group
garciay's avatar
garciay committed
         * @desc Warning message transmission group
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.11  Location reporting group
garciay's avatar
garciay committed
         */
        group Location_reporting_group {
            
            /**
             * @desc Verify that the IUT can send a LOCATION_REPORTING_CONTROL.
             * <pre>
             * Pics Selection: A.4/10.1 and A.4/10.3
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         to indicate a Location Reporting Control procedure
             *         sends a LOCATION_REPORTING_CONTROL
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Request_Type
             *                 containing a Event_Type
             *                 containing a Report_Area
             *                     indicating ECGI.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_LRP_01
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.11.1.2-1 and 9.1.12.1 and 9.1.12.3 and 9.2.1.16,34,38
             */
            testcase TC_S1AP_MME_LRP_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_LRP_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_LRP_01
            
            /**
             * @desc Verify that the IUT can send a LOCATION_REPORTING_CONTROL and process all mandatory IEs in a LOCATION REPORT_FAILURE_INDICATION.
             * <pre>
             * Pics Selection: A.4/10.1 and A.4/10.3
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         to indicate a Location Reporting Control procedure
             *         sends a LOCATION_REPORTING_CONTROL
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Request_Type
             *                 containing a Event_Type
             *                 containing a Report_Area
             *                     indicating ECGI  
             *         receives a 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>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_LRP_02
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.11.1.2-1 and 9.1.12.1 and 9.1.12.3 and 9.2.1.16,34,38
             */
            testcase TC_S1AP_MME_LRP_02() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_LRP_02()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_LRP_02
            
        } // End of group Location_reporting_group
        
        /**
         * @desc Warning message transmission group
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.12  Warning message transmission group
garciay's avatar
garciay committed
         */
        group Warning_message_transmission_group {
            
            /**
             * @desc Verify that the IUT can send a WRITE-REPLACE_WARNING_REQUEST to indicate a Warning Message Transmission procedure.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.4/11.1
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         to indicate a Warning Message Transmission procedure
             *         sends a WRITE-REPLACE_WARNING_REQUEST
             *             containing a Message_Identifier
             *             containing a Serial_Number
             *             containing a Repetition Period
             *             containing an Number_of_Broadcasts_Requested
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_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
             */
            testcase TC_S1AP_MME_WTP_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_WTP_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_WTP_01
            
            /**
             * @desc Verify that the IUT can send a KILL_REQUEST to cancel an already ongoing broadcast of a Warning Message Transmission procedure.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.4/11.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         to indicate a cancellation of an ongoing Warning Message Transmission procedure
             *         sends a KILL_REQUEST
             *             containing a Message_Identifier
             *             containing a Serial_Number
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_WTP_02
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.12.2.2-1 and 9.1.13.3 and 9.1.13.4
             */
            testcase TC_S1AP_MME_WTP_02() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component direct information
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_WTP_02()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_WTP_02
            
        } // End of group Warning_message_transmission_group
        
        /**
         * @desc MME direct information transfer group
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.14  MME direct information transfer group
garciay's avatar
garciay committed
         */
        group MME_direct_information_transfer_group {
            
            /**
             * @desc Verify that the IUT can send an MME_DIRECT_INFORMATION_TRANSFER to indicate an MME Configuration Transfer procedure.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.4/13
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an MME Direct Information Transfer procedure,
             *         sends an MME_DIRECT_INFORMATION_TRANSFER
garciay's avatar
garciay committed
             *             containing an Inter-system_Information_Transfer_Type
garciay's avatar
garciay committed
             *                 containing a RIM
             *                     containing a RIM_Transfer
             *                         containing a RIM_Information.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_MIT_01
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.14.2.1 and 9.2.3.23
             */
            testcase TC_S1AP_MME_MIT_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_MIT_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_MIT_01
            
        } // End of group MME_direct_information_transfer_group
        
        
        /**
         * @desc MME configuration transfer 
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.16  MME configuration transfer group
         */
        group MME_configuration_transfer_group {
            
            /**
             * @desc Verify that the IUT can send an MME_CONFIGURATION_TRANSFER to indicate an MME Configuration Transfer procedure.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.4/15
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an MME Configuration Transfer procedure,
             *         sends an MME_CONFIGURATION_TRANSFER
             *             containing a SON_Configuration_Transfer
             *                 containing a Target_eNB-ID
             *                 containing a Source_eNB-ID
             *                 containing a SON_Information.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_MCT_01
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.16.2.1 and 9.1.17
             */
            testcase TC_S1AP_MME_MCT_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_MCT_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_MCT_01
            
        } // End of group MME_configuration_transfer_group
        
        /**
         * @desc LPPa transport group
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.17  LPPa transport group
         */
        group LPPa_transport_group {
            
            /**
             * @desc Verify that the IUT can send a DOWNLINK_UE_ASSOCIATED_LPPA_TRANSPORT to indicate a LPPa Transport procedure 
             *       using a UE associated signalling.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.4/16.1
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a LPPa Transport procedure using a UE associated signalling,
             *         sends a DOWNLINK_UE_ASSOCIATED_LPPA_TRANSPORT
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Routing_ID
             *                 indicating a valid routing identifier value
             *             containing an LPPa-PDU.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_LPP_01
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.17.2.1 and 9.1.19.1
             */
            testcase TC_S1AP_MME_LPP_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_LPP_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_LPP_01
            
            /**
             * @desc Verify that the IUT can send a DOWNLINK_UE_ASSOCIATED_LPPA_TRANSPORT to indicate a LPPa Transport procedure 
             *       using a non-UE associated signalling.
             * <pre>
garciay's avatar
garciay committed
             * Pics Selection: A.3/16.3
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a LPPa Transport procedure using a UE associated signalling,
             *         sends a DOWNLINK_UE_ASSOCIATED_LPPA_TRANSPORT
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Routing_ID
             *                 indicating a valid routing identifier value
             *             containing an LPPa-PDU.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_LPP_02
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 8.17.2.3 and 9.1.19.3
             */
            testcase TC_S1AP_MME_LPP_02() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not PICS_S1AP_MME_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_LPP_02()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_LPP_02
            
        } // End of group LPPa_transport_group
        
        /**
         * @desc Unknown, Unforseen and Erroneous Protocol Data
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.18  Unknown, Unforseen and Erroneous Protocol Data
         */
        group Unknown_unforseen_errorneous_group {
            
garciay's avatar
garciay committed
            /**
             * @desc Verify that the IUT rejects the procedure using Error Indication Procedure if message contains different types 
             *       of received criticality information of the Procedure Code IE and include Procedure Code IE, Triggering Message IE 
             *       and Procedure Criticality IE in the Criticality Diagnostics IE within ERROR_INDICATION.
             * <pre>
             * Pics Selection: A.4/2.8 and A.4/6.2.2 and A.4/17.2
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a UE_CONTEXT_RESUME_REQUEST,
             *         with Criticality set to value from the Table 5
             *             containing an MME UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_Failed_to_Resume_List
             *                 containing an E-RAB_Failed_to_Resume_Item 1
             *                     containing an E-RAB_ID
             *                     containing a Cause
             *                         indicating an appropriate value
             *         sends an ERROR_INDICATION
             *             containing a Criticality_Diagnostics
             *                 containing a Procedure_Code
             *                 containing a Triggering_Message
             *                 containing a Procedure_Criticality.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_ERR_01
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.4.1¶8
             */
            testcase TC_S1AP_MME_ERR_01() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not (PICS_S1AP_MME_IUT and PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT and PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_ERR_01()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_ERR_01
            
            /**
             * @desc Verify that the IUT rejects the procedure using Error Indication Procedure if message contains different types 
             *       of received criticality information of the Procedure Code IE and include Procedure Code IE, Triggering Message IE 
             *       and Procedure Criticality IE in the Criticality Diagnostics IE within ERROR_INDICATION.
             * <pre>
             * Pics Selection: A.4/2.8 and A.4/6.2.2 and A.4/17.2
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a UE_CONTEXT_RESUME_REQUEST,
             *         with Criticality set to value from the Table 5
             *             containing an MME UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an Unknown_ID
             *                 containing Criticality
             *                     indicating Reject or Ignore and Notify Sender
             *             containing an E-RAB_Failed_to_Resume_List
             *                 containing an E-RAB_Failed_to_Resume_Item 1
             *                     containing an E-RAB_ID
             *                     containing a Cause
             *                         indicating an appropriate value
             *         sends an UE_CONTEXT_RESUME_FAILURE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Cause
             *                 indicating appropriate Protocol Cause
             *             containing a Criticality_Diagnostics
             *                 containing a Procedure_Code
             *                 containing a Triggering_Message
             *                 containing a Procedure_Criticality.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_ERR_02
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.4.2¶3(1st dashed line) and 13
             */
            testcase TC_S1AP_MME_ERR_02() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not (PICS_S1AP_MME_IUT and PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT and PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_ERR_02()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_ERR_02
            
            /**
             * @desc Verify that the IUT rejects the procedure using Error Indication Procedure if message contains not comprehended 
             *       IEs/IE groups marked with ‘Reject IE’ or ‘Ignore IE and Notify Sender’ and include Procedure Code IE, 
             *       Triggering Message IE and Procedure Criticality IE and Information Element Criticality Diagnostics IE in the 
             *       Criticality Diagnostics IE for each reported IEs/IE groups within ERROR_INDICATION.
             * <pre>
             * Pics Selection: A.4/2.8 and A.4/6.2.2 and A.4/17.2
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a E-RAB_MODIFICATION_INDICATION,
             *             containing an MME UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an Unknown_ID
             *                 containing Criticality
             *                     indicating Reject or Ignore and Notify Sender
             *             containing an E-RAB_to_be_Modified_List
             *                 containing an E-RAB_to_be_Setup Item 1
             *                     containing an E-RAB_ID
garciay's avatar
garciay committed
             *                     containing a Transport_Layer_Address
             *                     containing a DL_GTP-TEID
garciay's avatar
garciay committed
             *         sends an ERROR_INDICATION
             *             containing a Criticality_Diagnostics
             *                 containing a Procedure_Code
             *                 containing a Triggering_Message
             *                 containing a Procedure_Criticality
             *                 containing an Information Element Criticality_Diagnostics
             *                     containing an IE_Criticality
             *                     containing an IE_ID
             *                     containing an IE_Type_of_Error.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_ERR_03
garciay's avatar
garciay committed
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.4.2¶4(2nd dashed line) and 14
garciay's avatar
garciay committed
             */
            testcase TC_S1AP_MME_ERR_03() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not (PICS_S1AP_MME_IUT and PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT and PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_ERR_03()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_ERR_03
            
garciay's avatar
garciay committed
            /**
             * @desc Verify that the IUT rejects the procedure if message not contains mandatory IEs/IE groups and include 
             *       Information Element Criticality Diagnostics IE in the Criticality Diagnostics IE for each reported 
             *       IEs/IE groups within response message for this procedure.
             * <pre>
             * Pics Selection: A.4/2.8 and A.4/6.2.2 and A.4/17.2
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a UE_CONTEXT_RESUME_REQUEST,
             *         with Criticality set to value from the Table 5
             *             containing an MME UE_S1AP_ID
             *             not containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_Failed_to_Resume_List
             *                 containing an E-RAB_Failed_to_Resume_Item 1
             *                     containing an E-RAB_ID
             *                     containing a Cause
             *                         indicating an appropriate value
             *         sends an UE_CONTEXT_RESUME_FAILURE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Cause
             *                 indicating appropriate Protocol Cause
             *             containing a Criticality_Diagnostics
             *                 containing an Information Element Criticality_Diagnostics
             *                     containing an IE_Criticality
             *                     containing an IE_ID
             *                     containing an IE_Type_of_Error.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_ERR_04
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.5¶3(1st dashed line) and 13
             */
            testcase TC_S1AP_MME_ERR_04() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not (PICS_S1AP_MME_IUT and PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT and PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_ERR_04()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_ERR_04
            
garciay's avatar
garciay committed
            /**
             * @desc Verify that the IUT rejects the procedure using Error Indication Procedure if message not contains mandatory 
             *       IEs/IE groups and include Procedure Code IE, Triggering Message IE and Procedure Criticality IE 
             *       and Information Element Criticality Diagnostics IE in the Criticality Diagnostics IE for each 
             *       reported IEs/IE groups within ERROR_INDICATION.
             * <pre>
             * Pics Selection: A.4/2.8 and A.4/6.2.2 and A.4/17.2
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a E-RAB_MODIFICATION_INDICATION,
             *             containing an MME UE_S1AP_ID
             *             not containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_to_be_Modified_List
             *                 containing an E-RAB_to_be_Setup Item 1
             *                     containing an E-RAB_ID
             *                     containing a Transport_Layer_Address
             *                     containing a DL_GTP-TEID
             *         sends an ERROR_INDICATION
             *             containing a Criticality_Diagnostics
             *                 containing a Procedure_Code
             *                 containing a Triggering_Message
             *                 containing a Procedure_Criticality
             *                 containing an Information Element Criticality_Diagnostics
             *                     containing an IE_Criticality
             *                     containing an IE_ID
             *                     containing an IE_Type_of_Error.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_ERR_05
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.5¶4(2nd dashed line) and 14
             */
            testcase TC_S1AP_MME_ERR_05() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not (PICS_S1AP_MME_IUT and PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT and PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_ERR_05()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_ERR_05
            
            /**
             * @desc Verify that the IUT rejects the procedure if message contains too many occurrances of the same IEs/IE groups 
             *       with response message for this procedure and report the cause value 
             *       ‘Abstract Syntax Error(Falsely Constructed Message)’.
             * <pre>
             * Pics Selection: A.4/2.8 and A.4/6.2.2 and A.4/17.2
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a UE_CONTEXT_RESUME_REQUEST,
             *         with Criticality set to value from the Table 5
             *             containing an MME UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID(same IE as already present)
             *             containing an E-RAB_Failed_to_Resume_List
             *                 containing an E-RAB_Failed_to_Resume_Item 1
             *                     containing an E-RAB_ID
             *                     containing a Cause
             *                         indicating an appropriate value
             *         sends an UE_CONTEXT_RESUME_FAILURE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Cause
             *                 indicating indicating ‘Abstract Syntax Error(Falsely Constructed Message)’.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_ERR_06
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.6¶2(1st dashed line)
             */
            testcase TC_S1AP_MME_ERR_06() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not (PICS_S1AP_MME_IUT and PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT and PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_ERR_06()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_ERR_06
            
            /**
             * @desc Verify that the IUT terminate the procedure that does not have message to report unsuccessful outcome and 
             *       message contains too many occurrances of the same IEs/IE groups and initiate Error Indication Procedure with 
             *       cause value ‘Abstract Syntax Error(Falsely Constructed Message)’.
             * <pre>
             * Pics Selection: A.4/2.8 and A.4/6.2.2 and A.4/17.2
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a E-RAB_MODIFICATION_INDICATION,
             *             containing an MME UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID(same IE as already present)
             *             containing an E-RAB_to_be_Modified_List
             *                 containing an E-RAB_to_be_Setup Item 1
             *                     containing an E-RAB_ID
             *                     containing a Transport_Layer_Address
             *                     containing a DL_GTP-TEID
             *         sends an ERROR_INDICATION
             *             containing a Cause
             *                 indicating indicating ‘Abstract Syntax Error(Falsely Constructed Message)’.
             * </pre>
             * 
             * @see       ETSI TS 103 497-2 TP_S1AP_MME_ERR_07
             * @reference ETSI TS 136 413 V13.4.0 Clause 10.3.6¶3(2nd dashed line)
             */
            testcase TC_S1AP_MME_ERR_07() runs on S1AP system TestAdapter { 
                // Local variables
                var S1AP v_s1ap_mme; 
                
                // Test control
                if (not (PICS_S1AP_MME_IUT and PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE)) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_S1AP_MME_IUT and PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
                // Test component configuration
                f_cf_S1AP_MME_Up(v_s1ap_mme);
                
                // Start
                v_s1ap_mme.start(f_TC_S1AP_MME_ERR_07()); 
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                f_cf_Down();
                
            } // End of testcase TC_S1AP_MME_ERR_07
            
        } // End of group Unknown_unforseen_errorneous_group
        
garciay's avatar
garciay committed
    } // End of group MME_Role
garciay's avatar
garciay committed
} // End of module S1AP_TestCases