Commit 8c5a685f authored by garciay's avatar garciay
Browse files

Terminated implementation for HSS/ULR

Implemented test case function f_TC_MME_UL_02/04()
parent 2e020921
Loading
Loading
Loading
Loading
+52 −17
Original line number Diff line number Diff line
@@ -531,7 +531,6 @@ module DiameterS6a_HSS_TCFunctions {
            // Local variables
            var integer v_recvSteps := 0;   // Initial state    : await for first CL-Answer message
                                            // Final state      : the IUT sends a UL-Answer to new MME 
            var DIAMETER_MSG v_result;
            
            // Preamble
            f_preamble_HSS();
@@ -568,7 +567,7 @@ module DiameterS6a_HSS_TCFunctions {
                            mdw_clrBodyAvps_TC_08( 
                                mw_cancellationType_dummy                           // containing a Cancellation-Type AVP
                                                                                    //     indicating MME_UPDATE_PROCEDURE
                )))) -> value v_result { // Expected CL-Request message 
                )))) { // Expected CL-Request message 
                        log("*** " & __SCOPE__ & ": INFO: Expected CL-Request was received. ***");
                        v_recvSteps := v_recvSteps + 1;
                        // and, the IUT receives a CL-Answer from previous MME
@@ -586,7 +585,7 @@ module DiameterS6a_HSS_TCFunctions {
                        mdw_ULA_TCs( 
                            ?,
                            mdw_ulaBodyAvps_TC_08
                    ))) -> value v_result { // Expected UL-Answer message 
                    ))) { // Expected UL-Answer message 
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                        log("*** " & __SCOPE__ & ": PASS: Expected UL-Answer was received. ***");
                }
@@ -615,7 +614,6 @@ module DiameterS6a_HSS_TCFunctions {
            // Local variables
            var integer v_recvSteps := 0;   // Initial state    : await for first CL-Answer message
                                            // Final state      : the IUT sends a UL-Answer to new MME 
            var DIAMETER_MSG v_result;
            
            // Preamble
            f_preamble_HSS();
@@ -653,7 +651,7 @@ module DiameterS6a_HSS_TCFunctions {
                            mdw_clrBodyAvps_TC_08( 
                                mw_cancellationType(                           // containing a Cancellation-Type AVP
                                    SGSN_UPDATE_PROCEDURE_E                    //     indicating SGSN_UPDATE_PROCEDURE
                ))))) -> value v_result { // Expected CL-Request message 
                ))))) { // Expected CL-Request message 
                        log("*** " & __SCOPE__ & ": INFO: Expected CL-Request was received. ***");
                        v_recvSteps := v_recvSteps + 1;
                        // and, the IUT receives a CL-Answer from previous SGSN
@@ -671,7 +669,7 @@ module DiameterS6a_HSS_TCFunctions {
                        mdw_ULA_TCs( 
                            ?,
                            mdw_ulaBodyAvps_TC_08
                    ))) -> value v_result { // Expected UL-Answer message 
                    ))) { // Expected UL-Answer message 
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                        log("*** " & __SCOPE__ & ": PASS: Expected UL-Answer was received. ***");
                }
@@ -700,7 +698,6 @@ module DiameterS6a_HSS_TCFunctions {
            // Local variables
            var integer v_recvSteps := 0;   // Initial state    : await for first CL-Answer message
                                            // Final state      : the IUT sends a UL-Answer to new MME 
            var DIAMETER_MSG v_result;
            
            // Preamble
            f_preamble_HSS();
@@ -738,7 +735,7 @@ module DiameterS6a_HSS_TCFunctions {
                            mdw_clrBodyAvps_TC_08( 
                                mw_cancellationType(                        // containing a Cancellation-Type AVP
                                    SGSN_UPDATE_PROCEDURE_E                 //     indicating SGSN_UPDATE_PROCEDURE
                ))))) -> value v_result { // Expected CL-Request message 
                ))))) { // Expected CL-Request message 
                        log("*** " & __SCOPE__ & ": INFO: Expected CL-Request was received. ***");
                        v_recvSteps := v_recvSteps + 1;
                        // and, the IUT receives a CL-Answer from previous SGSN
@@ -756,7 +753,7 @@ module DiameterS6a_HSS_TCFunctions {
                        mdw_ULA_TCs( 
                            ?,
                            mdw_ulaBodyAvps_TC_08
                    ))) -> value v_result { // Expected UL-Answer message 
                    ))) { // Expected UL-Answer message 
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                        log("*** " & __SCOPE__ & ": PASS: Expected UL-Answer was received. ***");
                }
