[Idr] AD Review of draft-ietf-idr-ext-opt-param-09

Alvaro Retana <aretana.ietf@gmail.com> Thu, 18 March 2021 21:54 UTC

Return-Path: <aretana.ietf@gmail.com>
X-Original-To: idr@ietfa.amsl.com
Delivered-To: idr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 722143A0AA1; Thu, 18 Mar 2021 14:54:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RtIIO3n_yS3w; Thu, 18 Mar 2021 14:54:50 -0700 (PDT)
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8B17F3A0A9F; Thu, 18 Mar 2021 14:54:50 -0700 (PDT)
Received: by mail-ej1-x636.google.com with SMTP id va9so6344477ejb.12; Thu, 18 Mar 2021 14:54:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:mime-version:date:message-id:subject:to:cc :content-transfer-encoding; bh=sttbAP6SvtRCyoy5C6HZ9YOk+IAiexb2O65N/FIBpyc=; b=bbxJt+o3i08+ZXkesFQyRpaQ4KVyBRrEPSnx3IrcHq38tlNtKX2FdbWI+5+bmdzsaK QZyIAPedHBiwawt2Tv8mTPPAm61Qd/LVs0jRoVqUr/Wnvv+hBVXdkaAYJ4tCzykF8cv4 JTGwei01B7roO+wHEhfJesV01RaTU/bzd69yLvjTINb+ImnofT6VPXqYxSQ51gjbwS+4 eD62VleWlg8Gzppt80qqf4OIVXd7/9gRXUp2ywapg/OKUfqZIl5JXpZnsqETtFlNcRvS 6PFKlQKgRsCYVc4NPj6wfqTUZHUwy2aCgSLSjz0gDNtYf9xtQSjwXuaDrggV3uh0nMxl W7Ig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:date:message-id:subject:to:cc :content-transfer-encoding; bh=sttbAP6SvtRCyoy5C6HZ9YOk+IAiexb2O65N/FIBpyc=; b=Ycpct5yRDDS8Sy35Sk6WQhOS0dKxUueeJJaIQTlrJOSbOHJktvRok94vwtPmeOl26Y jMnTLBGGCxS4u9kd9uy3uYRQUPlqnayYmCcM1XbD7WRMpGdxAdmrgiPO9D+smMLG0T8f TP4a/4jD/otuosF6ZRN0z4exFvmajBLKwIe7mG1Z1I/nMEDeYRoiXuWDrRd842M3laLq NtCYsrtWrDGsUFcP+LoBTU20L9qqZ6W/VAQ4TXsw514x1Qyu2xmnLRhFdA9D5JTWfd4I oegeRim2DTWIOiP02AS5r9QADNUOBE6PRVaPAWChOPYq4DpE1uPUY0QNq4pUSwvZCQr+ t1wA==
X-Gm-Message-State: AOAM533fzL8LTo1SYJpKH8Q7R4mYhKKoGdANy9mAO8+lLkRCGzpiAcI+ Qn8nbKLD8U5fxftKurMT4mZ2A/hhb5sby+qAr4t5xuv2
X-Google-Smtp-Source: ABdhPJwWgvRMIGgI7KsSB0bZZApt1g/DqtE9PYNHixWpXFqN68J1F4bUCoLb0gMS1+vuzlN2t9gTMcB2JOYrjkUJWYE=
X-Received: by 2002:a17:906:1c13:: with SMTP id k19mr698761ejg.457.1616104486826; Thu, 18 Mar 2021 14:54:46 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Thu, 18 Mar 2021 14:54:46 -0700
From: Alvaro Retana <aretana.ietf@gmail.com>
MIME-Version: 1.0
Date: Thu, 18 Mar 2021 14:54:46 -0700
Message-ID: <CAMMESsw3eVnfiJ8RQ4GSSzp4b1T2n6hm-nSZ6xuyK9XCMb1pAg@mail.gmail.com>
To: draft-ietf-idr-ext-opt-param@ietf.org
Cc: Susan Hares <shares@ndzh.com>, "idr-chairs@ietf.org" <idr-chairs@ietf.org>, IDR List <idr@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/uSOhOVGSC1RJPKFlc0PNCqXwEVc>
Subject: [Idr] AD Review of draft-ietf-idr-ext-opt-param-09
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Inter-Domain Routing <idr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/idr>, <mailto:idr-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/idr/>
List-Post: <mailto:idr@ietf.org>
List-Help: <mailto:idr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/idr>, <mailto:idr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Mar 2021 21:54:53 -0000

Enke/John:

Hi!

Thank you for your persistence in getting this work done!

I have several comments inline below.  I believe that all of them
should be easy to address.

Thanks!

Alvaro.



[Line numbers from idnits.]

...
11	Abstract
...
19	   In this document we update RFC 4271 by extending, in a backward-
20	   compatible manner, the length of the Optional Parameters in the BGP
21	   OPEN.  The Parameter Length field of individual Optional Parameters
22	   is also extended.

[style nit] s/In this document we update/This document updates/g


...
72	1.1.  Requirements Language

74	   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
75	   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
76	   document are to be interpreted as described in RFC 2119 [RFC2119].

[major] Use the template from rfc8174.


