[mpls] Benjamin Kaduk's No Objection on draft-ietf-mpls-base-yang-15: (with COMMENT)
Benjamin Kaduk via Datatracker <noreply@ietf.org> Tue, 08 September 2020 22:43 UTC
Return-Path: <noreply@ietf.org>
X-Original-To: mpls@ietf.org
Delivered-To: mpls@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 93A013A00C9; Tue, 8 Sep 2020 15:43:30 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Benjamin Kaduk via Datatracker <noreply@ietf.org>
To: The IESG <iesg@ietf.org>
Cc: draft-ietf-mpls-base-yang@ietf.org, mpls-chairs@ietf.org, mpls@ietf.org, Loa Andersson <loa@pi.nu>, mpls-chairs@ietf.org, draft-ietf-mpls-base-yang@ietf.org, loa@pi.nu
X-Test-IDTracker: no
X-IETF-IDTracker: 7.16.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: Benjamin Kaduk <kaduk@mit.edu>
Message-ID: <159960501058.14013.16263950991075430546@ietfa.amsl.com>
Date: Tue, 08 Sep 2020 15:43:30 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/mpls/euISJ7qd3H9Jl6U-T9DxwW7mCRg>
Subject: [mpls] Benjamin Kaduk's No Objection on draft-ietf-mpls-base-yang-15: (with COMMENT)
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Multi-Protocol Label Switching WG <mpls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mpls>, <mailto:mpls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mpls/>
List-Post: <mailto:mpls@ietf.org>
List-Help: <mailto:mpls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mpls>, <mailto:mpls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Sep 2020 22:43:31 -0000
Benjamin Kaduk has entered the following ballot position for draft-ietf-mpls-base-yang-15: 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 IESG DISCUSS and COMMENT positions. The document, along with other ballot positions, can be found here: https://datatracker.ietf.org/doc/draft-ietf-mpls-base-yang/ ---------------------------------------------------------------------- COMMENT: ---------------------------------------------------------------------- Before getting into the section-by-section comments, I'll note that there are a few things in the YANG module itself that seem awry to my untrained eye. Section 2.2 The 'ietf-mpls' module defines the following identities: [...] label-block-alloc-mode: (nit?) We also define two identities based on this one; is the list of "defines the following identities" supposed to be comprehensive (vs. "high-level")? nhlfe-multiple-contents: A YANG grouping that describes a set of NHLFE(s) and their associated parameters as described in the MPLS architecture document [RFC3031]. (editorial) Perhaps we could say a few more words about how these NHLFEs are related/why they are being grouped together? (I do not recall such grouping being specifically covered in 3031.) rib-mpls-properties: A YANG grouping for the augmentation of MPLS label forwarding data to the generic RIB as defined in [RFC3031]. nit(?): the "as defined in <reference>" seems more applicable to "MPLS label forwarding data" than "generic RIB". Section 2.3 o routes that cross-connect an MPLS local label to a Layer-3 adjacency or interface - such as MPLS Segment-Routing (SR) Adjecency Segments (Adj-SIDs), SR MPLS Binding SIDs, etc. as defined in [RFC8402]. nit(?): is there a semantic difference between "MPLS SR" and "SR MPLS" for the two types of route mentioned? Section 2.5 identity label-block-alloc-mode { description "Base identity label-block allocation mode."; } nit: missing "for". grouping nhlfe-multiple-contents { description "MPLS NHLFE contents."; nit: this description feels a little terse; is this the "generic" case or something similar? leaf index { type string; description "A user-specified identifier utilised to uniquely reference the next-hop entry in the next-hop list. The value of this index has no semantic meaning other than for referencing the entry."; } leaf backup-index { type string; description "A user-specified identifier utilised to uniquely reference the backup next-hop entry in the NHLFE list. The value of this index has no semantic meaning other than for referencing the entry."; } I'm not sure I understand the semantics, here -- does 'index' authoritatively name the current entry with 'backup-index' being effectively a pointer to a different entry? I don't see any leafs of type string in, e.g., rt-types:mpls-label-stack that this would be referring to. If the backup-index is indeed just a pointer to a different entry, why is the string name used instead of a YANG reference? Also, what's a good reference for "backup" MPLS next-hops? I don't see the string "backup" in either RFC 3031 or 3032. grouping interfaces-mpls { [...] leaf name { type if:interface-ref; description "The name of a configured MPLS interface."; } pedantic nit: is this really a "name"? leaf start-label { type rt-types:mpls-label; must '. >= ../end-label' { error-message "The start-label must be less than or equal " + "to end-label"; } I think the sense of the YANG comparator is reversed, for both start-label (this) and end-label (not quoted). (Also, IIUC, it's redundant to specify both, but harmless.) leaf free-labels-count { when "derived-from-or-self(../block-allocation-mode, " + "'mpls:label-block-alloc-mode-manager')"; type yang:counter32; config false; description "Label-block free labels count."; I think that counter32 is semantically the wrong type, here (and for inuse-labels-count as well) -- IIRC the 'counter' types are for thigns like counting a particular type of event, and only ever monotonically increase. Even if the free label count behaves monotonically (which is far from clear to me), wouldn't it be decreasing, not increasing? Also, won't it always be true that free-labels-count + inuse-labels-count == end-label - start-label + 1? I'm not sure why there's a need to introduce such redundant fields and the corresponding risk of internal inconsistency among them. uses rib-mpls-properties { /* MPLS AF aaugmentation to native MPLS RIB */ nit: s/aaugmentation/augmentation/ uses rib-active-route-mpls-input { /* MPLS AF aaugmentation to native MPLS RIB */ (ditto) Section 4 Why is the rt:simple-next-hop augmentation listed but not the rt:next-hop-list augmentation? IIUC they are functionally identical in terms of the sensitivity of information content. Also, it seems like the augmented RPC output is similarly sensitive to the readable nodes that are already mentioned. It looks like the main writeable nodes are the global configuration/state, and while it's perhaps defensible to say that these particular nodes are not sensitive, I did want to check what the behavior would be if (e.g.) the label-blocks subtree was overwritten. Would things just silently start using the new label block and keep working? Perhaps it would be too banal, but should we reference the security considerations of 3031/3032 as applying to MPLS usage? Section 7.1 It's not clear that we reference RFC 8402 in a normative manner anywhere. Section 7.2 I agree with the document shepherd that RFCs 3031 and 3032 naturally would be classified as normative references. Similarly, RFC 7424 is refrenced by the YANG module itself, which usually indicates a normative reference.
- [mpls] Benjamin Kaduk's No Objection on draft-iet… Benjamin Kaduk via Datatracker
- Re: [mpls] Benjamin Kaduk's No Objection on draft… Tarek Saad