RFC Errata


Errata Search

 
Source of RFC  
Summary Table Full Records

RFC 6733, "Diameter Base Protocol", October 2012

Note: This RFC has been updated by RFC 7075, RFC 8553

Source of RFC: dime (ops)

Errata ID: 4931
Status: Rejected
Type: Technical
Publication Format(s) : TEXT

Reported By: Luiz Solis
Date Reported: 2017-02-09
Rejected by: Benoit Claise
Date Rejected: 2017-02-10

Section 6.1.9 says:

Figure 6.1 provides an example of message routing using the procedures
listed in these sections.

(Origin-Host=nas.example.net)    (Origin-Host=nas.example.net)
(Origin-Realm=example.net)       (Origin-Realm=example.net)
(Destination-Realm=example.com)  (Destination-Realm=example.com)
                                 (Route-Record=nas.example.net)

+------+      ------>      +------+      ------>      +------+
|      |     (Request)     |      |      (Request)    |      |
| NAS  +-------------------+ DRL  +-------------------+ HMS  |
|      |                   |      |                   |      |
+------+     <------       +------+     <------       +------+
example.net    (Answer)   example.net     (Answer)   example.com
(Origin-Host=hms.example.com)   (Origin-Host=hms.example.com)
(Origin-Realm=example.com)      (Origin-Realm=example.com)

       Figure 6: Routing of Diameter messages

It should say:

Figure 6.1 provides an example of message routing using the procedures
listed in these sections.

(Origin-Host=nas.example.net)    (Origin-Host=nas.example.net)
(Origin-Realm=example.net)       (Origin-Realm=example.net)
(Destination-Realm=example.com)  (Destination-Realm=example.com)
(Route-Record=nas.example.net)*  (Route-Record=nas.example.net)
                                 (Route-Record=drl.example.net)*
+------+      ------>      +------+      ------>      +------+
|      |     (Request)     |      |      (Request)    |      |
| NAS  +-------------------+ DRL  +-------------------+ HMS  |
|      |                   |      |                   |      |
+------+     <------       +------+     <------       +------+
example.net    (Answer)   example.net     (Answer)   example.com
(Origin-Host=hms.example.com)   (Origin-Host=hms.example.com)
(Origin-Realm=example.com)      (Origin-Realm=example.com)

*Optional.

                  Figure 6: Routing of Diameter messages

Notes:

The relay or proxy agent should append their own identity optionally in an additional Route-Record AVP (282).
--VERIFIER NOTES--
The Route-Record is primarily used to detect loops:

6.1.3. Receiving Requests

A relay or proxy agent MUST check for forwarding loops when receiving
requests. A loop is detected if the server finds its own identity in
a Route-Record AVP. When such an event occurs, the agent MUST answer
with the Result-Code AVP set to DIAMETER_LOOP_DETECTED.

How to populate the Route-Record is described twice:

Section 2.9:

As noted in Section 6.1.9, a relay or proxy agent MUST append a
Route-Record AVP to all requests forwarded. The AVP contains the
identity of the peer from which the request was received.

6.7.1. Route-Record AVP

The Route-Record AVP (AVP Code 282) is of type DiameterIdentity. The
identity added in this AVP MUST be the same as the one received in
the Origin-Host of the Capabilities Exchange message.

Therefore, it's "rather clear" that a relay and a proxy MUST append a Route-Record to all requests forwarded with the identity of the peer from which the request was received

I think that Luis was maybe misled by the following text:

6.1.3. Receiving Requests

A relay or proxy agent MUST check for forwarding loops when receiving
requests. A loop is detected if the server finds its own identity in
a Route-Record AVP. When such an event occurs, the agent MUST answer
with the Result-Code AVP set to DIAMETER_LOOP_DETECTED.

in which "find its own identity" might have been confusing out of context. But sections 2.9 and 6.7.1 should have clarified this misunderstanding.

Whatever the reason for the proposed errata, it can be safely rejected.

Report New Errata



Advanced Search