Re: [mpls] MPLS-RT review of draft-pdutta-mpls-multi-ldp-instance@tools.ietf.org

"Kamran Raza (skraza)" <skraza@cisco.com> Mon, 17 September 2012 17:44 UTC

Return-Path: <skraza@cisco.com>
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 7F31721F853D for <mpls@ietfa.amsl.com>; Mon, 17 Sep 2012 10:44:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.598
X-Spam-Level:
X-Spam-Status: No, score=-10.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QTqj9efgtMH3 for <mpls@ietfa.amsl.com>; Mon, 17 Sep 2012 10:44:50 -0700 (PDT)
Received: from rcdn-iport-1.cisco.com (rcdn-iport-1.cisco.com [173.37.86.72]) by ietfa.amsl.com (Postfix) with ESMTP id C5A6D21F8687 for <mpls@ietf.org>; Mon, 17 Sep 2012 10:44:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=59358; q=dns/txt; s=iport; t=1347903889; x=1349113489; h=from:to:cc:subject:date:message-id:in-reply-to: mime-version; bh=c/lDpn9yhAugZLvNKEyLKgAauKRUAebktnje54x3ULQ=; b=WGLnVArHXtgw/xHkDeJuxJYfpfOzWnU7OsK7ssFAZ6e9x221hwx8d1ex CkQ0pbOVgO7BMmDMMZKWrPc7ETVqFLUBec/shWwRrCjKDY4Smp4UjZ6rZ KVb5FpNbuThOFXcMNCtB/9Z4i8pB2gATOU0EkqB7P9qdLQvsxQVXXAT3c w=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AjgKAAthV1CtJV2d/2dsb2JhbAABOQqCS7lWgQeCIAECBBIBBxNMEgEIEQMBAiEBBjkUCQgCBA4FIodemlmfeoshEAWGUwOVYo44gWmCZoFbPA
X-IronPort-AV: E=Sophos; i="4.80,437,1344211200"; d="scan'208,217"; a="122199232"
Received: from rcdn-core-6.cisco.com ([173.37.93.157]) by rcdn-iport-1.cisco.com with ESMTP; 17 Sep 2012 17:44:46 +0000
Received: from xhc-rcd-x08.cisco.com (xhc-rcd-x08.cisco.com [173.37.183.82]) by rcdn-core-6.cisco.com (8.14.5/8.14.5) with ESMTP id q8HHij0C008733 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Mon, 17 Sep 2012 17:44:45 GMT
Received: from xmb-aln-x03.cisco.com ([169.254.6.113]) by xhc-rcd-x08.cisco.com ([173.37.183.82]) with mapi id 14.02.0298.004; Mon, 17 Sep 2012 12:44:45 -0500
From: "Kamran Raza (skraza)" <skraza@cisco.com>
To: "draft-pdutta-mpls-multi-ldp-instance@tools.ietf.org" <draft-pdutta-mpls-multi-ldp-instance@tools.ietf.org>
Thread-Topic: [mpls] MPLS-RT review of draft-pdutta-mpls-multi-ldp-instance@tools.ietf.org
Thread-Index: AQHNhcYbEC8R7K2z8EaJIo6w0BKIUZdyykOAgBeIzICABKpdAA==
Date: Mon, 17 Sep 2012 17:44:44 +0000
Message-ID: <CC7CD2B7.1630B%skraza@cisco.com>
In-Reply-To: <C0AC8FAB6849AB4FADACCC70A949E2F12FABA330CA@EUSAACMS0701.eamcs.ericsson.se>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.2.3.120616
x-originating-ip: [10.86.250.136]
x-tm-as-product-ver: SMEX-10.2.0.1135-7.000.1014-19188.004
x-tm-as-result: No--32.937200-8.000000-31
x-tm-as-user-approved-sender: No
x-tm-as-user-blocked-sender: No
Content-Type: multipart/alternative; boundary="_000_CC7CD2B71630Bskrazaciscocom_"
MIME-Version: 1.0
Cc: "mpls@ietf.org" <mpls@ietf.org>, "mpls-chairs@tools.ietf.org" <mpls-chairs@tools.ietf.org>
Subject: Re: [mpls] MPLS-RT review of draft-pdutta-mpls-multi-ldp-instance@tools.ietf.org
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
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: Mon, 17 Sep 2012 17:44:52 -0000