@@ -785,7 +782,6 @@ module DiameterS6a_HSS_TCFunctions {
            // Local variables
            var integer v_recvSteps := 0;   // Initial state    : await for first CL-Answer message
                                            // Final state      : the IUT sends a UL-Answer to new MME 
            var DIAMETER_MSG v_result;
            
            // Preamble
            f_preamble_HSS();
@@ -823,7 +819,7 @@ module DiameterS6a_HSS_TCFunctions {
                            mdw_clrBodyAvps_TC_08( 
                                mw_cancellationType(                        // containing a Cancellation-Type AVP
                                    SGSN_UPDATE_PROCEDURE_E                 //     indicating SGSN_UPDATE_PROCEDURE
                ))))) -> value v_result { // Expected CL-Request message 
                ))))) { // Expected CL-Request message 
                        log("*** " & __SCOPE__ & ": INFO: Expected CL-Request was received. ***");
                        v_recvSteps := v_recvSteps + 1;
                        // and, the IUT receives a CL-Answer from previous SGSN
@@ -841,7 +837,7 @@ module DiameterS6a_HSS_TCFunctions {
                        mdw_ULA_TCs( 
                            ?,
                            mdw_ulaBodyAvps_TC_08
                    ))) -> value v_result { // Expected UL-Answer message 
                    ))) { // Expected UL-Answer message 
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                        log("*** " & __SCOPE__ & ": PASS: Expected UL-Answer was received. ***");
                }
@@ -867,7 +863,6 @@ module DiameterS6a_HSS_TCFunctions {
         */
        function f_TC_HSS_UL_12() runs on TestAdapter {
            // Local variables
            var DIAMETER_MSG v_result;
            
            // Preamble
            f_preamble_HSS();
@@ -898,7 +893,7 @@ module DiameterS6a_HSS_TCFunctions {
                                    mw_hplmn_ODB(
                                        ?                                               // or containing an HPLMN-ODB AVP)
                                    )
                ))))) -> value v_result { // Expected UL-Answer message 
                ))))) { // Expected UL-Answer message 
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    log("*** " & __SCOPE__ & ": PASS: Expected UL-Answer message was received. ***");
                }
