AtsGtpv2C_TestCases.ttcn 76 KB
Newer Older
garciay's avatar
garciay committed
/**
 * @author      ETSI/STF498
 * @version     $Url$
 *              $Id$
 * @desc        Testcases module for INT GTPv2-C protocol
garciay's avatar
garciay committed
 */
module AtsGtpv2C_TestCases {
    
    // Libcommon
    import from LibCommon_BasicTypesAndValues all;
    import from LibCommon_DataStrings all;
    import from LibCommon_Time all;
    import from LibCommon_VerdictControl all;
    import from LibCommon_Sync all;
    
    // LibGtpv2C
garciay's avatar
garciay committed
    import from LibGtpv2C_TypesAndValues all;
garciay's avatar
garciay committed
    import from LibGtpv2C_TestSystem all;
    import from LibGtpv2C_Pics all;
    import from LibGtpv2C_Configuration all;
    import from LibGtpv2C_MME_Functions all;
    import from LibGtpv2C_SGW_Functions all;
    
    /**
     * @desc This group contains all test case for IUT acting as a MME
     */
    group mmeRole {
        
        /**
         * @desc This group contains all test case for IUT acting as a MME
         * @see ETSI TS 103 202-2 V0.0.2 (2014-03), clause 5.2.1
         */
        group pathManagement {
            
            /**
garciay's avatar
garciay committed
             * @desc    Verify the successful answering of Echo Request with Echo Response
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_MME and PICS_ECHO_REQUEST and PICS_ECHO_REPLY
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      EPC and RAN network available
             *      MME is configured with the GTP Tunnel Parameter.
             *      S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      Power on the MME and S-GW
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          Trigger MME to initiate the Echo Request Procedure
             *      }
             *      then {
             *          GTP Echo Request is sent which contains the Recovery Information Element (IE)
             *          and, the Recovery IE is either incorrect or has the wrong format
             *          and, the Echo Response contains the Restart counter and a negative Cause value
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_PM_01
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.1.1 & 7.1.2
             */
garciay's avatar
garciay committed
            testcase TC_S11_MME_PM_01() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_MME and PICS_ECHO_REQUEST and PICS_ECHO_REPLY)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_ECHO_REQUEST and PICS_ECHO_REPLY required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01_S11Up_MME();
                
                // Start
garciay's avatar
garciay committed
                vc_sgw.start(f_TC_S11_MME_PM_01());
garciay's avatar
garciay committed
                
garciay's avatar
garciay committed
                // synchronize PTC on 1 sychronization point
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
garciay's avatar
garciay committed
                
                // Postamble
                f_cf01_S11Down_MME();
                
            } // End of testcase TC_S11_MME_PM_01 
            
            /**
garciay's avatar
garciay committed
             * @desc    Verify the successful answering of Echo Request with Echo Response with a negative cause value
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_MME and PICS_ECHO_REQUEST and PICS_ECHO_REPLY
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      EPC and RAN network available
             *      MME is configured with the GTP Tunnel Parameter.
             *      S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      Power on the MME and S-GW
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          Trigger MME (or simulator) initiates the Echo Request Procedure with an error
             *      }
             *      then {
             *          GTP Echo Request is sent which contains the Recovery Information Element (IE)
             *          and, the Recovery IE is either incorrect or has the wrong format
             *          and, the Echo Response contains the Restart counter and a negative Cause value
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_PM_02
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.1.1 & 7.1.2
             */
garciay's avatar
garciay committed
            testcase TC_S11_MME_PM_02() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_MME and PICS_ECHO_REQUEST and PICS_ECHO_REPLY)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_ECHO_REQUEST and PICS_ECHO_REPLY required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01_S11Up_MME();
                
                // Start
garciay's avatar
garciay committed
                vc_sgw.start(f_TC_S11_MME_PM_02());
garciay's avatar
garciay committed
                
