S1AP_TestCases.ttcn 159 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>
             * Pics Selection: PICS A.3/1.1
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an E-RAB_SETUP_REQUEST
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_to_be_Setup_List
             *                 containing an E-RAB_to_be_Setup Item 1
             *                     containing an E-RAB_ID
             *                     containing an E-RAB_Level_QoS_Parameters
             *                         containing QCI
             *                             indicating value 5
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU
             *         sends an E-RAB_SETUP_RESPONSE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_Setup_List
             *                 containing an E-RAB_Setup Item 1
             *                     containing an E-RAB_ID
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID.
             * </pre>
             * 
             * @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>
             * Pics Selection: PICS A.3/1.1
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an E-RAB_SETUP_REQUEST
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_to_be_Setup_List
             *                 containing an E-RAB_to_be_Setup Item 1
             *                     containing an E-RAB_ID
             *                         indicating value A
             *                     containing an E-RAB_Level_QoS_Parameters
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU
             *                 containing an E-RAB_to_be_Setup Item 2(not acceptable data for eNB)
             *                     containing an E-RAB_ID
             *                         indicating value B(different to value A)
             *                     containing an E-RAB_Level_QoS_Parameters
             *                         containing QCI
             *                             indicating not supported QCI value(255)
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID
             *                     containing a NAS-PDU
             *         sends an E-RAB_SETUP_RESPONSE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-RAB_Setup_List
             *                 containing an E-RAB_Setup Item 1
             *                     containing an E-RAB_ID
             *                         indicating value A
             *                     containing a Transport_Layer_Address
             *                     containing a GTP-TEID
             *             containing an E-RAB_Failed_to_Setup_List
             *                 containing an E-RAB_List Item 1
             *                     containing an E-RAB_ID
             *                         indicating value B
             *                     containing a Cause
             *                         indicating ‘not-supported-QCI-value’.
             * </pre>
             * 
             * @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
         * @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>
             * Pics Selection: PICS 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>
             * Pics Selection: PICS 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>
             * Pics Selection: PICS 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.
             * <pre>
             * Pics Selection: PICS A.3/6.1.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a RESET
             *             containing a Cause
             *                 indicating an appropriate cause value
             *             containing a Reset_Type
             *                 containing a S1_Interface
             *                     indicating a value ‘Reset_all’
             *         sends a RESET_ACKNOWLEDGE
             *             containing a UE-associated_logical_S1-connection_list.
             * </pre>
             * 
             * @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>
             * Pics Selection: PICS A.3/6.1.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a Reset procedure initiated from the E-UTRAN
