Commit 34024d9a authored by pintar's avatar pintar
Browse files

Update on CL procedures

parent 5bf03132
Loading
Loading
Loading
Loading
+192 −52
Original line number Original line Diff line number Diff line
@@ -519,6 +519,7 @@ module DiameterS6a_HSS_TCFunctions {
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
            
        } // End of TC function f_TC_HSS_UL_08
        } // End of TC function f_TC_HSS_UL_08
        
        /**
        /**
         * @desc    Verify that the IUT when UL Request is received over S6a shall send CL Request to the previous old MME
         * @desc    Verify that the IUT when UL Request is received over S6a shall send CL Request to the previous old MME
         */
         */
@@ -579,7 +580,7 @@ module DiameterS6a_HSS_TCFunctions {
            // Clause 'when': the IUT receives a UL-Request 
            // Clause 'when': the IUT receives a UL-Request 
            f_send_ULR(
            f_send_ULR(
                md_ULR( 
                md_ULR( 
                    vc_sessionId2,
                    vc_sessionId,
                    md_ulrBodyAvps(
                    md_ulrBodyAvps(
                        md_auth_Session_State_noStateMaintained,
                        md_auth_Session_State_noStateMaintained,
                        vc_originHost,
                        vc_originHost,
@@ -587,16 +588,19 @@ module DiameterS6a_HSS_TCFunctions {
                        vc_destinationRealm,
                        vc_destinationRealm,
                        m_userName(PX_USR_NAME),
                        m_userName(PX_USR_NAME),
                        m_rAT_Type(PX_RAT_TYPE),
                        m_rAT_Type(PX_RAT_TYPE),
                        md_ulr_Flags_AVP(3),            // containing a ULR-Flags AVP
                        md_ulr_Flags_AVP(0), //S6d interface -SGSN
                                                        //     with Single-Registration-Indication and S6a bit set
                        m_visitedPLMNId_dummy
                        md_visitedPLMNId(
                            PX_NEW_VISITED_PLMN_ID                      // from new MME
                        ) 
                        ) 
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
                ) // End of md_ULR
            );
            );
            
            
            // Clause 'then'
            f_awaiting_ULA( mdw_ULA( 
                        ?,
                        mw_S6a_ULA_Body_dummy
            ));
            
            // Clause 'then': 
            f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
            f_awaiting_CLR(mdw_CLR( 
            f_awaiting_CLR(mdw_CLR( 
                            ?,
                            ?,
                            mdw_clrBodyAvps_cancellation_Type( 
                            mdw_clrBodyAvps_cancellation_Type( 
@@ -610,19 +614,60 @@ module DiameterS6a_HSS_TCFunctions {
                    md_claBodyAvps
                    md_claBodyAvps
                ) // End of md_CLA
                ) // End of md_CLA
            );
            );
            
            f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());
            
            f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
            
            // Postamble
            f_postamble_HSS();
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
        } // End of TC function f_TC_HSS_UL_09
        
        /**
         * @desc    Verify that the IUT when UL Request is received over S6a shall send CL Request to the previous old SGSN
         */
        function f_TC_HSS_UL_09_NewMME() runs on DiameterComponent {

            // Preamble
            f_preamble_HSS2();
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
            
            // Test Body
            f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
            f_send_ULR(
                md_ULR( 
                    vc_sessionId2,
                    md_ulrBodyAvps(
                        md_auth_Session_State_noStateMaintained,
                        vc_originHost2,
                        vc_originRealm,
                        vc_destinationRealm,
                        m_userName(PX_USR_NAME),
                        m_rAT_Type(PX_RAT_TYPE),
                        md_ulr_Flags_AVP(3),            // containing a ULR-Flags AVP
                                                        //     with Single-Registration-Indication and S6a bit set
                        m_visitedPLMNId_dummy 
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
            );
        
            f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());
            f_awaiting_ULA( mdw_ULA( 
            f_awaiting_ULA( mdw_ULA( 
                        ?,
                        ?,
                        mw_S6a_ULA_Body_dummy
                        mw_S6a_ULA_Body_dummy
            ));
            ));
            
            f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
            f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
            
            
            // Postamble
            // Postamble
            f_postamble_HSS();
            f_postamble_HSS2();
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
            
        } // End of TC function f_TC_HSS_UL_09
        } // End of TC function f_TC_HSS_UL_09_NewMME
        
        
        /**
        /**
         * @desc    Verify that the IUT when UL Request is received over S6a shall send CL Request to the previous old SGSN
         * @desc    Verify that the IUT when UL Request is received over S6a shall send CL Request to the previous old SGSN
@@ -639,7 +684,7 @@ module DiameterS6a_HSS_TCFunctions {
            log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
            log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");


            // Test Body
            // Test Body
            // Clause 'when': the IUT receives a UL-Request from new MME
            // Clause 'when': the IUT receives a UL-Request 
            f_send_ULR(
            f_send_ULR(
                md_ULR( 
                md_ULR( 
                    vc_sessionId,
                    vc_sessionId,
@@ -650,16 +695,19 @@ module DiameterS6a_HSS_TCFunctions {
                        vc_destinationRealm,
                        vc_destinationRealm,
                        m_userName(PX_USR_NAME),
                        m_userName(PX_USR_NAME),
                        m_rAT_Type(PX_RAT_TYPE),
                        m_rAT_Type(PX_RAT_TYPE),
                        md_ulr_Flags_AVP(34),  // containing a ULR-Flags AVP
                        md_ulr_Flags_AVP(0), //S6d interface -SGSN
                                               //     with Initial-Attach-Indicator and S6a bit set
                        m_visitedPLMNId_dummy
                        md_visitedPLMNId(
                            PX_NEW_VISITED_PLMN_ID                          // from new MME
                        ) 
                        ) 
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
                ) // End of md_ULR
            );
            );
            
            
            f_awaiting_ULA( mdw_ULA( 
                        ?,
                        mw_S6a_ULA_Body_dummy
            ));
            
            // Clause 'then'
            // Clause 'then'
            f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
            f_awaiting_CLR(mdw_CLR( 
            f_awaiting_CLR(mdw_CLR( 
                            ?,
                            ?,
                            mdw_clrBodyAvps_cancellation_Type( 
                            mdw_clrBodyAvps_cancellation_Type( 
@@ -674,19 +722,59 @@ module DiameterS6a_HSS_TCFunctions {
                ) // End of md_CLA
                ) // End of md_CLA
            );
            );
 
 
            f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());
            
            f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
            
            // Postamble
            f_postamble_HSS();
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
        } // End of TC function f_TC_HSS_UL_10
        
        /**
         * @desc    Verify that the IUT when UL Request is received over S6a shall send CL Request to the previous old SGSN
         */
        function f_TC_HSS_UL_10_NewMME() runs on DiameterComponent {

            // Preamble
            f_preamble_HSS2();
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

            // Test Body
            // Clause 'when': the IUT receives a UL-Request from new MME
            f_send_ULR(
                md_ULR( 
                    vc_sessionId2,
                    md_ulrBodyAvps(
                        md_auth_Session_State_noStateMaintained,
                        vc_originHost2,
                        vc_originRealm,
                        vc_destinationRealm,
                        m_userName(PX_USR_NAME),
                        m_rAT_Type(PX_RAT_TYPE),
                        md_ulr_Flags_AVP(34),  // containing a ULR-Flags AVP
                                               //     with Initial-Attach-Indicator and S6a bit set
                        m_visitedPLMNId_dummy
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
            );
        
            f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());
            f_awaiting_ULA( mdw_ULA( 
            f_awaiting_ULA( mdw_ULA( 
                        ?,
                        ?,
                        mw_S6a_ULA_Body_dummy
                        mw_S6a_ULA_Body_dummy
            ));
            ));
            
            f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
            f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
            
            
            // Postamble
            // Postamble
            f_postamble_HSS();
            f_postamble_HSS2();
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
            
        } // End of TC function f_TC_HSS_UL_10
        } // End of TC function f_TC_HSS_UL_10_NewMME
        
        
        /**
        /**
         * @desc    Verify that the IUT when UL Request is received over S6a shall send CL Request to the previous old SGSN
         * @desc    Verify that the IUT when UL Request is received over S6a shall send CL Request to the previous old SGSN
@@ -703,7 +791,7 @@ module DiameterS6a_HSS_TCFunctions {
            log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
            log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");


            // Test Body
            // Test Body
            // Clause 'when': the IUT receives a UL-Request from new MME
            // Clause 'when': the IUT receives a UL-Request 
            f_send_ULR(
            f_send_ULR(
                md_ULR( 
                md_ULR( 
                    vc_sessionId,
                    vc_sessionId,
@@ -714,16 +802,19 @@ module DiameterS6a_HSS_TCFunctions {
                        vc_destinationRealm,
                        vc_destinationRealm,
                        m_userName(PX_USR_NAME),
                        m_userName(PX_USR_NAME),
                        m_rAT_Type(PX_RAT_TYPE),
                        m_rAT_Type(PX_RAT_TYPE),
                        md_ulr_Flags_AVP(35),   // containing a ULR-Flags AVP
                        md_ulr_Flags_AVP(0), //S6d interface -SGSN
                                                //     with Single-Registration-Indication and S6a and Initial-Attach-Indicator bit set
                        m_visitedPLMNId_dummy
                        md_visitedPLMNId(
                            PX_NEW_VISITED_PLMN_ID                          // from new MME
                        ) 
                        ) 
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
                ) // End of md_ULR
            );
            );
            
            
            // Clause 'then'
            f_awaiting_ULA( mdw_ULA( 
                        ?,
                        mw_S6a_ULA_Body_dummy
            ));
            
            // Clause 'then': 
            f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
            f_awaiting_CLR(mdw_CLR( 
            f_awaiting_CLR(mdw_CLR( 
                            ?,
                            ?,
                            mdw_clrBodyAvps_cancellation_Type( 
                            mdw_clrBodyAvps_cancellation_Type( 
@@ -738,19 +829,59 @@ module DiameterS6a_HSS_TCFunctions {
                ) // End of md_CLA
                ) // End of md_CLA
            );
            );
            
            
            f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());
            
            f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
            
            // Postamble
            f_postamble_HSS();
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
        } // End of TC function f_TC_HSS_UL_11
        
        /**
         * @desc    Verify that the IUT when UL Request is received over S6a shall send CL Request to the previous old SGSN
         */
        function f_TC_HSS_UL_11_NewMME() runs on DiameterComponent {

            // Preamble
            f_preamble_HSS2();
            f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

            // Test Body
            // Clause 'when': the IUT receives a UL-Request from new MME
            f_send_ULR(
                md_ULR( 
                    vc_sessionId2,
                    md_ulrBodyAvps(
                        md_auth_Session_State_noStateMaintained,
                        vc_originHost2,
                        vc_originRealm,
                        vc_destinationRealm,
                        m_userName(PX_USR_NAME),
                        m_rAT_Type(PX_RAT_TYPE),
                        md_ulr_Flags_AVP(35),   // containing a ULR-Flags AVP
                                                //     with Single-Registration-Indication and S6a and Initial-Attach-Indicator bit set
                        m_visitedPLMNId_dummy
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
            );
        
            f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());
            f_awaiting_ULA( mdw_ULA( 
            f_awaiting_ULA( mdw_ULA( 
                        ?,
                        ?,
                        mw_S6a_ULA_Body_dummy
                        mw_S6a_ULA_Body_dummy
            ));
            ));
            
            f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
            f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
            
            
            // Postamble
            // Postamble
            f_postamble_HSS();
            f_postamble_HSS2();
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            
            
        } // End of TC function f_TC_HSS_UL_11
        } // End of TC function f_TC_HSS_UL_11_NewMME
        
        
        /**
        /**
         * @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
         * @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
@@ -894,9 +1025,7 @@ module DiameterS6a_HSS_TCFunctions {
            
            
            // Test Body
            // Test Body
            // Clause 'when': the IUT is requested to indicate a request for cancel location procedure to inform MME about subscriber’s subscription withdrawal
            // Clause 'when': the IUT is requested to indicate a request for cancel location procedure to inform MME about subscriber’s subscription withdrawal
            // FIXME How to achieve it
            f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
            f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
            action("the IUT is requested to indicate a request for cancel location procedure to inform MME about subscriber’s subscription withdrawal");
            
            
            // Clause 'then':  the IUT sends a CL-Request
            // Clause 'then':  the IUT sends a CL-Request
            f_awaiting_CLR(mdw_CLR( 
            f_awaiting_CLR(mdw_CLR( 
@@ -905,7 +1034,7 @@ module DiameterS6a_HSS_TCFunctions {
                                md_auth_Session_State_noStateMaintained,   // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                md_auth_Session_State_noStateMaintained,   // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost_IUT,                         // containing an Origin-Host AVP
                                vc_originHost_IUT,                         // containing an Origin-Host AVP
                                vc_originRealm_IUT,                        // containing an Origin-Realm AVP
                                vc_originRealm_IUT,                        // containing an Origin-Realm AVP
                                vc_destinationRealm,                       // containing a Destination-Realm AVP
                                vc_destinationRealm_IUT,                       // containing a Destination-Realm AVP
                                m_userName(PX_USR_NAME),                   // containing a User-Name AVP
                                m_userName(PX_USR_NAME),                   // containing a User-Name AVP
                                mdw_cancellationType(                      // containing a Cancellation-Type AVP
                                mdw_cancellationType(                      // containing a Cancellation-Type AVP
                                    SUBSCRIPTION_WITHDRAWAL_E              //     indicating SUBSCRIPTION_WITHDRAWAL
                                    SUBSCRIPTION_WITHDRAWAL_E              //     indicating SUBSCRIPTION_WITHDRAWAL
@@ -987,9 +1116,7 @@ module DiameterS6a_HSS_TCFunctions {
            
            
            // Test Body
            // Test Body
            // Clause 'when': the IUT is requested to indicate a request for cancel location procedure to inform MME about an ongoing update procedure
            // Clause 'when': the IUT is requested to indicate a request for cancel location procedure to inform MME about an ongoing update procedure
            // FIXME How to achieve it
            f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
            f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
            action("the IUT is requested to indicate a request for cancel location procedure to inform MME an ongoing update procedure");
            
            
            // Clause 'then':  the IUT sends a CL-Request
            // Clause 'then':  the IUT sends a CL-Request
            f_awaiting_CLR(mdw_CLR( 
            f_awaiting_CLR(mdw_CLR( 
@@ -998,7 +1125,7 @@ module DiameterS6a_HSS_TCFunctions {
                                md_auth_Session_State_noStateMaintained,   // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                md_auth_Session_State_noStateMaintained,   // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost_IUT,                         // containing an Origin-Host AVP
                                vc_originHost_IUT,                         // containing an Origin-Host AVP
                                vc_originRealm_IUT,                        // containing an Origin-Realm AVP
                                vc_originRealm_IUT,                        // containing an Origin-Realm AVP
                                vc_destinationRealm,                       // containing a Destination-Realm AVP
                                vc_destinationRealm_IUT,                       // containing a Destination-Realm AVP
                                m_userName(PX_USR_NAME),                   // containing a User-Name AVP
                                m_userName(PX_USR_NAME),                   // containing a User-Name AVP
                                mdw_cancellationType(                      // containing a Cancellation-Type AVP
                                mdw_cancellationType(                      // containing a Cancellation-Type AVP
                                MME_UPDATE_PROCEDURE_E                     //     indicating UPDATE PROCEDURE
                                MME_UPDATE_PROCEDURE_E                     //     indicating UPDATE PROCEDURE
@@ -1081,9 +1208,8 @@ module DiameterS6a_HSS_TCFunctions {
            
            
            // Test Body
            // Test Body
            // Clause 'when': the IUT is requested to indicate a request for cancel location procedure to inform MME about an initial attach procedure
            // Clause 'when': the IUT is requested to indicate a request for cancel location procedure to inform MME about an initial attach procedure
            // FIXME How to achieve it

            f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
            f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
            action("the IUT is requested to indicate a request for cancel location procedure to inform MME about subscriber’s subscription withdrawal");
            
            
            // Clause 'then':  the IUT sends a CL-Request
            // Clause 'then':  the IUT sends a CL-Request
            f_awaiting_CLR(mdw_CLR( 
            f_awaiting_CLR(mdw_CLR( 
@@ -1092,7 +1218,7 @@ module DiameterS6a_HSS_TCFunctions {
                                md_auth_Session_State_noStateMaintained,    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                md_auth_Session_State_noStateMaintained,    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost_IUT,                          // containing an Origin-Host AVP
                                vc_originHost_IUT,                          // containing an Origin-Host AVP
                                vc_originRealm_IUT,                         // containing an Origin-Realm AVP
                                vc_originRealm_IUT,                         // containing an Origin-Realm AVP
                                vc_destinationRealm,                        // containing a Destination-Realm AVP
                                vc_destinationRealm_IUT,                        // containing a Destination-Realm AVP
                                m_userName(PX_USR_NAME),                    // containing a User-Name AVP
                                m_userName(PX_USR_NAME),                    // containing a User-Name AVP
                                mdw_cancellationType(                       // containing a Cancellation-Type AVP
                                mdw_cancellationType(                       // containing a Cancellation-Type AVP
                                    INITIAL_ATTACH_PROCEDURE_E              //     indicating INITIAL_ATTACH_PROCEDURE
                                    INITIAL_ATTACH_PROCEDURE_E              //     indicating INITIAL_ATTACH_PROCEDURE
@@ -1137,7 +1263,7 @@ module DiameterS6a_HSS_TCFunctions {
                        vc_destinationRealm,
                        vc_destinationRealm,
                        m_userName(PX_USR_NAME),
                        m_userName(PX_USR_NAME),
                        m_rAT_Type(PX_RAT_TYPE),
                        m_rAT_Type(PX_RAT_TYPE),
                        md_ulr_Flags_AVP(2),
                        md_ulr_Flags_AVP(34),//S6a bit and Attach bit set
                        m_visitedPLMNId_dummy
                        m_visitedPLMNId_dummy
                    ) // End of md_ulrBodyAvps
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
                ) // End of md_ULR
@@ -1170,13 +1296,27 @@ module DiameterS6a_HSS_TCFunctions {
            log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
            log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");


            //initiation of ULR message
            //initiation of ULR message
            f_init_sendULR_awaitULA();
            f_send_ULR(
                md_ULR( 
                    vc_sessionId,                                   // containing a Session-ID AVP
                    md_ulrBodyAvps(
                        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
                        m_userName(PX_USR_NAME),                    // containing a User-Name AVP
                        m_rAT_Type(PX_RAT_TYPE),                    // containing a RAT-Type AVP
                        md_ulr_Flags_AVP(50),                       // containing a ULR-Flags AVP with S6a-indicator bit set
                        m_visitedPLMNId_dummy                       // containing a Visited-PLMN-ID AVP
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
            );
            
            f_awaiting_ULA(mdw_ULA(?,mw_S6a_ULA_Body_dummy));
            
            
            // Test Body
            // Test Body
            // Clause 'when': the IUT is requested to indicate a request for cancel location procedure to inform MME about an initial attach procedure
            // Clause 'when': the IUT is requested to indicate a request for cancel location procedure to inform MME about an initial attach procedure
            // FIXME How to achieve it
            f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
            f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
            action("the IUT is requested to indicate a request for cancel location procedure to inform MME about subscriber’s subscription withdrawal");
            
            
            // Clause 'then':  the IUT sends a CL-Request
            // Clause 'then':  the IUT sends a CL-Request
            f_awaiting_CLR(mdw_CLR( 
            f_awaiting_CLR(mdw_CLR( 
@@ -1185,7 +1325,7 @@ module DiameterS6a_HSS_TCFunctions {
                                md_auth_Session_State_noStateMaintained,    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                md_auth_Session_State_noStateMaintained,    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost_IUT,                          // containing an Origin-Host AVP
                                vc_originHost_IUT,                          // containing an Origin-Host AVP
                                vc_originRealm_IUT,                         // containing an Origin-Realm AVP
                                vc_originRealm_IUT,                         // containing an Origin-Realm AVP
                                vc_destinationRealm,                        // containing a Destination-Realm AVP
                                vc_destinationRealm_IUT,                        // containing a Destination-Realm AVP
                                m_userName(PX_USR_NAME),                    // containing a User-Name AVP
                                m_userName(PX_USR_NAME),                    // containing a User-Name AVP
                                mdw_cancellationType(                       // containing a Cancellation-Type AVP
                                mdw_cancellationType(                       // containing a Cancellation-Type AVP
                                    INITIAL_ATTACH_PROCEDURE_E),              //     indicating INITIAL_ATTACH_PROCEDURE
                                    INITIAL_ATTACH_PROCEDURE_E),              //     indicating INITIAL_ATTACH_PROCEDURE
@@ -1230,7 +1370,7 @@ module DiameterS6a_HSS_TCFunctions {
                        vc_destinationRealm,
                        vc_destinationRealm,
                        m_userName(PX_USR_NAME),
                        m_userName(PX_USR_NAME),
                        m_rAT_Type(PX_RAT_TYPE),
                        m_rAT_Type(PX_RAT_TYPE),
                        md_ulr_Flags_AVP(2),
                        md_ulr_Flags_AVP(34),//S6a bit and Attach bit set
                        m_visitedPLMNId_dummy
                        m_visitedPLMNId_dummy
                    ) // End of md_ulrBodyAvps
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
                ) // End of md_ULR
+2 −2
Original line number Original line Diff line number Diff line
@@ -3008,8 +3008,8 @@ module DiameterS6a_TestCases {
                v_diameterS6a_mme.start(f_TC_HSS_CL_03());
                v_diameterS6a_mme.start(f_TC_HSS_CL_03());
                v_diameterS6a_mme2.start(f_TC_HSS_CL_03_NewMME());
                v_diameterS6a_mme2.start(f_TC_HSS_CL_03_NewMME());


                // synchronize PTC on 3 sychronization points
                // synchronize PTC on 5 sychronization points
                f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});
                f_serverSyncNClientsAndStop(2, {c_prDone, c_sync1, c_sync2, c_tbDone, c_poDone});


                f_cf_2S6aDown_HSS();
                f_cf_2S6aDown_HSS();