garciay's avatar
garciay committed
                // synchronize PTC on 1 sychronization point
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
garciay's avatar
garciay committed
                
                // Postamble
                f_cf01_S11Down_MME();
                
            } // End of testcase TC_S11_MME_PM_02 
            
            /**
garciay's avatar
garciay committed
             * @desc    Verify the GTP version that the sending entity supports.  If a GTP network element receives a message of unsupported GTP version, verify that the network element returns a Version Not Supported Indication message and that it discards the received message
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_MME and PICS_VERSION_NOT_SUPPORTED
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      EPC and RAN network available
             *      Network should be configured as show in Figure 3 above.
             *      MME is configured with the GTP Tunnel Parameter.
             *      S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      Power on the MME and S-GW
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          MME (or simulator) initiates the Version Not supported Procedure by sending a GTP message which contains a version higher than the latest version
             *      }
             *      then {
             *          Verify that any given GTP message (e.g. Echo Request) contains a version that is higher than the latest supported version.
             *          and, verify that the Version not Supported Indication contains the GTP version the network element  currently supports
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_PM_03
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.1.3
             */
garciay's avatar
garciay committed
            testcase TC_S11_MME_PM_03() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_MME and PICS_VERSION_NOT_SUPPORTED)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_VERSION_NOT_SUPPORTED required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01_S11Up_MME();
                
                // Start
garciay's avatar
garciay committed
                vc_sgw.start(f_TC_S11_MME_PM_03());
garciay's avatar
garciay committed
                
garciay's avatar
garciay committed
                // synchronize PTC on 1 sychronization point
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
garciay's avatar
garciay committed
                
                // Postamble
                f_cf01_S11Down_MME();
                
            } // End of testcase TC_S11_MME_PM_03 
            
        } // End of group pathManagement 
        
        /**
         * @desc This group contains all test case for IUT acting as a MME
         * @see ETSI TS 103 202-2 V0.0.2 (2014-03), clause 5.2.2
         */
        group tunnelManagement {
            
            /**
garciay's avatar
garciay committed
             * @desc    Validate the Create Session Request/Response and the Modify Bearer Request/Response Procedure between MME and S-GW as part of the ATTACH Procedure
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_MME and PICS_MME_CREATE_SESSION_REQUEST and PICS_MME_CREATE_BEARER_RESPONSE and PICS_MME_MODIFY_BEARER_REQUEST
             * Config Id: CF02
             * Initial conditions:
             *  with {
             *      EPC, RAN, and one UE are available.
             *      MME is configured the GTP Tunnel Parameter.
             *      S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          UE registers with and attaches to the network to receive services that require registration
             *          A default EPS bearer is setup as result of attachment
             *          This forces the Create Session and Modify Bearer ProcedureTrigger MME (or simulator) initiates the Echo Request Procedure with an error
             *      }
             *      then {
             *          Verify that the MME sends Create Session Request and receives the Create Session Response
             *          and, verify that the MME sends the Modify Bearer Request and receives the Modify Bearer Response as part of the Attach procedure
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_TM_01
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.2.1, 7.2.2, 7.2.7, 7.2.8
             */
garciay's avatar
garciay committed
            testcase TC_S11_MME_TM_01() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_MME and PICS_MME_CREATE_SESSION_REQUEST and PICS_MME_CREATE_BEARER_RESPONSE and PICS_MME_MODIFY_BEARER_REQUEST)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_MME_CREATE_SESSION_REQUEST and PICS_MME_CREATE_BEARER_RESPONSE and PICS_MME_MODIFY_BEARER_REQUEST required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf02_S11Up_MME();
                
                // Start
garciay's avatar
garciay committed
                vc_s1mme.start(f_TC_S1_MME_TM_01());
                vc_sgw.start(f_TC_S11_MME_TM_01());
garciay's avatar
garciay committed
                
garciay's avatar
garciay committed
                // synchronize PTC on 2 sychronization point(s)
                f_serverSyncNClientsAndStop(2, {c_prDone, c_requestMessagesDone, c_tbDone, c_poDone});
