Dear authors:

First of all, thank you for taking on this work!

I have some comments which I home will be easy to address -- please
see in-line below.  I will wait for a revised ID before starting the
IETF Last Call.

Before getting into the specifics, idnits came up with this warning:

=====
     (Using the creation date from RFC3563, updated by this document, for
     RFC5378 checks: 2002-10-15)

  -- The document seems to lack a disclaimer for pre-RFC5378 work, but may
     have content which was first submitted before 10 November 2008.  If you
     have contacted all the original authors and they are all willing to grant
     the BCP78 rights to the IETF Trust, then this is fine, and you can ignore
     this comment.  If not, you may need to add the pre-RFC5378 disclaimer.
     (See the Legal Provisions document at
     https://trustee.ietf.org/license-info for more information.)
=====

This documents Updates several existing RFCs.  In general, the warning
means that we need to ask the authors of those RFCs, if published
before rfc5378, to grant BCP78 rights to the IETF Trust.  In this case
only rfc3563 is affected.  rfc5305 is not included because Tony Li was
one of the authors.

rfc6233 already Updated rfc3563, and it didn't include the disclaimer
for pre-RFC5378 work, which leads me to conclude that the BCP78 rights
were already granted at that time.  IOW, we don't need the disclaimer
for pre-RFC5378 work.

I'm writing all this here to have a record of this decision and to
give anyone in the WG the opportunity to raise concerns, if any.


Thanks!!

Alvaro.


[Line numbers from idnits.]


...
15      Abstract
...
27         This document when approved updates RFC3563, RFC5305, RFC6232, and
28         RFC6233.

[minor] s/This document when approved updates/This document updates


...
90      1.  Introduction

92         The Intermediate System to Intermediate System (IS-IS) protocol
93         utilizes Type/Length/Value (TLV) encoding for all content in the body
94         of Protocol Data Units (PDUs).  New extensions to the protocol are
95         supported by defining new TLVs.  In order to allow protocol
96         extensions to be deployed in a backwards compatible way an
97         implementation is required to ignore TLVs that it does not
98         understand.  This behavior is also applied to sub-TLVs, which are
99         contained within TLVs.

[minor] Add references to ISO10589 and rfc5305 in this first
paragraph: ...(IS-IS) protocol [ISO10589]...applied to sub-TLVs
[RFC5305]...


101        A corollary to ignoring unknown TLVs is having the validation of PDUs
102        be independent from the validation of the TLVs contained in the PDU.
103        PDUs which are valid MUST be accepted even if an individual TLV
104        contained within that PDU is invalid in some way.

[major] "MUST be accepted"   This is the behavior already specified in
ISO10589, right?   If so, then we shouldn't make it Normative here;
instead, s/MUST/must and add a reference to ISO10589.

Including that reference makes the first sentence in the next
paragraph unnecessary.


106        These behaviors are specified in existing protocol documents -
107        principally [ISO10589] and [RFC5305].  In addition, the set of TLVs
108        (and sub-TLVs) which are allowed in each PDU type is documented in
109        the TLV Codepoints Registry ( https://www.iana.org/assignments/isis-
110        tlv-codepoints/isis-tlv-codepoints.xhtml ) established by [RFC3563]
111        and updated by [RFC6233] and [RFC7356].

[minor] s/( 
https://www.iana.org/assignments/isis-tlv-codepoints/isis-tlv-codepoints.xhtml
)/[TLV_CODEPOINTS]


113        This document is intended to clarify some aspects of existing
114        specifications and thereby reduce the occurrence of non-conformant
115        behavior seen in real world deployments.  Although behaviors
116        specified in existing protocol specifications are not changed, the
117        clarifications contained in this document serve as updates to RFC
118        3563 (see Section 2), RFC 5304, and RFC 6233 (see Section 3).

[minor] You missed RFC6232.

[major] s/5304/5305   Is §3.2 intended to update rfc5304?

[major] §3 has several subsections; can we please be specific above?
For example, §3.3 clearly updates rfc5305...§3.4 rfc6232...  I
suggested some text for §2/§3.3/§4.3; please add other explicit
indications of the updates.

[major] An important clarification, which I don't think is explicitly
made, is that the behavior for unknown is being applied to disallowed.
Not knowing and not expecting (= disallowed) are different things, but
this document is saying that the document treats them the same:
ignore.  I think adding a sentence about that relationship would help
a lot, and it may help us cover any cases that may have been missed (I
don't think there are any, but just in case)...maybe something like
this (I'm sure you can come up with much better words):

   This document extends the concept of unknown to disallowed.


[major] Related to the last comment...  The title of the document
mentions "Invalid" TLVs.  (1) there is no other mention of an invalid
TLV in the text, and (2) there is no connection made between "invalid"
(in the title) and "disallowed" (in the text).


120     2.  TLV Codepoints Registry

122        [RFC3563] established the IANA managed IS-IS TLV Codepoints Registry
123        for recording assigned TLV code points [TLV_CODEPOINTS].  The initial
124        contents of this registry were based on [RFC3359].

[nit] s/IANA managed/IANA-managed


...
142        If "N" is entered in a column it means the TLV is NOT allowed in the
143        corresponding PDU type.

[minor] s/NOT/not/g   I know you want the emphasis, but the comment
always comes later about "NOT" not being a key word.

[major] Please indicate somewhere in this section that the update to
rfc3563 is the description of the PDU type columns.


...
151     3.1.  Handling of Disallowed TLVs in Received PDUs other than LSP Purges
...
157        "Any codes in a received PDU that are not recognised shall be
158        ignored."

[style nit] Indenting would highlight the quote; there are several
quotes throughout the document.


...
165     3.2.  Special Handling of Disallowed TLVs in Received LSP Purges

167        When purging LSPs [ISO10589] recommends (but does not require) the
168        body of the LSP (i.e., all TLVs) be removed before generating the
169        purge.  LSP purges which have TLVs in the body are accepted though
170        any TLVs which are present "MUST" be ignored.

[nit] s/When purging LSPs/When purging LSPs,

[major] I'm sure that ISO10589 doesn't have a MUST in it: s/"MUST" be
ignored/are ignored


172        When cryptographic authentication [RFC5304] was introduced, this
173        looseness when processing received purges had to be addressed in
174        order to prevent attackers from being able to initiate a purge
175        without having access to the authentication key.  [RFC5304] therefore
176        imposed strict requirements on what TLVs were allowed in a purge
177        (authentication only) and specified that:

179        "ISes MUST NOT accept purges that contain TLVs other than the
180        authentication TLV".

182        This behavior was extended by [RFC6232] which introduced the Purge
183        Originator Identification (POI) TLV and [RFC6233] which added the
184        "Purge" column to the TLV Codepoints registry to identify all the
185        TLVs which are allowed in purges.

187        The behavior specified in [RFC5304] is not backwards compatible with
188        the behavior defined by [ISO10589] and therefore can only be safely
189        enabled when all nodes support cryptographic authentication.
190        Similarly, the extensions defined by [RFC6233] are not compatible
191        with the behavior defined in [RFC5304], therefore can only be safely
192        enabled when all nodes support the extensions.

194        It is recommended that implementations provide controls for the
195        enablement of behaviors that are not backward compatible.

[major] Is this a new recommendation made in this document?  If so,
should "RECOMMENDED" (aka SHOULD) be used instead?


197     3.3.  Applicability to sub-TLVs

199        [RFC5305] introduced sub-TLVs, which are TLV tuples advertised within
200        the body of a parent TLV.  Registries associated with sub-TLVs are
201        associated with the TLV Codepoints Registry and specify in which TLVs
202        a given sub-TLV is allowed.  As with TLVs, it is required that sub-
203        TLVs which are disallowed MUST be ignored on receipt.

[major] The text in rfc5305 reads "Unknown sub-TLVs are to be ignored
and skipped upon receipt."  Please be specific in the last sentence,
something like:

   Section 2 of rfc5305 is updated by adding this sentence: As with TLVs,
   sub-TLVs which are disallowed MUST be ignored on receipt.

You may also want to update the text in rfc5305 about unknown to make
it Normative.


205     3.4.  Correction to POI TLV Registry Entry
...
215        "The additional values for this TLV should be IIH:n, LSP:y, SNP:n,
216        and Purge:y. "

[nit] s/y. "/y."


218        The correct setting for "LSP" is "n".  This document corrects that
219        error.

[major] s/This document corrects that error./This document updates
rfc6232 to correct that error.


221     4.  TLV Validation and LSP Acceptance

223        The correct format of a TLV and its associated sub-TLVs if applicable
224        are defined in the document(s) which introduce each codepoint.  The
225        definition SHOULD include what action to take when the format/content
226        of the TLV does not conform to the specification (e.g., "MUST be
227        ignored on receipt").  When making use of the information encoded in
228        a given TLV (or sub-TLV) receiving nodes MUST verify that the TLV
229        conforms to the standard definition.  This includes cases where the
230        length of a TLV/sub-TLV is incorrect and/or cases where the value
231        field does not conform to the defined restrictions.

[nit] s/sub-TLVs if applicable/sub-TLVs, if applicable,

[major] "SHOULD include what action to take when the format/content of
the TLV does not conform to the specification"  When is it ok to not
include that information?  It sounds like basic error correction to
me.  IOW, why is "MUST" not used?


...
240        LSP Acceptance rules are specified in [ISO10589] .  Acceptance rules
241        for LSP purges are extended by [RFC5304] [RFC5310] and further
242        extended by [RFC6233].

[nit] s/[RFC5304] [RFC5310]/[RFC5304] and [RFC5310],


...
249     5.  IANA Considerations
...
254        IANA is also requested to modify the entry for the POI TLV in the TLV
255        Codepoints Registry to be:

[major] s/POI/Purge Originator Identification
I know POI was expanded before, but let's be explicit in the IANA instructions.


257        IIH:n, LSP:n, SNP:n, and Purge:y.

[major] A reference to this document should also be added for POI.


259     6.  Security Considerations
...
264        The clarifications discussed in this document are intended to make it
265        less likely that implementations will incorrectly process received
266        LSPs, thereby also making it less likely that a bad actor could
267        exploit a faulty implementaion.

[nit] s/implementaion/implementation

_______________________________________________
Lsr mailing list
Lsr@ietf.org
https://www.ietf.org/mailman/listinfo/lsr

Reply via email to