PIM B. Joshi Internet-Draft J. Kaveetil Intended status: Experimental Infosys Ltd. Expires: January 10, 2014 July 9, 2013 PIM neighbor selection with ECMP routes draft-joshi-pim-ecmp-neighbor-select-00 Abstract A Protocol Independent Multicast (PIM) router uses local forwarding table to select the upstream PIM neighbor towards the source or Rendezvous Point (RP). A router need to choose one upstream PIM neighbor from the list of PIM neighbors if the route for a source or RP is an Equal Cost Multipath (ECMP) route. Currently PIM routers use vendor specific algorithm to choose one neighbor. This may lead to unnecessary wastage of network resources. This draft first explains the need for a standard algorithm to select a PIM neighbor with ECMP route and then suggest such an algorithm. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. 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 http://datatracker.ietf.org/drafts/current/. 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 January 10, 2014. Copyright Notice Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved. Joshi & Kaveetil Expires January 10, 2014 [Page 1] Internet-Draft PIM neighbor selection with ECMP routes July 2013 This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) 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 . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Need for a standard algorithm . . . . . . . . . . . . . . . . . 3 3. Proposed algorithm . . . . . . . . . . . . . . . . . . . . . . 4 4. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6.1. Normative References . . . . . . . . . . . . . . . . . . . 5 6.2. Informative References . . . . . . . . . . . . . . . . . . 5 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 5 Joshi & Kaveetil Expires January 10, 2014 [Page 2] Internet-Draft PIM neighbor selection with ECMP routes July 2013 1. Introduction A PIM router uses local forwarding table to select the upstream PIM neighbor towards the source or RP. A router need to choose one upstream PIM neighbor from a list of PIM neighbors if the route for a source or RP is an ECMP route. Currently PIM routers use some vendor specific algorithm to choose one PIM neighbor from the list of PIM neighbors. This may lead to wastage of network resources if two downstream routers on a LAN chooses two different upstream routers to reach a source or RP. There is a need for routers to use a standard algorithm to choose the same PIM neighbor when an ECMP routes provide a list of PIM neighbors. This draft first explains the usefulness of such a standard algorithm and then suggest the same. 2. Need for a standard algorithm Let us look at the network configuration of figure 1. Let us assume that R4 and R5 received a PIM join for a source 'S'. Let us also assume that both R4 and R5 has an ECMP route to reach source 'S'. Let us assume that this ECMP route has two gateways R1 and R3. +----+ +----+ +----+ | R1 | | R2 | | R3 | +----+ +----+ +----+ | | | | | | | | | ---+------+---------+------+--------+--------- | | | | +----+ +----+ | R4 | | R5 | +----+ +----+ Figure 1 There is no guarantee that R4 and R5 will selects the same upstream router i.e R1 or R3 for the PIM join. This may be because R4 and R5 are from two different vendors or they use two different mechanism to select a PIM neighbor. Let us assume R4 select R1 while R5 select R3 as the upstream PIM neighbor and send the PIM join to them. R1 and R3 will forward these joins towards the source and somewhere these joins may or may not converge in the network. When both R1 and R3 forwards the multicast traffic, PIM assert techniques will elect one Joshi & Kaveetil Expires January 10, 2014 [Page 3] Internet-Draft PIM neighbor selection with ECMP routes July 2013 of them as forwarder. So selecting two different PIM neighbors lead to following: o A complete leg of multicast tree will be unnecessarily created. o Multicast data will be unnecessarily forwarded along this leg. o An unnecessary assert mechanism will trigger in the LAN. 3. Proposed algorithm These wastages can be avoided, if router R4 and R5 uses some standard algorithm to determine the upstream PIM neighbor. Any algorithm will work only if the routing protocols have converged and all routers on a LAN have the same forwarding table. One simple mechanism could be to choose the highest IP address PIM neighbor from the list of PIM neighbors. However, with such a mechanism, all multicast channels using a specific ECMP route, would end up using the same PIM neighbor. This means that there is no load balancing among the PIM neighbors in the list. So this draft proposes to use a hash algorithm which uses PIM neighbor's address, multicast group address and multicast source address or RP address. The hash function should implicitly provide the load balancing among the PIM neighbors that can be used. The hash function explained in PIM-SM [RFC4601] is extended. The hash function proposed here will be used to calculate hash value for each combination of source/RP, group and PIM neighbor's primary address. The PIM neighbor with the highest value will be chosen as the upstream PIM neighbor for the corresponding multicast group and source. HashValue_for_ASM(Group-address,RP-address,Neighbor-address) = ( 1103515245 * ( ( 1103515245 * ( ( ( 1103515245 * Group-address ) + 12345 ) XOR ( RP-address ) ) + 12345 ) XOR ( Neighbor-address ) ) + 12345 ) mod 2^31 HashValue_for_SSM(Group-address,Source-address,Neighbor-address) = ( 1103515245 * ( ( 1103515245 * ( ( ( 1103515245 * Group-address ) + 12345 ) XOR ( Source-address ) ) + 12345 ) XOR ( Neighbor-address ) ) + 12345 ) mod 2^31 Joshi & Kaveetil Expires January 10, 2014 [Page 4] Internet-Draft PIM neighbor selection with ECMP routes July 2013 4. Security Considerations This draft does not suggest any change in protocol messages. If all routers in a LAN support this document but one rough router choose different upstream router than others, the situation will be similar to what exists today. 5. Acknowledgements The idea to use a hash function to identify the PIM neighbor in the list of PIM neighbors was discussed during an informal discussion with Saravana Prasad. 6. References 6.1. Normative References [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 2006. 6.2. Informative References Authors' Addresses Bharat Joshi Infosys Ltd. Email: bharat_joshi@infosys.com Jithesh Kaveetil Infosys Ltd. Email: jithesh_k@infosys.com Joshi & Kaveetil Expires January 10, 2014 [Page 5]