Versions: 03 04

PIM WG                                                   J. Asghar
Internet-Draft                                        IJ. Wijnands
Intended status: Informational                     S. Krishnaswamy
Expires: April 17, September 29, 2014                               A. Karan
                                                     Cisco Systems
                                                           V. Arya
                                                     Directv, Inc.

                                                  October 18, 2013

                                                    March 30, 2014

                     Explicit RPF Vector


   This document defines a new

   The PIM Reverse Path Forwarding (RPF) Vector TLV to build defined in RFC 5496
   can be included in a PIM Join Attribute such that the RPF neighbor is
   selected based on the unicast reachability of the RPF Vector instead
   of the Source or RP associated with the multicast trees via tree.

   This document defines a new RPF Vector Attribute type such that an
   explicit path sent RPF neighbor list can be encoded in the PIM
   join. Join Attribute,
   bypassing the unicast route lookup.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on April 17, September 29, 2014.

   Copyright Notice

   Copyright (c) 2013 2014 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   ( in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 2
   2.  Specification of Requirements . . . . . . . . . . . . . . . . . 3
   3.  Solution Requirements  Motivation . . . . . . . . . . . . . . . . . . . . . . . . . .  3
   4.  Use of the Explicit RPF Vector  . . . . . . . . . . . . . . . . 4
   5.  Explicit RPF Vector Attribute . . . . . . . . . . . . . . . . . 4
   6.  Mixed Vector Processing . . . . . . . . . . . . . . . . . . . . 4
   7.  Conflicting RPF Vectors . . . . . . . . . . . . . . . . . . . . 4
   8.  PIM Asserts  . . . . . . . . . . . . . . . . . . . . . . . . .  4
   9.  Join Suppression. . . . . . . . . . . . . . . . . . . . . . . . 5
   10.  Vector Handling By Unsupported PIM Router . . . . . . . . . .  5
   11.  Explicit RPF Vector Attribute TLV Format   . . . . . . . . . . 5
   12.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 6
   13.  Security Considerations . . . . . . . . . . . . . . . . . . .  6
   14.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 6
   15.  Normative References   . . . . . . . . . . . . . . . . . . . . 6

1.  Introduction

   For some applications, it might be useful to have a way to specify
   the explicit path along which the PIM join is propagated.

   This document defines a new TLV in the PIM Join Attribute message
   [RFC5384] for specifying the explicit path.

   The procedures in [RFC5496] define how a RPF vector can be used
   to influence the path selection in the absence of a route to the
   source. However, the The same procedures can be used to override a route to
   the source when it exists. It is possible to include multiple
   RPF vectors in the list where each router along the path will
   perform a unicast route lookup on the first vector in the attribute
   list. Once the router owning the address of the RPF vector is
   reached, following the procedures in [RFC5496], the RPF vector
   will be removed from the attribute list. This will result in a
   'loosely' routed path based on the unicast reachability of the
   RPF vector(s). We call this 'loosely' because we still depend
   on unicast routing reachability to the RPF Vector.

   In some scenarios we don't want to rely on the unicast reachability
   to the RPF vector address and we want to build a path strictly
   based on the RPF vectors. In that case the RPF vectors represent
   a list of directly connected PIM neighbors along the path. For
   these vectors we MUST NOT do a unicast route lookup. We call
   these 'explicit' 'Explicit' RPF vector Vector addresses. If a router receiving an
   Explicit RPF Vector does not have a PIM neighbor matching the
   Explicit RPF Vector address it MUST NOT fall back to loosely
   routing the join. Instead, it may process the packet and store
   the RPF Vector list so that the PIM join may be sent out as soon
   as the neighbor comes up. Since the behavior of the Explicit RPF
   Vector differs from the loose RPF vector as defined [RFC5496],
   we're defining a new attribute called the Explicit RPF Vector.

   This document defines a new TLV in the PIM Join Attribute message
   [RFC5384] for specifying the explicit path.

2.  Specification of Requirements

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL"
   "NOT", "SHALL NOT",
   document are to be interpreted as described in [RFC2119].

3.  Solution Requirements  Motivation

   Some broadcast video transport networks use a multicast PIM
   Live-Live resiliency model for video delivery based on PIM SSM
   or PIM ASM. Live-Live implies using 2 active spatially diverse
   multicast trees to transport video flows from root to leaf
   multicast routers. The leaf multicast router receives 2 copies
   from the PIM multicast core and will replicate 1 copy towards
   the receivers [draft-mofrr-karan]. [draft-ietf-rtgwg-mofrr-03].

   One of the requirements of the PIM Live-Live resiliency model
   is to ensure path-diversity of the 2 active PIM trees in the
   core such that they do not intersect to avoid a single point
   of failure. IGP routed RPF paths of 2 PIM trees could be routed
   over the same transit router and create a single point of failure.
   It might be is useful to have a way to specify the explicit path along
   which the PIM join is propagated.

   How the Explicit RPF Vector list is determined is outside the
   scope of this document. It For example, it may either be manually
   configured by the network operator or procedures may be implemented
   on the egress router to dynamically calculate the vector list based
   on a link state database protocol, like OSPF or IS-IS.

   Due to the fact that the leaf router receives two copies of the
   multicast stream via two diverse paths, there is no need for PIM
   to repair the broken path immediately. It is up to the egress
   router to either wait for the broken path to be repaired or build
   a new explicit path using a new RPF vector list. Which method is
   applied depends very much on how the vector list was determined
   initially. Double failures are not considered and are outside the
   scope of this document.

4.  Use of the PIM Explicit RPF Vector

   Figure 1 provides an example multicast join path
   R4->R3->R6->R5->R2->R1, where the multicast join is explicitly
   routed to the source hop-by-hop using the Explicit RPF Vector
   list. When R5-R6 link fails the join will NOT take an alternate

          <----  |      |  ---
		      |  |      |  |
			  |-(S,G) Join-|
             - (S,G) Join -		|
                 |      |

                Figure 1

   In comparison, when [RFC5496] procedures are used, if R5-R6
   link fails then the join may be re-routed using R6-R8-R7 path
   to reach R5.

5.  Explicit RPF Vector Attribute

   This draft uses PIM join attribute type 4 TBD by IANA for specifying
   an Explicit RPF Vector.

6.  Mixed Vector Processing

   Explicit RPF Vector attribute does not impact or restrict the
   functionality of other RPF vector attributes in a PIM join. It is
   possible to mix vectors of different types, such that some part of
   the tree is explicit and other parts are loosely routed. RPF vectors
   are processed in the order in which they are specified. That is, the
   first RPF vector attribute is looked at and processed, it can be
   either loose or explicit.

7.  Conflicting RPF Vectors

   It is possible that a PIM router has multiple downstream neighbors.
   If for the same multicast route there is an inconsistency between the
   Explicit RPF Vector lists provided by the downstream PIM neighbor,
   the procedures as documented in section 3.3.3 [RFC5384] apply.

8.  PIM Asserts

   Section 3.3.3 of [RFC5496] specifies the procedures for how to deal
   with PIM asserts when RPF vectors are used. The same procedures apply
   to the Explicit RPF Vector. There is minor behavioral difference,
   the route metric that is included in the PIM Assert should be the
   route metric of the first Explicit RPF vector address in the list.
   However, the first Explicit vector should always be directly connected,
   so the Metric may likely be zero. The Metric will therefore not be a
   tie breaker in the PIM Assert selection procedure.

9.  Join Suppression

   Section 3.3.4 of [RFC5496] specifies the procedures how to apply
   join suppression when an RPF Vector attribute is included in the
   PIM join. The same procedure applies to the Explicit RPF Vector
   attribute. The procedure MUST match against all the Explicit RPF
   Vectors in the PIM join before a PIM join can be suppressed.

10.  Unsupported Explicit Vector Handling

   The F bit MUST be set to 0 by a downstream router in the join that
   is sent to all Explicit RPF vectors in case the
   upstream router that receiving the join does not support Explicit RPF
   vector. See the TLV. As
   described in section 3.3.2 of [RFC5384]. Routers [RFC5384], routers that don't support do not
   understand the Explicit RPF Vector type of a particular attribute MUST NOT forward that has the vector to
   their upstream PIM neighbor and if required send a PIM join with
   these attributes removed. This router F bit
   clear will not be able discard it and continue to process the join.

   This processing is particularly important when the routers that
   do not support the Explicit Vector attribute from RPF TLV are identified as hops in the list and cause a PIM control
   plane routing loop with
   explicit RPF list, because failing to remove the RPF vectors could
   cause upstream PIM neighbor. routers to send the join back toward these routers
   causing loops.

11.  Explicit RPF Vector Attribute TLV Format

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   |F|E| Type      | Length        |        Value

   F bit
   The F bit MUST be set to 0. Otherwise there could be loops.

   E bit
   End of Attributes. If this bit is set then this is the last TLV
   specified in the list.

   The Vector Attribute type is 4.

   Length depending on the Address Family of the Encoded-Unicast

   Encoded-Unicast address. This could be a valid primary or secondary

12.  IANA Considerations

   A new attribute type from the "PIM Join Attribute Types" registry
   needs to be assigned by IANA for the Explicit RPF Vector attribute.
   The proposed value is 4.

13.  Security Considerations

   This document describes

   Security of the Explicit RPF Vector Attribute is only which guaranteed by
   itself does not modify
   the security of the PIM join packet or PIM-SM
   operation and shares packet, so the security considerations for
   PIM Join packets as described in
   [RFC4601]. PIM-SM {RFC4601] apply here.
   Additionally, the Explicit RPF Vector list should be subject to a
   policy to validate the list consists of a valid path before its used
   by a receiver to build a multicast tree.

14.  Acknowledgments

   The authors would like to thank Vatsa Kumar and Kumar, Nagendra Kumar and
   Bharat Joshi for the comments on the document.

15.  Normative References

   [RFC5496]  Wijnands, IJ., Boers, A., Rosen, E., "The Reverse Path
              Forwarding (RPF) Vector TLV", RFC 5496, March 2009.

   [RFC5384]  Boers, A., Wijnands, IJ., Rosen, E., "The Protocol
              Independent Multicast (PIM) Join Attribute Format",
              RFC 5384, Nov 2008.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC4601]  Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
              "Protocol Independent Multicast - Sparse Mode (PIM-SM):
              Protocol Specification (Revised)", RFC 4601, August

   [draft-mofrr-karan] Karan, A., Filsfils, C., Farinacci, D.,
                       Wijnands, IJ., Decraene B., Joorde, U.,
					   Henderickx, W., "Multicast only Fast Re-Route",
					   draft-ietf-rtgwg-mofrr-03, January 17, 2014

Authors' Addresses

   Javed Asghar
   Cisco Systems, Inc.
   725, Alder Drive
   Milpitas, CA 95035


   IJsbrand Wijnands
   Cisco Systems, Inc.
   De kleetlaan 6a
   Diegem  1831


   Sowmya Krishnaswamy
   Cisco Systems, Inc.
   3750 Cisco Way
   San Jose, CA 95134


   Apoorva Karan
   Cisco Systems, Inc.
   3750 Cisco Way
   San Jose, CA 95134


   Vishal Arya
   2230 E Imperial Hwy
   El Segundo, CA  90245