Re: [mpls] MPLS-RT review of draft-rekhter-mpls-pim-sm-over-mldp

Yakov Rekhter <yakov@juniper.net> Wed, 02 October 2013 15:02 UTC

Return-Path: <yakov@juniper.net>
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 5FADE21F9C8E for <mpls@ietfa.amsl.com>; Wed, 2 Oct 2013 08:02:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.599
X-Spam-Level:
X-Spam-Status: No, score=-102.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, USER_IN_WHITELIST=-100]
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 0cA233dU4fMt for <mpls@ietfa.amsl.com>; Wed, 2 Oct 2013 08:02:21 -0700 (PDT)
Received: from db8outboundpool.messaging.microsoft.com (mail-db8lp0188.outbound.messaging.microsoft.com [213.199.154.188]) by ietfa.amsl.com (Postfix) with ESMTP id 391D821F9983 for <mpls@ietf.org>; Wed, 2 Oct 2013 07:59:58 -0700 (PDT)
Received: from mail24-db8-R.bigfish.com (10.174.8.235) by DB8EHSOBE026.bigfish.com (10.174.4.89) with Microsoft SMTP Server id 14.1.225.22; Wed, 2 Oct 2013 14:59:49 +0000
Received: from mail24-db8 (localhost [127.0.0.1]) by mail24-db8-R.bigfish.com (Postfix) with ESMTP id 0E03040047; Wed, 2 Oct 2013 14:59:50 +0000 (UTC)
X-Forefront-Antispam-Report: CIP:66.129.224.54; KIP:(null); UIP:(null); IPV:NLI; H:P-EMF01-SAC.jnpr.net; RD:none; EFVD:NLI
X-SpamScore: -2
X-BigFish: VPS-2(zzec9I1432Izz1f42h208ch1ee6h1de0h1fdah2073h1202h1e76h1d1ah1d2ah1fc6hzzz2fh2a8h839hf0ah1288h12a5h12a9h12bdh137ah13b6h1441h1504h1537h153bh162dh1631h1758h18e1h1946h19b5h1ad9h1b0ah1b2fh1fb3h1d0ch1d2eh1d3fh1dfeh1dffh1fe8h1ff5h1155h)
Received-SPF: pass (mail24-db8: domain of juniper.net designates 66.129.224.54 as permitted sender) client-ip=66.129.224.54; envelope-from=yakov@juniper.net; helo=P-EMF01-SAC.jnpr.net ; SAC.jnpr.net ;
Received: from mail24-db8 (localhost.localdomain [127.0.0.1]) by mail24-db8 (MessageSwitch) id 1380725988181322_29083; Wed, 2 Oct 2013 14:59:48 +0000 (UTC)
Received: from DB8EHSMHS005.bigfish.com (unknown [10.174.8.231]) by mail24-db8.bigfish.com (Postfix) with ESMTP id 257EDD80040; Wed, 2 Oct 2013 14:59:48 +0000 (UTC)
Received: from P-EMF01-SAC.jnpr.net (66.129.224.54) by DB8EHSMHS005.bigfish.com (10.174.4.15) with Microsoft SMTP Server (TLS) id 14.16.227.3; Wed, 2 Oct 2013 14:59:46 +0000
Received: from magenta.juniper.net (172.17.27.123) by P-EMF01-SAC.jnpr.net (172.24.192.21) with Microsoft SMTP Server (TLS) id 14.3.146.0; Wed, 2 Oct 2013 07:59:44 -0700
Received: from juniper.net (sapphire.juniper.net [172.17.28.108]) by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id r92ExfL42260; Wed, 2 Oct 2013 07:59:41 -0700 (PDT) (envelope-from yakov@juniper.net)
Message-ID: <201310021459.r92ExfL42260@magenta.juniper.net>
To: "Rajiv Asati (rajiva)" <rajiva@cisco.com>
In-Reply-To: <B14A62A57AB87D45BB6DD7D9D2B78F0B2AB547B2@xmb-rcd-x06.cisco.com>
References: <B14A62A57AB87D45BB6DD7D9D2B78F0B2AB547B2@xmb-rcd-x06.cisco.com>
X-MH-In-Reply-To: "Rajiv Asati (rajiva)" <rajiva@cisco.com> message dated "Mon, 30 Sep 2013 20:21:20 -0000."
MIME-Version: 1.0
Content-Type: text/plain; charset="x-unknown"
Content-ID: <66863.1380725981.1@juniper.net>
Content-Transfer-Encoding: quoted-printable
Date: Wed, 02 Oct 2013 07:59:41 -0700
From: Yakov Rekhter <yakov@juniper.net>
X-OriginatorOrg: juniper.net
X-FOPE-CONNECTOR: Id%0$Dn%*$RO%0$TLS%0$FQDN%$TlsDn%
Cc: "mpls@ietf.org" <mpls@ietf.org>, "draft-rekhter-mpls-pim-sm-over-mldp@tools.ietf.org" <draft-rekhter-mpls-pim-sm-over-mldp@tools.ietf.org>, Lizhong Jin <lizho.jin@gmail.com>, "mpls-chairs@tools.ietf.org" <mpls-chairs@tools.ietf.org>
Subject: Re: [mpls] MPLS-RT review of draft-rekhter-mpls-pim-sm-over-mldp
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: Wed, 02 Oct 2013 15:02:34 -0000

