Re: [Gen-art] Gen-ART Review of draft-ietf-mpls-ldp-capabilities-03
"Spencer Dawkins" <spencer@wonderhamster.org> Mon, 06 April 2009 16:52 UTC
Return-Path: <spencer@wonderhamster.org>
X-Original-To: gen-art@core3.amsl.com
Delivered-To: gen-art@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 23CDF3A6A07 for <gen-art@core3.amsl.com>; Mon, 6 Apr 2009 09:52:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.165
X-Spam-Level:
X-Spam-Status: No, score=-2.165 tagged_above=-999 required=5 tests=[AWL=0.433, BAYES_00=-2.599, STOX_REPLY_TYPE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id C98Kl1yoDY3m for <gen-art@core3.amsl.com>; Mon, 6 Apr 2009 09:52:12 -0700 (PDT)
Received: from mout.perfora.net (mout.perfora.net [74.208.4.194]) by core3.amsl.com (Postfix) with ESMTP id 5CF9E3A67B7 for <gen-art@ietf.org>; Mon, 6 Apr 2009 09:52:12 -0700 (PDT)
Received: from S73602b (w173.z064002096.dfw-tx.dsl.cnc.net [64.2.96.173]) by mrelay.perfora.net (node=mrus1) with ESMTP (Nemesis) id 0MKpCa-1Lqs4J1YT6-000d1s; Mon, 06 Apr 2009 12:53:16 -0400
Message-ID: <DD2EE845F7484FDAB1148ACAEA7D9DC2@china.huawei.com>
From: Spencer Dawkins <spencer@wonderhamster.org>
To: rhthomas@cisco.com, shivani@juniper.net, rahul@juniper.net, jeanlouis.leroux@orange_ftgroup.com, Syed Kamran Raza <skraza@cisco.com>
References: <010801c8ab2c$32c98f00$ce7da40c@china.huawei.com>
Date: Mon, 06 Apr 2009 11:52:41 -0500
MIME-Version: 1.0
Content-Type: text/plain; format="flowed"; charset="iso-8859-1"; reply-type="original"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.5512
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
X-Provags-ID: V01U2FsdGVkX1/lUlrxUMaodOfgq1upHl10oiya/4pVMZQJ12f rPDzlNNwYC1M/ZvgywC8IlHqm051jBEpjiqpgyzTlZ4QUCDUyn Of+q4rlrkohoSR+UPp0VptM2YIvrqT3Xl2r+yMjmUw=
Cc: Ross Callon <rcallon@juniper.net>, General Area Review Team <gen-art@ietf.org>
Subject: Re: [Gen-art] Gen-ART Review of draft-ietf-mpls-ldp-capabilities-03
X-BeenThere: gen-art@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "GEN-ART: General Area Review Team" <gen-art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/gen-art>, <mailto:gen-art-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/gen-art>
List-Post: <mailto:gen-art@ietf.org>
List-Help: <mailto:gen-art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/gen-art>, <mailto:gen-art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 06 Apr 2009 16:52:19 -0000
Just to let people know, all of my comments from 02 have been addressed in the 03 revision. Ready for publication as a Proposed Standard. Thanks, Spencer >I have been selected as the General Area Review Team (Gen-ART) > reviewer for this draft (for background on Gen-ART, please see > http://www.alvestrand.no/ietf/gen/art/gen-art-FAQ.html). > > Please resolve these comments along with any other Last Call comments > you may receive. > > Document: draft-ietf-mpls-ldp-capabilities-02 > Reviewer: Spencer Dawkins > Review Date: 2008-04-30 > IETF LC End Date: 2008-04-25 (yeah, I'm late) > IESG Telechat date: (if known) > > Summary: > > This draft is almost ready for publication as a Proposed Standard. > > Comments: > > Almost all my "review comments" below are about 2119 language - this is a > very SHOULD-y draft. I'd especially call Russ's attention to my comment > about multiple occurrences of the same capability in one message, in > Section > 7. > > idnits 2.08.08 reports "no issues", FWIW. > > Abstract > > A number of enhancements to the Label Distribution Protocol (LDP) > have been proposed. Some have been implemented, and some are > advancing toward standardization. It is likely that additional > enhancements will be proposed in the future. At present LDP has no > guidelines for advertising such enhancements at LDP session > initialization time. There is also no mechanism to enable and > disable enhancements after the session is established. This document > provides guidelines for advertising LDP enhancements at session > initialization time. It also defines a mechanism to enable and > disable enhancements after LDP session establishment. > > Spencer (clarity): here and in the Introduction, the draft says > "guidelines > at session initialization time, mechanism to enable/disable after session > establishment". Aren't both of these mechanisms? s/provides > guidelines/defines a mechanism/? > > 1. Introduction > > A number of enhancements to LDP as specified in [RFC5036] have been > proposed. These include LDP Graceful Restart [RFC3478], Fault > Tolerant LDP [RFC3479], multicast extensions [MLDP], signaling for > layer 2 circuits [RFC4447], a method for learning labels advertised > by next next hop routers in support of fast reroute node protection > [NNHOP], upstream label allocation [UPSTREAM_LDP], and extensions for > signaling inter-area LSPs [IALDP]. Some have been implemented, and > some are advancing toward standardization. It is likely that > additional enhancements will be proposed in the future. > > Spencer (clarity): I think I understand what all the words mean, but > should > this be "additional enhancements will be implemented", or even "deployed"? > > At present LDP has no guidelines for advertising such enhancements at > LDP session initialization time. There is also no mechanism to > enable and disable enhancements after the session is established. > > This document provides guidelines for advertising LDP enhancements at > session initialization time. It also defines a mechanism to enable > and disable enhancements after LDP session establishment. > > LDP capability advertisement provides means for an LDP speaker to > announce what it can receive and process. It also provides means for > a speaker to inform peers of deviations from behavior specified by > > Spencer (clarity): are "a speaker" and "an LDP speaker" interchangeable in > this specification? I'm assuming so... > > [RFC5036]. An example of such a deviation is LDP graceful restart > where a speaker retains MPLS forwarding state for LDP-signaled LSPs > when its LDP control plane goes down. It is important to point out > that not all LDP enhancements require capability advertisement. For > example, upstream label allocation does but inbound label filtering, > where a speaker installs forwarding state for only certain FECs, does > not. > > 3. The LDP Capability Mechanism > > The LDP capability advertisement mechanism operates as follows: > > - Each LDP speaker is assumed to implement a set of enhancements > each of which has an associated capability. At any time a > speaker may have none, one or more of those enhancements > "enabled". When an enhancement is enabled the speaker advertises > the associated capability to its peers. By advertising the > capability to a peer the speaker asserts that it shall perform > the protocol actions specified for the associated enhancement. > For example, the actions may involve receiving and processing > messages from a peer that the enhancement requires. Unless the > > Spencer (clarity): I got a bit lost here. Suggest "For example, the > enhancement may require the LDP speaker to receive and process > enhancement-specific messages from its peer" - is this still correct? > > capability has been advertised the speaker will not perform > protocol actions specified for the corresponding enhancement. > > - Includes an IANA considerations section that notes that an IANA- > assigned code point for the optional parameter corresponding to > the enhancement is required. > > Spencer (review comment): Is this saying "Includes an IANA Considerations > section that requests assignment of a code point for the optional > parameter > corresponding to the enhancement"? > > 4. Specifying Capabilities in LDP Messages > > The format of a TLV that is a Capability Parameter is: > > Spencer (clarity): "The format of a Capability Parameter TLV is:"? > > 0 1 2 3 > 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 > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > |U|F| TLV Code Point | Length | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > |S| Reserved | | > +-+-+-+-+-+-+-+-+ Capability Data | > | +-+-+-+-+-+-+-+-+ > | | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > > where: > U-bit > SHOULD be 1 (ignore if not understood). > > Spencer (review comment): I'm fairly comfortable with this being a SHOULD, > but would be more comfortable with text that explains why the U-bit would > be > set to zero ("unless the LDP speaker is unwilling to continue with a peer > that does not understand the enhancement"?) > > F-bit: > SHOULD be 0 (don't forward if not understood). > > Spencer (review comment): I'm confused by why this is a SHOULD... If the > point is that > > - I can ask you to do something you don't understand, so you ignore it, > but > > - you wouldn't forward the capability to a third party who might think you > DO understand it, and start using the enhancement you don't understand > > ... I'm having a hard time understanding why this isn't a MUST. If I > missed > the point, my apologies. > > To ensure backward compatibility with existing implementations the > following TLVs play the role of a Capability Parameter when included > > Spencer (clarity): was this section written when more than one type of TLV > played the role of a Capability Parameter? the phrasing is oddly plural. > > in Initialization messages: > > - FT Session TLV [RFC3479] > > This document refers to such TLVs as Backward Compatibility TLVs. > > 7. Procedures for Capability Parameters in Initialization Messages > > An LDP speaker SHOULD NOT include more than one instance of a > Capability Parameter with the same type and value in an > Initialization message. Note, however, that processing multiple > instances of such a parameter does not require special handling, as > additional instances do not change the meaning of an announced > capability. > > Spencer (review comment): I'm concerned that this is SHOULD NOT, because > (in > my understanding) an implementation must still be prepared to accept > messages that violate a SHOULD, but the document doesn't provide enough > detail to process such messages in an interoperable way. > > "does not require special handling" seems to handwave some difficult > problems - if I advertise a capability and withdraw it in the same > message, > the order of evaluation isn't specified, for instance - so is the result > that the capability is advertised, or withdrawn? If you really don't want > to > specify this level of detail - and please don't - just make this MUST NOT > (and, for extra credit, specify the error handling for a message that > violates the MUST NOT). > > These procedures enable an LDP speaker A that advertises a specific > LDP capability C to establish an LDP session with speaker B that does > not advertise C. In this situation whether or not capability C may > be used for the session depends on the semantics of the enhancement > associated with C. If the semantics do not require both A and B > advertise C to one another then B could use it; that is, A's > advertisement of C permits B to send messages to A used by the > enhancement. > > Spencer (clarity): call me thick. This text would be clearer if you s/A/X/ > and s/B/Y/, because using A and B for speakers and C for a capability > misled > me into thinking that this paragraph was about transitive support, when A > understands a capability, B does not, and SPEAKER C also understands it. > The > paragraph is correct as written - it's just easy to misread. > > It is the responsibility of the capability designer to specify the > behavior of an LDP speaker that has enabled a certain enhancement, > advertised its capability and determines that its peer has not > advertised the corresponding capability. The document specifying > procedures for the capability MUST describe the behavior in this > situation. If the specified procedure is to terminate the session > the LDP speaker SHOULD send a Notification message to the peer before > terminating the session. The Status Code in the Status TLV of the > Notification message SHOULD be Unsupported Capability, and the > > Spencer (review comment): why SHOULD and not MUST? I'm not asking for > MUST, > just a better understanding of why this wouldn't happen. > > message SHOULD contain the unsupported capabilities (see Section 9 > for more details). In this case the session SHOULD NOT be re- > established automatically. How the session is re-established is > beyond the scope of this document. > > Spencer (review comment): I'm not sure why the session SHOULD NOT be > re-established, but given the following sentence, I'd suggest striking the > whole point - as out of scope. > > It depends on the LDP capability > and MUST be specified along with the procedures specifying the > capability. > > An LDP speaker that supports capability advertisement and includes a > Capability Parameter in its Initialization message SHOULD set the TLV > U bit to 1. This ensures that an [RFC5036] compliant peer that does > not support the capability mechanism will ignore the Capability > Parameter and allow the session to be established. > > Spencer (review comment): this may be the same comment as previously (on > SHOULD for setting the U-bit to 1), but it seems like you expect that LDP > speakers would want to allow the session to be established whether or not > LDP Capability extension is supported or not - can you think of a scenario > where this wouldn't be true? If not, I'd suggest MUST, or at least > explaining the SHOULD a bit. > > 9. Extensions to Error Handling > > This document defines a new LDP status code named Unsupported > Capability. The E bit of the Status TLV carried in a Notification > message that includes this status code SHOULD be set to 0. > > Spencer (review comment): why not MUST? Or alternatively, what does the > receiver do differently depending on whether the E-bit is 0, or 1? > > When the Status Code in a Notification Message is Unknown TLV the > message SHOULD specify the TLV that was unknown. When the > > Spencer (review comment): so, if the message does not specify the TLV that > was unknown, what does the LDP speaker do then? I'm not sure why this > isn't > a MUST. > > Notification message specifies the TLV that was unknown it MUST > include the unknown TLV in a Returned TLVs TLV. > > 11. Backward Compatibility > > Section 3 identifies a set of Backward Compatibility TLVs that may > > Spencer (clarity): again, it's a "set" of one TLV... > > appear in Initialization messages in the role of a Capability > Parameter. This permits existing LDP enhancements that use an ad hoc > mechanism for enabling capabilities at sesssion initialization time > to continue to do so. > > > _______________________________________________ > Gen-art mailing list > Gen-art@ietf.org > https://www.ietf.org/mailman/listinfo/gen-art >
- [Gen-art] Gen-ART Review of draft-ietf-mpls-ldp-c… Spencer Dawkins
- Re: [Gen-art] Gen-ART Review of draft-ietf-mpls-l… Spencer Dawkins