Commit bd11cd8f authored by garciay's avatar garciay
Browse files

Add TC_MME_RES_01 and TC_MME_NOT_01

parent 011a0055
Loading
Loading
Loading
Loading
+83 −6
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ module DiameterS6a_HSS_TCFunctions {
                                vc_originRealm,                                 // containing an Origin-Realm AVP
                                mdw_ula_Flags_AVP(PX_ULA_FLAGS_SEP_IND_SET),    // containing a ULA-Flags AVP with Separation-indicator bit set
                                m_subscriptionData_dummy                        // containing a Subscription-Data AVP
                                                                                // TODO Set some field in Subscription-Data AVP?
                                                                                // TODO Set some fields in Subscription-Data AVP?
                )))) { // Expected UL-Answer message 
                    tc_ac.stop;
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
@@ -170,7 +170,7 @@ module DiameterS6a_HSS_TCFunctions {
                                vc_originRealm,                                 // containing an Origin-Realm AVP
                                mdw_ula_Flags_AVP(PX_ULA_FLAGS_SEP_IND_SET),    // containing a ULA-Flags AVP with Separation-indicator bit set
                                m_subscriptionData_dummy                        // containing a Subscription-Data AVP
                                                                                // TODO Set some field in Subscription-Data AVP?
                                                                                // TODO Set some fields in Subscription-Data AVP?
                )))) { // Expected UL-Answer message 
                    tc_ac.stop;
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
@@ -3040,18 +3040,51 @@ module DiameterS6a_HSS_TCFunctions {
    // 5.2.2.7 Reset
    group reset {
        
        /**
         * @desc    Verify that the IUT can successfully initiate an RS-Request including all mandatory AVP’s to indicate to all relavant MMEs and combined MME/SGSNs that IUT has restarted
         */
        function f_TC_HSS_RES_01() runs on TestAdapter {
            
            // Local variables
            
            // Preamble
            f_preamble_HSS();
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***");
            
            // Test Body
            // Clause 'when'
            // Clause 'when': the IUT is requested to indicate to the MME that IUT has restarted
            // FIXME How to achieve it
            action("the IUT is requested to indicate to the MME that IUT has restarted");
            
            // Clause 'then'
            // Clause 'then':  the IUT sends a RS-Request
            tc_ac.start;
            alt {
                [] MME_S6a.receive( 
                    mw_mmeResetRequest(
                        mdw_RSR_TCs( 
                            ?,                                              // containing a Session-ID AVP
                            mdw_rsrBodyAvps_TC_01(
                                md_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_destinationHost,                         // containing a Destination-Host AVP
                                vc_destinationRealm                         // containing a Destination-Realm AVP
                )))) { // Expected RS-Request message 
                    tc_ac.stop;
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    log("*** " & __SCOPE__ & ": PASS: Expected RS-Request 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();
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
        } // End of TC function f_TC_HSS_RES_01
        
@@ -3060,18 +3093,62 @@ module DiameterS6a_HSS_TCFunctions {
    // 5.2.2.7 Notification
    group notification {
        
        /**
         * @desc    Verify that the IUT shall not support Emergency services and therefore can indicate request for Notification Procedure
         */
        function f_TC_HSS_NOT_01() runs on TestAdapter {
            
            // Local variables
            
            // Preamble
            // Clause 'Initial conditions'
            f_preamble_HSS();
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***");
            
            // Test Body
            // Clause 'when'
            // Clause 'when': the IUT receives a NO-Request
            f_triggerUlrMessage(
                md_NOR_TCs( 
                    vc_sessionId,                                   // containing a Session-ID AVP
                    md_norBodyAvps_TC_01(
                        md_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
                        md_user_Name(                               // containing a User-Name AVP
                            PX_USR_NAME)                            //     indicating known IMSI
                    ) // End of md_norBodyAvps_TC_01
                ) // End of md_NOR_TCs
            );
            
            // Clause 'then'
            // Clause 'then': the IUT sends a NO-Answer
            tc_ac.start;
            alt {
                [] MME_S6a.receive( 
                    mw_mmeUpdateLocationAnswer(
                        mdw_NOA_TCs( 
                            vc_sessionId,                                       // containing a Session-ID AVP
                            mdw_noaBodyAvps_TC_01( 
                                mw_resultCode(DIAMETER_SUCCESS_E),              // containing a Result-Code AVP indicating DIAMETER_SUCCESS
                                md_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
                )))) { // Expected NO-Answer message 
                    tc_ac.stop;
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    log("*** " & __SCOPE__ & ": PASS: Expected NO-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();
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
        } // End of TC function f_TC_HSS_NOT_01
        
+64 −4
Original line number Diff line number Diff line
@@ -1739,11 +1739,46 @@ module DiameterS6a_MME_TCFunctions {
            // Local variables
            
            // Preamble
            f_preamble_MME();
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***");
            
            // Test Body
            // Clause 'when'
            // Clause 'when': the IUT receives an RS-Request
            HSS_S6a.send(
                m_mmeResetRequest(
                    md_RSR_TCs(
                        vc_sessionId,                                   // containing a Session-ID AVP
                        md_rsrBodyAvps_01 (
                            md_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_destinationHost,                     // containing a Destination-Host AVP
                                vc_destinationRealm                     // containing a Destination-Realm AVP
            ))));
            
            // Clause 'then'
            // Clause 'then': the IUT sends an RS-Answer
            tc_ac.start;
            alt {
                [] HSS_S6a.receive(
                    mw_hssResetAnswer(
                        mdw_RSA_TCs( 
                            vc_sessionId,                                   // containing a Session-ID AVP
                            mdw_rsaBodyAvps_TC_01(
                                md_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
                                m_resultCode(                               // containing a Result-Code AVP
                                    DIAMETER_SUCCESS_E                      //     indicating DIAMETER_SUCCESS
                ))))) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    log("*** " & __SCOPE__ & ": PASS: Expected NO-Request 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();
@@ -1762,11 +1797,36 @@ module DiameterS6a_MME_TCFunctions {
            // Local variables
            
            // Preamble
            f_preamble_MME();
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***");
            
            // Test Body
            // Clause 'when'
            // Clause 'when': the IUT is requested to indicate a request for Notification Procedure
            action("the IUT is requested to indicate a request for Notification Procedure"); // FIXME How to achieve it?
            
            // Clause 'then'
            // Clause 'then': the IUT sends a NO-Request
            tc_ac.start;
            alt {
                [] HSS_S6a.receive(
                    mw_hssNotificationRequest(
                        mdw_NOR_TCs( 
                            vc_sessionId,                                   // containing a Session-ID AVP
                            mdw_norBodyAvps_TC_01(
                                md_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
                                md_user_Name(PX_USR_NAME)
                )))) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    log("*** " & __SCOPE__ & ": PASS: Expected NO-Request 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();
+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@
                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 ***");
                log("*** a_mme_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
+302 −22

File changed.

Preview size limit exceeded, changes collapsed.

+2 −3
Original line number Diff line number Diff line
@@ -1969,7 +1969,7 @@ module DiameterS6a_TestCases {
             *            the IUT is requested to indicate a request for Notification Procedure
             *        }
             *        then {
             *            the IUT sends anNO-Request
             *            the IUT sends a NO-Request
             *                containing a Session-ID AVP
             *                containing an Auth-Session-State AVP
             *                    indicating NO_STATE_MAINTAINED
@@ -1999,8 +1999,7 @@ module DiameterS6a_TestCases {
                f_cf_1S6aUp_MME(v_diameterS6a_hss, v_diameterS6a_eNodeB);

                // Start
                v_diameterS6a_eNodeB.start(f_TC_NAS_AttachRequest_Trigger());
                v_diameterS6a_hss.start(f_TC_MME_UL_01());
                v_diameterS6a_hss.start(f_TC_MME_NOT_01());

                // synchronize PTC on 3 sychronization points
                f_serverSyncNClients(f_NrofComps(), {c_prDone, c_tbDone, c_poDone});