78	2.  Protocol Extensions
...
83	   In the event that the length of Optional Parameters in the BGP OPEN
84	   message does not exceed 255, the encodings of the base BGP
85	   specification [RFC4271] MUST be used without alteration.  However, an
86	   implementation MUST be prepared to accept an OPEN message that uses
87	   the encoding of this specification for Optional Parameters of any
88	   length.

[major] "MUST be prepared to accept an OPEN message...of any length."

The OPEN message is not covered by rfc8654, so the length is still
limited to 4k...which means that the full Extended OP length/Parameter
Length cannot be used.

Besides clarifying that, I think that new OPEN Message Error subcodes
are needed for the cases where the length is invalid.  This type of
error is possible in the non-extended version of the OPEN too -- I
guess rfc4271 just assumed that this error would never happen.


90	   If the length of Optional Parameters is greater than 255, the
91	   extended encoding defined here MUST be used.  The (non-extended)
92	   length field MUST be set to 255.  The subsequent octet (which would
93	   be the first Optional Parameter Type in the non-extended format) MUST
94	   be set to 255 as well.  The subsequent two octets carry the actual
95	   length.  In addition, the "Parameter Length" field of each Optional
96	   Parameter is enlarged to two octets.  Other than the larger sizes of
97	   the given fields, there is no change to the BGP OPEN message defined
98	   in [RFC4271].

[minor] This paragraph references the modified OPEN message, but it
hasn't been introduced yet.  Please refer to the figures or move them
(and the description of the fields) to the beginning of this section.
Also, please be consistent with the field names from the figure.


...
111	       0                   1                   2                   3
112	       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
113	       +-+-+-+-+-+-+-+-+
114	       |    Version    |
115	       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
116	       |     My Autonomous System      |
117	       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
118	       |           Hold Time           |
119	       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
120	       |                         BGP Identifier                        |
121	       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
122	       |Non-Ext OP Len.|Non-Ext OP Type|  Extended Opt. Parm. Length   |
123	       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
124	       |                                                               |
125	       |             Optional Parameters (variable)                    |
126	       |                                                               |
127	       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

[] Please add a figure number and title.


129	   The non-extended Optional Parameters Length field MUST be set to 255
130	   on transmission, and MUST be ignored on receipt once the use of the
131	   extended format is determined positively by inspection of the (non-
132	   extended) Optional Parameters Type field.

[major] "non-extended Optional Parameters Length"  Please refer to the
names of the fields in the figure.   s/.../non-extended Optional
Parameters Length (Non-Ext OP Len.)


...
148	       0                   1                   2
149	       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
150	       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
151	       |  Parm. Type   |        Parameter Length       |
152	       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
153	       ~            Parameter Value (variable)         ~
154	       |                                               |
155	       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

[] Please add a figure number and title.


...
178	   The choice to mandate that when the extended encoding is in use, the
179	   (non-extended) Optional Parameters Length field must be 255 was made
180	   for backward compatibility with implementations of earlier versions
181	   of this specification.  When the extended encoding is in use, the
182	   value 0 MUST NOT be used in that field since the presence of that
183	   value could have the effect of causing a message parser to never
184	   inspect the following octet.

[] I don't think it's a good idea to justify anything based on
pre-standard implementations.  s/MUST be set to 255 on
transmission/SHOULD be set to 255 on transmission  will cover both
cases without the justification.


[major] "0 MUST NOT be used"  Move this part to where the field is described.


186	3.  Errors

188	   If a BGP speaker supporting this specification (a "new speaker") is
189	   peering with one which does not (an "old speaker") no
190	   interoperability issues arise unless the new speaker needs to encode
191	   Optional Parameters whose length exceeds 255.  In that case, it will
192	   transmit an OPEN message which the old speaker will interpret as
193	   containing an Optional Parameter with type code 255.  Since by
194	   definition the old speaker will not recognize that type code, the old
195	   speaker may be expected to close the connection with a NOTIFICATION
196	   with an Error Code of OPEN Message Error and an Error Subcode of
197	   Unsupported Optional Parameters, according to Section 6.2 of
198	   [RFC4271].

[minor] s/may be expected/is expected


200	   Although the above is the most likely error to be sent, it is not
201	   impossible that the old speaker might detect some other error first,
202	   such as a length error, depending on the details of the
203	   implementation.  In no case would the peering be expected to
204	   establish successfully; the only question is which NOTIFICATION would
205	   be generated.

[] No need to speculate about implementations.  The text above points
at rfc4271 anyway.


207	   We note that in any case, such a peering could not succeed, since by
208	   definition the extended length encoding would not be used by the new
209	   speaker unless the basic encoding was insufficient.

[] I don't understand what you mean here.  It sounds as if the new
speaker shouldn't have used the encoding anyway...  ??


...
219	   It is not considered an error to receive an OPEN message whose
220	   Extended Optional Parameters Length value is less than or equal to
221	   255, any value SHOULD be silently accepted.  It is not considered a
222	   fatal error to receive an OPEN message whose (non-extended) Optional
223	   Parameters Length value is not 255, and whose first Optional
224	   Parameter type code is 255 -- in this case the encoding of this
225	   specification MUST be used for decoding the message.  A warning MAY
226	   be logged.

[major] "any value SHOULD be silently accepted"  When is it ok to not
(silently) accept the message?  IOW, why is this recommended and not
required?  In any case, I don't think that the last part of the
sentence is needed because the first part already says this is not an
error.


[End of Review]