Subject: Comments on draft-ietf-l3vpn-mvpn-bidir-06

From: "Jeffrey (Zhaohui) Zhang" <[email-masked]>
Date: Tue, 29 Oct 2013 03:13:38 +0000

Eric,

Please see comments below. Some are just editorial nits.

1.2.2. Reasons for Using Bidirectional P-tunnels

   (It must be noted though that this
   particular use of bidirectional P-tunnels is not compatible with the
   duplicate prevention scheme of [MVPN] section 9.1.1, and thus would
   only be used if the duplication prevision schemes of [MVPN] sections
   9.1.2 or 9.1.3 are suitable.)

The concept of using PE Distinguisher label to create an inner tunnel that is on top of the outer bidir tunnel is introduced later in the sections. Before then, it is better not to say the above, because with the PE Distinguisher label it can use [MVPN] section 9.1.1 to discard duplicate traffic.

   These two reasons for using bidirectional P-tunnels are somewhat in
   conflict with each other, since ...

s/are/seem to be/ ? They are not really conflicting, for the reason you gave.

   An SP may decide to use bidirectional P-tunnels for either or both of
   these reasons.
   ...
   Note that even if the reason for using bidirectional P-tunnels is to
   provide C-BIDIR support, the same P-tunnels can also be used to carry
   unidirectional C-flows, if that is the choice of the SP.

The above two separate paragraphs would go better if together.

       The Partitioned Method is a pre-requisite for implementing the
       "Partitioned Sets of PEs" technique of supporting C-BIDIR, as
       discussed in [MVPN] section 11.2.

       The Flat Partitioned Method is a pre-requisite for implementing
       the "Partial Mesh of MP2MP P-tunnels" technique for carrying
       customer bidirectional (C-BIDIR) traffic, as discussed in [MVPN]
       Section 11.2.3.

Perhaps add the following two paragraphs to between the above two paragraphs?

       The Partitioned Method is a pre-requisite for implementing the
       "Discarding Packets from Wrong PE" technique as discussed in
       [MVPN] Section 9.1.1.

       The Hierarchical Partitioned Method is a pre-requisite for
       Implementing the "Using PE Distinguisher Labels" technique for carrying
       customer bidirectional (C-BIDIR) traffic, as discussed in [MVPN]
       Section 11.2.2.

----------------

   The Flat Partitioned Method may be used to instantiate the following
   types of PMSI: I-PMSI, (C-*,C-*) S-PMSI, (C-*,C-BIDIR) S-PMSI, or
   (C-*,C-G) S-PMSI where C-G is a bidirectional C-group.

Why not (C-*,C-G) where C-G is unidir? Why not (C-S,C-G) and (C-S,C-*) S-PMSIs? Imagine a provider that only uses PIM-Bidir in its core?

   I-PMSI, a PE MUST originate an Intra-AS I-PMSI A-D route if one if
   its VRF interfaces is the next hop interface on its best path to the
   C-RPA of any bidirectional C-group of the MVPN.

s/one if/one of/

Perhaps it is good to define a (C-*,C-G-BIDR) term. Currently you say "(C-*,C-G) S-PMSI where C-G is a bidirectional C-group" but the "where..." part is not always included, even when it should be. For example:

   When the Flat Partitioned Method is used to instantiate a (C-*,C-*)
   S-PMSI, a (C-*,C-BIDIR) S-PMSI, or a (C-*,C-G) S-PMSI, a PE that
   originates the corresponding S-PMSI A-D route MUST include in that
   route a PTA specifying a bidirectional P-tunnel.  Per the procedures
   of [MVPN] and [MVPN-BGP], a PE will originate such an S-PMSI A-D
   route only if one of the PE's VRF interfaces is the next hop
   interface of the PE's best path to the C-RPA of a C-BIDIR group that
   is to be carried on the specified S-PMSI.

It would be easier to simply say (C-*,C-G-BIDR).