Rajiv,

> I have finished reviewing draft-rekhter-mpls-pim-sm-over-mldp-06 as the
> member of MPLS Review team and have the following comments (they may
> overlap with the other reviewers' comments, but I haven't checked):
> 
> 
> * Is the document coherent?
> ============================
> 
> The document could benefit from having a sample topology while describing
> both solution options and providing a bit of context about the options in
> the Introduction. 
> 
> The document needs to better explain the option 2 in section 4. It is a
> bit difficult to follow. For ex, section 4 says mapping *,G PIM state to
> mLDP state, using the encoding defined in section 4.1. But it is not clear
> when the machinery specified in section 4.2 gets used.

Any specific text to clarify this would be appreciated.

> Also, option 2 is not clear about the LSR's usage of shared tree vs source
> tree - when an LSR switches from shared to source tree.

Any specific text to clarify this would be greately appreciated.

> 
> 
> * Is the document ready to be considered for WG adoption?
> ============================
> 
> 
> Not yet. I would like to get some clarity from the authors on these points.
> 
> 
> 
> 1) The document (Introduction) seems to convey that ASM is just about
> shared tree. Per RFC4601, ASM is also about the source tree.  This means
> that the solution options defined here must be used in conjunction with
> RFC6826. Is that the case?

Yes. I'll add this to the draft.

> 2) Option 1 seems to _obviously_ suffer from the fact that the ingress LSR
> can't re-construct the PIM *,G join or Prune message (since *,G state is
> not carried through mLDP) for its upstream PIM neighbors.
> 
> In other words, option 1 is only workable/useful/deployable if ingress LSR
> acts as the RP.

While it is certainly true that with Option 1 the ingress LSR can not
re-construct the PIM *,G Join/Prune message for its upstream PIM neighbor,
could you elaborate on why "option 1 is only workable/useful/deployable if 
ingress LSR acts as the RP" ? 

> 3) This document (introduction) makes an assumption that an interface is
> either IP enabled or MPLS enabled, but not both. In particular, it assumes
> that PIM neighbor is not enabled on MPLS enabled interface. I suspect that
> this assumption would easily break in network topologies where:
> 
>  - RSVP-TE/MPLS is enabled on part of the network where PIM is also enabled
>  - PIM is also enabled on few MPLS enabled interfaces (due to migration
> etc.)
> 	(Hence, an int is both IP Multicast enabled and MPLS Multicast enabled)
> 
> This assumption should be removed.

Agreed. 

> 4) Option 2, as described, does not seem right to me, for the following
> reasons: 
> 
> a) Per section 4.2, an LSR creates an S,G route (and sends S,G mLDP
> message) based on BGP Source Active AD message, but per section 4.3 (which
> points to section 3.2), an LSR creates BGP Source Active AD message based
> on S,G mLDP message.
> Which one is true, as only one of them can/should be true (else, we are in
> a vicious cycle)?

Could you please point me to the specific text in 4.2 that talks about
creating an S,G route and sending S,G, mLDP message "based on BGP Source 
Active AD message".

Could you also point me to the specific text in 3.2 that talks about
creating Source Active AD message based on S,G, mLDP message ?

> b) This machinery enables immediately setting up a source tree P2MP LSP
> just because the LSR learned of the source  (for a G) based on BGP,
> while/after it created the *,G.
> 
> This is not correct, as RFC4601 section 4.2.1 clearly makes using a source
> tree (aka switching over from shared tree to source tree) OPTIONAL.

Just because rfc4601 makes using a source tree optional does not make
option 1 incorrect.

> 
> c) After the source tree P2MP LSP is setup, there is no way to avoid
> forwarding the traffic over it and then to the downstream routers/hosts by
> the LSR, even though not all receivers would have wanted to receive any
> traffic over the S,G (and they didn't initiate any switchover).

That is correct. Likewise, in PIM if only some, but not all routers
on a LAN initiate switchover, all the downstream routers on that LAN
(and the ultimate receivers) would receive the traffic over the S, G,
even if the DRs of these receivers did not initiate any switchover.
 
> 
> d) The document seems to exclude the possibility of source becoming active
> prior to having any receivers on the network. Is there any particular
> reason?

