Commit 8db75063 authored by garciay's avatar garciay
Browse files

Bug fixed in f_TC_CX_HSS_LI_01_I()

parent f0ed0ed2
Loading
Loading
Loading
Loading
+29 −14
Original line number Diff line number Diff line
@@ -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;
    
@@ -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
                                            
@@ -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
@@ -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
@@ -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,
@@ -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
@@ -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
@@ -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
                
@@ -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
@@ -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
@@ -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
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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 
        
        /**
+12 −6
Original line number Diff line number Diff line
@@ -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
                    }
                }
@@ -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
                    }
                }
@@ -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 
@@ -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