AtsGtpv2C_TestCases.ttcn 49.1 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
    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 {
            
            /**
            * @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
            */
            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 
            
            /**
            * @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
            */
            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 
            
            /**
            * @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
            */
            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 {
            
            /**
            * @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
garciay's avatar
garciay committed
            * Config Id: CF02
garciay's avatar
garciay committed
            * 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
            */
            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
                
                // synchronize PTC on 2 sychronization points
                f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf02_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_01 
            
            /**
            * @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
                f_cf01_S11Up_MME();
                
                // Start
garciay's avatar
garciay committed
                vc_sgw.start(f_TC_S11_MME_TM_02());
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf01_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_02 
            
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
            */
            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());
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf01_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_03 
            
            /**
            * @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
            */
            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());
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf01_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_04 
            
            /**
            * @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
            */
            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());
                
                // synchronize PTC on 2 sychronization points
                f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf02_S11Down_MME();
                
            } // End of testcase TC_S11_MME_TM_05 
            
            /**
            * @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
            */
            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());
                
                // synchronize PTC on 1 sychronization points
                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
        } // 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 {
            
            /**
            * @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
            */
            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 
            
            /**
            * @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
            */
            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 
            
            /**
            * @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
            */
            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 
            
        } // End of group pathManagement 
        
        /**
         * @desc This group contains all test case for IUT acting as a SGW
         * @see ETSI TS 103 202-2 V0.0.2 (2014-03), clause 5.2.2
         */
        group tunnelManagement {
            
            /**
            * @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>
garciay's avatar
garciay committed
            * Pics Selection: PICS_S11_IUT_IS_SGW and PICS_SGW_CREATE_SESSION_RESPONSE and PICS_SGW_CREATE_BEARER_REQUEST and PICS_SGW_MODIFY_BEARER_RESPONSE
garciay's avatar
garciay committed
            * 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.
            *  }
            * 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
            */
            testcase TC_S11_SGW_TM_01() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
garciay's avatar
garciay committed
                if (not (PICS_S11_IUT_IS_SGW and PICS_SGW_CREATE_SESSION_RESPONSE and PICS_SGW_CREATE_BEARER_REQUEST and PICS_SGW_MODIFY_BEARER_RESPONSE)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_SGW and PICS_MME_CREATE_SESSION_REQUEST and PICS_SGW_CREATE_SESSION_RESPONSE and PICS_SGW_CREATE_BEARER_REQUEST and PICS_SGW_MODIFY_BEARER_RESPONSE required for executing the TC ***");
garciay's avatar
garciay committed
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01_S11Up_SGW();
                
                // Start
garciay's avatar
garciay committed
                vc_mme.start(f_TC_S11_SGW_TM_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_SGW();
                
            } // End of testcase TC_S11_SGW_TM_01 
            
            /**
            * @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_SGW_TM_02() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
garciay's avatar
garciay committed
                if (not (PICS_S11_IUT_IS_SGW and PICS_SGW_CREATE_SESSION_RESPONSE and PICS_SGW_CREATE_BEARER_REQUEST and PICS_SGW_MODIFY_BEARER_RESPONSE)) {
                    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_SGW();
                
                // Start
garciay's avatar
garciay committed
                vc_s5.start(f_TC_S5_SGW_TM_02());
                vc_mme.start(f_TC_S11_SGW_TM_02());
garciay's avatar
garciay committed
                // synchronize PTC on 2 sychronization points
                f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf02_S11Down_SGW();
                
            } // End of testcase TC_S11_SGW_TM_02 
            
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_SGW
            * 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
            */
            testcase TC_S11_SGW_TM_03() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_SGW)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_SGW required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01_S11Up_SGW();
                
                // Start
                vc_mme.start(f_TC_S11_SGW_TM_03());
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf01_S11Down_SGW();
                
            } // End of testcase TC_S11_SGW_TM_03 
            
            /**
            * @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_SGW and PICS_SGW_BEARER_RESOURCE_FAILURE_INDICATION
            * 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 PDN-GW sends back the Bearer Resource Failure Indication with cause value
            *          and, the IUT sends the Bearer Resource Failure Indication to the MME
            *      }
            *  }
            * </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
            */
            testcase TC_S11_SGW_TM_04() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_SGW and PICS_SGW_BEARER_RESOURCE_FAILURE_INDICATION)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_SGW and PICS_SGW_BEARER_RESOURCE_FAILURE_INDICATION required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01_S11Up_SGW();
                
                // Start
                vc_mme.start(f_TC_S11_SGW_TM_04());
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble
                f_cf01_S11Down_SGW();
                
            } // End of testcase TC_S11_SGW_TM_04 
            
            /**
            * @desc    Check the exchange of Delete Session Request/Response after NAS Detach Request
            * <pre>
            * Pics Selection: PICS_S11_IUT_IS_SGW and PICS_SGW_DELETE_SESSION_RESPONSE
            * Config Id: CF01
            * 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 forwards the Delete Session Request to the PDN-GW
            *          and, the S-GW sends the Delete Session Response to the MME
            *      }
            *  }
            * </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
            */
            testcase TC_S11_SGW_TM_05() runs on Gtpv2CComponent system Gtpv2CSystemAdapter {
                
                // Local variables
                
                // Test control
                if (not (PICS_S11_IUT_IS_SGW and PICS_SGW_DELETE_SESSION_RESPONSE)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_MME and PICS_SGW_DELETE_SESSION_RESPONSE required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01_S11Up_SGW();
                
                // Start
                vc_mme.start(f_TC_S11_SGW_TM_05());
                
                // synchronize PTC on 1 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                
                // Postamble