Loading DiameterS6a/ttcn/DiameterS6a_HSS_TCFunctions.ttcn3 +83 −6 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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 Loading @@ -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 Loading DiameterS6a/ttcn/DiameterS6a_MME_TCFunctions.ttcn3 +64 −4 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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(); Loading DiameterS6a/ttcn/DiameterS6a_Steps.ttcn3 +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading DiameterS6a/ttcn/DiameterS6a_Templates.ttcn +302 −22 File changed.Preview size limit exceeded, changes collapsed. Show changes DiameterS6a/ttcn/DiameterS6a_TestCases.ttcn3 +2 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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}); Loading Loading
DiameterS6a/ttcn/DiameterS6a_HSS_TCFunctions.ttcn3 +83 −6 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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 Loading @@ -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 Loading
DiameterS6a/ttcn/DiameterS6a_MME_TCFunctions.ttcn3 +64 −4 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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(); Loading
DiameterS6a/ttcn/DiameterS6a_Steps.ttcn3 +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
DiameterS6a/ttcn/DiameterS6a_Templates.ttcn +302 −22 File changed.Preview size limit exceeded, changes collapsed. Show changes
DiameterS6a/ttcn/DiameterS6a_TestCases.ttcn3 +2 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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}); Loading