garciay's avatar
garciay committed
                
                // Postamble
                f_cf02_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_01 
            
garciay's avatar
garciay committed
             * @desc    Validate that S-GW is able to request the MME to start Create Bearer Request Procedure.
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_MME and PICS_MME_CREATE_SESSION_REQUEST and PICS_MME_CREATE_BEARER_RESPONSE and PICS_MME_MODIFY_BEARER_REQUEST
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      EPC, RAN, and one UE are available.
             *      MME is configured the GTP Tunnel Parameter.
             *      S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      UE attaches to the network. During the attach procedure the S-GW sends the Create Bearer Request message to the MME as part of the Dedicated Bearer Activation Procedure.
             *      The QoS parameter is updated in the P-GW. 
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          An IP-CAN Session Modification or,
             *          the PDN-GW may apply local QoS policy (change over PDN-GW OAM the QoS parameter for this UE)
             *      }
             *      then {
             *          Verify that the MME sends back a Create Bearer Response message to the S-GW
             *          and, verify that, in the case where dynamic PCC is deployed, the PCRF sends a PCC decision provision (QoS policy) message to the PDN GW
             *          or, verify that, in the case where dynamic PCC is not deployed, the PDN GW may apply local QoS policy
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_TM_02
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.2.3, 7.2.4
             * @reference   ETSI TS 123.401 V9.13.0, clauses 5.4.1
             */
            testcase TC_S11_MME_TM_02() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_MME and PICS_MME_CREATE_SESSION_REQUEST and PICS_MME_CREATE_BEARER_RESPONSE and PICS_MME_MODIFY_BEARER_REQUEST)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_MME_CREATE_SESSION_REQUEST and PICS_MME_CREATE_BEARER_RESPONSE and PICS_MME_MODIFY_BEARER_REQUEST required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
garciay's avatar
garciay committed
                f_cf02_S11Up_MME();
garciay's avatar
garciay committed
                vc_s1mme.start(f_TC_S1_MME_TM_02());
garciay's avatar
garciay committed
                vc_sgw.start(f_TC_S11_MME_TM_02());
garciay's avatar
garciay committed
                // synchronize PTC on 2 sychronization point(s)
                f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone});
garciay's avatar
garciay committed
                f_cf02_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_02 
            
garciay's avatar
garciay committed
            /**
garciay's avatar
garciay committed
             * @desc    Validate that a Bearer Resource Command message shall be sent from a MME to a S-GW and forwarded to the PDN-GW as a part of the UE requested bearer resource allocation procedure or UE requested bearer resource modification procedure.
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_MME and PICS_MME_BEARER_RESOURCE_COMMAND
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      EPC, RAN, and one UE are available.
             *      MME is configured the GTP Tunnel Parameter.
             *      S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      UE attaches to the network.
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          The user starts an application on the UE and then changes to a different application (e.g. from Web browsing to FTP)
             *      }
             *      then {
             *          Verify that the IUT sends a Bearer Resource Command to the S-GW
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_TM_03
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.2.5
             * @reference   ETSI TS 123.401 V9.13.0, clauses 5.4.5
             */
garciay's avatar
garciay committed
            testcase TC_S11_MME_TM_03() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_MME and PICS_MME_BEARER_RESOURCE_COMMAND)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_MME_BEARER_RESOURCE_COMMAND required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01_S11Up_MME();
                
                // Start
                vc_sgw.start(f_TC_S11_MME_TM_03());
                
garciay's avatar
garciay committed
                // synchronize PTC on 1 sychronization point(s)
