Loading DiameterS6a/ttcn/DiameterS6a_HSS_TCFunctions.ttcn3 +192 −52 Original line number Diff line number Diff line Loading @@ -519,6 +519,7 @@ module DiameterS6a_HSS_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // 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 */ Loading Loading @@ -579,7 +580,7 @@ module DiameterS6a_HSS_TCFunctions { // Clause 'when': the IUT receives a UL-Request f_send_ULR( md_ULR( vc_sessionId2, vc_sessionId, md_ulrBodyAvps( md_auth_Session_State_noStateMaintained, vc_originHost, Loading @@ -587,16 +588,19 @@ module DiameterS6a_HSS_TCFunctions { 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 md_visitedPLMNId( PX_NEW_VISITED_PLMN_ID // from new MME md_ulr_Flags_AVP(0), //S6d interface -SGSN m_visitedPLMNId_dummy ) ) // End of md_ulrBodyAvps ) // 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( ?, mdw_clrBodyAvps_cancellation_Type( Loading @@ -610,19 +614,60 @@ module DiameterS6a_HSS_TCFunctions { md_claBodyAvps ) // 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( ?, mw_S6a_ULA_Body_dummy )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_HSS(); f_postamble_HSS2(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 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 Loading @@ -639,7 +684,7 @@ module DiameterS6a_HSS_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body // Clause 'when': the IUT receives a UL-Request from new MME // Clause 'when': the IUT receives a UL-Request f_send_ULR( md_ULR( vc_sessionId, Loading @@ -650,16 +695,19 @@ module DiameterS6a_HSS_TCFunctions { 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 md_visitedPLMNId( PX_NEW_VISITED_PLMN_ID // from new MME md_ulr_Flags_AVP(0), //S6d interface -SGSN m_visitedPLMNId_dummy ) ) // End of md_ulrBodyAvps ) // End of md_ULR ); f_awaiting_ULA( mdw_ULA( ?, mw_S6a_ULA_Body_dummy )); // Clause 'then' f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); f_awaiting_CLR(mdw_CLR( ?, mdw_clrBodyAvps_cancellation_Type( Loading @@ -674,19 +722,59 @@ module DiameterS6a_HSS_TCFunctions { ) // 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( ?, mw_S6a_ULA_Body_dummy )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_HSS(); f_postamble_HSS2(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 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 Loading @@ -703,7 +791,7 @@ module DiameterS6a_HSS_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body // Clause 'when': the IUT receives a UL-Request from new MME // Clause 'when': the IUT receives a UL-Request f_send_ULR( md_ULR( vc_sessionId, Loading @@ -714,16 +802,19 @@ module DiameterS6a_HSS_TCFunctions { 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 md_visitedPLMNId( PX_NEW_VISITED_PLMN_ID // from new MME md_ulr_Flags_AVP(0), //S6d interface -SGSN m_visitedPLMNId_dummy ) ) // End of md_ulrBodyAvps ) // 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( ?, mdw_clrBodyAvps_cancellation_Type( Loading @@ -738,19 +829,59 @@ module DiameterS6a_HSS_TCFunctions { ) // 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( ?, mw_S6a_ULA_Body_dummy )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_HSS(); f_postamble_HSS2(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 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 Loading Loading @@ -894,9 +1025,7 @@ module DiameterS6a_HSS_TCFunctions { // Test Body // 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()); 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 f_awaiting_CLR(mdw_CLR( Loading @@ -905,7 +1034,7 @@ module DiameterS6a_HSS_TCFunctions { md_auth_Session_State_noStateMaintained, // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED vc_originHost_IUT, // containing an Origin-Host 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 mdw_cancellationType( // containing a Cancellation-Type AVP SUBSCRIPTION_WITHDRAWAL_E // indicating SUBSCRIPTION_WITHDRAWAL Loading Loading @@ -987,9 +1116,7 @@ module DiameterS6a_HSS_TCFunctions { // Test Body // 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()); 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 f_awaiting_CLR(mdw_CLR( Loading @@ -998,7 +1125,7 @@ module DiameterS6a_HSS_TCFunctions { md_auth_Session_State_noStateMaintained, // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED vc_originHost_IUT, // containing an Origin-Host 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 mdw_cancellationType( // containing a Cancellation-Type AVP MME_UPDATE_PROCEDURE_E // indicating UPDATE PROCEDURE Loading Loading @@ -1081,9 +1208,8 @@ module DiameterS6a_HSS_TCFunctions { // Test Body // 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()); 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 f_awaiting_CLR(mdw_CLR( Loading @@ -1092,7 +1218,7 @@ module DiameterS6a_HSS_TCFunctions { md_auth_Session_State_noStateMaintained, // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED vc_originHost_IUT, // containing an Origin-Host 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 mdw_cancellationType( // containing a Cancellation-Type AVP INITIAL_ATTACH_PROCEDURE_E // indicating INITIAL_ATTACH_PROCEDURE Loading Loading @@ -1137,7 +1263,7 @@ module DiameterS6a_HSS_TCFunctions { vc_destinationRealm, m_userName(PX_USR_NAME), 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 ) // End of md_ulrBodyAvps ) // End of md_ULR Loading Loading @@ -1170,13 +1296,27 @@ module DiameterS6a_HSS_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); //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 // 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()); 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 f_awaiting_CLR(mdw_CLR( Loading @@ -1185,7 +1325,7 @@ module DiameterS6a_HSS_TCFunctions { md_auth_Session_State_noStateMaintained, // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED vc_originHost_IUT, // containing an Origin-Host 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 mdw_cancellationType( // containing a Cancellation-Type AVP INITIAL_ATTACH_PROCEDURE_E), // indicating INITIAL_ATTACH_PROCEDURE Loading Loading @@ -1230,7 +1370,7 @@ module DiameterS6a_HSS_TCFunctions { vc_destinationRealm, m_userName(PX_USR_NAME), 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 ) // End of md_ulrBodyAvps ) // End of md_ULR Loading DiameterS6a/ttcn/DiameterS6a_TestCases.ttcn3 +2 −2 Original line number Diff line number Diff line Loading @@ -3008,8 +3008,8 @@ module DiameterS6a_TestCases { v_diameterS6a_mme.start(f_TC_HSS_CL_03()); v_diameterS6a_mme2.start(f_TC_HSS_CL_03_NewMME()); // synchronize PTC on 3 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); // synchronize PTC on 5 sychronization points f_serverSyncNClientsAndStop(2, {c_prDone, c_sync1, c_sync2, c_tbDone, c_poDone}); f_cf_2S6aDown_HSS(); Loading Loading
DiameterS6a/ttcn/DiameterS6a_HSS_TCFunctions.ttcn3 +192 −52 Original line number Diff line number Diff line Loading @@ -519,6 +519,7 @@ module DiameterS6a_HSS_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // 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 */ Loading Loading @@ -579,7 +580,7 @@ module DiameterS6a_HSS_TCFunctions { // Clause 'when': the IUT receives a UL-Request f_send_ULR( md_ULR( vc_sessionId2, vc_sessionId, md_ulrBodyAvps( md_auth_Session_State_noStateMaintained, vc_originHost, Loading @@ -587,16 +588,19 @@ module DiameterS6a_HSS_TCFunctions { 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 md_visitedPLMNId( PX_NEW_VISITED_PLMN_ID // from new MME md_ulr_Flags_AVP(0), //S6d interface -SGSN m_visitedPLMNId_dummy ) ) // End of md_ulrBodyAvps ) // 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( ?, mdw_clrBodyAvps_cancellation_Type( Loading @@ -610,19 +614,60 @@ module DiameterS6a_HSS_TCFunctions { md_claBodyAvps ) // 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( ?, mw_S6a_ULA_Body_dummy )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_HSS(); f_postamble_HSS2(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 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 Loading @@ -639,7 +684,7 @@ module DiameterS6a_HSS_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body // Clause 'when': the IUT receives a UL-Request from new MME // Clause 'when': the IUT receives a UL-Request f_send_ULR( md_ULR( vc_sessionId, Loading @@ -650,16 +695,19 @@ module DiameterS6a_HSS_TCFunctions { 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 md_visitedPLMNId( PX_NEW_VISITED_PLMN_ID // from new MME md_ulr_Flags_AVP(0), //S6d interface -SGSN m_visitedPLMNId_dummy ) ) // End of md_ulrBodyAvps ) // End of md_ULR ); f_awaiting_ULA( mdw_ULA( ?, mw_S6a_ULA_Body_dummy )); // Clause 'then' f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); f_awaiting_CLR(mdw_CLR( ?, mdw_clrBodyAvps_cancellation_Type( Loading @@ -674,19 +722,59 @@ module DiameterS6a_HSS_TCFunctions { ) // 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( ?, mw_S6a_ULA_Body_dummy )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_HSS(); f_postamble_HSS2(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 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 Loading @@ -703,7 +791,7 @@ module DiameterS6a_HSS_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body // Clause 'when': the IUT receives a UL-Request from new MME // Clause 'when': the IUT receives a UL-Request f_send_ULR( md_ULR( vc_sessionId, Loading @@ -714,16 +802,19 @@ module DiameterS6a_HSS_TCFunctions { 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 md_visitedPLMNId( PX_NEW_VISITED_PLMN_ID // from new MME md_ulr_Flags_AVP(0), //S6d interface -SGSN m_visitedPLMNId_dummy ) ) // End of md_ulrBodyAvps ) // 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( ?, mdw_clrBodyAvps_cancellation_Type( Loading @@ -738,19 +829,59 @@ module DiameterS6a_HSS_TCFunctions { ) // 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( ?, mw_S6a_ULA_Body_dummy )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_postamble_HSS(); f_postamble_HSS2(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 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 Loading Loading @@ -894,9 +1025,7 @@ module DiameterS6a_HSS_TCFunctions { // Test Body // 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()); 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 f_awaiting_CLR(mdw_CLR( Loading @@ -905,7 +1034,7 @@ module DiameterS6a_HSS_TCFunctions { md_auth_Session_State_noStateMaintained, // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED vc_originHost_IUT, // containing an Origin-Host 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 mdw_cancellationType( // containing a Cancellation-Type AVP SUBSCRIPTION_WITHDRAWAL_E // indicating SUBSCRIPTION_WITHDRAWAL Loading Loading @@ -987,9 +1116,7 @@ module DiameterS6a_HSS_TCFunctions { // Test Body // 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()); 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 f_awaiting_CLR(mdw_CLR( Loading @@ -998,7 +1125,7 @@ module DiameterS6a_HSS_TCFunctions { md_auth_Session_State_noStateMaintained, // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED vc_originHost_IUT, // containing an Origin-Host 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 mdw_cancellationType( // containing a Cancellation-Type AVP MME_UPDATE_PROCEDURE_E // indicating UPDATE PROCEDURE Loading Loading @@ -1081,9 +1208,8 @@ module DiameterS6a_HSS_TCFunctions { // Test Body // 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()); 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 f_awaiting_CLR(mdw_CLR( Loading @@ -1092,7 +1218,7 @@ module DiameterS6a_HSS_TCFunctions { md_auth_Session_State_noStateMaintained, // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED vc_originHost_IUT, // containing an Origin-Host 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 mdw_cancellationType( // containing a Cancellation-Type AVP INITIAL_ATTACH_PROCEDURE_E // indicating INITIAL_ATTACH_PROCEDURE Loading Loading @@ -1137,7 +1263,7 @@ module DiameterS6a_HSS_TCFunctions { vc_destinationRealm, m_userName(PX_USR_NAME), 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 ) // End of md_ulrBodyAvps ) // End of md_ULR Loading Loading @@ -1170,13 +1296,27 @@ module DiameterS6a_HSS_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); //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 // 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()); 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 f_awaiting_CLR(mdw_CLR( Loading @@ -1185,7 +1325,7 @@ module DiameterS6a_HSS_TCFunctions { md_auth_Session_State_noStateMaintained, // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED vc_originHost_IUT, // containing an Origin-Host 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 mdw_cancellationType( // containing a Cancellation-Type AVP INITIAL_ATTACH_PROCEDURE_E), // indicating INITIAL_ATTACH_PROCEDURE Loading Loading @@ -1230,7 +1370,7 @@ module DiameterS6a_HSS_TCFunctions { vc_destinationRealm, m_userName(PX_USR_NAME), 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 ) // End of md_ulrBodyAvps ) // End of md_ULR Loading
DiameterS6a/ttcn/DiameterS6a_TestCases.ttcn3 +2 −2 Original line number Diff line number Diff line Loading @@ -3008,8 +3008,8 @@ module DiameterS6a_TestCases { v_diameterS6a_mme.start(f_TC_HSS_CL_03()); v_diameterS6a_mme2.start(f_TC_HSS_CL_03_NewMME()); // synchronize PTC on 3 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); // synchronize PTC on 5 sychronization points f_serverSyncNClientsAndStop(2, {c_prDone, c_sync1, c_sync2, c_tbDone, c_poDone}); f_cf_2S6aDown_HSS(); Loading