Commit 68be7518 authored by rennoch's avatar rennoch
Browse files

MME_DSD_03

parent a83e2c71
Loading
Loading
Loading
Loading
+48 −3
Original line number Diff line number Diff line
@@ -1532,6 +1532,27 @@ module DiameterS6a_MME_TCFunctions {
        function f_TC_MME_DSD_03() runs on TestAdapter {
            
            // Local variables
            var User_Name_AVP                 v_user_Name         := md_user_Name ( PX_INVALID_USR_NAME );
            var Auth_Session_State_AVP        v_noStateMaintained := md_auth_Session_State_noStateMaintained;
            var MIP_Home_Agent_Address_AVP    v_mipHomeAgentAddress     := md_mipHomeAgentAddress ( PX_MIP6_AGENT_IP_ADDRESS );
            var Destination_Realm_AVP         v_mIP6Destination_Realm   := m_destinationRealm ( PX_MIP6_AGENT_DEST_REALM );
            var Destination_Host_AVP          v_mip6Destination_Host    := m_destinationHost ( PX_MIP6_AGENT_DEST_HOST );
            var MIP_Home_Agent_Host_AVP       v_mipHomeAgentHost        := md_mipHomeAgentHost ( v_mIP6Destination_Realm,
                                                                                                v_mip6Destination_Host );
            var MIP6_Agent_Info_AVP           v_mIP6AgentInfo           := md_mip6_Agent_Info_AVP ( v_mipHomeAgentAddress, v_mipHomeAgentHost);
            var All_APN_Conf_Included_Id_AVP  v_allAPNConfIncludedId    := m_allAPNConfIncludedId ( 
                                                                                   MODIFIED_ADDED_APN_CONFIGURATIONS_INCLUDED_E );
            var Context_Identifier_AVP        v_contextIdentifier       := md_contextIdentifier ( PX_CONTEXT_ID );
            var PDN_Type_AVP                  v_pdnType                 := m_pdnType ( IPv4_OR_IPv6_E );
            var Service_Selection_AVP         v_serviceSelection        := m_serviceSelection ( PX_SERVICE_SEL );
            var APN_Configuration_AVP         v_apnConfiguration        := m_apnConfiguration ( v_contextIdentifier, v_pdnType,
                                                                                                v_serviceSelection, v_mIP6AgentInfo );
            var APN_Configuration_Profile_AVP v_apnConfigurationProfile := m_apnConfigurationProfile ( v_contextIdentifier,
                                                                                                       v_allAPNConfIncludedId,
                                                                                                       v_apnConfiguration );
                                                                                                       
            var DSR_Flags_AVP                  v_dSR_Flags        := m_dsrFlags_AVP ( bit2int('1000'B) ); // PDN subscription contexts Withdrawal (bit 3)
            var Result_Code_AVP       v_resultCode       := mw_resultCode(DIAMETER_UNABLE_TO_COMPLY_E);
                        
            // Preamble
            f_preamble_MME();
@@ -1540,8 +1561,32 @@ module DiameterS6a_MME_TCFunctions {
            
            // Test Body
            // Clause 'when'
            HSS_S6a.send ( m_mmeDeleteSubscriberDataRequest ( md_DSR_TCs ( vc_sessionId, md_dsrBodyAvps_Flags_ContextId (
                                v_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
                                v_user_Name,                            // containing a User-Name AVP
                                v_dSR_Flags,
                                {md_contextIdentifier(PX_CONTEXT_ID)} ))));         // containing a Context-Identifier AVP
                        
            // Clause 'then'
            tc_ac.start;
            alt {
                []  HSS_S6a.receive ( mw_hssDeleteSubscriberDataAnswer ( mdw_DSA_TCs ( vc_sessionId, mdw_dsaBodyAvps_Result (
                                v_resultCode,                           // containing a Result-Code AVP indicating DIAMETER_UNABLE_TO_COMPLY
                                *,                                      // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost,                          // containing an Origin-Host AVP
                                vc_originRealm )))) {                   // containing an Origin-Realm AVP
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                []  tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                }
            } // End of alt
                        
            // Postamble
            f_postamble_MME();
+31 −1
Original line number Diff line number Diff line
@@ -2245,6 +2245,36 @@ module DiameterS6a_Templates {
                        destination_Realm   := p_destinationRealm,
                        user_Name           := p_user_Name,
                        dSR_Flags           := p_dSR_Flags
                    } // End of template md_dsrBodyAvps_Flags

                    /**
                    * @desc Send template for DSR message body 
                    * @param p_auth_Session_State  Specifies if the state is maintained for a particular session
                    * @param p_originHost          Identifies the endpoint that originated the Diameter message
                    * @param p_originRealm         Realm of the originator
                    * @param p_destinationHost     The Host to which the message is to be routed
                    * @param p_destinationRealm    The realm to which the message is to be routed
                    * @param p_user_Name           User-Name
                    * @param p_dSRFlags
                    */
                   template (value) DSR_Body_AVP md_dsrBodyAvps_Flags_ContextId(
                                                                      in template (value) Auth_Session_State_AVP p_auth_Session_State,
                                                                      in template (value) Origin_Host_AVP p_originHost,
                                                                      in template (value) Origin_Realm_AVP p_originRealm,
                                                                      in template (value) Destination_Host_AVP p_destinationHost,
                                                                      in template (value) Destination_Realm_AVP p_destinationRealm,
                                                                      in template (value) User_Name_AVP p_user_Name,
                                                                      in template (value) DSR_Flags_AVP p_dSR_Flags,
                                                                      in template DSR_Body_AVP.context_Identifier p_contextIdentifier
                   ) modifies md_dsrBodyAvps_Flags := {
                       auth_Session_State  := p_auth_Session_State, 
                       origin_Host         := p_originHost,
                       origin_Realm        := p_originRealm,
                       destination_Host    := p_destinationHost,
                       destination_Realm   := p_destinationRealm,
                       user_Name           := p_user_Name,
                       dSR_Flags           := p_dSR_Flags,
                       context_Identifier  := p_contextIdentifier
                   } // End of template md_idrBodyAvps_Flags

                } // End of group t_TC_HSS_DSR