Multicast and
Ethernet VPN with Segment Routing Point-to-Multipoint Trees
Cisco Systems, Inc.
170 W. Tasman Drive
San Jose
CA
95134
USA
riparekh@cisco.com
Cisco Systems, Inc.
Brussels
BE
cfilsfil@cisco.com
Cisco Systems, Inc.
170 W. Tasman Drive
San Jose
CA
95134
USA
arvvenka@cisco.com
Nokia
Ottawa
CA
hooman.bidgoli@nokia.com
Bell Canada
Montreal
CA
daniel.voyer@bell.ca
Juniper Networks
zzhang@juniper.net
A Point-to-Multipoint (P2MP) Tree in a Segment Routing domain
efficiently carries traffic from a Root to a set of Leaves. This
document describes extensions to BGP encodings and procedures for P2MP
trees used in BGP/MPLS IP VPNs and Ethernet VPNs.
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.
Multicast in MPLS/BGP IP VPNs and BGP
Encodings and Procedures for Multicast in MPLS/BGP IP VPNs specify procedures that allow a Service Provider to
provide Multicast VPN (MVPN) service to its customers. Multicast traffic
from a customer is tunneled across the service provider network over
Provider Tunnels (P-Tunnels). P-tunnels can be instantiated via
different technologies. A service provider network that uses Segment
Routing can use a Point-to-Multipoint (SR P2MP) tree to instantiate P-Tunnels for
MVPN.
In a Segment Routing network, a P2MP tree allows efficient delivery
of traffic from a Root to set of Leaf nodes. A SR P2MP tree is defined
by a SR P2MP Policy and instantiated via a PCE. A P2MP Policy consists
of a Root, a Set of Leaf Nodes and a set of candidate paths with
optional set of constraints and/or optimization objectives to be
satisfied by the P2MP tree. A unique Identifier, called Tree-SID, is
associated with a P2MP tree. This Tree-SID can be an MPLS label or an
IPv6 address.
This document describes extensions to BGP Auto-Discovery procedures
specified in RFC 6514 for SR P2MP P-Tunnels. Use of PIM for
Auto-Discovery is outside scope of this document. Support for customer
BIDIR-PIM is outside the scope of this document.
For BGP MPLS Ethernet VPN specified in and
extensions to this document, P-Tunnels are advertised for handling
multi-destination traffic. These P-tunnels can be realized by SR P2MP
trees. SRv6 P2MP trees can also be used to support Multicast in Network
Virtualization over Layer 3 .
The reader is expected to be familiar with concepts and terminology
of RFC 6513, RFC 6514 and SR P2MP draft.
For MVPN or EVPN, Provider Edge(PE) routers steer customer traffic
into a P-Tunnel that can be instantiated by SR P2MP tree. A SR P2MP tree
is defined by a SR P2MP policy .
SR P2MP P-tunnel can be instantiated by either SR-MPLS or SRv6 P2MP
trees. Details for SRv6 P2MP trees will be added in future revision of
this document.
Given a SR P2MP policy, a PCE computes and instantiates the SR P2MP
tree on the nodes that are part of the tree using Replication segments
and Tree-SID which a unique identifier for the tree . A Replication segment
can be initiated by various methods (BGP, PCEP, others) which are
outside the scope of this document.
A PCE provides conceptual APIs, listed below, to define and modify SR
P2MP policies SR
P2MP Policy Section 4.1.1. These APIs are invoked by a PCC, which
is the root of P2MP tree, using various methods (BGP, PCEP, etc.) which
are outside the scope of this document.
CreatePolicy: CreateSRP2MPPolicy<Root,
Tree-ID>
DeletePolicy: DeleteSRP2MPPolicy<Root,
Tree-ID>
UpdateLeafSet:
SRP2MPPolicyLeafSetModify<Root, Tree-ID, {Leaf Set}>
The Root of a P2MP tree imposes the Tree-SID to steer the customer
payload into the P2MP tree. Provider (P) routers replicate customer
payload, using Replication segments, towards the Leaf nodes of the P2MP
tree. Leaf nodes of the P2MP tree deliver the customer payload after
dispoing the Tree-SID.
A PMSI Tunnel Attribute (PTA) is defined in RFC 6514 to identify the
P-Tunnel that is used to instantiate a Provider Multicast Service
Interface (PMSI). The PTA is carried in Intra-AS I-PMSI, Inter-AS
I-PMSI, Selective PMSI, and Leaf Auto-Discovery routes.
A P2MP tree PTA is constructed as follows:
Tunnel Type: The codepoint is set to TBDfor SR P2MP
tree from the "P-Multicast Service Interface Tunnel (PMSI Tunnel)
Tunnel Types" registry.
Flags: See for use of "Leaf Info
Required bit".
MPLS Label: See
Tunnel Identifier: The SR P2MP P-tunnel is identified by
<Tree-ID, Root> where,
Tree-ID is a 32-bit unsigned value that identifies a unique
P2MP tree at a Root..
Root is an IP address identifying the Root of a P2MP tree.
This can be either an IPv4 or IPv6 address and can be inferred
from the PTA length.
When a P-Tunnel is non-segmented, the PTA is created by PE router at
the Root of a SR P2MP tree. For segmented P-tunnels, each segment can be
instantiated by a different technology. If a segment is instantiated
using P2MP tree, the router at the root of a P2MP tree creates the
PTA.
allows a PE to aggregate two or more MVPNs
onto one P-tunnel by advertising the same P-tunnel in PTA of
Auto-Discovery routes of different MVPNs. This section specifies how
the "MPLS Label" field of PTA is filled to provide a context bound to
a specific MPVN. For EVPN considerations, see section.
When a SR P2MP P-tunnel, shared across different MVPNs, is
instantiated in a SR MPLS domain , "MPLS
Field" of a PTA advertised in a Auto-Discovery route MUST contain an
upstream-assigned MPLS label that the advertising PE has bound to
the MVPN.
When a customer payload is steered into a shared SR P2MP
P-tunnel, this MPLS label MUST be imposed before the MPLS label
representing the Tree-SID.
RFC 6514 defines procedures for discovering PEs participating in a
given MVPN and binding customer multicast flows to specific P-Tunnels.
This section specifies modifications to these procedures for SR P2MP
P-Tunnels.
Intra-AS I-PMSI A-D routes are exchanged to discover PEs
participating in a MVPN within an AS, or across different ASes when
non-segmented P-tunnels for inter-AS MVPNs.
RFC 6514
Section 9.1.1 describes procedures for originating Intra-AS
I-PMSI A-D routes. For SR P2MP P-tunnels, these procedures remain
unchanged except as described in the following paragraphs.
When a PE originates an Intra-AS I-PMSI A-D route with a PTA
having SR P2MP P-tunnel Type, it MUST create a P2MP policy by
invoking CreatePolicy API of the PCE. When the
PCE instantiates the P2MP tree on the PE, the Tree-SID MUST be
imposed for customer flow(s) steered into the P2MP tree. The Leaf
nodes of P2MP tree are discovered using procedures described in
.
For a PE in "Receiver Sites set", condition (c) is modified to
include P2MP tree i.e. such a PE MUST originate an Intra-AS I-PMSI
A-D route when some PEs of the MVPN have VRFs that use SR P2MP tree
but MUST NOT create a SR P2MP policy as described above.
When a PE withdraws an Intra-AS I-PMSI A-D route, advertised with
a PTA having SR P2MP P-tunnel Type, the Tree-SID imposition state at
the PE MUST be removed.
A PE MAY aggregate two or more Intra-AS I-PMSIs from different
MVPNs onto the same SR P2MP P-tunnel. When a PE withdraws the last
Intra-AS I-PMSI A-D route, advertised with a PTA identifying a SR
P2MP P-tunnel , it SHOULD remove the SR P2MP policy by invoking
DeletePolicy API of
the PCE.
Procedure for receiving Intra-AS I-PMSI A-D routes, as described
in RFC 6514
Section 9.1.2, remain unchanged for SR P2MP P-tunnels except
as described in the following paragraphs.
When a PE that advertises a SR P2MP P-tunnel in the PTA of its
Intra-AS I-PMSI A-D route, imports an Intra-AS I-PMSI A-D route from
some PE, it MUST add that PE as a Leaf node of the P2MP tree. The
Originating IP Address of the Intra-AS i-PMSI A-D route is used as
the Leaf Address when invoking UpdateLeafSet API of the PCE. This
procedure MUST also be followed for all Intra-AS I-PMSI routes that
are already imported when the PE advertises a SR P2MP P-tunnel in
PTA of its Intra-AS I-PMSI A-D route.
A PE that imports and processes an Intra-AS I-PMSI A-D route from
another PE with PTA having SR P2MP P-Tunnel MUST program the
Tree-SID of the P2MP tree identified in the PTA of the route for
disposition. Note that an Intra-AS I-PMSI A-D route from another PE
can be imported before the P2MP tree identified in the PTA of the
route is instantiated by the PCEat the importing PE. In such case,
the PE MUST correctly program Tree-SID for disposition. A PE in
"Sender Sites set" MAY avoid programming the Tree-SID for
disposition.
When an Intra-AS I-PMSI A-D route, advertised with a PTA having
SR P2MP P-tunnel Type is withdrawn, a PE MUST remove the disposition
state of the Tree-SID associated with P2MP tree.
A PE MAY aggregate two or more Intra-AS I-PMSIs from different
MVPNs onto the same SR P2MP P-tunnel. When a remote PE withdraws an
Intra-AS I-PMSI A-D route from a MVPN, and if this is the last MVPN
sharing a SR P2MP P-tunnel, a PE must remove the originating PE as a
Leaf from the P2MP tree, by invoking UpdateLeafSet API.
RFC 6514 specifies procedures for binding (C-S,C-G) customer flows
to P-tunnels using S-PMSI A-D routes. Wildcards in Multicast VPN
Auto-Discovery Routes specifies additional
procedures to binding aggregate customer flows to P-tunnels using
"wildcard" S-PMSI A-D routes. This section describes modification to
these procedures for SR P2MP P-tunnels.
RFC 6514
Section 12.1 describes procedures for originating S-PMSI A-D
routes. For SR P2MP P-tunnels, these procedures remain unchanged
except as described in the following paragraphs.
When a PE originates S-PMSI A-D route with a PTA having SR P2MP
P-tunnel Type, it MUST set the "Leaf Info Required bit" in the PTA.
The PE MUST create a SR P2MP policy by invoking API of the PCE. When the
PCEinstantiates the P2MP tree on the PE, the Tree-SID MUST be
imposed for customer flows steered into the SR P2MP P-tunnel.
The Leaf nodes of P2MP tree are discovered by Leaf A-D routes
using procedures described in . When a PE
originates S-PMSI A-D route with a PTA having SR P2MP P-tunnel Type,
it is possible the PE might have imported Leaf A-D routes whose
route keys match the S-PMSI A-D route. The PE MUST re-apply
procedures of to these Leaf A-D
routes.
When a PE withdraws a S-PMSI A-D route, advetised with PTA having
P2MP tree P-tunnle type, the Tree-SID imposition state MUST be
removed.
A PE MAY aggregate two or more S-PMSIs onto the same SR P2MP
P-tunnel. When a PE withdraws the last S-PMSI A-D route, advertised
with a PTA identifying a specific SR P2MP P-tunnel , it SHOULD
remove the SR P2MP policy by invoking DeletePolicy API of the PCE.
RFC 6514
Section 12.3 describes procedures for receiving S-PMSI A-D
routes. For SR P2MP P-tunnels, these procedures remain unchanged
except as described in the following paragraphs.
The procedure to join SR P2MP P-tunnel of S-PMSI A-D route by
using a Leaf A-D route is described in . If
P2MP tree identified in PTA of S-PMSI A-D route is already
instantiated by PCE, the PE MUST program Tree-SID for disposition.
If the P2MP tree is instantiated later, the Tree-SID MUST be
programmed for disposition at that time.
When a S-PMSI A-D route, whose SR P2MP P-tunnel is joined by a
PE, is withdrawn, or when conditions (see RFC 6514
Section 12.3) required to join that P-Tunnel are no longer
satisfied, the PE MUST leave the P-Tunnel. The PE MUST withdraw the
Leaf A-D route it had originated and remove the Tree-SID disposition
state.
A segmented inter-AS P-tunnel consists of one or more intra-AS
segments, one in each AS, connected by inter-AS segments between ASBRs
of different ASes . These
segments are constructed by PEs/ASBRs originating or re-advertising
Inter-AS I-PMSI A-D routes. This section describes procedures for
instantiating intra-AS segments using SR P2MP trees.
RFC
6514 Section 9.2.3.2 specifies procedures for advertising an
Inter-AS I-PMSI A-D route to construct an intra-AS segment. The PTA
of the route identifies the type and identifier of the P-tunnel
instantiating the intra-AS segment. The procedure for creating SR
P2MP P-tunnel for intra-AS segment are same as specified in except that instead of S-PMSI A-D routes, the
procedures apply to Inter-AS I-PMSI A-D routes.
RFC
6514 Section 9.2.3.2 specifies procedures for processing an
Inter-AS I-PMSI A-D route received via iBGP. If the PTA of the
Inter-AS I-PMSI A-D route has SR P2MP P-tunnel Type, the procedures
are same as specified in except that
instead of S-PMSI A-D routes, the procedures apply to Inter-AS
I-PMSI A-D routes. If the receiving router is an ASBR, the Tree-SID
is stitched to the inter-AS segments to ASBRs in other ASes.
This section describes procedures for originating and processing
Leaf A-D routes used for Leaf discovery of SR P2MP trees.
The procedures for originating Leaf A-D route in response to
receiving a S-PMSI or Inter-AS I-PMSI A-D route with PTA having SR
P2MP P-tunnel Type are same as specified in RFC
6514 Section 9.2.3.4.1.
Procedures for processing a received Leaf A-D route are specified
in RFC
6514 Section 9.2.3.5. These procedures remain unchanged for
discovering Leaf nodes of P2MP trees except for considerations
described in following paragraphs. These procedures apply to Leaf
A-D routes received in response to both S-PMSI and Inter-AS I-PMSI
A-D routes, shortened to "A-D routes" in this section
A Root PE/ASBR MAY use the same SR P2MP P-tunnel in PTA of two or
more A-D routes. For such aggregated P2MP trees, the PE/ASBR MAY
receive multiple Leaf A-D routes from a Leaf PE. The P2MP tree for
which a Leaf A-D is received can be identified by examining the P2MP
tunnel Identifier in the PTA of A-D route that matches "Route Key"
field of the Leaf A-D route. When the PE receives the first Leaf A-D
route from a Leaf PE, identified by the Originating Router's IP
address field, it MUST add that PE as Leaf of the P2MP tree by
invoking the UpdateLeafSet API of the PCE.
When a Leaf PE withdraws the last Leaf A-D route for a given SR
P2MP P-tunnel, the Root PE MUST remove the Leaf PE from the P2MP
tree by invoking UpdateLeafSet API of PCE. Note that
Root PE MAY remove the P2MP tree, via the DeletePolicyAPI, before the last Leaf
A-D is withdrawn. In this case, the Root PE MAY decide to not invoke
the UpdateLeafSet
API.
When P2MP trees are used as P-Tunnels for S-PMSI A-D routes, change
in group membership of receivers connected to PEs has direct impact on
the Leaf node set of a P2MP tree. If group membership changes frequently
for a large number of groups with a lot of receivers across sites
connected to different PEs, it can have an impact on the interaction
between PEs and the PCE.
Since Leaf A-D routes are used to discover Leaf PE of a P2MP tree, it
is RECOMMENDED that PEs SHOULD damp Leaf A-D routes as described in
Section 6.1 of RFC 7899. PEs MAY also
implement procedures for damping other Auto-Discovery and BGP
C-multicast routes as described in .
BGP MPLS Ethernet VPN specified in RFC 7432 specifies Inclusive
Multicast Ethernet Tag route to support Broadcast, Unknown Unicast and
Multicast (BUM) traffic. This IMET route is the equivalent of MVPN
Intra-AS I-PMSI route and is advertised with a PMSI Tunnel Attribute
(PTA) as specified in RFC 6514 to advertise the inclusive P-tunnels.
updates BUM
procedures to support selective P-tunnels and P-tunnel segmentation in
EVPN. That document specifies new route types that are advertised with
PTA, including Selective PMSI (S-PMSI) Auto-Discovery route.
These inclusive/selective P-tunnels can be realized by SR P2MP trees.
As with other types of P2MP P-tunnels, the ESI label used for split
horizon MUST be either upstream assigned by PE advertising the IMET or
S-PMSI route, or assigned from a global context such as "Domain- wide
Common Block" (DCB) as specified in .
specifies procedures to
support Inter-Subnet Multicast. specifies how MVPN
SAFI routes can be used to support Inter-Subnet Multicast. The P-tunnels
advertised in PTA of either EVPN and MVPN routes as specified in these
documents respectively can be realized by SR P2MP trees.
SRv6 P2MP trees can serve as an underlay multicast as described in
RFC 8293
Section 3.4. A NVE encapsuates a tenant packet in an SRv6 header
and deliver it over SRv6 P2MP trees to other NVEs.
The same procedures specified for MVPN are used to collect the leaf
information of corresponding SR P2MP tree (either based on IMET route or
Leaf A-D routes in response to x-PMSI routes), to pass the tree
information to the PCE controller, and to get back tree forwarding state
used for customer multicast traffic forwarding.
IANA is requested assign codepoint for "SR-MPLS P2MP Tree" in the
"P-Multicast Service Interface Tunnel (PMSI Tunnel) Tunnel Types"
registry
[RFC 7538] in the "Border Gateway Protocol (BGP) Parameters" registry. A
proposed value is 0x0C.
The procedures in this document do not introduce any additional
security considerations beyond those mentioned in and . For general security
considerations applicable to P2MP trees, please refer to .
The authors would like to acknowledge Luc Andre Burdett reviweing the
document..
Zafar Ali Cisco Systems, Inc. US
Email: zali@cisco.com
Ehsan Hemmati Cisco Systems, Inc. US
Email: ehemmati@cisco.com
Jayant Kotalwar Nokia Mountain View US
Email: jayant.kotalwar@nokia.com
Tanmoy Kundu Nokia
Mountain View US
Email: tanmoy.kundu@nokia.com
Clayton Hassen Bell CanadaVancouver CA
Email: clayton.hassen@bell.ca