3.2.1.2. When an I-PMSI is a 'Match for Transmission'

   ...
   Note that if a VRF is configured to provide C-BIDIR support using the
   Flat Partitioned Method, but there is no matching S-PMSI A-D route
   (according to section 3.2.1.1) and there is no such I-PMSI A-D route
   meeting the conditions of this section, then a provisioning error has
   occurred, and the C-flow will not be transmitted.

Maybe the above paragraph can be simplified as:

   If there is no I-PMSI A-D route meeting the above conditions, the C-flow
   must not be transmitted.

The reason are the following:

- The omitted text is basically the context here. Listing them explicitly actually adds burden for people to digest/correlate.
- it may not be a provisioning error but simply that such I-PMSI A-D route has not been received (transient condition).

Same with the last paragraph of 3.2.2.3.

3.2.1.3. When an S-PMSI is a 'Match for Reception'

   ...
   If there is an S-PMSI A-D route matching (C-*,C-G), according to
   these rules, its PTA must specify a bidirectional P-tunnel.

Does the "must" in the above paragraph indicates a fact or a requirement? If it's a fact, maybe change "must specify" to "must have specified". If it's a requirement, it should be put into the individual rules like in the transmit case, so that we don't pick a route that does not specify a bidir tunnel.

3.2.1.4 seems to be just an add-on situation after failing to find a (C-*,C-*) S-PMSI A-D route. Separating into two sections instead of just doing a single "When a PMSI is a match for reception" adds burden for people to follow.

Same question on the transmission side (3.2.1.1 and 3.2.1.2).

3.2.2. Hierarchical Partitioning
   ...
   The PEs that are required to originate the routes mentioned in the
   previous paragraph are those that satisfy one of the following
   conditions:
     ...
     - The PE might have to transmit customer multicast traffic on the
       PMSI identified in the route,

s/multicast traffic/unidirectional multicast traffic/

   The Hierarchical Partitioned Method may be used to instantiate an
   I-PMSI, a (C-*,C-*) S-PMSI, or a (C-*,C-BIDIR) S-PMSI. ...

   If (and only if) C-G is a C-BIDIR group, the Hierarchical Partitioned
   method may be used to instantiate the (C-*,C-G) S-PMSI.  In this
   case, when a (C-*,C-G) S-PMSI A-D route is originated, it is
   originated only by a PE whose best path to the C-RPA for C-G is via a
   VRF interface, and that PE MUST be the root node of the MP2MP LSP
   identified in the PTA of the A-D route.

(C-*,C-BIDIR) and (C-*,C-G-BIDIR) should be the same, but why are they separated in the text? The text before the above paragraph allows that a different PE could be the root of the mp2mp tunnel, but why is the same not allowed for (C-*,C-G-BIDIR)? In fact, 3.2.2.4 seems to allow that.

Why can't (C-*,C-G-UNIDIR) PMSI be instantiated with Hierarchical Partitioned method?

   As in [MVPN] and [MVPN-BGP], an S-PMSI A-D route does not need to be
   originated by a particular PE, say PE1, until PE1 has received a
   "join" indicating that some other PE is interested in receiving
   customer multicast traffic forwarded from PE1.

In bidir case, traffic may not be from PE1 at all, so may be rewording the last two lines of the above paragraph to the following:

   "join" from some other PE.

--------------

   The Hierarchical Partitioned method MUST NOT be used to instantiate a
   (C-S,C-G) or a (C-S,C-*) S-PMSI.

Why is the above restriction put in place? If there is a bidirectional tunnel whose leave set happen to match (or just slightly over cover) the (C-S,C-G) or (C-S,C-*) receiver PEs, why can't that tunnel be used?

   If the "partitioned sets of PEs" method of supporting C-BIDIR is
   used, as discussed in section 11.2 of [MVPN] and section 3.6 of
   [RFC6517], C-BIDIR flows MUST NOT be carried on a P-tunnel specified
   in the PTA of a (C-S,C-G) or a (C-S,C-*) S-PMSI.

