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

Implemented test case function f_TC_MME_UL_01()

Add PICS to trigger message either manually or with NAS protocol 
parent ef8bebd8
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ module DiameterS6a_HSS_TCFunctions {
        function 
            f_preamble_HSS, f_postamble_HSS, 
            f_triggerUlrMessage; 
        altstep hss_default
        altstep a_hss_default
    };
    import from DiameterS6a_TestSystem {
        type 
@@ -90,7 +90,7 @@ module DiameterS6a_HSS_TCFunctions {
                                                                                // TODO Set some field in Subscription-Data AVP?
                )))) { // Expected ULR-Answer message 
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    log("*** " & __SCOPE__ & ": PASS: Unexpected was received. ***");
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                [] tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
@@ -166,7 +166,7 @@ module DiameterS6a_HSS_TCFunctions {
                                                                                // TODO Set some field in Subscription-Data AVP?
                )))) { // Expected ULR-Answer message 
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    log("*** " & __SCOPE__ & ": PASS: Unexpected was received. ***");
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                [] tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
@@ -229,7 +229,7 @@ module DiameterS6a_HSS_TCFunctions {
                        log("*** " & __SCOPE__ & ": FAIL: Subscription-Data AVP was not expected here. ***");
                    } else {
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                        log("*** " & __SCOPE__ & ": PASS: Unexpected was received. ***");
                        log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                    }
                }
                [] tc_ac.timeout {
+100 −4
Original line number Diff line number Diff line
@@ -6,28 +6,86 @@

module DiameterS6a_MME_TCFunctions {
    
    // LibCommon
    import from LibCommon_Sync {
        function 
            f_selfOrClientSyncAndVerdict;
        const 
            c_prDone, c_tbDone, c_poDone
    };
    //import from LibCommon_VerdictControl all;
    
    // LibDiameter 
    import from LibDiameter_Steps {
        function f_getVerdict
    };
    
    // DiameterS6a
    import from DiameterS6a_PICS {
        modulepar PX_MME_IUT_SUPPORT_NAS_PROTOCOL
    };
    import from DiameterS6a_Templates all; 
    import from DiameterS6a_PIXITS all;
    import from DiameterS6a_Steps {
        function 
            f_preamble_MME, f_postamble_MME,
            f_preamble_NAS, f_postamble_NAS; 
        altstep a_mme_default
    };
    import from DiameterS6a_TestSystem {
        type TestAdapter
        type 
            TestAdapter
    };
    
    // 5.2.1.1 Update Location
    group updateLocation {
        
        /**
         * @desc Verify that the IUT can indicate request for update location information to inform HSS about the identity of the currently serving user
         * @verdict pass on success, fail on error or inconc on timeout only 
         */
        function f_TC_MME_UL_01() 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 'then'
            // Clause 'when': Nothing to do
            
            // 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_01(
                                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(PX_ULR_FLAGS_S6a_IND_SET),  // containing a ULR-Flags AVP with S6a-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_01
        
@@ -428,4 +486,42 @@ module DiameterS6a_MME_TCFunctions {
        
    } // End of group notification
    
    group nasProtocols {
        
        function f_TC_NAS_UL_Trigger() runs on TestAdapter {
            
            // Local variables
            
            // Preamble
            f_preamble_NAS();
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***");
            
            // Test Body
            // Clause 'when'
            if (PX_MME_IUT_SUPPORT_NAS_PROTOCOL == true) {
              // Send NAS-ATTACH-REQUEST
            } else {
                action("Switch the UE to initiate ULR");
            }
            
            // Clause 'then': Nothing to do
            f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
            
            // Postamble
            if (PX_MME_IUT_SUPPORT_NAS_PROTOCOL == true) {
              // Await for NAS-ATTACH-ACCEPT
              // Send NAS-DETACH-REQUEST
              // Await for NAS-DETACH-ACCEPT
            } else {
                action("Switch the UE off");
            }
            f_postamble_NAS();
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
        } // End of TC function f_TC_MME_UL_01
        
    } // End of group nasProtocols
    
} // End of module DiameterS6a_MME_TCFunctions 
 No newline at end of file
+6 −0
Original line number Diff line number Diff line
@@ -12,6 +12,12 @@ module DiameterS6a_PICS {
         */
        modulepar boolean PICS_MME_IUT := false; // FIXME Use one exclusive PIXIT for (PICS_MME_IUT/PICS_HSS_IUT/) - Use unumerated
        
        /**
         * @desc Set to false to trigger NAS-Protocol using the mobile phone
         *       Set to true to trigger true NAS-Protocol messages
         */
        modulepar boolean PX_MME_IUT_SUPPORT_NAS_PROTOCOL := false;
        
        /**
         * @desc Does MME/SGSN act as the IUT? 
         * @see  ETSI DTS/INT-094-1 V0.0.3 (2013-11) A.2/1.1 
+59 −7
Original line number Diff line number Diff line
@@ -51,30 +51,67 @@
        } // End of function f_DiameterGx_init
        
        /**
         * @desc Default altstep activated during the preambule
         * @desc Default altstep activated during the preambule for MME IUT role
         */
        altstep hss_default() runs on TestAdapter {
        altstep a_mme_default() runs on TestAdapter {
            [] HSS_S6a.receive(
                mw_hssUpdateLocationRequest(
                    mw_S6a_uLR_dummy
            )) { // Received an unexpected UL-Answer message, process it as an error
                log("*** a_hss_default: ERROR: Received an unexpected UL-Request message, process it as an error ***");
                f_selfOrClientSyncAndVerdict("error", e_error);
            }
            [] HSS_S6a.receive { // Received an unexpected message, process it as an error
                log("*** a_mme_default: ERROR: Received an unexpected message, process it as an error ***");
                f_selfOrClientSyncAndVerdict("error", e_error);
            }
            [] tc_ac.timeout {
                log("*** a_mme_default: ERROR: Timeout while awaiting the reception of a message ***");
                f_selfOrClientSyncAndVerdict("error", e_timeout);
            }
        } // End of altstep a_mme_default
        
        /**
         * @desc Default altstep activated during the preambule for HSS IUT role
         */
        altstep a_hss_default() runs on TestAdapter {
            [] MME_S6a.receive(
                mw_mmeUpdateLocationRequest(
                    mw_S6a_ULA_dummy
            )) { // Received an unexpected UL-Answer message, process it as an error
                log("*** a_default: ERROR: Received an unexpected UL-Answer message, process it as an error ***");
                log("*** a_hss_default: ERROR: Received an unexpected UL-Answer message, process it as an error ***");
                f_selfOrClientSyncAndVerdict("error", e_error);
            }
            [] MME_S6a.receive { // Received an unexpected message, process it as an error
                log("*** a_default: ERROR: Received an unexpected message, process it as an error ***");
                log("*** a_hss_default: ERROR: Received an unexpected message, process it as an error ***");
                f_selfOrClientSyncAndVerdict("error", e_error);
            }
            [] tc_ac.timeout {
                log("*** a_default: ERROR: Timeout while awaiting the reception of a message ***");
                log("*** a_hss_default: ERROR: Timeout while awaiting the reception of a message ***");
                f_selfOrClientSyncAndVerdict("error", e_timeout);
            }
        } // End of altstep hss_default
        } // End of altstep a_hss_default
        
    } // End of group GlobalSteps

    group Preambles{
        
        group mmeRole {
            
            function f_preamble_NAS() runs on TestAdapter {
//                activate( nas_default( ) );
            }
            
            function f_preamble_MME() runs on TestAdapter {
                // Initialilize the component's variables' 
                f_DiameterS6a_init();
                
                // Activate defaults
                activate( a_mme_default( ) );
            } // End of function f_preamble_MME
        
        } // End of group mmeRole
        
        group hssRole {
            
            function f_preamble_HSS() runs on TestAdapter {
@@ -82,7 +119,7 @@
                f_DiameterS6a_init();
                
                // Activate defaults
                activate( hss_default( ) );
                activate( a_hss_default( ) );
            } // End of function f_preamble_HSS
        
        } // End of group hssRole
@@ -91,9 +128,24 @@

    group Postambles {
        
        group mmeRole {
            
            function f_postamble_NAS() runs on TestAdapter {
                // Unmap NAS-Protocol port
                // Deactivate defaults
            }
            
            function f_postamble_MME() runs on TestAdapter {
                // Deactivate defaults
                deactivate;
            } // End of function f_preamble_MME
        
        } // End of group mmeRole
        
        group hssRole {
            
            function f_postamble_HSS() runs on TestAdapter {
                // Deactivate defaults
                deactivate;
            } // End of function f_preamble_HSS
        
+60 −12
Original line number Diff line number Diff line
@@ -533,11 +533,11 @@ module DiameterS6a_Templates {
            
            group S6aDummy_request_templates_receive {
                
                template (present) ULR_MSG mw_uLR_dummy := {
                template (present) ULR_MSG mw_S6a_uLR_dummy := {
                    header      := mw_s6adiameterHeaderReq_dummy ( ULx_E, c_applId_S6a ),
                    session_Id  := ?,
                    uLR_Body    := mw_S6a_ULR_Body_dummy
                } // End of template mw_uLR_dummy
                } // End of template mw_S6a_uLR_dummy
                
                template (present) ULR_Body_AVP mw_S6a_ULR_Body_dummy := {
                    vendor_Specific_Application_Id  := *,
@@ -1189,7 +1189,15 @@ module DiameterS6a_Templates {
                
            } // End of group S6aBasic_request_templates_send

            group S9basic_request_templates_receive {
            group S6basic_request_templates_receive {
                
                /**
                 * @desc Main receive template for MME_S6a port
                 * @param p_s6a_CCA_MSG UL-Answer receive template message
                 */
                template (present) DIAMETER_S6a_MME_Initiated_Message mw_hssUpdateLocationRequest(in template (present) ULR_MSG p_s6a_ULR_MSG) := {
                    s6a_ULR_MSG := p_s6a_ULR_MSG
                } // End of tempate mw_hssUpdateLocationRequest
                
                /**
                 * @desc Main receive template for MME_S6a port
@@ -1199,8 +1207,7 @@ module DiameterS6a_Templates {
                    s6a_CCA_MSG := p_s6a_CCA_MSG
                } // End of tempate m_mmeUpdateLocationRequest
                
                
            } // End of group S9basic_request_templates_receive
            } // End of group S6basic_request_templates_receive

            group S6aBasic_answer_templates_send {
            }
@@ -1358,6 +1365,41 @@ module DiameterS6a_Templates {

            group S6aModified_request_templates_receive {
                
                template (present) ULR_MSG mdw_ULR_TCs(
                                                       in template (present) Session_Id_AVP p_sessionId, 
                                                       in template (present) ULR_Body_AVP p_ulrBody
                ) modifies mw_S6a_uLR_dummy := {
                    session_Id  := p_sessionId,
                    uLR_Body    := p_ulrBody
                } // End of tempate mdw_ULR_TCs
                
                /**
                 * @desc Receive templates for TC_MME_UL_01
                 */
                group t_TC_MME_UL_01 {
                    
                    template (present) ULR_Body_AVP mdw_ulrBodyAvps_TC_01( 
                                                                          in template (present) Auth_Session_State_AVP p_auth_Session_State,
                                                                          in template (present) Origin_Host_AVP p_originHost,
                                                                          in template (present) Origin_Realm_AVP p_originRealm,
                                                                          in template (present) Destination_Realm_AVP p_destinationRealm,
                                                                          in template (present) User_Name_AVP p_user_Name,
                                                                          in template (present) RAT_Type_AVP p_rat_Type,
                                                                          in template (present) ULR_Flags_AVP p_ulr_Flags,
                                                                          in template (present) Visited_PLMN_Id_AVP p_visited_PLMN_Id
                    ) modifies mw_S6a_ULR_Body_dummy := {
                        origin_Host         := p_originHost,
                        origin_Realm        := m_originRealm_dummy,
                        destination_Realm   := p_destinationRealm,
                        auth_Session_State  := p_auth_Session_State, 
                        user_Name           := p_user_Name,
                        rat_Type            := p_rat_Type,
                        ulr_Flags           := p_ulr_Flags,
                        visited_PLMN_Id     := p_visited_PLMN_Id
         } // End of tempate mdw_ulrBodyAvps_TC_01
                    
                } // End of group t_TC_MME_UL_01
                
            } // End of group S6aModified_request_templates_receive

            group S6aModified_answer_templates_send {
@@ -1410,6 +1452,9 @@ module DiameterS6a_Templates {
                    
                } // End of group t_TC_HSS_UL_01
                
                /**
                 * @desc Receive templates for TC_HSS_UL_02
                 */
                group t_TC_HSS_UL_02 {
                    
                    /**
@@ -1454,6 +1499,9 @@ module DiameterS6a_Templates {
                    
                } // End of group t_TC_HSS_UL_02
                
                /**
                 * @desc Receive templates for TC_HSS_UL_03
                 */
                group t_TC_HSS_UL_03 {
                    
                    /**
@@ -1465,7 +1513,7 @@ module DiameterS6a_Templates {
                     * @param p_ula_Flags           ULA Bit mask
                     */
                    template (present) ULA_Body_AVP mdw_ulaBodyAvps_TC_03( 
                                                                in template Experimental_Result_AVP p_experimental_Result
                                                                          in template (present) Experimental_Result_AVP p_experimental_Result
                    ) modifies mw_S6a_ULA_Body_dummy := {
                        experimental_Result := p_experimental_Result
                    } // End of template mdw_ulrBodyAvps_TC_03
Loading