Hello draft authors,

I was assigned to review this draft as part of MPLS-RT process. I have reviewed the document and think that it needs to address some of the review comments (by MPLS-RT reviewers) before it can be asked for WG poll [ at which point Eric Gray comments regarding falling under WG charter andor RFC vs BCP will also apply ]

Please see my comments along with some protocol accuracy/NITs:

- The draft does not talk about any scalability implications due to additional || LDP sessions. IMO, a section on Scalability is needed.

- IMO, it is not very clear on inter-op with non-supporting implementation --
   I am trying to understand, how would this work if one side is doing multi-instance, other is not.

         Node - A                                                                            Node - B
       +-------------+                                                                      +--------------+
       |   LSR-A:0--|============IF 1==============|---LSR-B1:0   |
       |                 x |                                                                     | x                  |
       |   LSR-A:0--|============IF 2==============|---LSR-B2:0   |
       |                    |                                                                    |                       |
       +-------------+                                                                     +-----------------+

    "A" will try to form 2 sessions with "B" but "B" will try to form one session with "A" ? Only one session will/can come up ?

- If we take out "Node ID" TLV (the need for which was already discussed by other reviewer Lizhong), this doc is not defining any new
  Standard/extension.

- The document keeps talking about label/FEC mapping and does not mention address bindings in most sections.
  Later,  towards the end of the document, there is Section 4 on Address mapping. I'd suggest writing something upfront in the draft rgding Addr bindings;
  or use generic term "binding" (which means both label and address bindings)

- Section 2: "Since the multi-instance procedures use same LDP Indentifer as defined in
   [RFC5036], it makes the node running multiple instances to be
   backward compatible with the node that support the multi-instance LDP
   procedures."

I'd think you meant to say that multi-instance LDP is backward compatible with the node
that does not support multi-instance LDP ? If yes, the para above is not accurate.

- Section 2.1: Any rule for address bindings disjointness ?

 - Section 2.1: The following sentence is confusing,
"The above rules does not apply between multi-instance LDP sessions with different peering LDP nodes."
Can u plz rephrase ?

- Section 2.1.1: Case 1 mandates "Hellos MUST carry LDP Adj Capabilities" but does not elaborate on what/how?
  Although it mandates "MUST" for Hello Adj Capabilities, it uses "SHOULD" for session capabilities
  "The LSP session SHOULD be set-up with capabilities of FEC group …"
  Would this not conflict/violate the earlier stated MUST rule of  ensuring "disjoint FEC types" on fate separated session ?

 - Section 2.1.2: case 2: "Each of IF1 and IF2 would originate two separate Hello
   Messages using the same source IP address"

   Why can't they use different source address ? Why limit ?
   Moreover, when IF1 and IF2 are single-stack IPv4 and IPV6 interfaces, then the statement has bigger problem - the Hello msgs can not have the same source address; they have to  uses the different src address (different AF reasons).

- Section 2.1.2: "Each Hello Adjacncies SHOULD advertise capabilities using rules described in case 1.":
In previous section, it was "MUST" for adj capabilities. Here, it has become SHOULD ?

- Section 3: When receiving same FEC on two peering sessions from same node:
  - elaborate on procedures on rx ? does it withdraw label from both sessions ?
    does it just keeps using from one and discard 2nd one ?
    if first one wins, then it is indeterminstic across different instances of the same instance.
 - Why not define new status code ? why limit to use "LOOP-DETECTED" ?

- Section 3: If the receiver does not understand "Node Id TLV", it won't be able to
   detect the above and hence will keep both in its LIB (across different peers).
   While this may not pose much a problem for labels, it may cause problem for addresses
  (conflicting peer addresses may cause broken forwarding due to incorrect mapping of
   IP nexthop to peer – using peer address mapping)

- Section 3:  Can we rename "Node ID" TLV to "Multi-instance Node Id" TLV?

- Section 4:
  Your document uses "MAY" for address bindings disjointness across || sessions.
  For some capabilities/apps, advertising the full address space will be simple and make sense, for others it will not.
  Should we not make address space segregated as required for a given capability ? e.g. when running in case 4 (2.1.4), we should only advertise v4 addrs on v4 session and
  v6 addrs on v6 session.

