Message Processing at Redirect Agent

It is often called as Redirecting Request.

As we know that Redirect Agent is generaly used  when Diameter routing configuration needs to be centralized,it does not forward message to other node, it just reply to the requesting node with route information. Does not change AVP value in message. Does not originate any message, but capable of handling any kind of messages. We can configure the redirect agent that it shall handle certain message only. Redirect Agent MUST advertise Relay Application Identifier (0xffffffff). Now lets see what all information is sent by redirect agent in following AVPs.

{ Result-Code }
 1*{ Redirect-Host }
   [ Redirect-Host-Usage]

Redirect Agent answers with Result-Code set to DIAMETER_REDIRECT_INDICATION  and E-bit of answer message shall also be set. Because DIAMETER_REDIRECT_INDICATION  comes under protocol error category. 

if Result-Code AVP is set to the Redirect-Host AVP MUST be present in answer message containing the Diameter Identity of node to which request should be forwarded.It is possible that Redirect Agent may reply with multiple Redirect-Host AVPs. Now to which node message need to be forwarded can decided by local configuration at node.  Received routing information whether to stored by node so that next time similary kind of request shall be forwarded without consulting Redirect Agent will depend on the value of Redirect-Host-Usage AVP. 

Redirect-Host-Usage AVP supports following values

DONT_CACHE                        0
The host specified in the Redirect-Host AVP should not be cached.
This is the default value. I.e. Just use the value in to forward message don't be stored at Node-1

ALL_SESSION                       1
All messages within the same session, as defined by the same value of the Session-ID AVP MAY be sent to the host specified in the Redirect-Host AVP. I.e. There is no need to consult Redirect agent for all the messages associated in considered session. Identity received shall be stored until session in question terminates. 

ALL_REALM                         2
All messages destined for the realm requested MAY be sent to the
host specified in the Redirect-Host AVP.

All messages for the application requested to the realm specified
MAY be sent to the host specified in the Redirect-Host AVP.

ALL_APPLICATION                   4
All messages for the application requested MAY be sent to the host specified in the Redirect-Host AVP.

ALL_HOST                          5
All messages that would be sent to the host that generated the
Redirect-Host MAY be sent to the host specified in the Redirect-
Host AVP.

ALL_USER                          6
All messages for the user requested MAY be sent to the host specified in the Redirect-Host AVP.


  1. Hi, There is one more timer element in redirection handling i.e. Redirect-Max-Cache-Time. In the RFC it is not very well explained on what should happen when this timer expires? Should the clients stop sending the traffic to the hosts discovered during the redirection and go back to redirection agent? If the agent provides the same redirection hosts as earlier then continue traffic over already connected hosts or if new hosts FQDN is received then disconnect the existing ones?

    Also what if the Redirect-Max-Cache-Time is received as 0? Should a single request be resent to this host which caused the redirection and then again go back to redirect agent?

    Please provide your thoughts on this.