garciay's avatar
garciay committed
             *         sends a RESET
             *             containing a Cause
             *                 indicating an appropriate cause value
             *             containing a Reset_Type
             *                 containing a S1_Interface
             *                     indicating a value ‘Reset_all’.
             * </pre>
             * 
             * @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>
             * Pics Selection: PICS A.3/6.1.1
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of a RESET
             *             containing a Cause
             *                 indicating an appropriate cause value
             *             containing a Reset_Type
             *                 containing a Part_of_S1_interface
             *                     indicating one empty ‘UE-associated_logical_S1-connection’
             *         sends a RESET_ACKNOWLEDGE
             *             containing a UE-associated_logical_S1-connection_list.
             * </pre>
             * 
             * @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>
             * Pics Selection: PICS A.3/6.2.2
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an Error Indication procedure
             *         sends an ERROR_INDICATION
             *             (containing a Cause
             *             or containing a Criticality_Diagnostics).
             * </pre>
             * 
             * @see       ETSI 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>
             * Pics Selection: PICS A.3/6.3
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a S1 Setup procedure
             *         sends a S1_SETUP_REQUEST
             *         containing a Global_eNB_ID
             *         containing a Supported_TAs
             *             containing a TAC
             *         containing a Default_Paging_DRX.
             * </pre>
             * 
             * @see       ETSI 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>
             * Pics Selection: PICS A.3/6.4
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate an eNB Configuration Update procedure
             *         sends an ENB_CONFIGURATION_UPDATE
             *             containing a Global_eNB_ID
             *             containing a Supported_TAs
             *                 containing a TAC.
             * </pre>
             * 
             * @see       ETSI 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>
             * Pics Selection: PICS A.3/6.5
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an MME_CONFIGURATION_UPDATE
             *             may containing a Served_GUMMEIs
             *             may containing a Served_PLMNs
             *         sends an MME_CONFIGURATION_UPDATE_ACKNOWLEDGE.
             * </pre>
             * 
             * @see       ETSI 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>
             * Pics Selection: PICS A.3/6.5
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         on receipt of an MME_CONFIGURATION_UPDATE
             *             containing a Broadcast_PLMNs
             *                 indicating at least one unknown PLMN identity
             *         sends an MME_CONFIGURATION_UPDATE_FAILURE
             *             containing a Cause
             *                 indicating an appropriate cause value.
             * </pre>
             * 
             * @see       ETSI 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>
             * Pics Selection: PICS A.3/7.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a CDMA2000 to be forwarded
             *         sends an UPLINK_S1_CDMA2000_TUNNELLING
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a CDMA2000_RAT_Type
             *             containing a CDMA2000_Sector_ID
             *             containing a CDMA2000_PDU.
             * </pre>
             * 
             * @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>
             * Pics Selection: PICS A.3/8
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate a capability-related information update
             *         sends an UE_CAPABILITY_INFO_INDICATION
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a containing a UE_Radio_Capability.
             * </pre>
             * 
             * @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>
             * Pics Selection: PICS A.3/9.1 and A.3/9.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of a TRACE_START
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Trace_Activation
             *                 containing an E-UTRAN_Trace_ID
             *                 containing a Interfaces_To_Trace
             *                     indicating value ‘S1-MME’
             *                 containing a Trace_depth
             *                     indicating value ‘maximum’
             *                 containing a Trace_Collection_Entity_IP_Address
             *                 not containing an MDT_Configuration
             *         sends TRACE_FAILURE_INDICATION
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_Trace_ID
             *             containing a Cause
             *                 indicating an appropriate cause value.
             * </pre>
             * 
             * @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>
             * Pics Selection: PICS A.3/9.1 and A.3/9.2
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of a DEACTIVATE_TRACE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Trace_Activation
             *                 containing an E-UTRAN_Trace_ID
             *         sends TRACE_FAILURE_INDICATION
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_Trace_ID
             *             containing a Cause
             *                 indicating an appropriate cause value.
             * </pre>
             * 
             * @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>
             * Pics Selection: PICS A.3/9.4
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
             *     Ensure that the IUT
             *         to indicate the conditions required for tracing are met
             *         sends CELL_TRAFFIC_TRACE
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_Trace_ID
             *             containing an E-UTRAN_CGI
             *                 containing a PLMN_Identity
             *                 containing a Cell_Identity
             *             containing a Trace_Collection_Entity_IP_Address.
             * </pre>
             * 
             * @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>
             * Pics Selection: PICS A.3/10.1 and A.3/10.3
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of a LOCATION_REPORTING_CONTROL
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Request_Type
             *                 containing an Event_Type
             *                     indicating Directly
             *                 containing a Report_Area
             *                     indicating ECGI
             *         sends LOCATION_REPORT
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_CGI
             *                 containing a PLMN_Identity
             *                 containing a Cell_Identity
             *             containing a TAI
             *                 containing a PLMN_Identity
             *                 containing a TAC
             *             containing a Request_Type
             *                 containing a Event_Type
             *                 containing a Report_Area.
             * </pre>
             * 
             * @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>
             * Pics Selection: PICS A.3/10.1 and A.3/10.3
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of a LOCATION_REPORTING_CONTROL
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Request_Type
             *                 containing an Event_Type
             *                     indicating change_of_service_cell
             *                 containing a Report_Area
             *                     indicating ECGI
             *         when UE changes to new cell
             *         sends LOCATION_REPORT
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_CGI
             *                 containing a PLMN_Identity
             *                 containing a Cell_Identity
             *             containing a TAI
             *                 containing a PLMN_Identity
             *                 containing a TAC
             *             containing a Request_Type
             *                 containing a Event_Type
             *                 containing a Report_Area.
             * </pre>
             * 
             * @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>
             * Pics Selection: PICS A.3/10.1 and A.3/10.3
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of a LOCATION_REPORTING_CONTROL
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Request_Type
             *                 containing an Event_Type
             *                     indicating stop_change_of_service_cell
             *                 containing a Report_Area
             *                     indicating ECGI
             *         when UE changes to new cell
             *         sends LOCATION_REPORT
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing an E-UTRAN_CGI
             *                 containing a PLMN_Identity
             *                 containing a Cell_Identity
             *             containing a TAI
             *                 containing a PLMN_Identity
             *                 containing a TAC
             *             containing a Request_Type
             *                 containing a Event_Type
             *                 containing a Report_Area.
             * </pre>
             * 
             * @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>
             * Pics Selection: PICS A.3/10.1 and A.3/10.3
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of a LOCATION_REPORTING_CONTROL
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Request_Type
             *                 containing an Event_Type
             *                 containing a Report_Area
             *         sends LOCATION REPORT_FAILURE_INDICATION
             *             containing an MME_UE_S1AP_ID
             *             containing an eNB_UE_S1AP_ID
             *             containing a Cause
             *                 indicating an appropriate cause value.
             * </pre>
             * 
             * @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>
             * Pics Selection: PICS A.3/11.1