Spec Accuracy
===========
- Section 1:  "Although [RFC5036] does not specify that the 4 byte router-id of the
   LDP identifier be routable IP addresses"

 I'd call it 4 octet LSR Id  and not 4 byte router-id.

- Section 1: "Thus there is need to host multiple LSRs by a network node that shares the same label space but
   each with unique router-ids."/
  "Thus there is need to host multiple LSR Ids by a network node that share the same label space"

- Section 2: "unique 4 byte router-id but same label space" / "unique 4 byte LSR Id but same label space"

- Section 2.1.1: "For example Group 1 can contain all transport specific FEC
   types such as IPV4 FEC Element Type and LDP Multi-point (MP) FEC
   types etc.  " /
 "For example Group 1 can contain all transport specific FEC
   types such as Prefix FEC and LDP Multi-point (MP) FEC
   types etc.  "

- Section 2.1.2: "IPv4 FEC Element Type" / "Prefix FEC element type"

NITs:
====
- Section 1: "Each LSR is indentified by an LDP identifier"/
                    "Each LSR is identified by an LDP identifier"

 - Section 1: "The last two octets of LDP Indentifers for platform-wide label spaces are always both
   zero." /
     "The last two octets of LDP Identifers for platform-wide label spaces are always both zero."

 - Section 1: "This document uses the following representation for LDP Indentifiers"/
             "This document uses the following representation for LDP Identifiers"

-  Section 1: "..created in the a single node" / "created in a single node"

 - Section 1:  "It may be also desirable for fate separation IPv4 and IPv6 LSP" /
  "It may be also desirable for fate separation of IPv4 and IPv6 LSP" /

- Section 1:   "Suc next-hop" / "Such next-hop"

 - Section 1:  "routing domains.Thus" / "routing domains. Thus"

- Section 2:
"Since the multi-instance procedures use same LDP Indentifer" /
"Since the multi-instance procedures use same LDP Identifer"

- Section 2.1.2: "Each Hello Adjacncies SHOULD " / "Each Hello Adjacency SHOULD"

- Section 3: "(VPLS)described" / "(VPLS) described"

- Section 3: "same FEC mapping has been already receiver over"/"same FEC mapping has been already received over"

- Section 3: "with statuc code"/"with status code"


Rgds,
-- Kamran


From: Eric Gray <eric.gray@ericsson.com<mailto:eric.gray@ericsson.com>>
Date: Friday, September 14, 2012 10:29 AM
To: "draft-pdutta-mpls-multi-ldp-instance@tools.ietf.org<mailto:draft-pdutta-mpls-multi-ldp-instance@tools.ietf.org>" <draft-pdutta-mpls-multi-ldp-instance@tools.ietf.org<mailto:draft-pdutta-mpls-multi-ldp-instance@tools.ietf.org>>
Cc: "mpls@ietf.org<mailto:mpls@ietf.org>" <mpls@ietf.org<mailto:mpls@ietf.org>>, "mpls-chairs@tools.ietf.org<mailto:mpls-chairs@tools.ietf.org>" <mpls-chairs@tools.ietf.org<mailto:mpls-chairs@tools.ietf.org>>
Subject: Re: [mpls] MPLS-RT review of draft-pdutta-mpls-multi-ldp-instance@tools.ietf.org<mailto:draft-pdutta-mpls-multi-ldp-instance@tools.ietf.org>

Dear Authors,

The MPLS Chair(s) have asked myself (and others) to review this draft to
determine – possibly among other things – whether this draft is ready for
adoption as a working group draft.

As an overview, I feel that this draft needs a few important "direction
changes" before it will be ready to adopt by the working group, assuming
the working group decides that this is work that we have both interest and
capacity to work on.

I first tried to determine if this work is appropriate for the working group.
It appears that the MPLS charter is very much out of date, so this item –
along with the 25+ drafts already adopted as working group drafts (in
various degrees of completion) – does not appear as a charter item.

Which is a good segue to the topic – "can the working group actually do
this – along with the work they currently have already."  If every WG
participating member were to read all of the currently adopted drafts
in preparation for each IETF meeting, they could expect to spend 2 to
3 weeks out of every 4 months doing nothing else.

