Internet-Draft | Abbreviated Title | November 2022 |
Xu & Zhang | Expires 12 May 2023 | [Page] |
This document defines a PIM join attribute to support building multicast distribution trees flowing Flex-Algorithm path.¶
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 https://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 12 May 2023.¶
Copyright (c) 2022 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 (https://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 Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Protocol Independent Multicast (PIM) get the upstream neighbor and incoming interface to multicast source or Rendezvous Point (RP) from the unicast routing protocol. As described in section 3 in [RFC7761], PIM relies on an underlying topology-gathering protocol to populate the MRIB (Multicast Routing Information Base). Usually the MRIB is the best paths over the network based on the IGP metric. In some case, PIM should choose a special path such as low latency path or constraint-based path.¶
[I-D.ietf-lsr-flex-algo] specifies a set of extensions to IS-IS, OSPFv2, and OSPFv3 to be used to compute the best paths along the constrained topology.¶
In order to allow PIM build multicast distribution trees following Flex-Algorithm topology, a PIM extension is needed. This document defines a new join attributes to restrict the path of pim join.¶
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 [RFC2119].¶
This document does not introduce more terminologies than [RFC7761], [RFC5384], [RFC5496] and [I-D.ietf-lsr-flex-algo].¶
[RFC5384] defines a pim Join Attributes are encoded as TLVs into the Encoded-Source Address field of a PIM Join message. This document specifies the Flex-Algorithm Attribute that allows the receiver to select the Flex-Algorithm path.¶
The PIM router on the receiving side specifies the Flex-Algorithm of the unicast route to the multicast source or RP according to the local policy. It lookup unicast route in Flex-Algorithm topology, and fills the specified Flex-Algorithm into the Flex-Algorithm attribute when sending the join message to upstream neighbor.¶
After receiving join message with Flex-Algorithm attribute, the upstream PIM router lookup unicast routes in the Flex-Algorithm topology and selects the incoming interface and upstream neighbor. And the continual join messages keep carrying the Flex-Algorithm Attribute.¶
When unicast routing is unreachable in the specific Flex-Algorithm topology, there are two processing modes: Try-to-Forward and Strictly-Topology. In Try-to-Forward mode, pim router continues to search the unicast route without topology constrained, and the sent join message will no longer carry Flex-Algorithm Attribute; In Strictly-Topology mode, it is handled according to route unreachable.¶
If the Flex-Algorithm attribute of the same source address(or RP address) and group address sent by multiple downstream PIM routers are different, the join message from the neighbor, which has the larger address, is selected.¶
If the Flex-Algo attribute is also received with the RPF vector attribute([RFC5496]), the router MUST perform a lookup in the corresponding Flexible Algorithm topology for the Encoded-Unicast address from the vector attribute, and send a join along the corresponding path defined by the Flex-Algo attribute, to the upstream router.¶
There should be no more than one Flex-Algorithm attribute in a Encoded-Source Address when PIM build a join message. If the PIM router receives a join message with multiple Flex-Algorithm attributes in a Encoded-Source Address, the first one is RECOMMENDED be used.¶
The network is divided into 2 planes by different Flex-Algorithm. For example, R1/R2/R4/R6 belong to green plane, and R1/R3/R5/R6 belong to red plane. R1 is the source DR and R6 is last-hop DR. R6 is configured with policy rule1 to match (1.0.0.0/24, 233.252.0.1/32) and set Flex-Algorithm M to select green plane, and R6 is configured with policy rule2 to match (2.0.0.0/24, 233.252.0.2/32) and set Flex-Algorithm N to select red plane. When JoinDesired(1.0.0.1, 233.252.0.1) ([RFC7761]) is TRUE, R6 will match policy rule1 in local policy and send PIM join to R4 with Flex-Algorithm M in Flex-Algorithm Attribute. Also, when JoinDesired(2.0.0.1, 233.252.0.2) is TRUE, R6 will match policy rule2 in local policy and send PIM join to R5 with Flex-Algorithm N in Flex-Algorithm Attribute. The PIM process for (*,G),(S,G) and (S,G,rpt) ([RFC7761]) is similar.¶
The Flex-Algorithm policy can also be set on the core router. For example, R6 is a core router and connect downstream routers R7/R8 in Figure 3. If R7 sends PIM join with Flex-Algorithm M and R8 sends PIM join with Flex-Algorithm N for a same PIM route, R6 SHOULD select one from larger neighbor.¶
TBD.¶
If PIM routers in the multicast tree select different Flex-Algorithm topology based on different local policy, there may be a loop in the network. The network administrator should be careful to set the policies.¶
Would like to thank Sandy Breeze for his suggestions to this draft.¶