garciay's avatar
garciay committed
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf01_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_03 
            
            /**
garciay's avatar
garciay committed
             * @desc    Validate that a Bearer Resource Command message shall be sent from a MME to a S-GW and forwarded to the PDN-GW as a part of the UE requested bearer resource allocation procedure or UE requested bearer resource modification procedure.
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_MME and PICS_MME_BEARER_RESOURCE_COMMAND
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      CORE, RAN, and one UE available.
             *      MME is configured with the GTP Tunnel Parameter.
             *      S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      The resources or the memory in the PDN-GW shall be limited via the OAM interface in order to trigger the Bearer Resource Failure Indication.
             *      UE attaches to the network.
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          The user changes the application being used on the UE.  For example, the user changes the application being used on the UE from web browsing to FTP
             *      }
             *      then {
             *          Verify that the IUT sends a Bearer Resource Command to the S-GW
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_TM_04
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.2.6
             */
garciay's avatar
garciay committed
            testcase TC_S11_MME_TM_04() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_MME and PICS_MME_BEARER_RESOURCE_COMMAND)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_MME_BEARER_RESOURCE_COMMAND required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01_S11Up_MME();
                
                // Start
                vc_sgw.start(f_TC_S11_MME_TM_04());
                
garciay's avatar
garciay committed
                // synchronize PTC on 1 sychronization point(s)
garciay's avatar
garciay committed
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf01_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_04 
            
            /**
garciay's avatar
garciay committed
             * @desc    Check the exchange of Delete Session Request/Response after NAS Detach Request
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_MME and PICS_MME_DELETE_SESSION_REQUEST
             * Config Id: CF02
             * Initial conditions:
             *  with {
             *      EPC, RAN, and one UE available.
             *      MME is configured with the GTP Tunnel Parameter.
             *      S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      UE attaches to the network.
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          The UE is switched off
             *      }
             *      then {
             *          Verify that the IUT sends a Delete Session Request to the S-GW
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_TM_05
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.2.9.1 & 7.2.10.1
             * @reference   ETSI TS 123.401, clauses 5.3.8.2
             */
garciay's avatar
garciay committed
            testcase TC_S11_MME_TM_05() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_MME and PICS_MME_DELETE_SESSION_REQUEST)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_MME_DELETE_BEARER_REQUEST required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf02_S11Up_MME();
                
                // Start
                vc_s1mme.start(f_TC_S1_MME_TM_05());
                vc_sgw.start(f_TC_S11_MME_TM_05());
                
garciay's avatar
garciay committed
                // synchronize PTC on 2 sychronization point(s)
garciay's avatar
garciay committed
                f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf02_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_05 
            
            /**
garciay's avatar
garciay committed
             * @desc    Check the exchange of Delete Bearer Request/Response as part of the PDN-GW initiated bearer deactivation procedure
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_MME and PICS_MME_DELETE_BEARER_RESPONSE
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      EPC, RAN, and one UE available.
             *      OAM access to PDN-GW database is required to modify QoS parameters.
             *      MME is configured with the GTP Tunnel Parameter.
             *      S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      UE attaches to the network and is in the ECM-CONNECTED state.
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          The IUT receives the Delete Bearer Request from the S-GW
             *      }
             *      then {
             *          Verify that the IUT sends a Delete Bearer Response to the S-GW
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_TM_06
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.2.9.2 & 7.2.10.2
             * @reference   ETSI TS 123.401, clauses 5.4.4
             */
garciay's avatar
garciay committed
            testcase TC_S11_MME_TM_06() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_MME and PICS_MME_DELETE_BEARER_RESPONSE)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_MME_DELETE_BEARER_RESPONSE required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01_S11Up_MME();
                
                // Start
                vc_sgw.start(f_TC_S11_MME_TM_06());
                
garciay's avatar
garciay committed
                // synchronize PTC on 1 sychronization point(s)
garciay's avatar
garciay committed
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf01_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_06 
            