Possibly this is a bit much to expect.  I suspect this is a question for the
active participants in the MPLS working group to consider as a general
issue.

As a second general issue, this draft describes what I feel are fairly well
known rules that an implementation may follow to ensure that their
"cheating ways" are not discovered in some pathological way by other
implementations.

This seems to be the major contribution in section 2 of this draft.

In this sense, I'd be more comfortable if this draft were targeted to
become a BCP, rather than a Standard.

But, enough of the general issues; on to the specifics of this draft…

Major issues:

The third paragraph of the introduction is incorrect.  When peering
with an LSR that uses two LSR IDs, it is possible for that LSR to do this
in a way that makes it  difficult (if not impossible) for a peer to detect
that the two LSR IDs identify LSR functions of the same physical node.

In fact, to ensure the highest probability of compatibility (or the
lowest probability of compatibility issues), any LSR implementation
that uses more than one LSR ID should do this.  That means they need
to use separate IP addresses for discovery, session establishment, etc.

This is an example of a standards implementation axiom that amounts
to this: "if you're going to cheat, be careful not to get caught."

If implementers follow this rule through proper use of addressing, and
a few other things, then support for multiple LDP sessions just works,
today – without requiring further standardization work.

For the case where the label space portion of the LSR ID is zero (the
so-called platform-wide label space), the implementation that has
multiple LSR IDs needs to be careful about allocating labels in different
LDP Sessions – but this is an implementation robustness issue, not a
standards issue.

It is my opinion that the draft authors have not given sufficient thought
to what can be done using the current standards and a few common
sense implementation rules.
__________________________________________________________

I believe the direction taken in section 3 – toward greater visibility of the
fact that an LSR node has multiple LDP instance – is a mistake.

The authors have provided no example use case to support the assertion
that a loop may be formed as a result for "some applications" with a
properly implemented LSR.

In my opinion, this draft needs to provide explicit examples of where a
properly implemented/compliant LDP implementation would cause a
pathological outcome if it is implemented in such a way that a peer is
not able to detect that multiple LDP instances are implemented by a
common physical node.

Minor issues and Comments/Questions:

For the paragraph that starts on page 3 and continues onto page 4, the
first sentence has a number of problems and does not parse without
making some assumptions as to what the author(s) mean to say.

In addition, it would be useful if you could expand slightly on what you
mean by "routable"  IP addresses.  To be more precise, the 32-bit part
of the LSR ID that is typically used corresponds to an IP address (one of
potentially very many) that is assigned to the LSR node.

In fact, common implementation considerations frequently lead to a
preference to use the router ID (typically based on an internal assigned
"loop-back" IP address) – for much the same reasons that routers use
these addresses (i.e. they are less likely to be impacted by removal of
a physical interface).

If an IPv4 address assigned to the LSR is used for this purpose, it is
clear that the address is not only routable by assigned to a specific
network entity.
________________________________________________________

In section 2, it looks as if we are conflating the meaning of "label space"
(as a number – zero, in this case), "label context" (not necessarily tied
to the label-space number, but definitely tied to an LDP session) and
data plane.

As long as implementations observe certain rules, there is no problem
in using the existing protocol specifications when labels are assigned in
association with an active session and apply to a common subset of
interfaces (possibly including all interfaces).

For example, as long as the same label is not issued by two (or more)
LSR instances with a different semantic meaning, that label does not
present any problems when used (as intended) in the common data
plane.

The obvious method for doing this is for all LSR instances to share a
common label management function – for at least the case where
labels allocated may have meaning across multiple interfaces.  This
has been done in LDP implementations since before RFC 3036 (the
predecessor to RFC 5036) was published.

Note that this is an implementation choice.
_________________________________________________________

NITs:

In the Introduction, in (I believe) the 4th sentence of the 2nd paragraph,
"4 octets" should be "first 4 octets" (the preceding sentence talks about
the 6-octet LSR ID and the next sentence talks about the last 2 octets).

The sentence, in the penultimate paragraph of section 1 (Introduction),
that starts "Suc next-hop addresses" was probably meant to say "Such
next-hop addresses" – and there is probably supposed to be a space
after the period in that sentence and before the first word ("Thus") of
the next sentence.

--
Eric