Loading DiameterCxDx/ttcn/DiameterCxDx_Cx_TCFunctions.ttcn3 +29 −14 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ module DiameterCxDx_Cx_TCFunctions { import from LibDiameter_Types_CxDx_AVPs all; import from LibDiameter_TypesAndValues all; import from LibDiameter_Templates all; import from LibDiameter_Interface all; import from LibDiameter_Interface {} import from LibDiameter_Steps all; import from LibDiameter_Types_Base_AVPs all; Loading Loading @@ -127,7 +127,7 @@ module DiameterCxDx_Cx_TCFunctions { vc_userName, // containing a User-Name AVP // indicating the private user identity omit, // not containing a Public-Identity AVP omit, vc_visitedNetworkId, m_user_Authorization_Reg_Cx, // containing a User-Authorization-Type AVP // indicating REGISTRATION Loading Loading @@ -2624,11 +2624,14 @@ module DiameterCxDx_Cx_TCFunctions { // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer f_awaiting_RTR( mw_RTR_Msg( vc_sessionId, // containing a Session-ID AVP ?, // containing a Session-ID AVP mw_RTR( vc_originHost, ?, // containing a Origin-Host AVP vc_originRealm, vc_destinationHost, m_destinationHost( // containing a Destination-Host AVP vc_originHost.aVP_Data // indicating the name of the S-CSCF which originated the last update ), vc_destinationRealm, vc_userName, // containing a User-Name AVP // indicating the private user identity Loading @@ -2636,7 +2639,7 @@ module DiameterCxDx_Cx_TCFunctions { // indicating any deregistration reason mw_reason_Code_AVP )))); f_send_RTA(m_RTA_Msg(vc_sessionId, f_send_RTA(m_RTA_Msg(vc_recvDiamMsg.rTR_MSG.session_Id, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode Loading Loading @@ -2675,9 +2678,9 @@ module DiameterCxDx_Cx_TCFunctions { // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer f_awaiting_RTR( mw_RTR_Msg( vc_sessionId, // containing a Session-ID AVP ?, mw_RTR_publicIdentity( vc_originHost, ?, vc_originRealm, vc_destinationHost, vc_destinationRealm, Loading @@ -2689,7 +2692,7 @@ module DiameterCxDx_Cx_TCFunctions { ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_send_RTA(m_RTA_Msg(vc_sessionId, f_send_RTA(m_RTA_Msg(vc_recvDiamMsg.rTR_MSG.session_Id, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode Loading Loading @@ -2728,6 +2731,7 @@ module DiameterCxDx_Cx_TCFunctions { action("The IUT is requested to indicate a request for an administrative de-registration"); // FIXME How to do it? // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer vc_publicIdentity := m_publicIdentity(PX_PublicIdentity); f_awaiting_RTR( mw_RTR_Msg( vc_sessionId, // containing a Session-ID AVP Loading Loading @@ -2756,8 +2760,12 @@ module DiameterCxDx_Cx_TCFunctions { (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); vc_publicIdentity := m_publicIdentity(PX_PublicIdentity); f_hssDeregistrationCx(); vc_publicIdentity := m_publicIdentity(PX_OtherPublicIdentity); f_hssDeregistrationCx(); f_postamble_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } // End of function f_TC_CX_HSS_RT_03_I_S Loading Loading @@ -3223,10 +3231,13 @@ module DiameterCxDx_Cx_TCFunctions { // Preamble // Clause 'Initial conditions' f_preamble_ICSCF(); f_hssRegistrationCx( PX_UserName, PX_PublicIdentity ); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Clause 'when': the IUT receives a LI-Request vc_publicIdentity := m_publicIdentity(PX_PublicIdentity); f_send_LIR( m_LIR_Msg( vc_sessionId, // containing a Session-ID AVP Loading @@ -3252,7 +3263,7 @@ module DiameterCxDx_Cx_TCFunctions { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble // no de-registration needed f_hssDeregistrationCx(); f_postamble_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } // End of function f_TC_CX_HSS_LI_01_I Loading @@ -3267,6 +3278,10 @@ module DiameterCxDx_Cx_TCFunctions { // Preamble // Clause 'Initial conditions' f_preamble_ICSCF(); f_hssRegistrationCx( PX_UserName, PX_PublicIdentity ); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Clause 'when': the IUT receives a LI-Request Loading Loading @@ -3298,7 +3313,7 @@ module DiameterCxDx_Cx_TCFunctions { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble // no de-registration needed f_hssDeregistrationCx(); f_postamble_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } // End of function f_TC_CX_HSS_LI_02_I Loading DiameterCxDx/ttcn/DiameterCxDx_Steps.ttcn +2 −2 Original line number Diff line number Diff line Loading @@ -421,7 +421,7 @@ f_initialRegistrationCx(p_userName, p_publicIdentity, p_uar_Flags_Cx); // With DIAMETER_FIRST_REGISTRATION f_s_MAR_MAA(); f_secondRegistratonCx(p_uar_Flags_Cx); // With SUBEQUENT_REGISTRATION f_s_SAR_SAA(); f_s_SAR_SAA(REGISTRATION_E); // SAR registration } // End of function f_hssRegistrationCx /** Loading DiameterCxDx/ttcn/DiameterCxDx_Templates.ttcn +12 −6 Original line number Diff line number Diff line Loading @@ -183,7 +183,7 @@ module DiameterCxDx_Templates { template (value) SIP_Authentication_Scheme_AVP m_sIPAuthenticationScheme(template (value) UTF8String p_aVP_Data) := { sIP_Authentication_Scheme_3GPP_AVP := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Authentication_Scheme_AVP_Code, 4, c_vendId3gpp), aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Authentication_Scheme_AVP_Code, f_getUTF8StringLength(p_aVP_Data), c_vendId3gpp), aVP_Data := p_aVP_Data } } Loading Loading @@ -238,7 +238,7 @@ module DiameterCxDx_Templates { template SIP_Auth_Data_Item_AVP m_sIPAuthDataItem_authScheme (template (value) SIP_Authentication_Scheme_AVP p_sIP_Authentication_Scheme ) modifies m_sIPAuthDataItem_dummy := { sIP_Auth_Data_Item_3GPP_AVP :={ aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Auth_Data_Item_AVP_Code, 12/*correct length calculation needed*/, c_vendId3gpp), aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Auth_Data_Item_AVP_Code, f_addPaddedBytes2Length(p_sIP_Authentication_Scheme.sIP_Authentication_Scheme_3GPP_AVP.aVP_Header.aVP_len), c_vendId3gpp), sIP_Authentication_Scheme := p_sIP_Authentication_Scheme } } Loading Loading @@ -277,12 +277,15 @@ module DiameterCxDx_Templates { aVP_Data := ? } template Vendor_Specific_Appl_Id_AVP mw_vendor_Specific_Appl_Id(template (present) Vendor_Id_AVP p_vendorID template Vendor_Specific_Appl_Id_AVP mw_vendor_Specific_Appl_Id( template (present) Vendor_Id_AVP p_vendorID := ?, template Vendor_Specific_Appl_Id_AVP.auth_Application_Id p_auth_Application_Id := ?, template Vendor_Specific_Appl_Id_AVP.acct_Application_Id p_acct_Application_Id := * ) := { aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_vendor_Specific_Appl_Id_AVP_Code), vendor_Id := {p_vendorID}, auth_Application_Id := *, acct_Application_Id := * auth_Application_Id := p_auth_Application_Id, acct_Application_Id := p_acct_Application_Id } template User_Authorization_Type_AVP mw_userAuthorizationType(template (present) User_Authorization_Type_Code p_avpData Loading Loading @@ -1502,7 +1505,10 @@ module DiameterCxDx_Templates { template (present) User_Name_AVP p_userName, template (present) Deregistration_Reason_AVP p_deregistrationReason ) modifies mw_RTR_basic := { vendor_Specific_Application_Id := m_vendor_Specific_Appl_Id_Cx, //mandatory in TS 129 229 vendor_Specific_Application_Id := mw_vendor_Specific_Appl_Id( //mandatory in TS 129 229 m_vendorId( c_vendId3gpp )), auth_Application_Id := *, //not in TS 129 229 auth_Session_State := m_auth_Session_State_no_maintained, //mandatory in TS 129 229 origin_Host := p_originHost, //mandatory in TS 129 229 Loading Loading
DiameterCxDx/ttcn/DiameterCxDx_Cx_TCFunctions.ttcn3 +29 −14 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ module DiameterCxDx_Cx_TCFunctions { import from LibDiameter_Types_CxDx_AVPs all; import from LibDiameter_TypesAndValues all; import from LibDiameter_Templates all; import from LibDiameter_Interface all; import from LibDiameter_Interface {} import from LibDiameter_Steps all; import from LibDiameter_Types_Base_AVPs all; Loading Loading @@ -127,7 +127,7 @@ module DiameterCxDx_Cx_TCFunctions { vc_userName, // containing a User-Name AVP // indicating the private user identity omit, // not containing a Public-Identity AVP omit, vc_visitedNetworkId, m_user_Authorization_Reg_Cx, // containing a User-Authorization-Type AVP // indicating REGISTRATION Loading Loading @@ -2624,11 +2624,14 @@ module DiameterCxDx_Cx_TCFunctions { // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer f_awaiting_RTR( mw_RTR_Msg( vc_sessionId, // containing a Session-ID AVP ?, // containing a Session-ID AVP mw_RTR( vc_originHost, ?, // containing a Origin-Host AVP vc_originRealm, vc_destinationHost, m_destinationHost( // containing a Destination-Host AVP vc_originHost.aVP_Data // indicating the name of the S-CSCF which originated the last update ), vc_destinationRealm, vc_userName, // containing a User-Name AVP // indicating the private user identity Loading @@ -2636,7 +2639,7 @@ module DiameterCxDx_Cx_TCFunctions { // indicating any deregistration reason mw_reason_Code_AVP )))); f_send_RTA(m_RTA_Msg(vc_sessionId, f_send_RTA(m_RTA_Msg(vc_recvDiamMsg.rTR_MSG.session_Id, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode Loading Loading @@ -2675,9 +2678,9 @@ module DiameterCxDx_Cx_TCFunctions { // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer f_awaiting_RTR( mw_RTR_Msg( vc_sessionId, // containing a Session-ID AVP ?, mw_RTR_publicIdentity( vc_originHost, ?, vc_originRealm, vc_destinationHost, vc_destinationRealm, Loading @@ -2689,7 +2692,7 @@ module DiameterCxDx_Cx_TCFunctions { ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); f_send_RTA(m_RTA_Msg(vc_sessionId, f_send_RTA(m_RTA_Msg(vc_recvDiamMsg.rTR_MSG.session_Id, m_RTA_basic(vc_originHost, vc_originRealm, m_resultCode Loading Loading @@ -2728,6 +2731,7 @@ module DiameterCxDx_Cx_TCFunctions { action("The IUT is requested to indicate a request for an administrative de-registration"); // FIXME How to do it? // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer vc_publicIdentity := m_publicIdentity(PX_PublicIdentity); f_awaiting_RTR( mw_RTR_Msg( vc_sessionId, // containing a Session-ID AVP Loading Loading @@ -2756,8 +2760,12 @@ module DiameterCxDx_Cx_TCFunctions { (DIAMETER_SUCCESS_E), omit))); // Postamble f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); vc_publicIdentity := m_publicIdentity(PX_PublicIdentity); f_hssDeregistrationCx(); vc_publicIdentity := m_publicIdentity(PX_OtherPublicIdentity); f_hssDeregistrationCx(); f_postamble_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } // End of function f_TC_CX_HSS_RT_03_I_S Loading Loading @@ -3223,10 +3231,13 @@ module DiameterCxDx_Cx_TCFunctions { // Preamble // Clause 'Initial conditions' f_preamble_ICSCF(); f_hssRegistrationCx( PX_UserName, PX_PublicIdentity ); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Clause 'when': the IUT receives a LI-Request vc_publicIdentity := m_publicIdentity(PX_PublicIdentity); f_send_LIR( m_LIR_Msg( vc_sessionId, // containing a Session-ID AVP Loading @@ -3252,7 +3263,7 @@ module DiameterCxDx_Cx_TCFunctions { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble // no de-registration needed f_hssDeregistrationCx(); f_postamble_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } // End of function f_TC_CX_HSS_LI_01_I Loading @@ -3267,6 +3278,10 @@ module DiameterCxDx_Cx_TCFunctions { // Preamble // Clause 'Initial conditions' f_preamble_ICSCF(); f_hssRegistrationCx( PX_UserName, PX_PublicIdentity ); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Clause 'when': the IUT receives a LI-Request Loading Loading @@ -3298,7 +3313,7 @@ module DiameterCxDx_Cx_TCFunctions { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble // no de-registration needed f_hssDeregistrationCx(); f_postamble_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } // End of function f_TC_CX_HSS_LI_02_I Loading
DiameterCxDx/ttcn/DiameterCxDx_Steps.ttcn +2 −2 Original line number Diff line number Diff line Loading @@ -421,7 +421,7 @@ f_initialRegistrationCx(p_userName, p_publicIdentity, p_uar_Flags_Cx); // With DIAMETER_FIRST_REGISTRATION f_s_MAR_MAA(); f_secondRegistratonCx(p_uar_Flags_Cx); // With SUBEQUENT_REGISTRATION f_s_SAR_SAA(); f_s_SAR_SAA(REGISTRATION_E); // SAR registration } // End of function f_hssRegistrationCx /** Loading
DiameterCxDx/ttcn/DiameterCxDx_Templates.ttcn +12 −6 Original line number Diff line number Diff line Loading @@ -183,7 +183,7 @@ module DiameterCxDx_Templates { template (value) SIP_Authentication_Scheme_AVP m_sIPAuthenticationScheme(template (value) UTF8String p_aVP_Data) := { sIP_Authentication_Scheme_3GPP_AVP := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Authentication_Scheme_AVP_Code, 4, c_vendId3gpp), aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Authentication_Scheme_AVP_Code, f_getUTF8StringLength(p_aVP_Data), c_vendId3gpp), aVP_Data := p_aVP_Data } } Loading Loading @@ -238,7 +238,7 @@ module DiameterCxDx_Templates { template SIP_Auth_Data_Item_AVP m_sIPAuthDataItem_authScheme (template (value) SIP_Authentication_Scheme_AVP p_sIP_Authentication_Scheme ) modifies m_sIPAuthDataItem_dummy := { sIP_Auth_Data_Item_3GPP_AVP :={ aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Auth_Data_Item_AVP_Code, 12/*correct length calculation needed*/, c_vendId3gpp), aVP_Header := m_aVP_HeaderVid_Mbit1(c_sIP_Auth_Data_Item_AVP_Code, f_addPaddedBytes2Length(p_sIP_Authentication_Scheme.sIP_Authentication_Scheme_3GPP_AVP.aVP_Header.aVP_len), c_vendId3gpp), sIP_Authentication_Scheme := p_sIP_Authentication_Scheme } } Loading Loading @@ -277,12 +277,15 @@ module DiameterCxDx_Templates { aVP_Data := ? } template Vendor_Specific_Appl_Id_AVP mw_vendor_Specific_Appl_Id(template (present) Vendor_Id_AVP p_vendorID template Vendor_Specific_Appl_Id_AVP mw_vendor_Specific_Appl_Id( template (present) Vendor_Id_AVP p_vendorID := ?, template Vendor_Specific_Appl_Id_AVP.auth_Application_Id p_auth_Application_Id := ?, template Vendor_Specific_Appl_Id_AVP.acct_Application_Id p_acct_Application_Id := * ) := { aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_vendor_Specific_Appl_Id_AVP_Code), vendor_Id := {p_vendorID}, auth_Application_Id := *, acct_Application_Id := * auth_Application_Id := p_auth_Application_Id, acct_Application_Id := p_acct_Application_Id } template User_Authorization_Type_AVP mw_userAuthorizationType(template (present) User_Authorization_Type_Code p_avpData Loading Loading @@ -1502,7 +1505,10 @@ module DiameterCxDx_Templates { template (present) User_Name_AVP p_userName, template (present) Deregistration_Reason_AVP p_deregistrationReason ) modifies mw_RTR_basic := { vendor_Specific_Application_Id := m_vendor_Specific_Appl_Id_Cx, //mandatory in TS 129 229 vendor_Specific_Application_Id := mw_vendor_Specific_Appl_Id( //mandatory in TS 129 229 m_vendorId( c_vendId3gpp )), auth_Application_Id := *, //not in TS 129 229 auth_Session_State := m_auth_Session_State_no_maintained, //mandatory in TS 129 229 origin_Host := p_originHost, //mandatory in TS 129 229 Loading