What makes you think so ?

> 5) The document seems to make an assumption that the RP function is
> enabled on one of the LSRs. Why is that so? If not, then in the below 2
> topologies (of a single ASN), how would the option 2 be applied?
> 
> 
> 	(a) RP and Source are connected to LSR_a
> 
> R1(RP)-----R2----LSR_a-----LSR_b----LSR_c----R3---Rx
> Source------------/
> 
> 
> 	(b) RP and source are connected to different LSRs
> 
> R1(RP)-----R2----LSR_a-----LSR_b----LSR_c----R3---Rx
> Source-----------------------/

I am not sure I understand your concerns with applying option 2
to the above two topologies. Could you elaborate please.

> 6) Section 4.5 (pasted below) doesn't seem right to me.
> 
> //
>    Creation and deletion of (S,G,RPT-bit) state on a LSR that resulted
   from receiving PIM messages on one of its IP multicast interfaces
>    does not result in any mLDP and/or BGP actions by the LSR.
> //
> 
> 
> Consider this topology (RP is indirectly connected to LSR_a via R2, two
> receivers are connected to LSR-b and LSR-c respectively) :
> 
> R1(RP)-----R2----LSR_a-----LSR_b----LSR_c----R3---Rx
> Source----------------------//
> Rx---------R4---------------/
> 
> 
> - Receivers (Rx) are getting the content on the shared tree
> - R3 decides to join the source tree, but R4 doesn't.
> - R3 starts receiving the content on the source tree
> - R3 sends S,G,rpt PIM to LSR_c, which changes its PIM state & mrouting
> - if LSR_c doesn¡¯t react to such PIM state change, then it would
> unnecessarily keep on receiving the content on shared tree, per the draft.

The text you quoted above talks about mLDP and/or BGP actions. That
does not mean that the LSP does not react to PIM state changes
(following PIM procedures).

> 7) What is really meant by this para in section 4.4? Could you please
> clarify? 
> 
> //
>    received one.] Depending on the (S,G,RPT-bit) state on the iif, this
>    may result in the LSR using PIM procedures to prune S off the Shared
>    (*,G) tree.
> //

That is exactly what it means.

> * Is it useful (i.e., is it likely to be actually useful in operational
> networks), and is the document technically sound?
> ============================
> 
> 
> It may be useful, even though many networks either (want to) move from ASM
> to SSM or continue using the ASM shared tree. However, I really struggled
> with the following Q while reading the draft and thinking about usefulness:
> 
> (a) If one can afford (or wants) to use BGP, then why wouldn't one use BGP
> MVPN procedures that are already part of seamless multicast
> (draft-ietf-mpls-seamless-mcast) section 3 to solve this problem, as the
> Introduction section right points out?

While PIM-SM ASM over MPLS network with draft-ietf-mpls-seamless-mcast
uses Leaf auto-discovery routes, several flavors of S-PMSI
auto-discovery routes, and Source Active auto-discovery routes,
draft-rekhter-mpls-pim-sm-over-mldp uses just Source Active
auto-discovery routes. Moreover, draft-rekhter-mpls-pim-sm-over-mldp
spells out that in certain deployment scenarios even Source Active
auto-discovery routes would not be used.

> (b) Why would one be using BGP, if the intent is to use in-band mLDP
> signaling?  
> 
> (c ) If one really wants to use in-band mLDP signaling for ASM shared
> tree, then why wouldn't one use
> draft-wijnands-mpls-mldp-in-band-wildcard-encoding procedures that don't
> require BGP?

Let me just point out that draft-wijnands-mpls-mldp-in-band-wildcard-encoding
itself said the following:

                                                                     In
   scenarios where it does not make sense to apply "threshold infinity"
   to a given ASM group, a more complex set of procedures are needed, as
   per [I-D.rekhter-pim-sm-over-mldp].

   ....

   [I-D.rekhter-pim-sm-over-mldp]
              Rekhter, Y. and R. Aggarwal, "Carrying PIM-SM in ASM mode
              Trees over P2MP mLDP LSPs",
              draft-rekhter-pim-sm-over-mldp-04 (work in progress),
              August 2011.

So, even draft-wijnands-mpls-mldp-in-band-wildcard-encoding acknowledges
that there are scenarios where it is insufficient. Moreover, this
draft suggest to use draft-rekhter-pim-sm-over-mldp, *not*
draft-ietf-mpls-seamless-mcast.

Yakov.