AtsGtpv2C_TestCases.ttcn 23.2 KB
Newer Older
garciay's avatar
garciay committed
/**
 * @author      ETSI/STF498
 * @version     $Url$
 *              $Id$
 * @dec         Testcases module for INT GTPv2-C protocol
 */
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
                vc_gtpv2c_sgw.start(f_TC_S11_MME_PM_01());
                
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
                vc_gtpv2c_sgw.start(f_TC_S11_MME_PM_02());
                
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
                vc_gtpv2c_sgw.start(f_TC_S11_MME_PM_03());
                
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
            * 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_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
                vc_gtpv2c_s1mme.start(f_TC_S1_MME_TM_01());
                vc_gtpv2c_sgw.start(f_TC_S11_MME_TM_01());
                
                // 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 
            
        } // 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
                vc_gtpv2c_mme.start(f_TC_S11_SGW_PM_01());
                
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
                vc_gtpv2c_mme.start(f_TC_S11_SGW_PM_02());
                
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
                vc_gtpv2c_mme.start(f_TC_S11_SGW_PM_03());
                
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_MME_CREATE_BEARER_REQUEST and PICS_MME_BEARER_RESOURCE_FAILURE_INDICATION and PICS_MME_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_MME_CREATE_BEARER_REQUEST and PICS_MME_BEARER_RESOURCE_FAILURE_INDICATION and PICS_MME_MODIFY_BEARER_RESPONSE)) {
                    log("*** " & testcasename() & ": PICS_S11_IUT_IS_SGW and PICS_MME_CREATE_SESSION_REQUEST and PICS_SGW_CREATE_SESSION_RESPONSE and PICS_MME_CREATE_BEARER_REQUEST and PICS_MME_BEARER_RESOURCE_FAILURE_INDICATION and PICS_MME_MODIFY_BEARER_RESPONSE required for executing the TC ***");
garciay's avatar
garciay committed
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01_S11Up_SGW();
                
                // Start
                vc_gtpv2c_mme.start(f_TC_S11_SGW_TM_01());
                
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 
            
        } // End of group tunnelManagement 
        
    } // End of group sgwRole 
    
} // End of module AtsGtpv2C_TestCases