Internet-Draft Abbreviated Title November 2022
Xu & Zhang Expires 12 May 2023 [Page]
Workgroup:
PIM
Internet-Draft:
draft-xz-pim-flex-algo-01
Published:
Intended Status:
Standards Track
Expires:
Authors:
B. Xu
ZTE Corporation
Z. Zhang
ZTE Corporation

Flex-Algorithm TLV in PIM Join Attributes

Abstract

This document defines a PIM join attribute to support building multicast distribution trees flowing Flex-Algorithm path.

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 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.

Table of Contents

1. Introduction

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.

1.1. 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 [RFC2119].

2. Terminology

This document does not introduce more terminologies than [RFC7761], [RFC5384], [RFC5496] and [I-D.ietf-lsr-flex-algo].

3. Flex-Algorithm Attribute

[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.

3.1. Flex-Algorithm Attribute Format

       0                   1                   2
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |F|E|  Type=TBD | Length = 1    |  Flex-Algo    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1
F bit: The Transitive bit. Specifies whether the attribute is transitive or non-transitive. This bit RECOMMENDED set to 1 and the attribute will be transitived.
E bit: End-of-Attributes bit. Specifies whether this attribute is the last. Set to zero if there are more attributes. Set to 1 if this is the last attribute.
Type: TBD (To be assigned by IANA).
Length: 1-octet.
Flex-Algo: A 1-octet field Flex-Algorithm (see Section 4 of [I-D.ietf-lsr-flex-algo]) to special the topology.

3.2. Specification of the Flex-Algorithm Attribute

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.

3.3. Use of the Flex-Algorithm Attribute

3.3.1. Last-Hop Originate Flex-Algorithm Attribute

                      +----(gR2)------(gR4)----+
                     /       |          |       \
                    /        |          |        \
         Source--(R1)(RP)    |          |       (R6)--Recv
                    \        |          |        /
                     \       |          |       /
                      +----(rR3)------(rR5)----+
Figure 2

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.

3.3.2. Core Router Originate Flex-Algorithm Attribute

                  +----(gR2)------(gR4)----+      +---(R7)--Recv
                 /       |          |       \    /
                /        |          |        \  /
     Source--(R1)(RP)    |          |        (R6)
                \        |          |        /  \
                 \       |          |       /    \
                  +----(rR3)------(rR5)----+      +---(R8)--Recv
Figure 3

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.

4. IANA Considerations

TBD.

5. Security Considerations

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.

6. Acknowledgments

Would like to thank Sandy Breeze for his suggestions to this draft.

7. References

7.1. Normative References

[I-D.ietf-lsr-flex-algo]
Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and A. Gulko, "IGP Flexible Algorithm", Work in Progress, Internet-Draft, draft-ietf-lsr-flex-algo-26, , <https://www.ietf.org/archive/id/draft-ietf-lsr-flex-algo-26.txt>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC5384]
Boers, A., Wijnands, I., and E. Rosen, "The Protocol Independent Multicast (PIM) Join Attribute Format", RFC 5384, DOI 10.17487/RFC5384, , <https://www.rfc-editor.org/info/rfc5384>.
[RFC5496]
Wijnands, IJ., Boers, A., and E. Rosen, "The Reverse Path Forwarding (RPF) Vector TLV", RFC 5496, DOI 10.17487/RFC5496, , <https://www.rfc-editor.org/info/rfc5496>.
[RFC7761]
Fenner, B., Handley, M., Holbrook, H., Kouvelas, I., Parekh, R., Zhang, Z., and L. Zheng, "Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)", STD 83, RFC 7761, DOI 10.17487/RFC7761, , <https://www.rfc-editor.org/info/rfc7761>.

Authors' Addresses

Benchong Xu
ZTE Corporation
China
Zheng Zhang
ZTE Corporation
China