Carrying Protocol Independent Multicast - Sparse Mode (PIM-SM) in Any-Source Multicast (ASM) Mode Trees over Multipoint LDP (mLDP)
Extracted elements (24)
Each IP multicast tree is mapped one-to-one to a P2MP LSP in the MPLS network. This works well when the number of LSPs is under operator control or known to be limited; aggregating multiple trees onto one LSP (as BGP MVPN procedures allow) is out of scope.
The Transit Shared Tree TLVs are intentionally given the same encoding as the IPv4/IPv6 Source Tree TLVs from RFC 6826, with only the Source field replaced by an RP field. Reusing the existing encoding minimizes new protocol surface and leverages proven mLDP in-band signaling procedures.
Two mechanisms are defined for mapping PIM-SM ASM trees to mLDP P2MP LSPs. Mechanism 1 (non-transitive) is OPTIONAL; Mechanism 2 (transitive) is REQUIRED for conformance. The two are mutually exclusive in deployment: a network may use one or the other, but not both.
When the network is provisioned so that the RP for a group G is always between receivers and sources, the ingress PE for (S,G) always equals the ingress PE for the RP, making Source Active auto-discovery routes unnecessary. In that case, RFC 7438 in-band signaling with wildcards can be used instead of the procedures in this document.
In Mechanism 1, the creation or deletion of (S,G,RPT-bit) PIM state on an LSR caused by PIM messages received on IP multicast interfaces does not trigger any mLDP or BGP actions by the LSR.
In Mechanism 2, if an LSR creates (S,G) state from an mLDP Source TLV Label Map while already having (*,G) state (with the RP reachable via IP) from an mLDP Shared Tree TLV Label Map, the LSR does NOT originate a Source Active auto-discovery route, since the shared tree context is already established via in-band signaling.
In Mechanism 2, (S,G,RPT-bit) state created or deleted as a result of PIM messages on IP multicast interfaces does not result in any mLDP or BGP actions, mirroring the same rule in Mechanism 1.
This document relies on RFC 6826 procedures for source (S,G) trees over mLDP. The Mechanism 2 in-band signaling for shared (*,G) trees follows the same procedures as RFC 6826 source trees, but uses Transit Shared Tree TLVs carrying (RP, G) instead of Transit Source TLVs carrying (S, G).
After receiving a Source Active auto-discovery route for (S,G), if conditions (a) (*,G) TIB entry exists, (b) iif list contains an IP interface, (c) at least one MPLS interface is in the oif list, and (d) the LSR does not originate an mLDP Label Mapping for (S,G) with Transit Source TLV are all met, the LSR MUST transition the (S,G,RPT-bit) downstream state to the Prune state.
In Mechanism 1, when an LSR creates a new (*,G) TIB entry with IP multicast outgoing interfaces, the LSR MUST check for any Source Active auto-discovery routes for G. If such a route exists, S is reachable via MPLS, and no (S,G) TIB state exists, the LSR MUST originate an mLDP Label Map with the Transit IPv4/IPv6 Source TLV for (S,G) per RFC 6826.
In Mechanism 1, when an LSR receives a new Source Active auto-discovery route, it MUST check whether its TIB contains a (*,G) entry with the same G. If found, S is reachable via MPLS, and no (S,G) state exists, the LSR MUST originate an mLDP Label Map with the Transit IPv4/IPv6 Source TLV for (S,G).
In Mechanism 1, whenever an RP discovers a new multicast source (via PIM Register or MSDP), the RP SHOULD originate a BGP Source Active auto-discovery route carrying an MCAST-VPN NLRI with RD=0, the source address S, and the group address G.
In Mechanism 2, an LSR that creates (S,G) state from receiving an mLDP Label Map with the Transit IPv4/IPv6 Source TLV MUST originate a Source Active auto-discovery route if: S is reachable via an IP-multicast-capable interface, G is in PIM-SM ASM mode range, and the LSR does not have (*,G) state with an IP-multicast-capable interface as the incoming interface.
In Mechanism 2, whenever an LSR deletes (S,G) state that was created from an mLDP Label Map with the Transit IPv4/IPv6 Source TLV, the LSR MUST also withdraw any Source Active auto-discovery route that was advertised when the state was created.
The LSR MUST keep the (S,G,RPT-bit) downstream state machine in the Prune state for as long as: the (*,G) oif list contains an MPLS interface, the LSR has at least one Source Active auto-discovery route for (S,G), and the LSR does not originate an mLDP Label Mapping for (S,G) with the Transit Source TLV. Once any of these conditions become invalid, the LSR MUST transition to the NoInfo state.
The Source Active auto-discovery route SHOULD carry the NO_EXPORT BGP Community (RFC 1997) to constrain its distribution to the Autonomous System of the advertising RP.
Whenever the RP determines a source is no longer active, the RP MUST withdraw the Source Active auto-discovery route if one was previously advertised.
Mechanism 2 defines two new mLDP TLVs — Transit IPv4 Shared Tree TLV and Transit IPv6 Shared Tree TLV — to carry (*,G) shared tree state in-band within mLDP signaling. These enable shared trees to transit the MPLS domain.
Source Active auto-discovery routes are BGP routes carrying a single MCAST-VPN NLRI (RFC 6514) with RD=0, the multicast source address S, and the multicast group address G. They are used in both mechanisms to distribute source reachability information within an AS.
IANA allocated two new values in the 'LDP MP Opaque Value Element basic type' subregistry of 'Label Distribution Protocol (LDP) Parameters': value 11 for Transit IPv4 Shared Tree TLV and value 12 for Transit IPv6 Shared Tree TLV, both referencing RFC 7442.
All security considerations for mLDP (RFC 6388) apply to this specification. From a security standpoint, the use of Transit Shared Tree TLVs is no different from the use of Transit Source TLVs defined in RFC 6826; no additional security risks are introduced.
The (S,G,RPT-bit) downstream state machine has two relevant states: Prune (entered when Source Active route received and conditions (a)-(d) hold) and NoInfo (entered when any of those conditions cease to hold). The LSR acts as if it received Prune(S,G,rpt) on an MPLS interface without actually receiving one.
Transit IPv4 Shared Tree TLV: Type=11, Length=8. RP field is an IPv4 RP address (4 octets). Group field is an IPv4 multicast group address (4 octets). Encoding is identical to the IPv4 Source Tree TLV (RFC 6826) except the Source field is replaced by RP.
Transit IPv6 Shared Tree TLV: Type=12, Length=32. RP field is an IPv6 RP address (16 octets). Group field is an IPv6 multicast group address (16 octets). Encoding is identical to the IPv6 Source Tree TLV (RFC 6826) except the Source field is replaced by RP.