garciay's avatar
garciay committed
            /**
             * @desc    Verify that the Serving GW sends a Downlink Data Notification message to the MME for which it has control plane connectivity for a given UE
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_MME and PICS_MME_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      EPC, RAN, and one UE is required.
             *      MME is configured with the GTP Tunnel Parameter.
             *      S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      UE attaches to the network and is in an ECM-IDLE (inactive) state.
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          The IUT receives a Downlink Data Notification from the S-GW
             *      }
             *      then {
             *          Verify that the IUT sends a Downlink Data Notification Ack message to the S-GW
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_TM_07
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.2.11.1 & 7.2.11.2
             * @reference   ETSI TS 123.401, clauses 5.3.4.3
             */
            testcase TC_S11_MME_TM_07() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_MME and PICS_MME_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_MME_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf02_S11Up_MME();
                
                // Start
                vc_s1mme.start(f_TC_S1_MME_TM_07());
                vc_sgw.start(f_TC_S11_MME_TM_07());
                
                // synchronize PTC on 2 sychronization point(s)
                f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf02_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_07 
            
            /**
             * @desc    Verify that a Downlink Data Notification Failure indication is sent from an MME/SGSN to an S-GW 
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_MME and PICS_MME_DOWNLINK_DATA_FAILURE_INDICATION
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      EPC, RAN, and one UE is required.
             *      MME is configured with the GTP Tunnel Parameter.
             *      S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      UE attaches to the network and is in an ECM-IDLE (inactive) state.
             *      Do not respond to the Paging message
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          The IUT receives a a Downlink Data Notification
             *      }
             *      then {
             *          Verify that the IUT sends a Downlink Data Notification Failure indication message to the S-GW
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_TM_08
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.2.11.1 & 7.2.11.2
             * @reference   ETSI TS 123.401, clauses 5.3.4.3
             */
            testcase TC_S11_MME_TM_08() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_MME and PICS_MME_DOWNLINK_DATA_FAILURE_INDICATION)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_MME_DOWNLINK_DATA_FAILURE_INDICATION required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf02_S11Up_MME();
                
                // Start
                vc_s1mme.start(f_TC_S1_MME_TM_08());
                vc_sgw.start(f_TC_S11_MME_TM_08());
                
                // synchronize PTC on 2 sychronization point(s)
                f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf02_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_08 
            
            /**
             * @desc    Verify that, as a result of S1-based handover, the Delete Indirect Data Forwarding Tunnel Request message is sent on the S4/S11 interface by the SGSN/MME to the S-GW to delete the Indirect Forwarding Tunnels in the Source S-GW/Target S-GW 
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_MME and PICS_MME_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      EPC and one UE available. For the RAN portion, two eNBs connected over two S1 interfaces where each eNB has one cell is required.
             *      An MME is configured with the GTP Tunnel Parameter.
             *      An S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      Attach the UE to the network and verify it is in ECM-CONNECTED state
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          The UE performs an S1 handover to the cell of the second eNB
             *      }
             *      then {
             *          Verify that the IUT sends a Delete Indirect Data Forwarding Tunnel Request message to the S-GW
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_TM_09
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.2.12 & 7.2.13
             * @reference   ETSI TS 123.401, clauses 5.5.1.2.2
             */
            testcase TC_S11_MME_TM_09() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_MME and PICS_MME_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_MME_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf02_S11Up_MME();
                
                // Start
                vc_s1mme.start(f_TC_S1_MME_TM_09());
                vc_sgw.start(f_TC_S11_MME_TM_09());
                
                // synchronize PTC on 2 sychronization point(s)
                f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf02_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_09 
            
            /**
             * @desc    Verify that the Modify Bearer Command procedure is triggering the Bearer Modificaiton Procedure with Bearer QoS Update
             *          This procedure is part of the HSS Initiated Subscribed QoS Modification procedure
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_MME and PICS_MME_MODIFY_BEARER_COMMAND
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      EPC, RAN, and one UE available. 
             *      Configured the MME with the GTP Tunnel Parameter.
             *      Configure the S-GW with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      Turn on the UE.  Verify the UE is in ECM-IDLE mode.
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          Trigger the procedure by generating an Insert Subscriber Data (IMSI, Subscription Data) message at the HSS.  This message will terminate at the MME.  This message can be triggered via the HSS OAM interface, where the user can change the ARP or QCI value associated with the UE.  The Insert Subscriber Data message includes EPS subscribed QoS (both QCI and ARP) and the subscribed UE–AMBR and APN AMBR.
             *          Attach the UE to the network.
             *          Verify the UE is in ECM-CONNECTED mode
             *      }
             *      then {
             *          Verify that the IUT sends a Modify Bearer Command message to the S-GW
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_TM_10
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.2.14
             * @reference   ETSI TS 123.401, clauses 5.4.2.2.1
             */
            testcase TC_S11_MME_TM_10() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_MME and PICS_MME_MODIFY_BEARER_COMMAND)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_MME_MODIFY_BEARER_COMMAND required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf02_S11Up_MME();
                
                // Start
                vc_s1mme.start(f_TC_S1_MME_TM_10());
                vc_sgw.start(f_TC_S11_MME_TM_10());
                
                // synchronize PTC on 2 sychronization point(s)
                f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf02_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_10 
            
            /**
             * @desc    Verify that the Modify Bearer Failure Indication shall be sent on the S11 interface by the S-GW to the MME as part of the failure of HSS Initiated Subscribed QoS Modificaiton procedure
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_MME and PICS_MME_MODIFY_BEARER_COMMAND
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      EPC, RAN, and one UE available. 
             *      Configured the MME with the GTP Tunnel Parameter.
             *      Configure the S-GW with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      Turn on the UE.  Verify the UE is in ECM-IDLE mode.
             *      Via the OAM interface of the P-GW modify the avialiable resources or memory in the P-GW so they are not available
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          Trigger the procedure by generating an Insert Subscriber Data (IMSI, Subscription Data) message at the HSS.
             *      }
             *      then {
             *          Verify that the IUT sends a Modify Bearer Command message to the S-GW
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_TM_11
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.2.14
             * @reference   ETSI TS 123.401, clauses 5.4.2.2.1
             */
            testcase TC_S11_MME_TM_11() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_MME and PICS_MME_MODIFY_BEARER_COMMAND)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_MME_MODIFY_BEARER_COMMAND required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf02_S11Up_MME();
                
                // Start
                vc_s1mme.start(f_TC_S1_MME_TM_11());
                vc_sgw.start(f_TC_S11_MME_TM_11());
                
                // synchronize PTC on 2 sychronization point(s)
                f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf02_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_11 
            
