[mpls] AD review of draft-ietf-mpls-forwarding
"Adrian Farrel" <adrian@olddog.co.uk> Sun, 26 January 2014 18:02 UTC
Return-Path: <adrian@olddog.co.uk>
X-Original-To: mpls@ietfa.amsl.com
Delivered-To: mpls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C55191A0075 for <mpls@ietfa.amsl.com>; Sun, 26 Jan 2014 10:02:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.553
X-Spam-Level:
X-Spam-Status: No, score=-0.553 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_BL_SPAMCOP_NET=1.347, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=no
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 JuzRmwm3P6DE for <mpls@ietfa.amsl.com>; Sun, 26 Jan 2014 10:02:16 -0800 (PST)
Received: from asmtp4.iomartmail.com (asmtp4.iomartmail.com [62.128.201.175]) by ietfa.amsl.com (Postfix) with ESMTP id DCCB81A000A for <mpls@ietf.org>; Sun, 26 Jan 2014 10:02:15 -0800 (PST)
Received: from asmtp4.iomartmail.com (localhost.localdomain [127.0.0.1]) by asmtp4.iomartmail.com (8.13.8/8.13.8) with ESMTP id s0QI2CAr020780; Sun, 26 Jan 2014 18:02:12 GMT
Received: from 950129200 (14.21.90.92.rev.sfr.net [92.90.21.14]) (authenticated bits=0) by asmtp4.iomartmail.com (8.13.8/8.13.8) with ESMTP id s0QI2Afw020761 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Sun, 26 Jan 2014 18:02:11 GMT
From: Adrian Farrel <adrian@olddog.co.uk>
To: draft-ietf-mpls-forwarding.all@tools.ietf.org
Date: Sun, 26 Jan 2014 18:02:08 -0000
Message-ID: <005601cf1ac0$bc2ea410$348bec30$@olddog.co.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 14.0
Thread-Index: Ac8awLdikHZ/QNhcSpu9YE2obZKKtA==
Content-Language: en-gb
X-TM-AS-MML: No
Cc: mpls@ietf.org
Subject: [mpls] AD review of draft-ietf-mpls-forwarding
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: adrian@olddog.co.uk
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: <http://www.ietf.org/mail-archive/web/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: Sun, 26 Jan 2014 18:02:19 -0000
Hi, Thank you for a really thorough and clear document. I have done my usual AD review upon receiving the publication request for this document. The purpose of the review is to catch any issues that might otherwise show up in IETF last call and IESG evaluation. In this case it is also an extra pair of eyes on what is a very detailed document. I have a number of comments below. A few are editorial nits (sorry) and some are questions for clarification of the text. There is very little where I come even remotely close to saying "wrong" or missing". It looks to me that a new revision would be useful just to mop up these comments, so I have put the document into "Revised I-D Needed" state and will wait to see the next revision before starting the IETF last call. Please debate any issues where you disagree with me or think that no document change is needed. Thanks for the work, Adrian === idnits notes that... == Outdated reference: draft-ietf-pwe3-vccv-impl-survey-results has been published as RFC 7079 --- Andy may want to update his coordinates. --- Your acronym list is commendably thorough, but a little enthusiastic. AC is only used once and then only at the point of expansion. CE doesn't appear to be used at all FEC only seems to be used in this document in the context of Forwarding Equivalence Classes (LDP) The following are all well-known acronyms according to http://www.rfc-editor.org/rfc-style-guide/abbrev.expansion.txt so they don't need to be included BGP CPU DDoS DoS GMPLS IANA IP IPv4 IPv6 LDP MPLS NTP QoS RTP TCP UDP WG I think Curtis may have heard this before :-) The "preferred" (by the RFC editor) expansion of ECMP is "Equal-Cost Multipath" Several acronyms are qualified with (LDP) (CE, FEC, P, PE). I haven't checked the usage in this document, but it seems to me that the terms might have wider applicability. Indeed, a quick search revealed "RSVP-TE PE". The third expansion of PSC could have a reference to RFC 6378. I think that to avoid confusion, you need to expand this in the text when you use it. You do this well everywhere except in Section 4.7 T#32, and in this acronym list itself at E-LSP and L-LSP. --- Section 1.3 bullet 5 5. The implementer and system designer MUST support pseudowire control word (CW) if MPLS-TP is supported or if ACH [RFC5586] is being used on a pseudowire. The wording is a bit odd. "The implementation and system design..."? Ditto bullets 6 and 7 --- Section 1.3 While there is not wrong with the statements made in the bullets, some of the later ones refer to recent additions to the MPLS suite. Yet the list is presented as "there were some misconceptions." Clearly the early silicon did not have misconceptions about the inclusion of entropy labels. Just tweak the words at the top of the list? --- Section 2.1 Tunneling encapsulations which may carry MPLS, such as MPLS in GRE, L2TP, or LDP, are out of scope. I think s/LDP/UDP/ --- 2.1.1 Maybe the first paragraph should clarify "special purpose labels at the top of the label stack" --- 2.1.1 I think that this section should note that labels 0-15 were commonly referred to as "reserved labels" and are only renamed to "special purpose labels" by [I-D.ietf-mpls-special-purpose-labels]. --- 2.1.4 MPLS hierarchy as described in [RFC4206] can in principle add up to four additional labels. MPLS hierarchy is discussed in Section 2.1.6. Similar text in 2.1.6 I wonder whether the choice of "four" here is because RFC 4203 defines 1 Packet-Switch Capable-1 (PSC-1) 2 Packet-Switch Capable-2 (PSC-2) 3 Packet-Switch Capable-3 (PSC-3) 4 Packet-Switch Capable-4 (PSC-4) If that is the case, we should note that RFC 7074 deprecates PSC-2 through 4 recognising that different switching levels within the PSC world were not applied and that LSP nesting was arbitrary and not limited to four levels. On the other hand, if "four" comes from somewhere else, perhaps you could give a clue in the text. --- While per platform label space is mentioned in 2.1.7 I wonder whether more information on per platform and per interface label spaces is needed. I recall early implementations that got very confused when parallel interfaces used the same label for different purposes. I guess the point there is that you cannot assume that your neighbor is or is not using the per platform label space. Upstream label allocation may also come into this. --- 2.1.8.1 1. The most common case is where reordering occurs is rare, One too many instances of "is" --- 2.1.8.1 3. If the edge is not using pseudowire control word (CW) and the core is using multipath, reordering will be far more common. If this is occurring, the best solution is to use CW on the edge, rather than try to fix the reordering using resequencing. Completely agree, but isn't the sequence number contained in a control word meaning that the resequencing could, in any case, not be done without using a control word? --- 2.1.8.1 4. Another avoidable case is where some core equipment has multipath and for some reason insists on periodically installing a new random number as the multipath hash seed. If supporting MPLS-TP, equipment MUST provide a means to disable periodic hash reseeding and deployments MUST disable periodic hash reseeding. Even if not supporting MPLS-TP, equipment should provide a means to disable periodic hash reseeding and deployments should disable periodic hash reseeding. Are those two "should" really "SHOULD"? --- Should 2.2 distinguish the order of magnitude of replication at branch nodes? This impacts the replication method used (some devices make a copy and cycle around, some devices can do multiple copies at once). On the whole is no different from IP multicast processing except (as you note) that each outgoing packet may be different by its label value. --- 2.4 So obvious you didn't say it? In order to support an adequately balanced load distribution across multiple links, IP header information must be used. Common practice today is to reinspect the IP headers at each LSR and use the label stack and IP header information in a hash performed at each LSR. Further details are provided in Section 2.4.5. Missing is the statement that a single "flow" must not be distributed across multiple paths because of the implication for potentially significant packet misordering. And feeding that is a common requirement that such packet misordering must not occur because applications and transport protocol implementations cannot survive such misordering. --- 2.4.2 uses "composite link" and "component link". I suggest picking just one term. --- 2.4.5.1 notes that special purpose and extended special purpose labels need to be excluded from the hash. Good. But it seems that some special purpose labels will indicate that the next label stack entry contains a label with special meaning. (ELI is an example that we specifically don't have to worry about.) How do we handle that? Should we be dividing up the extended special purpose label space to have one set of code points meaning "just this label is special" and another set meaning "this label is special and the next label stack entry is magic"? --- An issue that arises from the multipath support (2.4.5.1) is that hardware assumes that after a label stack entry with the S-bit set, there are only three possible next bytes... - a control word (indicated by b0000 or b0001) - an IPv4 header - an IPv6 header This is the case regardless of how the LSP was set up, and the next bytes cannot ever be further MPLS stack entries. While this comes up 2.4.5.1 it may merit further discussion in an earlier section of the document. I note that discussion of support of PWs without the CW drives you to say that hashing beyond the S-bit should be a configurable option which would (of course) support any payload including MPLS in MPLS with repeated bottom of stack. However, you might want to specifically preclude that. --- Q#7 introduces the terms "short-pipe" and "uniform model". It provides a pointer to 2.1.6, but that section does not mention these terms (and doesn't refer to RFC 3270). --- Section 7 could usefully point back at Section 2.6.1
- Re: [mpls] draft-ietf-mpls-forwarding t.petch
- Re: [mpls] AD review of draft-ietf-mpls-forwarding Curtis Villamizar
- [mpls] AD review of draft-ietf-mpls-forwarding Adrian Farrel
- Re: [mpls] AD review of draft-ietf-mpls-forwarding Curtis Villamizar
- Re: [mpls] AD review of draft-ietf-mpls-forwarding Carlos Pignataro (cpignata)
- Re: [mpls] AD review of draft-ietf-mpls-forwarding Curtis Villamizar
- Re: [mpls] AD review of draft-ietf-mpls-forwarding Carlos Pignataro (cpignata)
- Re: [mpls] AD review of draft-ietf-mpls-forwarding Adrian Farrel
- Re: [mpls] AD review of draft-ietf-mpls-forwarding l.wood
- Re: [mpls] AD review of draft-ietf-mpls-forwarding Curtis Villamizar
- Re: [mpls] AD review of draft-ietf-mpls-forwarding l.wood
- Re: [mpls] AD review of draft-ietf-mpls-forwarding Curtis Villamizar
- Re: [mpls] AD review of draft-ietf-mpls-forwarding Curtis Villamizar
- Re: [mpls] AD review of draft-ietf-mpls-forwarding Curtis Villamizar
- Re: [mpls] AD review of draft-ietf-mpls-forwarding Adrian Farrel
- Re: [mpls] AD review of draft-ietf-mpls-forwarding Adrian Farrel
- Re: [mpls] AD review of draft-ietf-mpls-forwarding Curtis Villamizar
- Re: [mpls] draft-ietf-mpls-forwarding t.petch
- Re: [mpls] draft-ietf-mpls-forwarding Curtis Villamizar
- Re: [mpls] draft-ietf-mpls-forwarding Curtis Villamizar