This should be moved out of this section (hierarchical partitioned) because it applies to both partitioned method. I also wonder if the restriction applies to unpartitioned method - the spec does not say. Is it because C-BIDIR forwarding is never based on source (hence the restriction applies to unpartitioned method as well) or does it have anything to do with the methods?

   The PE Distinguisher Labels attribute specifies a set of <MPLS label,
   IP address> bindings.  Each IP address is the IP address of a PE
   router that is expected to receive the route that contains the
   attribute.

It really is that "Each IP address is that of a PE router that may be a Distinguished PE", right?

   When a PE Distinguisher Labels attribute is included in a given
   I-PMSI or S-PMSI A-D route, it MUST assign a label to the IP address
   of each of the following sets of PEs:

     - The root node of the MP2MP LSP identified in the PTA of the
       route,

     - Any PE that may need to transmit non-C-BIDIR traffic on the MP2MP
       LSP identified in the PTA of the route.  This requirement can be
       met by assigning a label to every PE that has originated an
       Intra-AS I-PMSI A-D route. However, if it is known apriori that
       all the non-C-BIDIR sources are in sites attached to only a
       subset of the PEs, PE Distinguisher labels can be specified for
       that subset alone.

What about the Upstream PEs wrt C-BIDIR C-RPAs, especially in the case of (C-*,C-BIDIR) S-PMSI?

3.2.2.3. When an I-PMSI is a 'Match for Transmission'

For c-bidir, in S-PMSI case, a matching S-PMSI originated by any PE can be used; in I-PMSI case, only the one advertised by the upstream PE wrt C-RPA can be used. Why? I think S-PMSI should also require that the one from the upstream PE is used - otherwise an S-PMSI from a different partition may be picked.

3.2.2.5. When an I-PMSI is a 'Match for Reception"

   ...  When
   the Hierarchical Partitioned Method is used, each Intra-AS I-PMSI A-D
   routes of the MVPN will have a PTA, and all such PTAs will specify
   the same bidirectional P-tunnel.

The above text should be moved to section 3.2.2 (before the subsections), and change "will" to SHOULD/MUST.

Or could we delete it entirely? We discussed before that all such PTAs SHOULD specify the same tunnel to simplify the forwarding logic on the receiving PEs. But now I don't even see how it complicates forwarding logic if they don't specify the same tunnel. For a particular unidir c-flow we use the tunnel advertised in the upstream PE's I-PMSI and program the forwarding logic accordingly; for a particular c-g-bidir we use the tunnel advertised in the I-PMSI from the upstream PE wrt the C-RPA and program the forwarding logic accordingly (this matches 3.2.2.3) - no multiple choices.

3.2.3.1. When an S-PMSI is a 'Match for Transmission'
   ...
     - Otherwise, if there is an S-PMSI A-D route currently originated
       by PE1, whose NLRI contains (C-*,C-BIDIR), and if C-G is a BIDIR
       group, the (C-S,C-G) C-flow matches that route.

For a C-G-BIDIR, an implementation may not know about C-S at all, so saying (C-S,C-G) is not accurate.

Additionally, the rules require that the S-PMSI A-D route originated by the transmitting PE is used. I don't see why a route originated by another PE cannot be used for C-G-BIDIR, especially when we're using procedures of [MVPN] section 11.1? In fact, the rules for 'Match for Reception', which are the rules in 3.2.2 of [MVPN-WILDCARD] with the last paragraph modified, show that any (C-*,C-G-BIDIR) S-PMSI A-D route can be used, and that may not be the transmitting PE.

3.2.3.2. When an S-PMSI is a 'Match for Reception'
   ...
   This is changed to:

       "If (C-*,C-G) does not match a (C-*,C-G) S-PMSI A-D route from
       PE2, but C-G is a BIDIR group and PE1 has an installed
       (C-*,C-BIDIR) S-PMSI A-D route, then (C-*,C-G) matches that
       route. ...

This also shows that any (C-*,C-BIDIR) S-PMSI A-D route can be a match.

Thanks.
Jeffrey