garciay's avatar
garciay committed
        } // End of group tunnelManagement 
        
    } // End of group mmeRole 
    
    /**
     * @desc This group contains all test case for IUT acting as a S-GW
     */
    group sgwRole {
    
        /**
         * @desc This group contains all test case for IUT acting as a MME
         * @see ETSI TS 103 202-2 V0.0.2 (2014-03), clause 5.2.1
         */
        group pathManagement {
            
            /**
garciay's avatar
garciay committed
             * @desc    Verify the successful answering of Echo Request with Echo Response
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_SGW and PICS_ECHO_REQUEST and PICS_ECHO_REPLY
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      EPC and RAN network available
             *      MME is configured with the GTP Tunnel Parameter.
             *      S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      Power on the MME and S-GW
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          Trigger MME to initiate the Echo Request Procedure
             *      }
             *      then {
             *          GTP Echo Request is sent which contains the Recovery Information Element (IE)
             *          and, the Recovery IE is either incorrect or has the wrong format.
             *          and, the Echo Response contains the Restart counter and a negative Cause value
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_PM_01
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.1.1 & 7.1.2
             */
garciay's avatar
garciay committed
            testcase TC_S11_SGW_PM_01() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_SGW and PICS_ECHO_REQUEST and PICS_ECHO_REPLY)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_SGW and PICS_ECHO_REQUEST and PICS_ECHO_REPLY required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01_S11Up_SGW();
                
                // Start
garciay's avatar
garciay committed
                vc_mme.start(f_TC_S11_SGW_PM_01());
garciay's avatar
garciay committed
                
garciay's avatar
garciay committed
                // synchronize PTC on 1 sychronization point
garciay's avatar
garciay committed
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf01_S11Down_SGW();
                
            } // End of testcase TC_S11_SGW_PM_01 
            
            /**
garciay's avatar
garciay committed
             * @desc    Verify the successful answering of Echo Request with Echo Response with a negative cause value
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_SGW and PICS_ECHO_REQUEST and PICS_ECHO_REPLY
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      EPC and RAN network available
             *      MME is configured with the GTP Tunnel Parameter.
             *      S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      Power on the MME and S-GW
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          Trigger MME (or simulator) initiates the Echo Request Procedure with an error
             *      }
             *      then {
             *          GTP Echo Request is sent which contains the Recovery Information Element (IE)
             *          and, the Recovery IE is either incorrect or has the wrong format
             *          and, the Echo Response contains the Restart counter and a negative Cause value
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_PM_02
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.1.1 & 7.1.2
             */