@@ -915,6 +910,9 @@ module DiameterS6a_HSS_TCFunctions {
            
        } // End of TC function f_TC_HSS_UL_12
        
        /**
         * @desc    Verify that the IUT can successfully process all required AVPs in a UL-Answer when the APN-Configuration-Profile AVP is present in the Subscription-Data AVP
         */
        function f_TC_HSS_UL_13() runs on TestAdapter {
            // Local variables
            var DIAMETER_MSG v_result;
@@ -925,9 +923,46 @@ module DiameterS6a_HSS_TCFunctions {
            log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***");
            
            // Test Body
            // Clause 'when'
            // Clause 'when': the IUT receives a UL-Request
            f_triggerUlrMessage(
                md_ULR_TCs( 
                    vc_sessionId, 
                    md_ulrBodyAvps_TC_12
                ) // End of md_ULR_TCs
            );
            
            // Clause 'then'
            // Clause 'then': the IUT sends a UL-Answer
            tc_ac.start;
            alt {
                [] MME_S6a.receive( 
                    mw_mmeUpdateLocationAnswer(
                        mdw_ULA_TCs( 
                            ?,
                            mdw_ulaBodyAvps_TC_13( 
                                mdw_subscriptionData_TC_13(                         // containing a Subscription-Data AVP
                                    mw_apnConfigurationProfile(                     //    containing an APN-Configuration-Profile AVP
                                        mw_contextIdentifier_dummy,                 //        containing a Context-Identifier AVP
                                        ?                                           //        containing an All-APN-Configurations-Included-Indicator AVP
                                                                                    //        containing an APN-Configuration AVP
                                                                                    //            containing a Context-Identifier AVP
                                                                                    //            containing a PDN-Type AVP
                                                                                    //            containing a Service-Selection AVP
                                                                                    //            containing EPS-Subscribed-QoS Profile AVP
                                                                                    //            containing an AMBR AVP
                )))))) -> value v_result { // Expected UL-Answer message 
                    if (ispresent(v_result.uLA_MSG.uLA_Body.)) {             // not containing a Specific-APN-Info AVP
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                        log("*** " & __SCOPE__ & ": FAIL: Result-Code AVP was not expected here. ***");
                    } else {
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                        log("*** " & __SCOPE__ & ": PASS: Expected UL-Answer message was received. ***");
                    }
                }
                [] tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                }
            } // End of 'altstep' statement
            
            // Postamble
            f_postamble_HSS();
+296 −137
Original line number Diff line number Diff line
@@ -29,6 +29,9 @@ module DiameterS6a_MME_TCFunctions {
        template m_resultCode_diameterSuccess, m_resultCode
    };
    // DiameterS6a
    import from DiameterS6a_TypesAndValues {
        const c_sync1
    };
    import from DiameterS6a_PICS {
        modulepar PX_MME_IUT_SUPPORT_NAS_PROTOCOL
    };
@@ -53,7 +56,6 @@ module DiameterS6a_MME_TCFunctions {
         * @verdict pass on success, fail on error or inconc on timeout only 
         */
        function f_TC_MME_UL_01() runs on TestAdapter {
            
            // Local variables
            
            // Preamble
@@ -62,7 +64,7 @@ module DiameterS6a_MME_TCFunctions {
            log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***");
            
            // Test Body
            // Clause 'when': Nothing to do
            // Clause 'when': Nothing to do, see f_TC_NAS_AttachRequest_Trigger
            
            // Clause 'then': the IUT sends a UL-Request 
            tc_ac.start;
@@ -97,48 +99,166 @@ module DiameterS6a_MME_TCFunctions {
            
        } // End of TC function f_TC_MME_UL_01
        
        /**
         * @desc    Verify that the IUT due to an inter node(SGSN to MME) update sends UL-Request where “Single-Registration-Indication” shall be set
         */
        function f_TC_MME_UL_02() runs on TestAdapter {
            
            // Local variables
            
            // Preamble
            f_preamble_MME();
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***");
            
            // Test Body
            // Clause 'when'
            // Clause 'when': Nothing to do, see f_TC_NAS_AttachRequest_Trigger
            
            // Clause 'then'
            // Clause 'then': the IUT sends a UL-Request 
            tc_ac.start;
            alt {
                [] HSS_S6a.receive(
                    mw_hssUpdateLocationRequest(
                        mdw_ULR_TCs( 
                            vc_sessionId,                                   // containing a Session-ID AVP
                            mdw_ulrBodyAvps_TC_02(
                                m_ulr_Flags_AVP(                            // containing a ULR-Flags AVP with 
                                    PX_ULR_FLAGS_S6a_IND_SET +              //     S6a-indicator bit set
                                    PX_ULR_FLAGS_S6a_SINGLE_REG             //     Single-Registration-Indication bit set
                ))))) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                [] tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                }
            } // End of 'altstep' statement
            
            // Postamble
            f_postamble_MME();
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
        } // End of TC function f_TC_MME_UL_02
        
        /**
         * @desc    Verify that the IUT can indicate request for update location information which is sent due to an initial attach
         */
        function f_TC_MME_UL_03() runs on TestAdapter {
            
            // Local variables
            
            // Preamble
            f_preamble_MME();
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***");
            
            // Test Body
            // Clause 'when'
            // Clause 'when': Nothing to do, see f_TC_NAS_AttachRequest_Trigger
            
            // Clause 'then'
            // Clause 'then': the IUT sends a UL-Request 
            tc_ac.start;
            alt {
                [] HSS_S6a.receive(
                    mw_hssUpdateLocationRequest(
                        mdw_ULR_TCs( 
                            vc_sessionId,                                   // containing a Session-ID AVP
                            mdw_ulrBodyAvps_TC_03(
                                m_auth_Session_State_noStateMaintained,     // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost,                              // containing an Origin-Host AVP
                                vc_originRealm,                             // containing an Origin-Realm AVP
                                vc_destinationRealm,                        // containing a Destination-Realm AVP
                                m_user_Name(PX_USR_NAME),                   // containing a User-Name AVP
                                m_rAT_Type(PX_RAT_TYPE),                    // containing a RAT-Type AVP
                                m_ulr_Flags_AVP(                            // containing a ULR-Flags AVP with 
                                    PX_ULR_FLAGS_S6a_IND_SET +              //     S6a-indicator bit set
                                    PX_ULR_FLAGS_S6a_INITIAL_ATTACH         //     Initial-Attach-Indicator bit set
                                ),
                                m_visitedPLMNId_dummy                       // containing a Visited-PLMN-ID AVP
                )))) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                [] tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                }
            } // End of 'altstep' statement
            
            // Postamble
            f_postamble_MME();
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
        } // End of TC function f_TC_MME_UL_03
        
        /**
         * @desc    Verify that the IUT, when subscriber data are already available due to previous location update, shall successfuly process additional request for update location information
         */
        function f_TC_MME_UL_04() runs on TestAdapter {
            
            // Local variables
            var integer v_recvSteps := 0;   // Initial state    : await for a UL-Answer to indicate additional request for update location information
                                            // Final state      : the IUT sends a UL-Request 
            
            // Preamble
            f_preamble_MME();
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***");
            
            // Test Body
            // Clause 'when'
            // Clause 'when': Nothing to do, see f_TC_NAS_UlrRequest_Trigger
            
            // Clause 'then'
            tc_ac.start;
            alt {
                [v_recvSteps == 0] HSS_S6a.receive(
                    mw_hssUpdateLocationAnswer(                                     // the IUT receives a UL-Answer
                        mdw_ULA_TCs( 
                            ?,
                            mdw_hssUlaBodyAvps_TC_04( // TODO To be refined
                                mdw_subscriptionData_aPN_Configuration_Profile(
                                    ?, 
                                    ?
                ))))) { // Expected UL-Answer message 
                        log("*** " & __SCOPE__ & ": INFO: Expected UL-Answer was received. ***");
                        v_recvSteps := v_recvSteps + 1;
                        // and, the IUT is requested to indicate additional request for update location information
                        f_selfOrClientSyncAndVerdict(c_sync1, e_success);
                        log("*** " & __SCOPE__ & ": INFO: Trigger request to indicate additional request for update location information. ***");
                        repeat
                }
                [v_recvSteps == 1] HSS_S6a.receive(                                 // and, the IUT sends a UL-Request 
                    mw_hssUpdateLocationRequest(
                        mdw_ULR_TCs( 
                            ?,                                                      // containing a Session-ID AVP
                            mdw_hssUlrBodyAvps_TC_04(
                                m_auth_Session_State_noStateMaintained,             // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost,                                      // containing an Origin-Host AVP
                                vc_originRealm,                                     // containing an Origin-Realm AVP
                                vc_destinationRealm,                                // containing a Destination-Realm AVP
                                m_user_Name(PX_USR_NAME),                           // containing a User-Name AVP
                                m_rAT_Type(PX_RAT_TYPE),                            // containing a RAT-Type AVP
                                m_ulr_Flags_AVP(                                    // containing a ULR-Flags AVP with 
                                    PX_ULR_FLAGS_S6a_IND_SET +                      //     S6a-indicator bit set
                                    PX_ULR_FLAGS_S6a_SKIP_SUBSCRIBER_DATA),         //     Skip-Subscriber-Data bit set
                                m_visitedPLMNId_dummy                               // containing a Visited-PLMN-ID AVP
                    )))) { // Expected UL-Answer message 
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                        log("*** " & __SCOPE__ & ": PASS: Expected UL-Answer was received. ***");
                }
                [] HSS_S6a.receive { // Unxpected message 
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    log("*** " & __SCOPE__ & ": INCONC: Unxpected message received. ***");
                }
                [] tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                }
            } // End of 'altstep' statement
            
            // Postamble
            f_postamble_MME();
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
        } // End of TC function f_TC_MME_UL_04
        
@@ -882,7 +1002,7 @@ module DiameterS6a_MME_TCFunctions {
    
    group nasProtocols {
        
        function f_TC_NAS_UL_Trigger() runs on TestAdapter {
        function f_TC_NAS_AttachRequest_Trigger() runs on TestAdapter {
            
            // Local variables
            
@@ -914,7 +1034,46 @@ module DiameterS6a_MME_TCFunctions {
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
        } // End of TC function f_TC_MME_UL_01
        } // End of TC function f_TC_NAS_AttachRequest_Trigger
        
        function f_TC_NAS_UlrRequest_Trigger() runs on TestAdapter {
            
            // Local variables
            
            // Preamble
            f_preamble_NAS();
            if (PX_MME_IUT_SUPPORT_NAS_PROTOCOL == true) {
              // Send a Tracking Area Update (TAU) request
              // http://www.eventhelix.com/lte/tracking-area-update/lte-tracking-area-update.pdf
            } else {
                action("UE is already attched, trigger a UL-Request to request information");
            }
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***");
            
            // Test Body
            // Clause 'when'
            if (PX_MME_IUT_SUPPORT_NAS_PROTOCOL == true) {
              // FIXME How to achiev it?
            } else {
                action("the IUT is requested to indicate additional request for update location information");
            }
            f_selfOrClientSyncAndVerdict(c_sync1, e_success);
            
            // Clause 'then': Nothing to do
            f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
            
            // Postamble
            if (PX_MME_IUT_SUPPORT_NAS_PROTOCOL == true) {
              // FIXME 
            } else {
                action("Terminate the test cases");
            }
            f_postamble_NAS();
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
        } // End of TC function f_TC_NAS_UlrRequest_Trigger
        
    } // End of group nasProtocols
    
+8 −2
Original line number Diff line number Diff line
@@ -175,7 +175,7 @@ module DiameterS6a_PIXITS {
        modulepar UInt32 PX_ULR_FLAGS := 0;
        
        /**
         * @desc ULR-Flags AVP with S6a-indicator bit set
         * @desc ULR-Flags AVP with Single-Registration-Indication bit set
         * @see ETSI TS 129 272 V10.8.0 (2013-07) Table 7.3.7/1: ULR-Flags
         */
        modulepar UInt32 PX_ULR_FLAGS_S6a_SINGLE_REG := 1; // Bit0
@@ -187,7 +187,13 @@ module DiameterS6a_PIXITS {
        modulepar UInt32 PX_ULR_FLAGS_S6a_IND_SET := 2; // Bit1
        
        /**
         * @desc ULR-Flags AVP with S6a-indicator bit set
         * @desc ULR-Flags AVP with Skip-Subscriber-Data bit set
         * @see ETSI TS 129 272 V10.8.0 (2013-07) Table 7.3.7/1: ULR-Flags
         */
        modulepar UInt32 PX_ULR_FLAGS_S6a_SKIP_SUBSCRIBER_DATA := 4; // Bit1
        
        /**
         * @desc ULR-Flags AVP with Initial-Attach-Indicator bit set
         * @see ETSI TS 129 272 V10.8.0 (2013-07) Table 7.3.7/1: ULR-Flags
         */
        modulepar UInt32 PX_ULR_FLAGS_S6a_INITIAL_ATTACH := 32; // Bit5
+183 −45

File changed.

Preview size limit exceeded, changes collapsed.

+11 −6

File changed.

Preview size limit exceeded, changes collapsed.

Loading