Internet DRAFT - draft-xie-bier-mvpn-mpls-p2mp
draft-xie-bier-mvpn-mpls-p2mp
Network Working Group J. Xie
Internet-Draft M. McBride
Intended status: Standards Track M. Chen
Expires: January 3, 2019 Huawei Technologies
L. Geng
China Mobile
July 2, 2018
Multicast VPN Using MPLS P2MP and BIER
draft-xie-bier-mvpn-mpls-p2mp-02
Abstract
MVPN is a widely deployed multicast service with mLDP or RSVP-TE P2MP
as the P-tunnel. Bit Index Explicit Replication (BIER) is an
architecture that provides optimal multicast forwarding without
requiring intermediate routers to maintain any per-flow state by
using a multicast-specific BIER header. This document introduces a
seamless transition mechanism from legacy MVPN using mLDP/RSVP-TE
P2MP to MVPN using BIER by combining P2MP and BIER to form a P2MP
based BIER as the P-tunnel. This will leverage the widely supported
P2MP capability in both data-plane and control-plane, and will help
introducing BIER in existing multicast networks to shift multicast
delivery from MVPN using mLDP/RSVP-TE P2MP by two means: It is easier
and more efficient for legacy routers to support BIER forwarding on
the basis of widely supported P2MP forwarding, and it is more
seamless for existing multicast networks to deploy BIER when some
routers do not support BIER forwarding.
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].
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
Xie, et al. Expires January 3, 2019 [Page 1]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
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 3, 2019.
Copyright Notice
Copyright (c) 2018 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 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. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Applicability Statement . . . . . . . . . . . . . . . . . . . 4
4. MVPN using P2MP based BIER . . . . . . . . . . . . . . . . . 5
4.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2. MVPN Transition from P2MP to P2MP based BIER . . . . . . 5
4.2.1. Use of the PTA in x-PMSI A-D Routes . . . . . . . . . 6
4.3. Building P2MP based BIER forwarding state . . . . . . . . 8
5. P2MP based BIER Forwarding Procedures . . . . . . . . . . . . 8
5.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 8
5.2. P2MP based BIER forwarding . . . . . . . . . . . . . . . 9
5.3. When Mid, Leaf or Bud nodes do not support P-CAPABILITY . 11
5.4. When Leaf or Bud nodes do not support D-CAPABILITY . . . 13
6. Provisioning Considerations . . . . . . . . . . . . . . . . . 15
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
8. Security Considerations . . . . . . . . . . . . . . . . . . . 16
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 17
10.1. Normative References . . . . . . . . . . . . . . . . . . 17
10.2. Informative References . . . . . . . . . . . . . . . . . 18
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18
Xie, et al. Expires January 3, 2019 [Page 2]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
1. Introduction
[RFC6513] and [RFC6514] specify the protocols and procedures that a
Service Provider (SP) can use to provide Multicast Virtual Private
Network (MVPN) service to its customers. Multicast tunnels are
created through an SP's backbone network; these are known as
"P-tunnels". The P-tunnels are used for carrying multicast traffic
across the backbone. The MVPN specifications allow the use of
several different kinds of P-tunnel technology, such as mLDP P2MP and
RSVP-TE P2MP. It is common for such a P-tunnel having a multicast-
specific path.
Bit Index Explicit Replication (BIER) [RFC8279] is an architecture
that provides optimal multicast forwarding through a "multicast
domain", without requiring intermediate routers to maintain any per-
flow state, by using a multicast-specific BIER header (per
[RFC8296]).
[I-D.ietf-bier-mvpn] delivers a solution of MVPN using SPF based BIER
defined in [RFC8279]. It can not, however, support a multicast-
specific path well, something common in legacy MVPN deployment.
[RFC8279] provides a solution to support mid nodes without BIER-
capability. It cannot, however, support deployment on a network that
has edge nodes without BIER-capability, which may be common in some
SP-networks, especially when most of the nodes in a network or part
of a network are edge or service nodes.
This document introduces a seamless transition mechanism from legacy
MVPN to MVPN using P2MP based BIER, by applying a BIER encapsulation
in data-plane to eliminate per-flow states, while preserving existing
features such as multicast-specific PATH.
It also introduces a seamless deployment solution on networks with
Non-BIER-capability Edge nodes and/or Mid nodes, by exploring the
P2MP/tree based BIER forwarding procedure in detail. Such a P2MP/
tree based BIER is mentioned but not explored in detail in RFC8279.
2. Terminology
Readers of this document are assumed to be familiar with the
terminology and concepts of the documents listed as Normative
References. For convenience, some of the more frequently used terms
and new terms list below.
o LSP: Label Switch Path
o LSR: Label Switching Router
Xie, et al. Expires January 3, 2019 [Page 3]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
o P2MP: Point to Multi-point
o P-tunnel: A multicast tunnel through the network of one or more
SPs. P-tunnels are used to transport MVPN multicast data.
o PMSI: Provider Multicast Service Interface
o x-PMSI A-D route: a route that is either an I-PMSI A-D route or an
S-PMSI A-D route.
o PTA: PMSI Tunnel attribute. A type of BGP attribute known as the
PMSI Tunnel attribute.
o P2MP based BIER: BIER using P2MP LSP as topology
o P-CAPABILITY: A capability to Process BitString in BIER Header of
a packet.
o D-CAPABILITY: A capability to Disposit BIER Header of a packet,
including or excluding the BIER Label.
o BSL: Bit String Length, that is 64, 128, 256, etc (per [RFC8279]).
3. Applicability Statement
The BIER architecture document [RFC8279] describes how each node
forwards BIER packets hop by hop to neighboring nodes without
generating duplicate packets. This forwarding is for the case where
a form of underlay called "many to many " and built by IGP is used.
Obviously, the case of underlay of "one to many" or P2MP is a simpler
scenario, and the forwarding procedure naturally applies. However,
as is well-known, such a forwarding procedure requires the support of
hardware. The usage of the same forwarding method for both complex
scenarios and simple scenarios will inevitably require complex
hardware forwarding.
This document describes how BIER forwarding can be customized and
simplified with an underlay of "one to many" or P2MP (see chapter 5).
This customization and simplification eliminates some of the
unnecessary data plane processing and so is easier to implement with
existing hardware. Based on this customization of the forwarding
method for P2MP-based BIER, a variety of Partial Deployment methods
are given for the different capabilities of the hardware to support
BIER forwarding. Compared with RFC8279, when there is no BIER
forwarding capability on edge nodes, Partial Deployment can be
carried out ; For the case where the intermediate node has no BIER
forwarding capability, P2MP forwarding can be used without the need
for unicast replication.
Xie, et al. Expires January 3, 2019 [Page 4]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
This document also describes a MVPN Transition solution that
eliminates the per-flow state by introducing BIER MPLS encapsulation
and forwarding in data-plane, while preserving the original control-
plane protocol and its features, especially when some sort of path
customizing being used. The said path customization include RSVP-TE
P2MP using an explicit path, and MLDP P2MP where static route was
used. These features can continue to retain, making the transition
process seamless.
4. MVPN using P2MP based BIER
4.1. Overview
According to [RFC8279], the P2MP based BIER is a BIER which using a
form of tree as the underlay. The P2MP LSP is not only a LSP, but
also a topology as the BIER underlay. The P2MP based BIER is
P-tunnel, which is used for bearing multicast flows. Every flow can
be seen as binding to an independent tunnel, which is constructed by
the BitString in the BIER header of every packet of the flow.
Multicast flows are transported in SPMSI-only mode, on P2MP based
BIER tunnels, and never directly on P2MP LSP tunnel.
Section 4.2 describes the overall principle of transitioning a Legacy
MVPN using P2MP to a MVPN using BIER. It also descirbes the detail
use of new types of PTA in BGP MVPN routes to indicate PEs to
initialize the building of P2MP based BIER forwarding.
Section 4.3 describes the Underlay protocols to build P2MP based BIER
forwarding briefly.
4.2. MVPN Transition from P2MP to P2MP based BIER
This section describes a MVPN transitioning solution that eliminates
the per-flow state by introducing BIER MPLS encapsulation and
forwarding procedure in data-plane, while preserving the originally
deployed control-plane protocol and its features, especially when
some sort of path customizing being used.
When transitioning a MVPN using mLDP P2MP P-tunnel, then continue
using mLDP to build a P2MP based BIER forwarding, preserving the
original mLDP features. For example, mLDP uses static route to
specify a path other than the path of IGP.
When transitioning a MVPN using RSVP-TE P2MP P-tunnel, then continue
using RSVP-TE to build a P2MP based BIER forwarding, preserving the
original RSVP-TE features. For example, RSVP-TE use explicit path to
specify a path other than the path of IGP.
Xie, et al. Expires January 3, 2019 [Page 5]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
4.2.1. Use of the PTA in x-PMSI A-D Routes
As defined in [RFC6514], the PMSI Tunnel attribute (PTA) carried by
an x-PMSI A-D route identifies the P-tunnel that is used to
instantiate a particular PMSI. If a PMSI is to be instantiated by
P2MP LSP based BIER, the PTA is constructed by a BFIR, which is also
a Ingress LSR. This document defines the following Tunnel Types:
+ TBD - RSVP-TE built P2MP BIER
+ TBD - mLDP built P2MP BIER
Allocation is expected from IANA for two new tunnel type codepoints
from the "P-Multicast Service Interface Tunnel (PMSI Tunnel) Tunnel
Types" registry. These codepoints will be used to indicate that the
PMSIs is instantiated by MLDP or RSVP-TE extension with support of
BIER.
When the Tunnel Type is set to RSVP-TE built P2MP BIER, the Tunnel
Identifier include two parts, as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|BS Len | Max SI | Must Be Zero |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| P2MP ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MUST be zero | Tunnel Range Base |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Extended Tunnel ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: PTA of RSVP-TE built P2MP BIER
BS Len: A 4 bits field. The values allowed in this field are
specified in section 2 of [RFC8296].
Max SI: A 1 octet field. Maximum Set Identifier (section 1 of
[RFC8279]) used in the encapsulation for this BIER sub-domain.
<Extended Tunnel ID, Reserved, Tunnel Range Base, P2MP ID>: A ID as
carried in the RSVP-TE P2MP LSP SESSION Object defined in [RFC4875].
The "Tunnel Range" is the set of P2MP LSPs beginning with the Tunnel
Range base and ending with ((Tunnel Range base)+(Tunnel Number)- 1).
A unique Tunnel Range is allocated for the BSL and a Sub-domain-ID
implicited by the P2MP.
Xie, et al. Expires January 3, 2019 [Page 6]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
The size of the Tunnel Range is determined by the number of Set
Identifiers (SI) (section 1 of [RFC8279]) that are used in the
topology of the P2MP-LSP. Each SI maps to a single Tunnel in the
Tunnel Range. The first Tunnel is for SI=0, the second Tunnel is for
SI=1, etc.
When the Tunnel Type is set to mLDP built P2MP BIER, the Tunnel
Identifier include two parts, as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|BS Len | Max SI | Must Be Zero |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|P2MP Type(0x06)| Address Family | Address Length|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Root Node Address ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Opaque Length(0x0007) | OV Type(0x01) |OV Len(High 8b)|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Low 8b)(0x04)| Tunnel Range Base(High 24b) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (Low 8b) |
+-+-+-+-+-+-+-+-+
Figure 2: PTA of MLDP built P2MP BIER
BS Len: A 4 bits field. The values allowed in this field are
specified in section 2 of [RFC8296].
Max SI: A 1 octet field. Maximum Set Identifier (section 1 of
[RFC8279]) used in the encapsulation for this BIER sub-domain.
<Type=0x06, AF, AL, RootNodeAddr, Opqeue Length=0x0007, OV Type=0x01,
OV Len=0x04, Tunnel Range Base>: A P2MP Forwarding Equivalence Class
(FEC) Element, with a Generic LSP Identifier TLV as the opaque value
element, defined in [RFC6388].
The "Tunnel Range" is the set of P2MP LSPs beginning with the Tunnel
Range base and ending with ((Tunnel Range base)+(Tunnel Number)- 1).
A unique Tunnel Range is allocated for the BSL and a Sub-domain-ID
implicited by the P2MP.
The size of the Tunnel Range is determined by the number of Set
Identifiers (SI) (section 1 of [RFC8279]) that are used in the
topology of the P2MP-LSP. Each SI maps to a single Tunnel in the
Tunnel Range. The first Tunnel is for SI=0, the second Tunnel is for
SI=1, etc.
Xie, et al. Expires January 3, 2019 [Page 7]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
When the Tunnel Type is any of the above, The "MPLS label" field
contain an upstream-assigned non-zero MPLS label. It is assigned by
the router (a BFIR) that constructs the PTA. Absence of an MPLS
Label is indicated by setting the MPLS Label field to zero.
When the Tunnel Type is any of the above, two of the flags, LIR and
LIR-pF, in the PTA "Flags" field are meaningful. Details about the
use of these flags can be found in [RFC6513],
[I-D.ietf-bess-mvpn-expl-track] and [I-D.ietf-bier-mvpn]].
4.3. Building P2MP based BIER forwarding state
When P2MP based BIER are used, then it is not nessary to use IGP or
BGP to build the BIER routing table and forwarding table. Instead,
the BIER layer information is carried by MLDP or RSVP-TE, when they
build the P2MP tree.
The detail procedure for building P2MP based BIER forwarding state
using mLDP or RSVP-TE is outside the scope of this document.
5. P2MP based BIER Forwarding Procedures
5.1. Overview
This document specifies one OPTIONAL Forwarding Procedure of BIER
encapsulation packet, on the condition that the BIER underlay
topology is P2MP LSP, as describes in the above sections. It is in
fact a customized forwarding procedure, and a detail exploration of
BIER forwarding along a multicast-specific tree. Comparing to the
common Forwarding Procedure described in [RFC8279], there is some
considerable simplification:
1. Not need to Edit the BitString when forwarding packet to
Neighbor, for the underlay P2MP topology is already loop-free and
duplicate-free. This can further lead to a method to by-pass the
BIER encapsulation packet when a node does not support the
BitString process.
2. Not need to do a disposition function by parsing the BitString,
for a P2MP can identify a disposition function by a node's Label
when the P2MP is built. This can further reduce the complex
BitString processing for legacy hardware on edge, and lead to a
method to deploy on exist network when an edge node does not
support BitString process.
The main principle of the optional forwarding procedure of the P2MP
based BIER is, on the basis of P2MP forwarding procedure according to
the BIER-MPLS label, to use the BitString to prune/filter the
Xie, et al. Expires January 3, 2019 [Page 8]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
undesired P2MP downstream. This is an smooth enhancement to the
widely deployed P2MP forwarding, and easier to deploy on existing
routers comparing to the many-to-many BIER forwarding.
The enhancement to the P2MP forwarding is to add a Forwarding BitMask
to existing NHLFE defined in [RFC3031], for checking with the
BitString in a packet, to determin whether the packet is to be
forwarded or pruned. If the checking result by AND'ing a packet's
BitString with the F-BM of the NHLFE (i.e., Packet->BitString &=
F-BM) is non-zero, then forward the packet to the next-hop indicated
by the NHLFE entry, and the Label is switched to the proper one in
the NHLFE. If the result is zero, then do not forward the packet to
the next-hop indicated by the NHLFE entry.
5.2. P2MP based BIER forwarding
For a P2MP tree, every node has a role of Root, Branch, Leaf, or Bud,
as specified in [RFC4611].
EXAMPLE 1: Take the following figure as an example.
( A ) ------------ ( B ) ------------ ( C ) ------------ ( D )
(Root) \ \ 1 (0:0001)
\ \
( E ) ( F )
3 (0:0100) 2 (0:0010)
Figure 3: P2MP-based BIER Topology without BUD nodes
Forwarding Table on A:
o NHLFE(TreeID, OutInterface<toB>, OutLabel<alloc by B>, F-BM<0111>)
Forwarding Table on C:
o ILM(inLabel<alloc by C>, action<TreeID>, Flag=Branch|CheckBS, BSL)
o NHLFE(TreeID, OutInterface<toD>, OutLabel<alloc by D>, F-BM<0001>)
o NHLFE(TreeID, OutInterface<toF>, OutLabel<alloc by F>, F-BM<0010>)
For Node C, the ability to receive a MPLS-encapsulation BIER packet,
match ILM and get a TreeID, replicate to NHLFE Entries of the TreeID
according to the result of AND'ing the BitString of packet and the
F-BM of a NHLFE Entry, is called a P-CAPABILITY, which means to
Process BitString in each packet.
Forwarding Table on B is the same to C.
Xie, et al. Expires January 3, 2019 [Page 9]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
Forwarding Table on D:
o ILM(inLabel<alloc by D>, action<TreeID>, Flag=Leaf|CheckBS, BSL)
o LEAF(TreeID, F-BM<0001>, flag=PopBIERincluding)
When Node D receive a MPLS-encapsulation BIER packet, it get the
Label and match ILM, then do a replication according to the LEAF and
check whether to proceed by AND'ing the BitString in the replicated
packet and the F-BM in the LEAF entry. When the AND'ing result is
non-zero then do a POP to the packet to disposit the whole BIER
header Including the BIER Label, which has a length of (12+BSL/8)
octets.
Node D need to have a P-CAPABILITY, for it need to Process BitString
in each packet to determin whether to replicate to a special LEAF,
and then disposit the whole BIER hearder Including the BIER Label and
forward the IP multicast packet further. Node D also need to do the
disposition as well, which is called a D-CAPABILITY. D-CAPABILITY
means to disposit the BIER header including or excluding the BIER
Label in the begining. Here PopBIERincluding means pop the BIER
header including the BIER Label, while PopBIERexcluding means pop the
BIER header excluding the BIER Label.
Forwarding Tables on E and F are same to D.
Comparing to the forwarding procedure defined in [RFC8279], there are
two benefits of using the customized P2MP based BIER forwarding:
1. Not need to walk every physical neighbor, but only need to walk
downstream neighbors on a P2MP tree.
2. Not need to edit the BitString in every packet, but only need to
swap the BIER Label.
EXAMPLE 2: Another example with P2MP BUD Nodes.
( A ) ------------ ( B ) ------------ ( C ) ------------ ( D )
(Root) \ 1 (0:0001)
\
( E ) ------------ ( F )
3 (0:0100) 2 (0:0010)
Figure 4: P2MP-based BIER Topology with BUD nodes
Forwarding Table on B (Branch Node):
o ILM(inLabel<alloc by B>, action<TreeID>, Flag=Branch|CheckBS, BSL)
Xie, et al. Expires January 3, 2019 [Page 10]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
o NHLFE(TreeID, OutInterface<toE>, OutLabel<alloc by E>, F-BM<0110>)
o NHLFE(TreeID, OutInterface<toC>, OutLabel<alloc by C>, F-BM<0001>)
Node B, which is a Branch Node, only need to use its P-CAPABILITY.
Forwarding Table on E (BUD Node):
o ILM(inLabel<alloc by E>, action<TreeID>, Flag=Bud|CheckBS, BSL)
o NHLFE(TreeID, OutInterface<toF>, OutLabel<alloc by F>, F-BM<0010>)
o LEAF(TreeID, F-BM<0100>, flag=PopBIERincluding)
When Node E receive a MPLS-encapsulation BIER packet, it get the
Label and match ILM, then do a replication according to the NHLFEs
and check whether to proceed by AND'ing the BitString in the
replicated packet and the F-BM in the NHLFE/LEAF entry. When the
AND'ing result is non-zero for the second LEAF then do a POP to the
packet to disposit the whole BIER header, which has a length of
(12+BSL/8) octets.
Node E, which is a BUD Node, has both the two capacities:
P-CAPABILITY and D-CAPABILITY. P-CAPABILITY is need to be used for
every NHLFE/LEAF, and D-CAPABILITY is need for the NHLFE that has a
PopBIERincluding flag.
5.3. When Mid, Leaf or Bud nodes do not support P-CAPABILITY
The procedures of Section 5.2 presuppose that, within a given BIER
domain, all the nodes adjacent to a given BFR in a given routing
underlay are also BFRs. However, it is possible to use BIER even
when this is not the case. In this section, we describe procedures
that can be used if the routing underlay is a P2MP tree with BIER
information in the domain.
For a P2MP tree, every node has a role of Root, Branch, Leaf, or Bud.
The role is determined when the tree is built. The method is
suitable for conditions when Mid, Leaf or Bud nodes do not support
P-CAPABILITY.
EXAMPLE 1: Take Figure 4 as an example.
If D, F, E support BIER, and C don't support BIER, then we can
configure on C to indicate it to use P2MP for BIER packets
forwarding. Then C build a P2MP forwarding entry, while still pass
the BIER information in control-plane. For example, D send a P2MP
FEC Mapping message to C with a BitMask 0001, F send a P2MP FEC
Xie, et al. Expires January 3, 2019 [Page 11]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
Mapping message to C with a BitMask 0010, and C send a P2MP FEC
Mapping message to B with a BitMask, but C build a P2MP forward entry
like this:
o ILM(inLabel<alloc by C>, action<TreeID>, Flag=Branch)
o NHLFE(TreeID, OutInterface<toD>, OutLabel<alloc by D>)
o NHLFE(TreeID, OutInterface<toF>, OutLabel<alloc by F>)
If D don't support BIER P-CAPABILITY, but it support BIER
D-CAPABILITY, then the above method is still valid.
Forwarding Table on D when D don't have a P-CAPABILITY:
o ILM(inLabel<alloc by D>, action<TreeID>, Flag=Leaf, BSL)
o NHLFE(TreeID, flag=PopBIERincluding)
When Node D receive a MPLS-encapsulation BIER packet, it get the
Label and match ILM, then do a replication according to the NHLFE but
don't do the check by AND'ing the BitString in the replicated packet
and the F-BM in the NHLFE entry. And then do a POP to the packet to
disposit the whole BIER header, which has a length of (12+BSL/8)
octets.
Another alternative form of Forwarding Table on D can also be the
following when D don't have a P-CAPABILITY:
o ILM(inLabel<alloc by D>, action<PopBIERincluding>, Flag=Leaf, BSL)
When Node D receive a MPLS-encapsulation BIER packet, it get the
Label and match ILM, then do a POP action according to the ILM to pop
the whole (12+BSL/8) octets from the Label position.
EXAMPLE 2: Take BUD Node E in Figure 5 as another example.
Forwarding Table on Bud Node E when E don't have a P-CAPABILITY:
Forwarding Table on E when E don't have a P-CAPABILITY:
o ILM(inLabel<alloc by E>, action<TreeID>, Flag=Bud, BSL)
o NHLFE(TreeID, OutInterface<toF>, OutLabel<alloc by F>)
o LEAF(TreeID, flag=PopBIERincluding)
Xie, et al. Expires January 3, 2019 [Page 12]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
One can see that, this method can support widely Non-BIER Nodes in a
network, no matter the node has a Mid, Leaf or Bud role, and would
never result in any ingress-replication through unicast tunnel, which
may cause a overload on a link.
One can also see that, [RFC8279] only support Non BIER-capability
nodes being the Mid nodes, and never allow a BFER nodes to be Non
BIER-capability.
5.4. When Leaf or Bud nodes do not support D-CAPABILITY
A more tolerant variant of the above, when Leaf or Bud nodes do not
support D-CAPABILITY, would be the following:
EXAMPLE 1: Take Figure 4 as an example.
If D even don't support BIER P-CAPABILITY or D-CAPABILITY, then POP
the whole BIER Header except the first four octets Label field of a
packet before it come to D. This requires C to build a forwarding
table like this:
Forwarding Table on C (Branch Node):
o ILM(inLabel<alloc by E>, action<TreeID>, Flag=Branch|CheckBS, BSL)
o NHLFE(TreeID, OutInterface<toD>, OutLabel<alloc by D>, F-BM<0001>,
Flag=PopBIERexcluding)
o NHLFE(TreeID, OutInterface<toF>, OutLabel<alloc by F>, F-BM<0010>)
The Flag PopBIERexcluding means POP the BIER Header excluding the
first 4 octets BIER Label in a packet, that is a Length of (8+BSL/8)
If D don't support BIER P-CAPABILITY or D-CAPABILITY, and C don't
support BIER P-CAPABILITY, then it requires B to build a forwarding
table, to ensure the BIER Header except the first four octets Label
field of a packet is popped before replicated to C, and requires C to
build a forwarding table of a pure P2MP branch, and requires F to
build a forwarding table of a pure P2MP Leaf. Their forwarding
tables are like below:
Forwarding Table on B (Branch Node):
o ILM(inLabel<alloc by B>, action<TreeID>, Flag=Branch|CheckBS, BSL)
o NHLFE(TreeID, OutInterface<toC>, OutLabel<alloc by C>, F-MB<0011>,
Flag=PopBIERexcluding)
Xie, et al. Expires January 3, 2019 [Page 13]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
o NHLFE(TreeID, OutInterface<toE>, OutLabel<alloc by E>, F-BM<0100>)
Forwarding Table on C (Branch Node):
o ILM(inLabel<alloc by C>, action<TreeID>, Flag=Branch)
o NHLFE(TreeID, OutInterface<toF>, OutLabel<alloc by F>)
o NHLFE(TreeID, OutInterface<toF>, OutLabel<alloc by F>)
Forwarding Table on D (Branch Node):
o ILM(inLabel<alloc by D>, action<PopLabel>, Flag=Leaf)
Here PopLabel mean to pop the Label, which is in fact a P2MP LSP
Label. It is a basic capability of any LSR.
Forwarding Table on F (Branch Node):
o ILM(inLabel<alloc by F>, action<PopLabel>, Flag=Leaf)
Here PopLabel mean to pop the Label, which is in fact a P2MP LSP
Label. It is a basic capability of any LSR, and the Forwarding table
on F is in fact a P2MP one.
Note that, alrough F support BIER, which means it can deal with a
BIER packet, but it must downshift its forwarding table to a pure
P2MP one, because the packet it received doesn't include a BIER
Header but a P2MP Label packet due to the POP behaving of its
upstream node.
EXAMPLE 2: Take Figure 5 as another example.
If E even don't support BIER P-CAPABILITY or D-CAPABILITY, then POP
the whole BIER Header Except the first four octets Label field of a
packet before it come to D. This requires B to build a forwarding
table like this:
Forwarding Table on B (Branch Node):
o ILM(inLabel<alloc by B>, action<TreeID>, Flag=Branch|CheckBS, BSL)
o NHLFE(TreeID, OutInterface<toC>, OutLabel<alloc by C>, F-MB<0011>)
o NHLFE(TreeID, OutInterface<toE>, OutLabel<alloc by E>, F-BM<0100>,
Flag=PopBIERexcluding)
Forwarding Table on E (Bud Node):
Xie, et al. Expires January 3, 2019 [Page 14]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
o ILM(inLabel<alloc by E>, action<TreeID>, Flag=Bud)
o NHLFE(TreeID, OutInterface<toF>, OutLabel<alloc by F>)
o LEAF(TreeID, flag=PopLabel)
Forwarding Table on F (Branch Node):
o ILM(inLabel<alloc by F>, action<PopLabel>, Flag=Leaf)
Note that, alrough F support BIER, which means it can deal with a
BIER packet, but it must downshift its forwarding table to a pure
P2MP Leaf, because the packet it received doesn't include a BIER
Header but a P2MP Label packet due to the POP behaving of its
upstream node.
One can see that, when some Leaf or Bud nodes even don't have a
D-CAPABILITY, we can do a POP action to dispositing the BIER header
excluding the BIER Label in the begining before the packet arrive the
node. This is similar to a Penultimate Hop Popping in a P2P LSP.
6. Provisioning Considerations
P2MP based BIER use concepts of both P2MP and BIER. Some
provisioning considerations list below:
Sub-domain:
In P2MP based BIER, every P2MP is a specific BIER underlay topology,
and an implicit Sub-domain. RSVP-TE/MLDP build the BIER information
of the implicit sub-domain when building the P2MP tree. MVPN get the
implicit sub-domain by provisioning.
BFR-prefix:
In P2MP LSP based BIER, every BFR is also a LSR. So the BFR-prefix
in the sub-domain is by default identified by LSR-id. Additionally,
When BFR/LSR is also a MVPN PE, BFR-prefix is also the same as
Originating Router's IP Address of x-PMSI A-D route or Leaf A-D
route.
BFR-id:
When using protocols like RSVP-TE, which initializes P2MP LSP from a
specific Ingress Node, BFR-id which is unique in P2MP LSP scope, can
be auto-provisioned by Ingress Node, or conventionally configure on
every Egress Nodes.
Xie, et al. Expires January 3, 2019 [Page 15]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
BSL and BIER-MPLS Label Block Size:
In P2MP LSP based BIER, Every P2MP LSP or implicit sub-domain
requires a single BSL, and a specific BIER-MPLS Label block size for
this BSL.
VPN-Label:
The P2MP based BIER 'P-tunnel' can be shared by multiple VPNs or a
single VPN. When a P2MP based BIER being shared by multiple VPNs, an
Upstream-assigned VPN-Label is required. It can be auto-provisioned
or manual configured by the BFIR or Ingress LSR.
In fact, [RFC6513] has defined the method of "Aggregating Multiple
MVPNs on a Single P-Tunnel". But unfortunately it is not widely
deployed because of the serious trade-off between state saving and
bandwidth waste. The BIER encapsulation and forwarding method give
it a chance to eliminate the trade-off while gaining a completely
state saving.
Even when such an aggregating is not used, it is still adequate to
use BIER to save state by sharing one P2MP based BIER "P-tunnel" for
multi flows in one specific VPN.
For seamless transitioning from legacy MVPN deployment and existing
network, it is recommended not to use such an aggregating, as well as
to use such an aggregating.
7. IANA Considerations
Allocation is expected from IANA for two new tunnel type codepoints
for "RSVP-TE built P2MP based BIER" and "MLDP built P2MP based BIER"
from the "P-Multicast Service Interface Tunnel (PMSI Tunnel) Tunnel
Types" registry.
8. Security Considerations
This document does not introduce any new security considerations
other than already discussed in [RFC8279].
9. Acknowledgements
The authors would like to thank Eric Rosen, Tony Przygienda, IJsbrand
Wijnands and Toerless Eckert for their thoughtful comments and kind
suggestions.
Xie, et al. Expires January 3, 2019 [Page 16]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
10. References
10.1. Normative References
[I-D.ietf-bess-mvpn-expl-track]
Dolganow, A., Kotalwar, J., Rosen, E., and Z. Zhang,
"Explicit Tracking with Wild Card Routes in Multicast
VPN", draft-ietf-bess-mvpn-expl-track-09 (work in
progress), April 2018.
[I-D.ietf-bier-mvpn]
Rosen, E., Sivakumar, M., Aldrin, S., Dolganow, A., and T.
Przygienda, "Multicast VPN Using BIER", draft-ietf-bier-
mvpn-11 (work in progress), March 2018.
[RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
Label Switching Architecture", RFC 3031,
DOI 10.17487/RFC3031, January 2001,
<https://www.rfc-editor.org/info/rfc3031>.
[RFC4875] Aggarwal, R., Ed., Papadimitriou, D., Ed., and S.
Yasukawa, Ed., "Extensions to Resource Reservation
Protocol - Traffic Engineering (RSVP-TE) for Point-to-
Multipoint TE Label Switched Paths (LSPs)", RFC 4875,
DOI 10.17487/RFC4875, May 2007,
<https://www.rfc-editor.org/info/rfc4875>.
[RFC6388] Wijnands, IJ., Ed., Minei, I., Ed., Kompella, K., and B.
Thomas, "Label Distribution Protocol Extensions for Point-
to-Multipoint and Multipoint-to-Multipoint Label Switched
Paths", RFC 6388, DOI 10.17487/RFC6388, November 2011,
<https://www.rfc-editor.org/info/rfc6388>.
[RFC6513] Rosen, E., Ed. and R. Aggarwal, Ed., "Multicast in MPLS/
BGP IP VPNs", RFC 6513, DOI 10.17487/RFC6513, February
2012, <https://www.rfc-editor.org/info/rfc6513>.
[RFC6514] Aggarwal, R., Rosen, E., Morin, T., and Y. Rekhter, "BGP
Encodings and Procedures for Multicast in MPLS/BGP IP
VPNs", RFC 6514, DOI 10.17487/RFC6514, February 2012,
<https://www.rfc-editor.org/info/rfc6514>.
[RFC6625] Rosen, E., Ed., Rekhter, Y., Ed., Hendrickx, W., and R.
Qiu, "Wildcards in Multicast VPN Auto-Discovery Routes",
RFC 6625, DOI 10.17487/RFC6625, May 2012,
<https://www.rfc-editor.org/info/rfc6625>.
Xie, et al. Expires January 3, 2019 [Page 17]
Internet-Draft MVPN Using MPLS P2MP and BIER July 2018
[RFC8279] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A.,
Przygienda, T., and S. Aldrin, "Multicast Using Bit Index
Explicit Replication (BIER)", RFC 8279,
DOI 10.17487/RFC8279, November 2017,
<https://www.rfc-editor.org/info/rfc8279>.
[RFC8296] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A.,
Tantsura, J., Aldrin, S., and I. Meilik, "Encapsulation
for Bit Index Explicit Replication (BIER) in MPLS and Non-
MPLS Networks", RFC 8296, DOI 10.17487/RFC8296, January
2018, <https://www.rfc-editor.org/info/rfc8296>.
10.2. Informative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
Authors' Addresses
Jingrong Xie
Huawei Technologies
Email: xiejingrong@huawei.com
Mike McBride
Huawei Technologies
Email: mmcbride7@gmail.com
Mach Chen
Huawei Technologies
Email: mach.chen@huawei.com
Liang Geng
China Mobile
Beijing 100053
Email: gengliang@chinamobile.com
Xie, et al. Expires January 3, 2019 [Page 18]