[mpls] AD review of draft-ietf-mpls-mldp-hsmp

"Adrian Farrel" <adrian@olddog.co.uk> Sun, 17 November 2013 20:24 UTC

Return-Path: <adrian@olddog.co.uk>
X-Original-To: mpls@ietfa.amsl.com
Delivered-To: mpls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BBBEC11E8EE1 for <mpls@ietfa.amsl.com>; Sun, 17 Nov 2013 12:24:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.001
X-Spam-Level:
X-Spam-Status: No, score=0.001 tagged_above=-999 required=5 tests=[BAYES_50=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YGf92WeH8nqf for <mpls@ietfa.amsl.com>; Sun, 17 Nov 2013 12:24:15 -0800 (PST)
Received: from asmtp1.iomartmail.com (asmtp1.iomartmail.com [62.128.201.248]) by ietfa.amsl.com (Postfix) with ESMTP id 8889911E81EC for <mpls@ietf.org>; Sun, 17 Nov 2013 12:23:53 -0800 (PST)
Received: from asmtp1.iomartmail.com (localhost.localdomain [127.0.0.1]) by asmtp1.iomartmail.com (8.13.8/8.13.8) with ESMTP id rAHKNpZh025585; Sun, 17 Nov 2013 20:23:51 GMT
Received: from 950129200 (unsi-72-29-212-251.unsi.net [72.29.212.251] (may be forged)) (authenticated bits=0) by asmtp1.iomartmail.com (8.13.8/8.13.8) with ESMTP id rAHKNn0n025565 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Sun, 17 Nov 2013 20:23:50 GMT
From: Adrian Farrel <adrian@olddog.co.uk>
To: draft-ietf-mpls-mldp-hsmp.all@tools.ietf.org
Date: Sun, 17 Nov 2013 20:23:48 -0000
Message-ID: <013a01cee3d2$ed3c4370$c7b4ca50$@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: Ac7j0ulIFPV3NWw1SyO2h/jAMWiQcA==
Content-Language: en-gb
Cc: mpls@ietf.org
Subject: [mpls] AD review of draft-ietf-mpls-mldp-hsmp
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.12
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, 17 Nov 2013 20:24:23 -0000

Hi,

I have done my usual AD review of your document having received the
publication request from the working group. The purpose of the review is
to catch and clean up any issues before the document goes to IETF last
call and IESG evaluation.

The WG chairs tell me that there is at least one implementation and a
few planned implementations, so it is clear we should look at how to
advance this work. At the same time I have a number of issues with the
text that I believe need to be fixed or discussed before we can do that.

Could you please work through the comments below and either produce a
revised document or let me know why I am wrong.

Thanks,
Adrian

===========

You will need to expand some acronyms on first use.
You need to expand them in the Abstract and in the main text even if
they are already expanded in the Abstract.
I see:
LSP
P2MP
OAM
PW
PE
P2P
VPMS
IPTV
FEC
LSR
LER

---

Section 2

All good except would be good to actually expand the acronyms rather
than just explaining them.

Perhaps also give a reference for mLDP.

---

Please read the comments on Sections 3.1 to 3.3, below, and then the
meta-comment that follows.

---

Section 3.1

I believe that the TicToc working group has agreed to change the status
of [I-D.ietf-tictoc-1588overmpls] to be Experimental because it only
describes an approach, and does not have consensus of the MPLS
community.

So I think you should

OLD
   [IEEE1588] over MPLS is defined in [I-D.ietf-tictoc-1588overmpls].
NEW
   [I-D.ietf-tictoc-1588overmpls] describes a possible approach to
   carry [IEEE1588] over an MPLS network.
END

I do believe this use case in as much as timing synchronization benefits
from the forward and reverse paths being identical.  I am less sure that
P2MP timing synchronization is a big requirement, but I am happy to
believe you if you say it is needed.

---

I think you need to do some rewriting in Section 3.2

[I-D.ietf-pwe3-p2mp-pw] expired over a year ago meaning that it has made
no progress for about 20 months. It appears to have been abandoned by
the WG. I think that part of the reason was that the solutions offered
provided too much complexity when the rend result could be achieved more
simply.

This leads to wonder whether your use case is making too many
assumptions.

You could possibly use draft-ietf-pwe3-p2mp-pw-requirements as your
reference, but to be honest with you, that I-D is not in a  good place
either having been sent back to the WG by its AD.

Similarly, [I-D.ietf-l2vpn-vpms-frmwk-requirements] expired more than
six months ago meaning it has made no progress for a year.

You could rewrite this section to establish the requirements in your
text rather than by reference, but IMHO, the best thing is to remove the
whole section.

---

As far as I can tell, section 3.3. does not provide a motivating use
case for this work. It is true that if you do have HSMP it would server
the purpose, but I do not believe that the IGMP messages or the channel
switch messages or whatever have to follow the reverse path of the P2MP
distribution tree.

This makes me think that you have two classes of use case (in the set of
two use cases that remain after the removal of section 3.2). The first
is the type of use case that motivates the invention of HSMP. The second
is the type of use case that shows that HSMP could also be used for
other things. Really, we need to separate these out to see whether there
is real motivation for this work.

Does this mean that the only reason for this work is time distribution
in a multicast network?

---

The comments on Sections 3.1 to 3.3, above, make me wonder about the
value of Section 3. What does it add to the document? Was it intended to
prove that there is a purpose to this work, or was it just trying to
show some ways that HSMP might be used?

If the latter, I recommend simply removing the whole section.

If the former, I think you have failed! :-(
If you *do* want show that there is value in the work (and I don't
believe you need to *if* people are coding/deploying this function) then
I suspect that the real motivation for this work is that it provides
MP2MP functionality with the simplicity of a single hub compared to the
multiple "distributed" hubs of MP2MP LSPs. If you feel the need to show
a purpose, then I think *this* is the topic you need to discuss in
Section 3.

---

Section 4

   HSMP LSP is similar with MP2MP LSP described in [RFC6388], with the
   difference that the leaf LSRs can only send traffic to root node
   along the same path of traffic from root node to leaf node.

This paragraph is very ambiguous.
Is it that the LSRs can only send *traffic*?
Is it that the LSRs can only send *to*the*root*?
Or is it that the LSRs can only send *along*the*same*path*

I think you need

   HSMP LSP is similar to MP2MP LSP described in [RFC6388], with the
   difference that in HSMP, when the leaf LSRs send traffic on the LSP,
   the traffic is first delivered only to the root node and follows the
   reverse path of traffic sent from the root node to the leaf node. The
   root note then distributes the traffic on the P2MP tree to all of the
   leaf nodes.

---

Section 4

   The transmission of packets from the root node of an HSMP LSP
   to the receivers is identical to that of a P2MP LSP.  Traffic from a
   leaf node follows the upstream path toward the root node, along a
   path that traverse the same nodes as the downstream node, but in
   reverse order.

I believe this says that traffic is delivered back to the sender in all
cases. Is that the intent?

This makes for a significant difference between HSMP and MP2MP, doesn't
it? Shouldn't the document make this clearer?

---

Although Figure 1 shows the settings of the U and F bits, I think you
should mention them explicitly. This seems to be important because it
impacts what happens if there is an LSR in the path that does not
support HSMP.

---

Somewhat to my surprise, the use of the HSMP capability TLV is not
described anywhere. Reading between the lines in Section 4.1 I can see
that the new TLV is carried on the Initialization message. I can also
see that an implementation wishing to indicate it supports HSMP includes
the TLV and follow the procedures for indicating capabilities as defined
in RFC 5561.

But I don't find anything saying MUST NOT use HSMP FEC is peer does not
support HSMP.

I also don't understand what happens if I am tying to build an HSMP LSP
and discover that the next hop does not support HSMP. Can I have an
HSMP LSP with a hole in it? Does an LSR finding it cannot advance an
HSMP FEC fail any received HSMP LDP messages? Is there, in fact, an
assumption that all nodes that might be on an HSMP tree will support
HSMP?

I think you need to explain all this. You could look to RFC 6388 for
some suitable wording.

---

Throughout Section 4 the references to 6388 for process may be "obvious"
but are broken.

For example, in 4.3.1 you have

   Determining the upstream LSR for the HSMP LSP <X, Y> follows the
   procedure for a MP2MP LSP described in [RFC6388] Section 3.3.1.1.

But Section 3.3.1.1 of RFC 6388 says:

   Determining the upstream LDP peer U for an MP2MP LSP <X, Y> follows
   the procedure for a P2MP LSP described in Section 2.4.1.1.

This is a double indirection, so you should go direct to the source.

For example, later in 4.3.1 you have

   Determining one's HSMP downstream LSR follows the procedure defined
   in [RFC6388] section 3.3.1.2.

But Section 3.3.1.2 of RFC 6388 says

   An LDP peer U that receives an MP2MP-D Label Mapping from an LDP peer
   D will treat D as downstream MP2MP LSR.

which is not helpful in the context of this I-D.

I think the bottom line is that this document needs to be written to
desribe the processes that apply for these extensions.

Looking to the future, there is a strong case to be made that HSMP
might get more traction than MP2MP (since it provides the same user
service with a number of simplifications). If this turns out to be the
case, you do not want this document to need to lean on RFC 6388. It
should be independent. By all means reference 6388 for comparison, but
do not use it to define your processes.

---

I am unconvinced by Section 7. As I read the rest of the document, HSMP
has a high reliance on being able to produce a tree where the leaf-to-
root path is co-routed (in the opposite direction) with the root-to-leaf
path for each leaf. But I don't see anything in the document that
*makes* this happen.

Section 7 seems to expose that the document assumes that co-routing will
happen fortuitously. That is, when it doesn't occur, the network is 
requested to detect the fact and scream.

If the main purpose of HSMP is the co-routing, shouldn't this be
factored into the protocol? 

If detection and reporting of non-co-routed HSMP LSPs is so important,
shouldn't the protocol enable it? And maybe the LSP shouldn't even come
up?