RFC Errata


Errata Search

 
Source of RFC  
Summary Table Full Records

RFC 6733, "Diameter Base Protocol", October 2012

Source of RFC: dime (ops)
See Also: RFC 6733 w/ inline errata

Errata ID: 4803
Status: Verified
Type: Editorial
Publication Format(s) : TEXT

Reported By: Holger Freyther
Date Reported: 2016-09-13
Verifier Name: Benoit Claise
Date Verified: 2017-07-27

Section 3.2 says:

In section 3.2

      header           = "<Diameter-Header:" command-id

                         [r-bit] [p-bit] [e-bit] [application-id]">"


In section 3.4

         header           = "<" "AVP-Header:" avpcode [vendor] ">"

It should say:

In section 3.2

      header           = "<Diameter Header:" command-id

                         [r-bit] [p-bit] [e-bit] [application-id]">"

In section 3.4

         header           = "<" "AVP Header:" avpcode [vendor] ">"

Notes:

Background:
There was an initial errata (kept for background information at the bottom of this note). After some discussion with the dime WG, this errata was modified.

This errata report is correct on the inconsistency regarding the definition of the command header and AVP header and how they are used in the rest of the document in the ABNF description of commands and Grouped AVPs.



For commands, the header is defined as follow:



header = "<Diameter-Header:" command-id

[r-bit] [p-bit] [e-bit] [application-id]">"



whereas "<Diameter Header:" is used when defining commands.



Same for Grouped AVP. It is defined as follow:



header = "<" "AVP-Header:" avpcode [vendor] ">"



whereas "<AVP Header:" is used when defining Grouped AVPs.



Considering that most (if not all) the ABNF descriptions have been copied from the commands and Grouped AVPs defined in the RFC3588 or RFC6733, I would be in favor to correct the specification by modifying the definition of the headers, i.e.



--> In section 3.2. Command Code Format Specification



OLD:



header = "<Diameter-Header:" command-id

[r-bit] [p-bit] [e-bit] [application-id]">"



NEW:



header = "<Diameter Header:" command-id

[r-bit] [p-bit] [e-bit] [application-id]">"





--> And in section 4.4



OLD:



header = "<" "AVP-Header:" avpcode [vendor] ">"



NEW:



header = "<" "AVP Header:" avpcode [vendor] ">"

=============================================================================

This initial errata is below:
Original text:
Example-Request ::= < Diameter Header: 9999999, REQ, PXY >
{ User-Name }
1* { Origin-Host }
* [ AVP ]

Corrected text:
<Example-Request> ::= < Diameter-Header: 9999999, REQ, PXY >
{ User-Name }
1* { Origin-Host }
* [ AVP ]

I converted the BNF into a PetitParser parser in Smalltalk/Pharo and noticed that example and grammar do not match. The first issue is with the example following the grammar but most definitions do not follow the BNF so maybe it is best to update the BNF.

header = "<Diameter-Header:" command-id
[r-bit] [p-bit] [e-bit] [application-id]">"

But "Diameter-Header:" is not used throughout the text so maybe it is better to update the grammar to "Diameter Header:".


command-def = "<" command-name ">" "::=" diameter-message

but the example is not using <> for the command-name ("Example-Request"). For the grouped-avp-def application is sometimes used with "<" name ">" and sometimes just name.

Report New Errata