< draft-ietf-bier-php-05.txt   draft-ietf-bier-php-06.txt >
BIER Z. Zhang BIER Z. Zhang
Internet-Draft Juniper Networks Internet-Draft Juniper Networks
Intended status: Standards Track July 29, 2020 Intended status: Standards Track August 24, 2020
Expires: January 30, 2021 Expires: February 25, 2021
BIER Penultimate Hop Popping BIER Penultimate Hop Popping
draft-ietf-bier-php-05 draft-ietf-bier-php-06
Abstract Abstract
Bit Index Explicit Replication (BIER) can be used as provider tunnel Bit Index Explicit Replication (BIER) can be used as provider tunnel
for Multicast Virtual Private Network (MVPN) [RFC6514], Global for Multicast Virtual Private Network (MVPN). Global Table Multicast
Table Multicast [RFC7716] or Ethernet Virtual Private Network (EVPN) [RFC7716] or Ethernet Virtual Private Network (EVPN). It is possible
[RFC7432]. It is possible that not all routers in the provider that not all routers in the provider network support BIER and there
network support BIER and there are various methods to handle BIER are various methods to handle BIER-incapable transit routers.
incapable transit routers. However those methods assume the MVPN/ However those methods assume the MVPN/EVPN Provider Edges (PEs) are
EVPN Provider Edges (PEs) are BIER capable. This document specifies BIER-capable. This document specifies a method to allow BIER-
a method to allow BIER incapable routers to act as MVPN/EVPN PEs with incapable routers to act as MVPN/EVPN PEs with BIER as the transport,
BIER as the transport, by having the upstream BIER Forwarding Router by having the upstream BIER Forwarding Router (BFR) that is connected
(BFR) that is connected directly or indirectly via a tunnel to a BIER directly or indirectly via a tunnel to a BIER-incapable PE remove the
incapable PE remove the BIER header and send the payload to the PE. BIER header and send the payload to the PE.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC2119. document are to be interpreted as described in RFC2119.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 46 skipping to change at page 1, line 46
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 30, 2021. This Internet-Draft will expire on February 25, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 49 skipping to change at page 2, line 49
BFIRs can encode the correct bitstring for BIER forwarding by the BFIRs can encode the correct bitstring for BIER forwarding by the
BIER layer. BIER layer.
MVPN and EVPN are two similar overlays where BGP Auto-Discovery MVPN and EVPN are two similar overlays where BGP Auto-Discovery
routes for MVPN/EVPN are exchanged among all PEs to signal which PEs routes for MVPN/EVPN are exchanged among all PEs to signal which PEs
need to receive multicast traffic for all or certain flows. need to receive multicast traffic for all or certain flows.
Typically the same provider tunnel type is used for traffic to reach Typically the same provider tunnel type is used for traffic to reach
all receiving PEs. all receiving PEs.
Consider an MVPN/EVPN deployment where enough provider routers are Consider an MVPN/EVPN deployment where enough provider routers are
BIER capable for BIER to become the preferred the choice of provider BIER-capable for BIER to become the preferred choice of provider
tunnel. However, some PEs cannot be upgraded to support BIER tunnel. However, some PEs cannot be upgraded to support BIER
forwarding. While there are ways to allow an ingress PE to send forwarding. While there are ways to allow an ingress PE to send
traffic to some PEs with one type of tunnel and send traffic to some traffic to some PEs with one type of tunnel and send traffic to some
other PEs with a different type of tunnel, the procedure becomes other PEs with a different type of tunnel, the procedure becomes
complicated and forwarding is not optimized. complicated and forwarding is not optimized.
One way to solve this problem is to use Penultimate Hop Popping (PHP) One way to solve this problem is to use Penultimate Hop Popping (PHP)
so that the upstream BFR can pop the BIER header and send the payload so that the upstream BFR can pop the BIER header and send the payload
"natively" (note that the upstream BFR can be connected directly or "natively" (note that the upstream BFR can be connected directly or
indirectly via any type of tunnel to the PE). This is similar to indirectly via any type of tunnel to the PE). This is similar to
Multi-Protocol Label Switching (MPLS) PHP though it is the BIER Multi-Protocol Label Switching (MPLS) PHP though it is the BIER
header that is popped. header that is popped.
The transition of an existing MVPN/EVPN deployment with traditional The transition of an existing MVPN/EVPN deployment with traditional
provider tunnels to using BIER with some PEs not capable of receiving provider tunnels to using BIER with some PEs not capable of receiving
BIER packets can be incremental. All PEs are first upgraded to BIER packets can be incremental. All PEs are first upgraded to
support BIER at least in the control plane, with those not capable of support BIER at least in the control plane, with those not capable of
BIER forwarding requesting PHP. Then BIER capable ingress PEs BIER forwarding requesting PHP. Then BIER-capable ingress PEs
independently and incrementally switch to BIER transport. independently and incrementally switch to BIER transport.
While the above text uses MVPN/EVPN as example, BIER PHP is While the above text uses MVPN/EVPN as example, BIER PHP is
applicable to any scenario where the multicast flow overlay edge applicable to any scenario where the multicast flow overlay edge
router does not support BIER, as long as the edge router does not router does not support BIER, as long as the edge router does not
need to know the transmitting BFIR or participate in BIER OAM need to know the transmitting BFIR or participate in BIER OAM
procedures. procedures.
This works well if a BIER incapable PE only needs to receive This works well if a BIER-incapable PE only needs to receive
multicast traffic. If it needs to send multicast traffic as well, multicast traffic. If it needs to send multicast traffic as well,
then it must Ingress Replicate to a BIER capable helper PE, who will then it must Ingress Replicate to a BIER-capable helper PE, who will
in turn relay the packet to other PEs. The helper PE is either a in turn relay the packet to other PEs. The helper PE is either a
Virtual Hub as specified in [RFC7024] for MVPN and [I-D.keyupate- Virtual Hub as specified in [RFC7024] for MVPN and [I-D.keyupate-
bess-evpn-virtual-hub] for EVPN, or an AR-Replicator as specified in bess-evpn-virtual-hub] for EVPN, or an AR-Replicator as specified in
[I-D.ietf-bess-evpn-optimized-ir] for EVPN. [I-D.ietf-bess-evpn-optimized-ir] for EVPN.
2. Specifications 2. Specifications
The BIER Penultimate Hop Popping is intended only for the scenario
where a multicast flow overlay router for a BIER domain does not
support BIER forwarding, either entirely or just for some particular
BitStringLengths. In the latter case, PHP is only for BIER packets
with those BitStringLengths. The flow overlay router would be a BFER
if it did support BIER forwarding, and PHP would not be done by its
penultimate hop.
The procedures in this section apply only if, by means outside the The procedures in this section apply only if, by means outside the
scope of this document, it is known that the payload after BIER scope of this document, it is known that the payload after BIER
header is one of the following: header is one of the following:
o MPLS packets with downstream-assigned label at top of stack (i.e., o MPLS packets with downstream-assigned label at top of stack (i.e.,
the Proto field in the BIER header is 1). For example, a label the Proto field in the BIER header is 1). For example, a label
from a Domain-wide Common Block (DCB) is used as specified in [I- from a Domain-wide Common Block (DCB) is used as specified in [I-
D.ietf-bess-mvpn-evpn-aggregation-label]. D.ietf-bess-mvpn-evpn-aggregation-label].
o IPv4/IPv6 multicast packets for which Reverse Path Forwarding o IPv4/IPv6 multicast packets for which Reverse Path Forwarding
check is disabled. check is disabled.
A BIER incapable router, if acting as a multicast flow overlay A BIER-incapable router, if acting as a multicast flow overlay
router, MUST signal its BIER information as specified in [RFC8401] or router, MUST signal its BIER information as specified in [RFC8401] or
[RFC8444] or [I-D.ietf-bier-idr-extensions], with a PHP sub-sub-TLV [RFC8444] or [I-D.ietf-bier-idr-extensions], with a PHP sub-sub-TLV
included in the BIER sub-TLV attached to the BIER incapable router's included in the BIER sub-TLV attached to the BIER-incapable router's
BIER prefix to request BIER PHP from other BFRs. The sub-sub-TLV's BIER prefix to request BIER PHP from other BFRs. The sub-sub-TLV's
type is TBD, and the length is 0. type is TBD, and the length is 0.
With MPLS encapsulation, the BIER incapable multicast flow overlay With MPLS encapsulation, the BIER-incapable multicast flow overlay
router MAY omit the BIER MPLS Encapsulation sub-sub-TLV, or MUST set router MAY omit the BIER MPLS Encapsulation sub-sub-TLV, or MUST set
the Label field in BIER MPLS Encapsulation sub-sub-TLV to Implicit the Label field in BIER MPLS Encapsulation sub-sub-TLV to Implicit
Null Label [RFC3032]. Null Label [RFC3032].
With MPLS encapsulation, if a BFER does not support certain BSL, it With MPLS encapsulation, if a BFER does not support certain BSL, it
MAY still advertise a corresponding BIER MPLS Encapsulation sub-TLV MAY still advertise a corresponding BIER MPLS Encapsulation sub-TLV
but set the Label field to Implicit Null Label. but set the Label field to Implicit Null Label.
If a BFR follows section 6.9 of [RFC8279] to handle BIER incapable If a BFR follows section 6.9 of [RFC8279] to handle BIER-incapable
routers, it must treat a router as BIER incapable if the label routers, it must treat a router as BIER-incapable if the label
advertised by the router is Implicit Null, or if the router advertised by the router is Implicit Null, or if the router
advertises a PHP sub-sub-TLV, so that the router is not used as a advertises a PHP sub-sub-TLV, so that the router is not used as a
transit BFR. transit BFR.
If the downstream neighbor for a BIER prefix is the one advertising If the downstream neighbor for a BIER prefix is the one advertising
the prefix with a PHP sub-sub-TLV or with an Implicit Null Label in the prefix with a PHP sub-sub-TLV or with an Implicit Null Label in
the Label field in its BIER MPLS Encapsulation sub-sub-TLV, then when the Label field in its BIER MPLS Encapsulation sub-sub-TLV, then when
the corresponding BIRT or BIFT entry is created/updated, the the corresponding BIRT or BIFT entry is created/updated, the
forwarding behavior MUST be that the BIER header is removed and the forwarding behavior MUST be that the BIER header is removed and the
payload be sent to the downstream router without the BIER header, payload be sent to the downstream router without the BIER header,
 End of changes. 13 change blocks. 
23 lines changed or deleted 31 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/