Subject: [Idr] Robert Wilton's No Objection on draft-ietf-idr-ext-opt-param-11: (with COMMENT)

From: Robert Wilton via Datatracker <[email-masked]>
Date: Fri, 16 Apr 2021 00:18:25 -0700

Robert Wilton has entered the following ballot position for
draft-ietf-idr-ext-opt-param-11: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)

Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about DISCUSS and COMMENT positions.

The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-idr-ext-opt-param/

----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Hi,

Thanks for this document, I found it relatively easy to read and understand
even though I'm not particularly familiar with BGP.

There were a couple of areas of the document that I found slightly confusing,
or inconsistent.  However, I do not feel strongly on these and will leave it to
the authors/WG to decide how to handle these:

1. I found it slightly inconsistent that section 2 states:

   In the event that the length of Optional Parameters in the BGP OPEN
   message does not exceed 255, the encodings of the base BGP
   specification [RFC4271] MUST be used without alteration.

and at the same time, section 3 states:

   It is not considered an error to receive an OPEN message whose
   Extended Optional Parameters Length value is less than or equal to
   255.

To me, I think this means that it would be better as a SHOULD rather than a
MUST, or perhaps change section 3 to indicate that it a non-conformant
encoding, but one that should be handled anyway.

2.
   In parsing an OPEN message, if the one-octet "Optional Parameters
   Length" field is non-zero, a BGP speaker MUST use the value of the
   octet following the one-octet "Optional Parameters Length" field to
   determine both the encoding of the Optional Parameters length and the
   size of the "Parameter Length" field of individual Optional
   Parameters.  If the value of this field is 255, then the encoding
   described above is used for the Optional Parameters length.
   Otherwise the encoding defined in [RFC4271] is used.

I wasn't really sure what this paragraph was stating beyond what had already
been stated previously in section 2, hence I'm wondering if it is required at
all.  If it does remain then I found the reference to "Optional Parameters
Length" is perhaps not as clear as it could be, and perhaps it would be better
to refer to the "Non-Ext OP Len" field (as per the diagram), and perhaps to the
"Non-Ext OP Type" field rather than the 'octet following the one-octet
"Optional Parameters Length" field'.

Regards,
Rob

---

From: John Scudder <[email-masked]>
Date: Wed, 21 Apr 2021 21:54:53 +0000

Thanks for your comments, Rob.

On Apr 16, 2021, at 3:18 AM, Robert Wilton via Datatracker <[email-masked]<mailto:[email-masked]>> wrote:
...
----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Hi,

It’s a MUST and not a SHOULD because I couldn’t think of any guidance for when an implementor should violate it (I can’t think of a MAY clause to add). The stuff in §3 is more-or-less a statement of Postel’s Law [*] and further, is there to potentially enable a future deprecation of the RFC 4271 length encoding as I mentioned in my reply to Warren’s DISCUSS. Now that I’m reviewing the text for the first time in a while, I notice that the quoted sentence in §3 is redundant with this from §2:

   In the event that the length of Optional Parameters in the BGP OPEN
   message does not exceed 255, the encodings of the base BGP
   specification [RFC4271<https://datatracker.ietf.org/doc/html/rfc4271>] MUST be used without alteration.  (However,
   an implementation MUST accept an OPEN message that uses the encoding
   of this specification even if the length of Optional Parameters is
   255 or less.)

The sentence in parentheses, that is. I don’t think it does any harm to repeat the admonition, though, so I’m going to leave it as written.

2.

all.

It’s arguably redundant, but I’m not completely sure myself (the preceding text talks about encoding, this paragraph talks about parsing), so I’d like to leave it in. I do agree it can be made clearer though.

If it does remain then I found the reference to "Optional Parameters

Good point, that text always was a little tortured. It now says:

   In parsing an OPEN message, if the one-octet "Optional Parameters
   Length" field (labeled "Non-Ext OP Len." in Figure 1) is non-zero, a
   BGP speaker MUST use the value of the octet following the one-octet
   "Optional Parameters Length" field (labeled "Non-Ext OP Type" in
   Figure 1) to determine both the encoding of the Optional Parameters
   length and the size of the "Parameter Length" field of individual
   Optional Parameters.  If the value of the "Non-Ext OP Type" field is
   255, then the encoding described above is used for the Optional
   Parameters length.  Otherwise the encoding defined in [RFC4271] is
   used.

Regards,
Rob

Thanks,

—John

[*] Yes, I realize some people have strong feelings about what Postel did, and didn’t, intend by it.