garciay's avatar
garciay committed
             * Configuration: CF_S1-MME
garciay's avatar
garciay committed
             *     Ensure that the IUT
             *         on receipt of an WRITE-REPLACE_WARNING_REQUEST
             *             containing a Message_Identifier
             *             containing a Serial_Number
             *             containing a Repetition Period
             *             containing an Number_of_Broadcasts_Requested
             *         sends an WRITE-REPLACE_WARNING_RESPONSE
             *             containing a Serial_Number.
             * </pre>
             * 
             * @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>
             * Pics Selection: PICS 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>
             * Pics Selection: PICS 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>
             * Pics Selection: PICS 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>
             * Pics Selection: PICS 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>
             * Pics Selection: PICS 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>
             * Pics Selection: PICS 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>
             * Pics Selection: PICS 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
1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395
            /**
             * @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: PICS A.3/2.1 and A.3/6.2.2 and A.3/17.2
             * 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
            
            /**
             * @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: PICS A.3/2.1 and A.3/6.2.2 and A.3/17.2
             * 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>
             * Pics Selection: PICS A.3/2.1 and A.3/6.2.2 and A.3/17.2
             * 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>
             * Pics Selection: PICS A.3/2.1 and A.3/6.2.2 and A.3/17.2
             * 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>
             * Pics Selection: PICS A.3/2.1 and A.3/6.2.2 and A.3/17.2
             * 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>
             * Pics Selection: PICS A.3/2.1 and A.3/6.2.2 and A.3/17.2
             * 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>
             * Pics Selection: PICS A.3/2.1 and A.3/6.2.2 and A.3/17.2
             * 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>
             * Pics Selection: PICS A.3/2.1 and A.3/6.2.2 and A.3/17.2
             * 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
    
    group MME_Role { // TODO Review all preamble action: E-RAB Setup is exchanged for MME role, shall not be f_rABSetupRequest
         * @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>
             * Pics Selection: PICS 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 {
            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

        } // 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>
             * Pics Selection: PICS 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>
             * Pics Selection: PICS 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>
             * Pics Selection: PICS 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>
             * Pics Selection: PICS A.4/13
             * 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>
             * Pics Selection: PICS 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>
             * Pics Selection: PICS 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>
             * Pics Selection: PICS 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 {
            
        } // 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