garciay's avatar
garciay committed
            testcase TC_S11_SGW_PM_02() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_SGW and PICS_ECHO_REQUEST and PICS_ECHO_REPLY)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_SGW and PICS_ECHO_REQUEST and PICS_ECHO_REPLY required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01_S11Up_SGW();
                
                // Start
garciay's avatar
garciay committed
                vc_mme.start(f_TC_S11_SGW_PM_02());
garciay's avatar
garciay committed
                
garciay's avatar
garciay committed
                // synchronize PTC on 1 sychronization point
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
garciay's avatar
garciay committed
                
                // Postamble
                f_cf01_S11Down_SGW();
                
            } // End of testcase TC_S11_SGW_PM_02 
            
            /**
garciay's avatar
garciay committed
             * @desc    Verify the GTP version that the sending entity supports.  If a GTP network element receives a message of unsupported GTP version, verify that the network element returns a Version Not Supported Indication message and that it discards the received message
             * <pre>
             * Pics Selection: PICS_S11_IUT_IS_SGW and PICS_VERSION_NOT_SUPPORTED
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      EPC and RAN network available
             *      Network should be configured as show in Figure 3 above.
             *      MME is configured with the GTP Tunnel Parameter.
             *      S-GW is configured with the GTP Tunnel Parameter.
             *      Verify IP connectivity between the two nodes.
             *      Power on the MME and S-GW
             *  }
             * Expected behaviour:
             *  ensure that {
             *      when {
             *          MME (or simulator) initiates the Version Not supported Procedure by sending a GTP message which contains a version higher than the latest version
             *      }
             *      then {
             *          Verify that any given GTP message (e.g. Echo Request) contains a version that is higher than the latest supported version.
             *          and, verify that the Version not Supported Indication contains the GTP version the network element  currently supports
             *      }
             *  }
             * </pre>
             * @verdict pass on success, inconc on timeout, fail otherwise
             *
             * @see         ETSI TS 103 202-2 V0.0.2 (2014-03), TP_PM_03
             * @reference   ETSI TS 129 274 V9.13.0, clauses 7.1.3
             */
garciay's avatar
garciay committed
            testcase TC_S11_SGW_PM_03() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_SGW and PICS_VERSION_NOT_SUPPORTED)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_SGW and PICS_VERSION_NOT_SUPPORTED required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01_S11Up_SGW();
                
                // Start
garciay's avatar
garciay committed
                vc_mme.start(f_TC_S11_SGW_PM_03());
garciay's avatar
garciay committed
                
garciay's avatar
garciay committed
                // synchronize PTC on 1 sychronization point
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
garciay's avatar
garciay committed
                
                // Postamble
                f_cf01_S11Down_SGW();
                
            } // End of testcase TC_S11_SGW_PM_03