| rfc9573xml2.original.xml | rfc9573.xml | |||
|---|---|---|---|---|
| <?xml version="1.1" encoding="US-ASCII"?> | <?xml version="1.0" encoding="utf-8"?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
| <!DOCTYPE rfc [ | ||||
| <!ENTITY nbsp " "> | ||||
| <!ENTITY zwsp "​"> | ||||
| <!ENTITY nbhy "‑"> | ||||
| <!ENTITY wj "⁠"> | ||||
| ]> | ]> | |||
| <?rfc toc="yes"?> | ||||
| <?rfc tocompact="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-bess-mvpn-ev | |||
| <?rfc tocdepth="3"?> | pn-aggregation-label-14" number="9573" ipr="pre5378Trust200902" submissionType=" | |||
| <?rfc tocindent="yes"?> | IETF" category="std" consensus="true" updates="6514, 7432, 7582" obsoletes="" xm | |||
| <?rfc symrefs="yes"?> | l:lang="en" tocInclude="true" tocDepth="2" symRefs="true" sortRefs="true" versio | |||
| <?rfc sortrefs="yes"?> | n="3"> | |||
| <?rfc strict="no"?> | ||||
| <?rfc rfcedstyle="yes"?> | <!-- xml2rfc v2v3 conversion 3.18.1 --> | |||
| <?rfc comments="yes"?> | ||||
| <?rfc inline="yes"?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <rfc category="std" updates="7432, 6514, 7582" docName="draft-ietf-bess-mvpn-evp | ||||
| n-aggregation-label-14" ipr="trust200902"> | ||||
| <front> | <front> | |||
| <title abbrev="mvpn-evpn-aggregation-label">MVPN/EVPN Tunnel Aggregation wit h Common Labels</title> | <title abbrev="MVPN/EVPN Aggregation Labels">MVPN/EVPN Tunnel Aggregation wi th Common Labels</title> | |||
| <seriesInfo name="RFC" value="9573"/> | ||||
| <author fullname="Zhaohui Zhang" initials="Z." surname="Zhang"> | <author fullname="Zhaohui Zhang" initials="Z." surname="Zhang"> | |||
| <organization>Juniper Networks</organization> | <organization>Juniper Networks</organization> | |||
| <address> | <address> | |||
| <email>zzhang@juniper.net</email> | <email>zzhang@juniper.net</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Eric Rosen" initials="E." surname="Rosen"> | <author fullname="Eric Rosen" initials="E." surname="Rosen"> | |||
| <organization>Individual</organization> | <organization>Individual</organization> | |||
| <address> | <address> | |||
| <email>erosen52@gmail.com</email> | <email>erosen52@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Wen Lin" initials="W." surname="Lin"> | <author fullname="Wen Lin" initials="W." surname="Lin"> | |||
| <organization>Juniper Networks</organization> | <organization>Juniper Networks</organization> | |||
| <address> | <address> | |||
| <email>wlin@juniper.net</email> | <email>wlin@juniper.net</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Zhenbin Li" initials="Z." surname="Li"> | <author fullname="Zhenbin Li" initials="Z." surname="Li"> | |||
| <organization>Huawei Technologies</organization> | <organization>Huawei Technologies</organization> | |||
| <address> | <address> | |||
| <email>lizhenbin@huawei.com</email> | <email>lizhenbin@huawei.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="IJsbrand Wijnands" initials="IJ." surname="Wijnands"> | ||||
| <author fullname="IJsbrand Wijnands" initials="I." surname="Wijnands"> | ||||
| <organization>Individual</organization> | <organization>Individual</organization> | |||
| <address> | <address> | |||
| <email>ice@braindump.be</email> | <email>ice@braindump.be</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2024" month="May" /> | ||||
| <area>rtg</area> | ||||
| <workgroup>bess</workgroup> | ||||
| <date year="2023"/> | <keyword>DCB</keyword> | |||
| <keyword>Tunnel Aggregation</keyword> | ||||
| <workgroup>BESS</workgroup> | ||||
| <abstract> | <abstract> | |||
| <t> | <t> | |||
| The MVPN specifications allow a single Point-to-Multipoint (P2MP) | The Multicast VPN (MVPN) specifications allow a single Point-to-Multipo | |||
| tunnel to carry traffic of multiple IP VPNs (abbreviated as VPNs). | int (P2MP) | |||
| tunnel to carry traffic of multiple IP VPNs (referred to as VPNs in thi | ||||
| s document). | ||||
| The EVPN specifications | The EVPN specifications | |||
| allow a single P2MP tunnel to carry traffic of multiple Broadcast | allow a single P2MP tunnel to carry traffic of multiple Broadcast | |||
| Domains (BDs). These features require the ingress router of the P2MP | Domains (BDs). These features require the ingress router of the P2MP | |||
| tunnel to allocate an upstream-assigned MPLS label for each VPN or for | tunnel to allocate an upstream-assigned MPLS label for each VPN or for | |||
| each BD. A packet sent on a P2MP tunnel then carries the label that is | each BD. A packet sent on a P2MP tunnel then carries the label that is | |||
| mapped to its VPN or BD (in some cases, a distinct upstream-assigned | mapped to its VPN or BD (in some cases, a distinct upstream-assigned | |||
| label is needed for each flow.) Since each ingress router allocates lab els | label is needed for each flow.) Since each ingress router allocates lab els | |||
| independently, with no coordination among the ingress routers, the | independently, with no coordination among the ingress routers, the | |||
| egress routers may need to keep track of a large number of labels. The | egress routers may need to keep track of a large number of labels. The | |||
| number of labels may need to be as large (or larger) than the product | number of labels may need to be as large as, or larger than, the produc t | |||
| of the number of ingress routers times the number of VPNs or BDs. | of the number of ingress routers times the number of VPNs or BDs. | |||
| However, the number of labels can be greatly reduced if the association | However, the number of labels can be greatly reduced if the association | |||
| between a label and a VPN or BD is made by provisioning, so that all | between a label and a VPN or BD is made by provisioning, so that all | |||
| ingress routers assign the same label to a particular VPN or BD. | ingress routers assign the same label to a particular VPN or BD. | |||
| New procedures are needed in order to take advantage of such | New procedures are needed in order to take advantage of such | |||
| provisioned labels. These new procedures also apply to | provisioned labels. These new procedures also apply to | |||
| Multipoint-to-Multipoint (MP2MP) tunnels. | Multipoint-to-Multipoint (MP2MP) tunnels. | |||
| This document updates RFCs 6514, 7432 and 7582 by | This document updates RFCs 6514, 7432, and 7582 by | |||
| specifying the necessary procedures. | specifying the necessary procedures. | |||
| </t> | </t> | |||
| </abstract> | </abstract> | |||
| <note title="Requirements Language"> | ||||
| <t> The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | ||||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | ||||
| "MAY", and "OPTIONAL" in this document are to be interpreted as | ||||
| described in BCP 14 <xref target="RFC2119"/> <xref | ||||
| target="RFC8174"/> when, and only when, they appear in all | ||||
| capitals, as shown here. | ||||
| </t> | ||||
| </note> | ||||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section title="Terminology"> | <section numbered="true" toc="default"> | |||
| <t>Familiarity with MVPN/EVPN protocols and procedures is assumed. | <name>Introduction</name> | |||
| Some terminologies are listed below for convenience. | <t> | |||
| <list style="symbols"> | A Multicast VPN (MVPN) can use Point-to-Multipoint (P2MP) tunnels (set up b | |||
| <t>VPN: Virtual Private Network. In this document, it is specifi | y RSVP-TE, Multipoint LDP (mLDP), or PIM) to | |||
| cally IP VPN <xref target="RFC4364"/>. | ||||
| </t> | ||||
| <t>BUM <xref target="RFC7432"/>: Broadcast, Unknown unicast, or Multicast (t | ||||
| raffic). | ||||
| </t> | ||||
| <t>BD <xref target="RFC7432"/>: Broadcast Domain. | ||||
| </t> | ||||
| <t>EC <xref target="RFC4360"/>: Extended Community. | ||||
| </t> | ||||
| <t>PMSI <xref target="RFC6513"/>: Provider Multicast Service Interface - | ||||
| a pseudo overlay interface for PEs to send certain overlay/customer multic | ||||
| ast traffic via underlay/provider | ||||
| tunnels. It includes <br/>I/S-PMSI (often referred to as x-PMSI) for | ||||
| Inclusive/Selective PMSI. A PMSI is instantiated by the underlay/provider | ||||
| tunnel. | ||||
| </t> | ||||
| <t>Inclusive PMSI: A PMSI that enables traffic to be sent to all PEs of a VP | ||||
| N/BD. | ||||
| The underlay/provider tunnel that instantiates the Inclusive PMSI is referre | ||||
| d to as an inclusive tunnel. | ||||
| </t> | ||||
| <t>Selective PMSI: A PMSI that enables traffic to be sent to a subset of PEs | ||||
| of a VPN/BD. | ||||
| The underlay/provider tunnel that instantiates the Selective PMSI is referre | ||||
| d to as a selective tunnel. | ||||
| </t> | ||||
| <t>Aggregate Tunnel: a tunnel that instantiates x-PMSIs of multiple MVPNs or | ||||
| EVPN BDs. | ||||
| </t> | ||||
| <t>IMET <xref target="RFC7432"/>: Inclusive Multicast Ethernet Tag route. An | ||||
| EVPN specific name | ||||
| for I-PMSI A-D route. | ||||
| </t> | ||||
| <t>PTA <xref target="RFC6514"/>: PMSI Tunnel Attribute. A BGP attribute that | ||||
| may be attached to | ||||
| an BGP-MVPN/EVPN x-PMXI A-D routes. | ||||
| </t> | ||||
| <t>RBR: Regional Border Routers. Border routers between segmentation regions | ||||
| that participate | ||||
| in segmentation procedures. | ||||
| </t> | ||||
| <t>(C-S,C-G): A Customer/overlay <S,G> multicast flow. | ||||
| </t> | ||||
| <t>(C-*,C-G): Customer/overlay <*,G> multicast flows. | ||||
| </t> | ||||
| <t>(C-*,C-*): All Customer/overlay multicast flows. | ||||
| </t> | ||||
| <t>ESI <xref target="RFC7432"/>: Ethernet Segment Identifier. | ||||
| </t> | ||||
| <t>ESI Label<xref target="RFC7432"/>: A label that identifies an Ethernet Se | ||||
| gment | ||||
| </t> | ||||
| <t>SRGB <xref target="RFC8402"/>: Segment Routing (SR) Global Block, the set | ||||
| of global segments in the SR domain. | ||||
| In SR-MPLS <xref target="RFC8660"/>, SRGB is a local property of a node and | ||||
| identifies the set of local labels reserved for global segments. | ||||
| </t> | ||||
| <t>DCB: Domain-wide Common Block, a common block of labels reserved on all n | ||||
| odes in a domain. | ||||
| </t> | ||||
| <t>Context-specific Label Space [RFC5331]: A router may maintain additional | ||||
| label spaces besides | ||||
| its default label space. | ||||
| When the label at the top of the stack is not from the default label space, | ||||
| there must be some | ||||
| context in the packet that identifies which one of those additional label sp | ||||
| aces is to be used | ||||
| to look up the label, hence those label spaces are referred to as context-sp | ||||
| ecific label spaces. | ||||
| </t> | ||||
| <t>Upstream-assigned [RFC5331]: When the label at the top of the label stack | ||||
| is not assigned by | ||||
| the router receiving the traffic from its default label space, the label is | ||||
| referred to as upstream-assigned. Otherwise, it is | ||||
| downstream-assigned. An upstream-assigned label must be looked up in a conte | ||||
| xt-specific label | ||||
| space specific for the assigner. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| <section title="Introduction"> | ||||
| <t> | ||||
| MVPN can use P2MP tunnels (set up by RSVP-TE, mLDP, or PIM) to | ||||
| transport customer multicast traffic across a service provider's | transport customer multicast traffic across a service provider's | |||
| backbone network. Often, a given P2MP tunnel carries the traffic of | backbone network. Often, a given P2MP tunnel carries the traffic of | |||
| only a single VPN. There are however procedures defined that allow a | only a single VPN. However, there are procedures defined that allow a | |||
| single P2MP tunnel to carry traffic of multiple VPNs. In this case, | single P2MP tunnel to carry traffic of multiple VPNs. In this case, | |||
| the P2MP tunnel is called an "aggregate tunnel". The PE router that is | the P2MP tunnel is called an "aggregate tunnel". The Provider Edge (PE) ro uter that is | |||
| the ingress node of an aggregate P2MP tunnel allocates an | the ingress node of an aggregate P2MP tunnel allocates an | |||
| "upstream-assigned MPLS label" [RFC5331] for each VPN, and each packet | "upstream-assigned MPLS label" <xref target="RFC5331" format="default"/> fo r each VPN, and each packet | |||
| sent on the P2MP tunnel carries the upstream-assigned MPLS label that | sent on the P2MP tunnel carries the upstream-assigned MPLS label that | |||
| the ingress PE has bound to the packet's VPN. | the ingress PE has bound to the packet's VPN. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Similarly, EVPN can use P2MP tunnels (set up by RSVP-TE, mLDP, or PIM) | Similarly, an EVPN can use P2MP tunnels (set up by RSVP-TE, mLDP, or PIM) | |||
| to transport BUM traffic (Broadcast traffic, Unicast traffic with an | to transport Broadcast, Unknown Unicast, or Multicast (BUM) traffic across | |||
| Unknown address, or Multicast traffic), across the provider network. | the provider network. | |||
| Often a P2MP tunnel carries the traffic of only a single BD. However, | Often, a P2MP tunnel carries the traffic of only a single Broadcast Domain | |||
| (BD). However, | ||||
| there are procedures defined that allow a single P2MP tunnel to be an | there are procedures defined that allow a single P2MP tunnel to be an | |||
| "aggregate tunnel" that carries traffic of multiple BDs. The procedures | aggregate tunnel that carries traffic of multiple BDs. The procedures | |||
| are analogous to the MVPN procedures -- the PE router that is the | are analogous to the MVPN procedures -- the PE router that is the | |||
| ingress node of an aggregate P2MP tunnel allocates an upstream-assigned | ingress node of an aggregate P2MP tunnel allocates an upstream-assigned | |||
| MPLS label for each BD, and each packet sent on the P2MP tunnel carries | MPLS label for each BD, and each packet sent on the P2MP tunnel carries | |||
| the upstream-assigned MPLS label that the ingress PE has bound to the | the upstream-assigned MPLS label that the ingress PE has bound to the | |||
| packet's BD. | packet's BD. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| MVPN and EVPN can also use BIER [RFC8279] to transmit VPN multicast | An MVPN or EVPN can also use Bit Index Explicit Replication (BIER) <xref ta | |||
| traffic or EVPN BUM traffic [RFC8556] | rget="RFC8279" format="default"/> to transmit VPN multicast | |||
| <xref target="I-D.ietf-bier-evpn"/>. | traffic <xref target="RFC8556" format="default"/> or EVPN BUM traffic | |||
| <xref target="I-D.ietf-bier-evpn" format="default"/>. | ||||
| Although BIER does not explicitly set up P2MP | Although BIER does not explicitly set up P2MP | |||
| tunnels, from the perspective of MVPN/EVPN, the use of BIER transport | tunnels, from the perspective of an MVPN/EVPN, the use of BIER transport | |||
| is very similar to the use of aggregate P2MP tunnels. When BIER is | is very similar to the use of aggregate P2MP tunnels. When BIER is | |||
| used, the PE transmitting a packet (the "BFIR" [RFC8279]) must | used, the PE transmitting a packet (the "Bit-Forwarding Ingress Router" (BF IR) <xref target="RFC8279" format="default"/>) must | |||
| allocate an upstream-assigned MPLS label for each VPN or BD, and the | allocate an upstream-assigned MPLS label for each VPN or BD, and the | |||
| packets transmitted using BIER transport always carry the label that | packets transmitted using BIER transport always carry the label that | |||
| identifies their VPN or BD. (See [RFC8556] and <xref target="I-D.ietf-bier- evpn"/> for the | identifies their VPN or BD. (See <xref target="RFC8556" format="default"/> and <xref target="I-D.ietf-bier-evpn" format="default"/> for | |||
| details.) In the remainder of this document, we will use the term | details.) In the remainder of this document, we will use the term | |||
| "aggregate tunnels" to include both P2MP tunnels and BIER transport. | "aggregate tunnels" to include both P2MP tunnels and BIER transport. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| When an egress PE receives a packet from an aggregate tunnel, it must | When an egress PE receives a packet from an aggregate tunnel, it must | |||
| look at the upstream-assigned label carried by the packet, and must | look at the upstream-assigned label carried by the packet and must | |||
| interpret that label in the context of the ingress PE. Essentially, | interpret that label in the context of the ingress PE. Essentially, | |||
| for each ingress PE, the egress PE has a context-specific label space | for each ingress PE, the egress PE has a context-specific label space | |||
| [RFC5331] that matches the default label space from which | <xref target="RFC5331" format="default"/> that matches the default label sp ace from which | |||
| the ingress PE assigns the upstream-assigned labels. | the ingress PE assigns the upstream-assigned labels. | |||
| When an egress PE looks up | When an egress PE looks up | |||
| the upstream-assigned label carried by a given packet, it looks it up | the upstream-assigned label carried by a given packet, it looks it up | |||
| in the context-specific label space for the ingress PE of the packet. | in the context-specific label space for the ingress PE of the packet. | |||
| How an egress PE identifies the ingress PE of a given packet depends on the | How an egress PE identifies the ingress PE of a given packet depends on the | |||
| tunnel type. | tunnel type. | |||
| </t> | </t> | |||
| <section title="Problem Description" anchor="problem"> | ||||
| <t> | <section> | |||
| <name>Requirements Language</name> | ||||
| <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | ||||
| "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", | ||||
| "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | ||||
| "<bcp14>SHOULD NOT</bcp14>", | ||||
| "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | ||||
| are to be interpreted as described in BCP 14 | ||||
| <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | ||||
| when, they appear in all capitals, as shown here.</t> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Terminology</name> | ||||
| <t>Familiarity with MVPN/EVPN protocols and procedures is assumed. | ||||
| Some terms are listed below for convenience. | ||||
| </t> | ||||
| <dl spacing="normal"> | ||||
| <dt>VPN:</dt> | ||||
| <dd>Virtual Private Network. In this document, "VPN" specifically refer | ||||
| s to an IP | ||||
| VPN <xref target="RFC4364" format="default"/>. | ||||
| </dd> | ||||
| <dt>BUM <xref target="RFC7432" format="default"/>:</dt><dd>Broadcast, U | ||||
| nknown Unicast, or Multicast (traffic).</dd> | ||||
| <dt>BD <xref target="RFC7432" format="default"/>:</dt><dd>Broadcast Do | ||||
| main.</dd> | ||||
| <dt>EC <xref target="RFC4360" format="default"/>:</dt><dd>Extended Com | ||||
| munity. | ||||
| </dd> | ||||
| <dt>PMSI <xref target="RFC6513" format="default"/>:</dt> | ||||
| <dd>Provider Multicast Service Interface. A pseudo-overlay interface | ||||
| for PEs to send certain overlay/customer multicast traffic via | ||||
| underlay/provider tunnels. It includes <br/>Inclusive/Selective PMSIs (I | ||||
| /S-PMSIs) (often referred | ||||
| to as x-PMSIs). A PMSI is instantiated by | ||||
| the underlay/provider tunnel. | ||||
| </dd> | ||||
| <dt>Inclusive PMSI (I-PMSI):</dt> | ||||
| <dd>A PMSI that enables traffic to be sent to all PEs of a VPN/BD. | ||||
| The underlay/provider tunnel that instantiates the I-PMSI is | ||||
| referred to as an inclusive tunnel. | ||||
| </dd> | ||||
| <dt>Selective PMSI (S-PMSI):</dt> | ||||
| <dd>A PMSI that enables traffic to be sent to a subset of PEs of a | ||||
| VPN/BD. The underlay/provider tunnel that instantiates the | ||||
| S-PMSI is referred to as a selective tunnel. | ||||
| </dd> | ||||
| <dt>Aggregate Tunnel:</dt> | ||||
| <dd>A tunnel that instantiates x-PMSIs of multiple MVPNs or EVPN | ||||
| BDs. | ||||
| </dd> | ||||
| <dt>IMET <xref target="RFC7432" format="default"/>:</dt> | ||||
| <dd>Inclusive Multicast Ethernet Tag. An EVPN-specific name | ||||
| for an I-PMSI Auto-Discovery (A-D) route. | ||||
| </dd> | ||||
| <dt>PTA <xref target="RFC6514" format="default"/>:</dt> | ||||
| <dd>PMSI Tunnel Attribute. A BGP attribute that may be attached to | ||||
| a BGP-MVPN/EVPN x-PMSI A-D route. | ||||
| </dd> | ||||
| <dt>ASBR:</dt> | ||||
| <dd>Autonomous System Border Router.</dd> | ||||
| <dt>RBR:</dt> | ||||
| <dd>Regional Border Router. A border router between segmentation | ||||
| regions that participates in segmentation procedures. | ||||
| </dd> | ||||
| <dt>(C-S,C-G):</dt> | ||||
| <dd>A Customer/overlay <S,G> multicast flow. | ||||
| </dd> | ||||
| <dt>(C-*,C-G):</dt> | ||||
| <dd>Customer/overlay <*,G> multicast flows. | ||||
| </dd> | ||||
| <dt>(C-*,C-*):</dt> | ||||
| <dd>All Customer/overlay multicast flows. | ||||
| </dd> | ||||
| <dt>ES:</dt> | ||||
| <dd>Ethernet Segment.</dd> | ||||
| <dt>ESI <xref target="RFC7432" format="default"/>:</dt> | ||||
| <dd>ES Identifier. | ||||
| </dd> | ||||
| <dt>ESI Label <xref target="RFC7432" format="default"/>:</dt> | ||||
| <dd>A label that identifies an ES. | ||||
| </dd> | ||||
| <dt>SRGB <xref target="RFC8402" format="default"/>:</dt> | ||||
| <dd>Segment Routing (SR) Global Block. The set of global segments in | ||||
| the SR domain. In SR-MPLS <xref target="RFC8660" | ||||
| format="default"/>, an SRGB is a local property of a node and | ||||
| identifies the set of local labels reserved for global segments. | ||||
| </dd> | ||||
| <dt>DCB:</dt> | ||||
| <dd>Domain-wide Common Block. A common block of labels reserved on all | ||||
| nodes in a domain. | ||||
| </dd> | ||||
| <dt>Context-Specific Label Space <xref target="RFC5331" format="defaul | ||||
| t"/>:</dt> | ||||
| <dd>A router may maintain additional label spaces besides its | ||||
| default label space. When the label at the top of the stack is not | ||||
| from the default label space, there must be some context in the | ||||
| packet that identifies which one of those additional label spaces is | ||||
| to be used to look up the label; hence, those label spaces are | ||||
| referred to as context-specific label spaces. | ||||
| </dd> | ||||
| <dt>Upstream Assigned <xref target="RFC5331" | ||||
| format="default"/>:</dt> | ||||
| <dd> When the label at the top of the label stack is not assigned by | ||||
| the router receiving the traffic from its default label space, the | ||||
| label is referred to as upstream assigned. Otherwise, it is | ||||
| downstream assigned. An upstream-assigned label must be looked up in | ||||
| a context-specific label space specific for the assigner. | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="problem" numbered="true" toc="default"> | ||||
| <name>Problem Description</name> | ||||
| <t> | ||||
| Note that the upstream-assigned label procedures may require a very large n umber of labels. | Note that the upstream-assigned label procedures may require a very large n umber of labels. | |||
| Suppose an MVPN or EVPN deployment has 1001 PEs, each hosting 1000 | Suppose that an MVPN or EVPN deployment has 1001 PEs, each hosting 1000 | |||
| VPN/BDs. Each ingress PE has to assign 1000 labels, and each egress PE | VPNs/BDs. Each ingress PE has to assign 1000 labels, and each egress PE | |||
| has to be prepared to interpret 1000 labels from each of the ingress | has to be prepared to interpret 1000 labels from each of the ingress | |||
| PEs. Since each ingress PE allocates labels from its own label | PEs. Since each ingress PE allocates labels from its own label | |||
| space and does not coordinate label assignments with others, | space and does not coordinate label assignments with others, | |||
| each egress PE must be prepared to interpret 1,000,000 | each egress PE must be prepared to interpret 1,000,000 | |||
| upstream-assigned labels (across 1000 context-specific label spaces - one f or | upstream-assigned labels (across 1000 context-specific label spaces -- one for | |||
| each ingress PE). This is an evident scaling problem. | each ingress PE). This is an evident scaling problem. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| So far, few if any MVPN/EVPN deployments use aggregate | So far, few if any MVPN/EVPN deployments use aggregate | |||
| tunnels, so this problem has not surfaced. However, the use of aggregate | tunnels, so this problem has not surfaced. However, the use of aggregate | |||
| tunnels is likely to increase due to the following two factors: | tunnels is likely to increase due to the following two factors: | |||
| <list style="symbols"> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| In EVPN, a single customer ("tenant") may have a large number of BDs, | <li>In an EVPN, a single customer ("tenant") may have a large number o | |||
| and the use of aggregate RSVP-TE or mLDP P2MP tunnels may become | f | |||
| important, since each tunnel creates state at the intermediate nodes. | BDs, and the use of aggregate RSVP-TE or mLDP P2MP tunnels may | |||
| </t> | become important, since each tunnel creates state at the | |||
| <t> | intermediate nodes.</li> | |||
| The use of BIER as transport for MVPN/EVPN is becoming more and more | <li>The use of BIER as the transport for an MVPN/EVPN is becoming more | |||
| attractive and feasible. | and | |||
| </t> | more attractive and feasible.</li> | |||
| </list> | </ul> | |||
| </t> | <t>A similar problem also exists with EVPN ESI labels used for multihoming. | |||
| <!--t>Note there are pros and cons with traditional P2MP tunnel aggregation | A PE attached to a multihomed ES advertises an ESI label in its Ethernet | |||
| (vs. BIER), which are | A-D per ES route. | |||
| already discussed in Section 2.1.1 of [RFC6513]. This document just | ||||
| specifies a way to increase label scaling when tunnel aggregation is | ||||
| used. | ||||
| </t--> | ||||
| <t>A similar problem also exists with EVPN ESI labels used for multi-homing. | ||||
| A PE attached to a multi-homed Ethernet Segment (ES) advertises an ESI | ||||
| label in its Ethernet A-D per Ethernet Segment Route. | ||||
| The PE imposes the label | The PE imposes the label | |||
| when it sends frames received from the ES to other PEs via a P2MP/BIER | when it sends frames received from the ES to other PEs via a P2MP/BIER | |||
| tunnel. A receiving PE that is attached to the source ES will know from | tunnel. A receiving PE that is attached to the source ES will know from | |||
| the ESI label that the packet | the ESI label that the packet | |||
| originated on the source ES, and thus will not transmit the packet on | originated on the source ES and thus will not transmit the packet on | |||
| its local attachment circuit to that ES. From the receiving | its local Attachment Circuit to that ES. From the receiving | |||
| PE's point of view, the ESI label is (upstream-)assigned from the source | PE's point of view, the ESI label is (upstream) assigned from the source | |||
| PE's label space, so the receiving PE needs to maintain context-specific label | PE's label space, so the receiving PE needs to maintain context-specific label | |||
| tables, one for each source PE, just like the VRF/BD label case | tables, one for each source PE, just like the VPN/BD label case | |||
| above. If there are 1,001 PEs, each attached to 1,000 ESes, this can | above. If there are 1001 PEs, each attached to 1000 ESs, this can | |||
| require each PE to understand 1,000,000 ESI labels. Notice that the | require each PE to understand 1,000,000 ESI labels. Notice that the | |||
| issue exists even when no P2MP tunnel aggregation (i.e. one tunnel used | issue exists even when no P2MP tunnel aggregation (i.e., one tunnel used | |||
| for multiple BDs) is used. | for multiple BDs) is used. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section title="Proposed Solution" anchor="solution"> | <section anchor="solution" numbered="true" toc="default"> | |||
| <t> | <name>Proposed Solutions</name> | |||
| <t> | ||||
| The number of labels could be greatly reduced if a central entity | The number of labels could be greatly reduced if a central entity | |||
| in the provider network | in the provider network | |||
| assigned a label to each VPN, BD, or ES, and if all PEs used that same | assigned a label to each VPN, BD, or ES and if all PEs used that same | |||
| label to represent a given VPN , BD, or ES. Then the number of | label to represent a given VPN, BD, or ES. Then, the number of | |||
| labels needed would just be the sum of the number of VPNs, | labels needed would just be the sum of the number of VPNs, | |||
| BD, and/or ESes. | BDs, and/or ESs. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| One method of achieving this is to reserve a portion of the default label s pace | One method of achieving this is to reserve a portion of the default label s pace | |||
| for assignment by a central entity. We refer to this reserved | for assignment by a central entity. We refer to this reserved | |||
| portion as the "Domain-wide Common Block" (DCB) of labels. This is | portion as the DCB of labels. This is analogous to the concept of using id | |||
| analogous to the identical "Segment Routing Global Block" (SRGB) | entical SRGBs | |||
| on all nodes that is described in [RFC8402]. | on all nodes, as described in <xref target="RFC8402"/>. | |||
| A PE that is attached (via L3VPN VRF | A PE that is attached (via L3VPN Virtual Routing and Forwarding (VRF) | |||
| interfaces or EVPN Access Circuits) would know by provisioning which | interfaces or EVPN Attachment Circuits) would know by provisioning which | |||
| label from the DCB corresponds to which of its locally attached VPNs, | label from the DCB corresponds to which of its locally attached VPNs, | |||
| BDs, or ESes. | BDs, or ESs. | |||
| </t> | </t> | |||
| <t>For example, all PEs could reserve a DCB [1000, 2000] and they are | <t>For example, all PEs could reserve a DCB [1000~2000], and they would | |||
| all provisioned that label 1000 maps to VPN 0, 1001 to VPN 1, and | all be provisioned so that label 1000 maps to VPN 0, label 1001 maps to VPN | |||
| so forth. Now only 1000 labels instead of 1,000,000 labels | 1, | |||
| and so forth. Now, only 1000 labels instead of 1,000,000 labels | ||||
| are needed for 1000 VPNs. | are needed for 1000 VPNs. | |||
| </t> | </t> | |||
| <t>The definition of "domain" is loose - it simply includes | <t>In this document, "domain" is defined loosely; it simply includes | |||
| all the routers that share the same DCB. In this document, it only needs | all the routers that share the same DCB, and it only needs to | |||
| to include all PEs of an MVPN/EVPN network<!--, or in case of tunnel | include all PEs of an MVPN/EVPN. | |||
| segmentation <xref target="RFC6514"/> it may only need to include all PEs | </t> | |||
| and border nodes of a segmentation region (see more details in <xref target | <t> | |||
| ="seg"/>)-->. | ||||
| </t> | ||||
| <t> | ||||
| The "domain" could also include all routers in the provider network, | The "domain" could also include all routers in the provider network, | |||
| making it not much different from a common SRGB across all the routers. | making it not much different from a common SRGB across all the routers. | |||
| However, that is not necessary as the labels used by PEs for the | However, that is not necessary, as the labels used by PEs for the | |||
| purposes defined in | purposes defined in | |||
| this document will only rise to the top of the label stack when traffic | this document will only rise to the top of the label stack when traffic | |||
| arrives at the PEs. Therefore, it is better to not include internal P routers | arrives at the PEs. Therefore, it is better to not include internal P routers | |||
| in the "domain". That way they do not have to set aside the same DCB used for | in the "domain". That way, they do not have to set aside the same DCB used fo | |||
| the purposes in this document. | r | |||
| </t> | the purposes defined in this document. | |||
| <t> | </t> | |||
| <t> | ||||
| In some deployments, it may be impractical to allocate a DCB that is | In some deployments, it may be impractical to allocate a DCB that is | |||
| large enough to contain labels for all the VPNs/BDs/ESes. In this | large enough to contain labels for all the VPNs/BDs/ESs. In this | |||
| case, it may be necessary to allocate those labels from one or a few | case, it may be necessary to allocate those labels from one or a few | |||
| separate context-specific label spaces independent of each PE<!--'s default | context-specific label spaces that are independent of each PE. For example, | |||
| label space (that the DCB belongs to)-->. For example, if it is too difficu | if it is too difficult | |||
| lt | to have a DCB of 10,000 labels across all PEs for all the VPNs/BDs/ESs | |||
| to have a DCB of 10,000 labels across all PEs for all the VPNs/BDs/ESes | ||||
| that need to be supported, a separate context-specific label space can be | that need to be supported, a separate context-specific label space can be | |||
| dedicated to those 10,000 labels. Each separate context-specific label spa ce is | dedicated to those 10,000 labels. Each separate context-specific label spa ce is | |||
| identified in the forwarding plane by a label from the DCB (which does not | identified in the forwarding plane by a label from the DCB (which does not | |||
| need to be large). Each PE is provisioned with the label-space-identifying DCB | need to be large). Each PE is provisioned with the label-space-identifying DCB | |||
| label and the common VPN/BD/ES labels allocated from that context-specific label space. | label and the common VPN/BD/ES labels allocated from that context-specific label space. | |||
| When sending traffic, an ingress PE imposes all necessary service | When sending traffic, an ingress PE imposes all necessary service | |||
| labels (for the VPN/BD/ES) first, then imposes the label-space-identifying | labels (for the VPN/BD/ES) first, then imposes the label-space-identifying | |||
| DCB label. From the label-space-identifying DCB label an egress PE can | DCB label. From the label-space-identifying DCB label, an egress PE can | |||
| determine the label space where the inner VPN/BD/ES label is looked up. | determine the label space where the inner VPN/BD/ES label is looked up. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The MVPN/EVPN signaling defined in [RFC6514] and [RFC7432] assumes that | The MVPN/EVPN signaling defined in <xref target="RFC6514"/> and <xref target= | |||
| "RFC7432"/> assumes that | ||||
| certain MPLS labels are allocated from a context-specific label space for a | certain MPLS labels are allocated from a context-specific label space for a | |||
| particular ingress PE. In this document, we augment the signaling | particular ingress PE. In this document, we augment the signaling | |||
| procedures so that it is possible to signal that a particular label is | procedures so that it is possible to signal that a particular label is | |||
| from the DCB, rather than from a context-specific label space for an ingress PE. We | from the DCB, rather than from a context-specific label space for an ingress PE. We | |||
| also augment the signaling so that it is possible to indicate that a | also augment the signaling so that it is possible to indicate that a | |||
| particular label is from an identified context-specific label space that is | particular label is from an identified context-specific label space that is | |||
| not for an ingress PE. | not for an ingress PE. | |||
| </t> | </t> | |||
| <t>Notice that, the VPN/BD/ES-identifying labels from the DCB or from | <t>Notice that the VPN/BD/ES-identifying labels from the DCB or from | |||
| those few context-specific label spaces are very similar to VNIs in VXLAN | those few context-specific label spaces are very similar to Virtual eXten | |||
| . | sible Local Area Network (VXLAN) Network Identifiers (VNIs) in VXLANs. | |||
| Allocating a label from the DCB or from a context-specific label spaces | Allocating a label from the DCB or from a context-specific label space | |||
| and communicating them to all PEs is not different from | and communicating the label to all PEs is not different from | |||
| allocating VNIs, and is feasible especially with controllers. | allocating VNIs and is especially feasible with controllers. | |||
| </t> | </t> | |||
| <section title="MP2MP Tunnels"> | <section numbered="true" toc="default"> | |||
| <t>MP2MP tunnels present the same problem (<xref target="problem"/>) | <name>MP2MP Tunnels</name> | |||
| that can be solved the same way (<xref target="solution"/>), with | <t>Multipoint-to-Multipoint (MP2MP) tunnels present the same problem ( | |||
| <xref target="problem" format="default"/>) | ||||
| that can be solved the same way (<xref target="solution" format="default"/ | ||||
| >), with | ||||
| the following additional requirement. | the following additional requirement. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Per RFC 7582 ("MVPN: Using Bidirectional P-tunnels"), when MP2MP | Per <xref target="RFC7582"/> ("Multicast Virtual Private Network (MVPN): Usi | |||
| tunnels are used for MVPN, the root of the MP2MP tunnel may | ng Bidirectional P-Tunnels"), when MP2MP | |||
| need to allocate and advertise "PE Distinguisher Labels" (section 4 | tunnels are used for an MVPN, the root of the MP2MP tunnel is required to | |||
| of <xref target="RFC6513"/>. These labels are assigned | allocate and advertise "PE Distinguisher Labels" (<xref target="RFC6513" sec | |||
| tionFormat="of" section="4"/>). These labels are assigned | ||||
| from the label space used by the root node for its upstream-assigned labels. | from the label space used by the root node for its upstream-assigned labels. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| It is REQUIRED by this document that the PE Distinguisher | It is <bcp14>REQUIRED</bcp14> by this document that the PE Distinguisher | |||
| labels allocated by a particular node come from the same label space | Labels allocated by a particular node come from the same label space | |||
| that the node uses to allocate its VPN-identifying labels. | that the node uses to allocate its VPN-identifying labels. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section title="Segmented Tunnels" anchor="seg"> | <section anchor="seg" numbered="true" toc="default"> | |||
| <t>There are some additional issues to be considered when MVPN or | <name>Segmented Tunnels</name> | |||
| EVPN is using "tunnel segmentation" (see [RFC6514], [RFC7524], and | <t>There are some additional issues to be considered when an MVPN or | |||
| <xref target="I-D.ietf-bess-evpn-bum-procedure-updates"/> Sections 5 and 6) | EVPN is using "tunnel segmentation" (see <xref target="RFC6514"/>, | |||
| . | <xref target="RFC7524"/>, and Sections <xref target="RFC9572" | |||
| </t> | sectionFormat="bare" section="5"/> and <xref target="RFC9572" | |||
| <section title="Selective Tunnels" anchor="select"> | sectionFormat="bare" section="6"/> of <xref target="RFC9572"/>). | |||
| <t>For "selective tunnels" that instantiate S-PMSIs (see [RFC6513] Sections | </t> | |||
| 2.1.1 and 3.2.1, | <section anchor="select" numbered="true" toc="default"> | |||
| and <xref target="I-D.ietf-bess-evpn-bum-procedure-updates"/> | <name>Selective Tunnels</name> | |||
| Section 4), the procedures outlined above work only | <t>For selective tunnels that instantiate S-PMSIs (see Sections | |||
| if tunnel segmentation is not used. | <xref target="RFC6513" sectionFormat="bare" section="2.1.1"/> and | |||
| </t> | <xref target="RFC6513" sectionFormat="bare" section="3.2.1"/> of | |||
| <t> | <xref target="RFC6513"/> and <xref target="RFC9572" | |||
| sectionFormat="of" section="4"/>), the procedures outlined above | ||||
| work only if tunnel segmentation is not used. | ||||
| </t> | ||||
| <t> | ||||
| A selective tunnel carries one or more particular sets of flows to a | A selective tunnel carries one or more particular sets of flows to a | |||
| particular subset of the PEs that attach to a given VPN or BD. Each set | particular subset of the PEs that attach to a given VPN or BD. Each set | |||
| of flows is identified by a Selective PMSI A-D route [RFC6514]. | of flows is identified by an S-PMSI A-D route <xref target= | |||
| The PTA of the S-PMSI route identifies the tunnel | "RFC6514"/>. The PTA of the S-PMSI route identifies the tunnel used to | |||
| used to carry the corresponding set of flows. Multiple S-PMSI routes | carry the corresponding set of flows. Multiple S-PMSI routes can identify | |||
| can identify the same tunnel. | the same tunnel. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| When tunnel segmentation is applied to an S-PMSI, certain nodes are | When tunnel segmentation is applied to an S-PMSI, certain nodes are | |||
| "segmentation points". A segmentation point is a node at the boundary | "segmentation points". A segmentation point is a node at the boundary | |||
| between two "segmentation regions". Let's call these "region A" and | between two segmentation regions. Let's call these "region A" and | |||
| "region B". A segmentation point is an egress node for one or more | "region B". A segmentation point is an egress node for one or more | |||
| selective tunnels in region A, and an ingress node for one or more | selective tunnels in region A and an ingress node for one or more | |||
| selective tunnels in region B. A given segmentation point must be able | selective tunnels in region B. A given segmentation point must be able | |||
| to receive traffic on a selective tunnel from region A, and label | to receive traffic on a selective tunnel from region A and label-switch | |||
| switch the traffic to the proper selective tunnel in region B. | the traffic to the proper selective tunnel in region B. | |||
| </t> | </t> | |||
| <t>Suppose one | <t>Suppose that one | |||
| selective tunnel (call it T1) in region A is carrying two flows, Flow-1 | selective tunnel (call it "T1") in region A is carrying two flows, Flow-1 | |||
| and Flow-2, identified by S-PMSI route Route-1 and Route-2, respectively. | and Flow-2, identified by S-PMSI routes Route-1 and Route-2, respectively. | |||
| However, it is possible that, in region B, Flow-1 is not | However, it is possible that in region B, Flow-1 is not | |||
| carried by the same selective tunnel that carries Flow-2. Let's | carried by the same selective tunnel that carries Flow-2. Let's | |||
| suppose that in region B, Flow-1 is carried by tunnel T2 and Flow-2 by | suppose that in region B, Flow-1 is carried by tunnel T2 and Flow-2 by | |||
| tunnel T3. Then, when the segmentation point receives traffic from T1, | tunnel T3. Then, when the segmentation point receives traffic from T1, | |||
| it must be able to label switch Flow-1 from T1 to T2, while also label | it must be able to label-switch Flow-1 from T1 to T2, while also label-swit | |||
| switching Flow-2 from T1 to T3. This implies that Route-1 and Route-2 | ching Flow-2 from T1 to T3. This implies that Route-1 and Route-2 | |||
| must signal different labels in the PTA. For comparison, when | must signal different labels in the PTA. For comparison, when | |||
| segmentation is not used, they can all use the common per-VPN/BD DCB | segmentation is not used, they can all use the common per-VPN/BD DCB | |||
| label. | label. | |||
| </t> | </t> | |||
| <t>In this case, it is not practical to have a central entity | <t>In this case, it is not practical to have a central entity | |||
| assign domain-wide unique labels to individual S-PMSI routes. | assign domain-wide unique labels to individual S-PMSI routes. | |||
| To address this problem, all PEs can be assigned | To address this problem, all PEs can be assigned their own | |||
| disjoint label blocks in those few context-specific label spaces, and eac | disjoint label blocks in those few context-specific label spaces; each PE | |||
| h will | will | |||
| independently allocate labels for segmented S-PMSI from its | independently allocate labels for a segmented S-PMSI from its own | |||
| assigned label block that is different from any other PE's. For example, | assigned label block. For example, | |||
| PE1 allocates from label block [101~200], PE2 allocates from label block | PE1 allocates from label block [101~200], PE2 allocates from label block | |||
| [201~300], and so on. | [201~300], and so on. | |||
| </t> | </t> | |||
| <t>Allocating from disjoint label blocks can be used for VPN/BD/ES labels | <t>Allocating from disjoint label blocks can be used for VPN/BD/ES l | |||
| abels | ||||
| as well, though it does not address the original scaling issue, because | as well, though it does not address the original scaling issue, because | |||
| there would be one million labels allocated from those few context | there would be 1,000,000 labels allocated from those few context-specific | |||
| label spaces in the original example, instead of just one thousand | label spaces in the original example, instead of just 1000 | |||
| common labels. | common labels. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section title="Per-PE/Region Tunnels"> | <section numbered="true" toc="default"> | |||
| <t>Similarly, for segmented per-PE (MVPN (C-*,C-*) S-PMSI or EVPN IMET) or | <name>Per-PE/Region Tunnels</name> | |||
| per-AS/region (MVPN Inter-AS I-PMSI or EVPN per-Region I-PMSI) tunnels | <t>Similarly, for segmented per-PE (MVPN (C-*,C-*) S-PMSI or EVPN | |||
| ([RFC6514] [RFC7432] <xref target="I-D.ietf-bess-evpn-bum-procedure-updates" | IMET) or per-AS/region (MVPN Inter-AS I-PMSI or EVPN per-region | |||
| />), | I-PMSI) tunnels <xref target="RFC6514"/> <xref target="RFC7432"/> | |||
| labels need to be allocated per PMSI route. In case of per-PE PMSI route, | <xref target="RFC9572" format="default"/>, labels need to be | |||
| the labels should be allocated from the label block allocated to the | allocated per PMSI route. In the case of a per-PE PMSI route, the la | |||
| advertising PE. In case of per-AS/region PMSI route, different ASBR/RBRs | bels | |||
| (Regional Border Routers) | should be allocated from the label block allocated to the | |||
| attached to the same source AS/region will advertise the same PMSI route. | advertising PE. In the case of a per-AS/region PMSI route, different | |||
| The same label could be used when the same route is advertised by | ASBRs/RBRs attached to the same source | |||
| different ASBRs/RBRs, though that requires coordination and a simpler way | AS/region will advertise the same PMSI route. The same label | |||
| is for each ASBR/RBR to allocate a label from the label block allocated | could be used when the same route is advertised by different | |||
| to itself (see <xref target="select"/>). | ASBRs/RBRs, though that requires coordination; a simpler way is | |||
| </t> | for each ASBR/RBR to allocate a label from the label block | |||
| <t>In the rest of the document, we call the label allocated for a particular | allocated to itself (see <xref target="select" | |||
| PMSI a (per-)PMSI label, just like we have (per-)VPN/BD/ES labels. Notice | format="default"/>). | |||
| that using per-PMSI label in case of per-PE PMSI still has the original | </t> | |||
| <t>In the rest of this document, we call the label allocated for a p | ||||
| articular | ||||
| PMSI a "(per-)PMSI label", just like we have (per-)VPN/BD/ES labels. Noti | ||||
| ce | ||||
| that using a per-PMSI label in the case of a per-PE PMSI still has the or | ||||
| iginal | ||||
| scaling issue associated with the upstream-assigned label, so per-region | scaling issue associated with the upstream-assigned label, so per-region | |||
| PMSIs is preferred. Within each AS/region, per-PE PMSIs are still | PMSIs are preferred. Within each AS/region, per-PE PMSIs are still | |||
| used though they do not go across border and per-VPN/BD labels can still | used, though they do not go across borders and per-VPN/BD labels can stil | |||
| l | ||||
| be used. | be used. | |||
| </t> | </t> | |||
| <t>Note that, when a segmentation point re-advertises a PMSI route to the | <t>Note that when a segmentation point re-advertises a PMSI route to | |||
| the | ||||
| next segment, it does not need to re-advertise a new label unless | next segment, it does not need to re-advertise a new label unless | |||
| the upstream or downstream segment uses Ingress Replication. | the upstream or downstream segment uses ingress replication. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section title="Alternative to the per-PMSI Label Allocation"> | <section numbered="true" toc="default"> | |||
| <t>The per-PMSI label allocation in case of segmentation, whether for S-PMSI | <name>Alternative to Per-PMSI Label Allocation</name> | |||
| or for per-PE/Region I-PMSI, is for the segmentation points to be able | <t>Per-PMSI label allocation in the case of segmentation, whether fo | |||
| to label switch traffic without having to do IP or MAC lookup in VRFs | r S-PMSIs | |||
| or per-PE/region I-PMSIs, is applied so that segmentation points are able | ||||
| to label-switch traffic without having to do IP or Media Access Control ( | ||||
| MAC) lookups in VRFs | ||||
| (the segmentation points typically do not have those VRFs at all). | (the segmentation points typically do not have those VRFs at all). | |||
| If the label scaling becomes a concern, alternatively the segmentation | Alternatively, if the label scaling becomes a concern, the segmentation | |||
| points could use (C-S,C-G) lookup in VRFs for flows identified by | points could use (C-S,C-G) lookups in VRFs for flows identified by | |||
| the S-PMSIs. This allows the S-PMSIs for the same VPN/BD to share | the S-PMSIs. This allows the S-PMSIs for the same VPN/BD to share | |||
| a VPN/BD-identifying label that leads to look up in the VRFs. | a VPN/BD-identifying label that leads to lookups in the VRFs. | |||
| That label needs to be different from the | That label needs to be different from the | |||
| label used in the per-PE/region I-PMSIs though, so that the segmentation | label used in the per-PE/region I-PMSIs though, so that the segmentation | |||
| points can label switch other traffic (not identified by those S-PMSIs). | points can label-switch other traffic (not identified by those S-PMSIs). | |||
| However, this moves the scaling problem from the number of labels to | However, this moves the scaling problem from the number of labels to | |||
| the number of (C-S/*,C-G) routes in VRFs on the segmentation points. | the number of (C-S/*,C-G) routes in VRFs on the segmentation points. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section title="Summary of Label Allocation Methods" anchor="methods"> | <section anchor="methods" numbered="true" toc="default"> | |||
| <t>In summary, labels can be allocated and advertised in the following ways: | <name>Summary of Label Allocation Methods</name> | |||
| <list style="numbers"> | <t>In summary, labels can be allocated and advertised in the following | |||
| <t anchor="dcb-assignment">A central entity allocates per-VPN/BD/ES | ways: | |||
| labels from the DCB. | </t> | |||
| PEs advertise the labels with an indication that they are from the DCB. | <ol spacing="normal" type="1"> | |||
| </t> | <li anchor="dcb-assignment">A central entity allocates | |||
| <t anchor="context-space">A central entity allocates per-VPN/BD/ES | per-VPN/BD/ES labels from the DCB. PEs advertise the labels with | |||
| labels from a few common | an indication that they are from the DCB. | |||
| context-specific label spaces, and allocate labels from the DCB to identi | </li> | |||
| fy | ||||
| those context-specific label spaces. PEs advertise the VPN/BD labels alon | <li anchor="context-space">A central entity allocates | |||
| g | per-VPN/BD/ES labels from a few common context-specific label | |||
| with the context-identifying labels. | spaces and allocates labels from the DCB to identify those | |||
| </t> | context-specific label spaces. PEs advertise the VPN/BD labels | |||
| <t anchor="context-block">A central entity assigns disjoint | along with the context-identifying labels. | |||
| label blocks from a few | </li> | |||
| context-specific label spaces to each PE, and allocates labels from the D | ||||
| CB to | <li anchor="context-block">A central entity assigns disjoint label | |||
| identify those context-specific label spaces. A PE independently allocate | blocks from a few context-specific label spaces to each PE and | |||
| s a label for a segmented S-PMSI from its assigned label block, | allocates labels from the DCB to identify those context-specific | |||
| and advertises the label along with the context-identifying label. | label spaces. A PE independently allocates a label for a segmented | |||
| </t> | S-PMSI from its assigned label block and advertises the label | |||
| </list> | along with the context-identifying label. | |||
| </t> | </li> | |||
| <t>Option <xref target="dcb-assignment" format="counter"/> is simplest, | </ol> | |||
| <t>Option <xref target="dcb-assignment" format="counter"/> is simplest | ||||
| , | ||||
| but it requires that all the PEs set aside a common label block for the | but it requires that all the PEs set aside a common label block for the | |||
| DCB that is large enough for all the VPNs/BDs/ESes combined. | DCB that is large enough for all the VPNs/BDs/ESs combined. | |||
| Option <xref target="context-block" format="counter"/> is needed only | Option <xref target="context-block" format="counter"/> is needed only | |||
| for segmented selective tunnels that are set up dynamically. | for segmented selective tunnels that are set up dynamically. | |||
| Multiple options could be used in any combination depending on the | Multiple options could be used in any combination, depending on the | |||
| deployment situation. | deployment situation. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | <section numbered="true" toc="default"> | |||
| <section title="Specification"> | <name>Specifications</name> | |||
| <t> | <section numbered="true" toc="default"> | |||
| </t> | <name>Context-Specific Label Space ID Extended Community</name> | |||
| <section title="Context-Specific Label Space ID Extended Community"> | <t>The Context-Specific Label Space ID Extended Community (EC) is a new | |||
| <t>Context-Specific Label Space ID Extended Community (EC) is a new Transiti | Transitive Opaque EC with the following structure: | |||
| ve Opaque EC with the following structure: | </t> | |||
| <figure> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
| <artwork align="center"><![CDATA[ | 0 1 2 3 | |||
| 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 | |||
| 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | 0x03 or 0x43 | 8 | ID-Type | | |||
| | 0x03 or 0x43 | 8 | ID-Type | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ID-Value | | |||
| | ID-Value | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ]]></artwork> | |||
| ]]></artwork> | ||||
| </figure> | <dl spacing="normal"> | |||
| <list style="symbols"> | <dt>ID-Type:</dt> | |||
| <t>ID-Type: A 2-octet field that specifies the type of Label Space ID. | <dd>A 2-octet field that specifies the type of Label Space | |||
| In this document, the ID-Type is 0, indicating that the ID-Value | ID. In this document, the ID-Type is 0, indicating that the | |||
| field is a label. | ID-Value field is a label.</dd> | |||
| </t> | <dt>ID-Value:</dt> | |||
| <t>ID-Value: A 4-octet field that specifies the value of Label Space ID. | <dd>A 4-octet field that specifies the value of the Label Space ID. | |||
| When it is a label (with ID-Type 0), the most significant 20-bit | When it is a label (with ID-Type 0), the most significant 20-bit portion | |||
| is set to the label value. | is set to the label value.</dd> | |||
| </t> | </dl> | |||
| </list> | <t>This document introduces a DCB-flag (Bit 47 as assigned by IANA) in t | |||
| </t> | he | |||
| <t>This document introduces a DCB flag (Bit 47 as assigned by IANA) in the | "Additional PMSI Tunnel Attribute Flags" BGP Extended Community <xref tar | |||
| "Additional PMSI Tunnel Attribute Flags" BGP Extended Community [RFC7902] | get="RFC7902" format="default"/>. | |||
| . | </t> | |||
| </t> | <t>In the remainder of this document, when we say that a BGP-MVPN/EVPN A | |||
| <t>In the remainder of the document, when we say a BGP-MVPN/EVPN A-D route | -D route | |||
| "carries DCB-flag" or "has DCB-flag attached" we mean the following: | carries a DCB-flag or has a DCB-flag attached to it, we mean the followin | |||
| <list style="symbols"> | g: | |||
| <t>The route carries a PMSI Tunnel Attribute (PTA) and its Flags field has | </t> | |||
| the Extension bit set, AND, | <ul spacing="normal"> | |||
| </t> | <li>The route carries a PTA and its Flags field has | |||
| <t>The route carries an "Additional PMSI Tunnel Attribute Flags" EC | the Extension bit set, AND</li> | |||
| and its DCB flag is set | <li>The route carries an "Additional PMSI Tunnel Attribute Flags" EC | |||
| </t> | and its DCB-flag is set.</li> | |||
| </list> | </ul> | |||
| </t> | </section> | |||
| </section> | <section numbered="true" toc="default"> | |||
| <section title="Procedures"> | <name>Procedures</name> | |||
| <t>The protocol and procedures specified in this section MAY be used | <t>The protocol and procedures specified in this section <bcp14>MAY</bcp | |||
| when BIER, or P2MP/MP2MP tunnel aggregation | 14> be used | |||
| is used for MVPN/EVPN, or BIER/P2MP/MP2MP tunnels are used with EVPN | when BIER or P2MP/MP2MP tunnel aggregation | |||
| multi-homing. When these procedures are used, all PE routers and segmenta | is used for an MVPN/EVPN or when BIER/P2MP/MP2MP tunnels are used with EV | |||
| tion | PN | |||
| points MUST support the procedures. It is outside the scope of this docum | multihoming. When these procedures are used, all PE routers and segmentat | |||
| ent | ion | |||
| how that is ensured. | points <bcp14>MUST</bcp14> support the procedures. How to ensure this beh | |||
| </t> | avior is outside the scope of this document. | |||
| <t>By means outside the scope of this document, each VPN/BD/ES is assigned | </t> | |||
| <t>Via methods outside the scope of this document, each VPN/BD/ES is ass | ||||
| igned | ||||
| a label from the DCB or one of those few context-specific label spaces, a nd every | a label from the DCB or one of those few context-specific label spaces, a nd every | |||
| PE that is part of the VPN/BD/ES is aware of the assignment. The ES label | PE that is part of the VPN/BD/ES is aware of the assignment. The ES label | |||
| and the BD label MUST be assigned from the same label space. If PE | and the BD label <bcp14>MUST</bcp14> be assigned from the same label spac | |||
| Distinguisher labels are used [RFC7582], they MUST be allocated | e. If PE | |||
| Distinguisher Labels are used <xref target="RFC7582" format="default"/>, | ||||
| they <bcp14>MUST</bcp14> be allocated | ||||
| from the same label space as well. | from the same label space as well. | |||
| </t> | </t> | |||
| <t>In case of tunnel segmentation, each PE is also assigned a disjoint | <t>In the case of tunnel segmentation, each PE is also assigned a disjoi | |||
| label block from one of those few context-specific label spaces and it al | nt | |||
| locates | label block from one of those few context-specific label spaces, and it a | |||
| llocates | ||||
| labels for its segmented PMSI routes from its assigned label block. | labels for its segmented PMSI routes from its assigned label block. | |||
| </t> | </t> | |||
| <t>When a PE originates/re-advertises an x-PMSI/IMET route, the route MUST | <t>When a PE originates/re-advertises an x-PMSI/IMET route, the route <b | |||
| cp14>MUST</bcp14> | ||||
| carry a DCB-flag if and only if the label in its PTA is assigned | carry a DCB-flag if and only if the label in its PTA is assigned | |||
| from the DCB. | from the DCB. | |||
| </t> | </t> | |||
| <t>If the VPN/BD/ES/PMSI label is assigned from one of those few context-spe | <t>If the VPN/BD/ES/PMSI label is assigned from one of those few context | |||
| cific label | -specific label | |||
| spaces, a Context-Specific Label Space ID Extended Community MUST be atta | spaces, a Context-Specific Label Space ID EC <bcp14>MUST</bcp14> be attac | |||
| ched to the | hed to the | |||
| route. The ID-Type in the EC is set to 0 and the ID-Value is set to | route. The ID-Type in the EC is set to 0, and the ID-Value is set to | |||
| a label allocated from the DCB and identifies the context-specific label space. | a label allocated from the DCB and identifies the context-specific label space. | |||
| When an ingress PE sends traffic, it imposes the DCB label | When an ingress PE sends traffic, it imposes the DCB label | |||
| that identifies the context-specific label space after it imposes the lab el | that identifies the context-specific label space after it imposes the lab el | |||
| (that is advertised in the Label field of the PTA in the x-PMSI/IMET rout e) | (that is advertised in the Label field of the PTA in the x-PMSI/IMET rout e) | |||
| for the VPN/BD and/or the label (that is advertised in the ESI Label EC) | for the VPN/BD and/or the label (that is advertised in the ESI Label EC) | |||
| for the ESI, and then imposes the encapsulation for the transport tunnel. | for the ESI, and then imposes the encapsulation for the transport tunnel. | |||
| </t> | </t> | |||
| <t>When a PE receives an x-PMSI/IMET route with the Context-Specific Label | <t>When a PE receives an x-PMSI/IMET route with the Context-Specific Lab | |||
| Space ID EC, it MUST place an entry in its default MPLS forwarding table | el | |||
| Space ID EC, it <bcp14>MUST</bcp14> place an entry in its default MPLS fo | ||||
| rwarding table | ||||
| to map the label in the EC to a corresponding context-specific | to map the label in the EC to a corresponding context-specific | |||
| label table. That table is used for the next label lookup for incoming | label table. That table is used for the next label lookup for incoming | |||
| data traffic with the label signaled in the EC. | data traffic with the label signaled in the EC. | |||
| </t> | </t> | |||
| <t>Then, the receiving PE MUST place an entry for the label in the PTA or | <t>Then, the receiving PE <bcp14>MUST</bcp14> place an entry for the lab | |||
| ESI Label EC into | el that is in the PTA or | |||
| ESI Label EC in | ||||
| either the default MPLS forwarding table (if the route carries the | either the default MPLS forwarding table (if the route carries the | |||
| DCB-flag) or the context-specific label table (if the Context-Specific La bel Space ID EC | DCB-flag) or the context-specific label table (if the Context-Specific La bel Space ID EC | |||
| is present) according to the x-PMSI/IMET route. | is present) according to the x-PMSI/IMET route. | |||
| </t> | </t> | |||
| <t>An x-PMSI/IMET route MUST NOT both carry the DCB-flag and | <t>An x-PMSI/IMET route <bcp14>MUST NOT</bcp14> carry both the | |||
| the Context-Specific Label Space ID EC. | DCB-flag and the Context-Specific Label Space ID EC. A received route | |||
| A received route with both the DCB-flag set and the Context | with both the DCB-flag set and the Context-Specific Label Space ID EC at | |||
| Label Space ID EC attached MUST be treated as withdrawn. | tached | |||
| If neither the DCB-flag nor the Context-Specific Label Space ID EC is att | <bcp14>MUST</bcp14> be treated as withdrawn. If neither the DCB-flag | |||
| ached, | nor the Context-Specific Label Space ID EC is attached, the label in | |||
| the label in the PTA or ESI Label EC MUST be treated as the upstream-assi | the PTA or ESI Label EC <bcp14>MUST</bcp14> be treated as the | |||
| gned | upstream-assigned label from the label space of the source PE, and | |||
| from the label space of the source PE, and procedures in [RFC6514][RFC743 | procedures provided in <xref target="RFC6514"/> and <xref target="RFC743 | |||
| 2] | 2"/> | |||
| MUST be followed. | <bcp14>MUST</bcp14> be followed. | |||
| </t> | </t> | |||
| <t>If a PE originates two x-PMSI/IMET routes with the same tunnel, | <t>If a PE originates two x-PMSI/IMET routes with the same tunnel, | |||
| it MUST ensure one of the following so that the PE receiving the routes | it <bcp14>MUST</bcp14> ensure that one of the following scenarios applies, s | |||
| o that the PE receiving the routes | ||||
| can correctly interpret the label that follows the tunnel encapsulation | can correctly interpret the label that follows the tunnel encapsulation | |||
| of data packets arriving via the tunnel. | of data packets arriving via the tunnel: | |||
| <list style="symbols"> | </t> | |||
| <t>They MUST all have the DCB-flag, or, | <ul spacing="normal"> | |||
| </t> | <li>They <bcp14>MUST</bcp14> all have the DCB-flag,</li> | |||
| <t>They MUST all carry the Context-Specific Label Space ID EC, or, | <li>They <bcp14>MUST</bcp14> all carry the Context-Specific Label Spac | |||
| </t> | e ID EC,</li> | |||
| <t>None of them has the DCB-flag, or, | <li>None of them have the DCB-flag, or</li> | |||
| </t> | <li>None of them carry the Context-Specific Label Space ID EC.</li> | |||
| <t>None of them carry the Context-Specific Label Space ID EC. | </ul> | |||
| </t> | <t>Otherwise, a receiving PE <bcp14>MUST</bcp14> treat the routes as if | |||
| </list> | they were withdrawn. | |||
| </t> | </t> | |||
| <t>Otherwise, a receiving PE MUST treat the routes as if they were withdrawn | </section> | |||
| . | ||||
| </t> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section title="Security Considerations"> | <section numbered="true" toc="default"> | |||
| <t>This document allows three methods (<xref target="methods"/>) of | <name>Security Considerations</name> | |||
| label allocation for MVPN [RFC6514] or EVPN [RFC7432] PEs and | <t>This document allows three methods (<xref target="methods" format="defa | |||
| specifies corresponding signaling and procedures. The first method is | ult"/>) of | |||
| the equivalent of using common SRGBs [RFC8402] from the regular | label allocation for MVPN PEs <xref target="RFC6514"/> or EVPN PEs <xref t | |||
| per platform label space. The second one is the equivalent of using | arget="RFC7432"/> and | |||
| common SRGBs from a third party label space [RFC5331]. The third | specifies corresponding signaling and procedures. The first method (Option | |||
| method is a variation of the second, in that the third party label | <xref target="dcb-assignment" format="counter"/>) is | |||
| the equivalent of using common SRGBs <xref target="RFC8402"/> from the reg | ||||
| ular | ||||
| per-platform label space. The second method (Option <xref target="context- | ||||
| space" format="counter"/>) is the equivalent of using | ||||
| common SRGBs from a third-party label space <xref target="RFC5331" format= | ||||
| "default"/>. The third | ||||
| method (Option <xref target="context-block" format="counter"/>) is a varia | ||||
| tion of the second in that the third-party label | ||||
| space is divided into disjoint blocks for use by different PEs, | space is divided into disjoint blocks for use by different PEs, | |||
| who will use labels from their respective block to send traffic. | where each PE will use labels from its respective block to send traffic. | |||
| In all cases, a receiving PE is able to identify one of a few label | In all cases, a receiving PE is able to identify one of the few label | |||
| forwarding tables to forward incoming labeled traffic. | forwarding tables to forward incoming labeled traffic. | |||
| </t> | </t> | |||
| <t>None of the [RFC6514], [RFC7432], [RFC8402] and [RFC5331] | <t><xref target="RFC6514"/>, <xref target="RFC7432"/>, <xref | |||
| specifications lists any security concerns related to label allocation | target="RFC8402"/>, and <xref target="RFC5331" format="default"/> | |||
| methods, and this document does not introduce new security concerns | do not list any security concerns related to label allocation | |||
| either. | methods, and this document does not introduce any new security concerns in | |||
| this regard. | ||||
| </t> | </t> | |||
| </section> | </section> | |||
| <section title="IANA Considerations"> | <section numbered="true" toc="default"> | |||
| <name>IANA Considerations</name> | ||||
| <t>IANA has made the following assignments: | <t>IANA has made the following assignments: | |||
| <list style="symbols"> | ||||
| <t>Bit 47 (DCB) from the "Additional PMSI Tunnel Attribute Flags" regist | ||||
| ry | ||||
| <figure> | ||||
| <artwork> | ||||
| Bit Flag Name Reference | ||||
| -------- ---------------------- ------------- | ||||
| 47 DCB (temporary) This document | ||||
| </artwork> | ||||
| </figure> | ||||
| </t> | ||||
| <t>Sub-type 0x08 for "Context-Specific Label Space ID Extended Community | ||||
| " from the "Transitive Opaque Extended Community Sub-Types" registry | ||||
| <figure> | ||||
| <artwork> | ||||
| Sub-Type Value Name Reference | ||||
| -------------- ---------------------- ------------- | ||||
| 0x08 Context-Specific Label Space ID This document | ||||
| Extended Community | ||||
| </artwork> | ||||
| </figure> | ||||
| </t> | ||||
| </list> | ||||
| </t> | </t> | |||
| <t>IANA is requested to create a "Context-Specific Label Space ID Type" | <ul spacing="normal"> | |||
| registry in the "Border Gateway Protocol (BGP) Extended Communities" | <li> | |||
| group. The registration procedure is First Come First Served. | <t>Bit 47 (DCB) in the "Additional PMSI Tunnel Attribute Flags" regist | |||
| ry:</t> | ||||
| <table align="left" anchor="bit-47-iana-table"> | ||||
| <name></name> | ||||
| <thead> | ||||
| <tr> | ||||
| <th>Bit Flag</th> | ||||
| <th>Name</th> | ||||
| <th>Reference</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>47</td> | ||||
| <td>DCB</td> | ||||
| <td>RFC 9573</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </li> | ||||
| <li> | ||||
| <t>Sub-type 0x08 for "Context-Specific Label Space ID Extended Communi | ||||
| ty" in the "Transitive Opaque Extended Community Sub-Types" registry: | ||||
| </t> | ||||
| <table align="left" anchor="sub-type-iana-table"> | ||||
| <name></name> | ||||
| <thead> | ||||
| <tr> | ||||
| <th>Sub-Type Value</th> | ||||
| <th>Name</th> | ||||
| <th>Reference</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>0x08</td> | ||||
| <td>Context-Specific Label Space ID Extended Community</td> | ||||
| <td>RFC 9573</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </li> | ||||
| </ul> | ||||
| <t>IANA has created the "Context-Specific Label Space ID Type" | ||||
| registry within the "Border Gateway Protocol (BGP) Extended Communities" | ||||
| group of registries. The registration procedure is First Come First Served | ||||
| <xref target="RFC8126"/>. | ||||
| The initial assignment is as follows: | The initial assignment is as follows: | |||
| <figure> | ||||
| <artwork> | ||||
| ID Type Name Reference | ||||
| ------- ---------------------- ------------- | ||||
| 0 MPLS Label This document | ||||
| 1-254 unassigned | ||||
| 255 reserved | ||||
| </artwork> | ||||
| </figure> | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="Acknowledgements" title="Acknowledgements"> | ||||
| <t>The authors thank Stephane Litkowski, Ali Sajassi and Jingrong Xie | ||||
| for their review of, comments on and suggestions for this document. | ||||
| </t> | </t> | |||
| </section> | ||||
| <section title="Contributors"> | ||||
| <t>The following also contributed to this document. | ||||
| <figure> | ||||
| <artwork> | ||||
| Selvakumar Sivaraj | ||||
| Juniper Networks | ||||
| Email: ssivaraj@juniper.net | <table align="left" anchor="context-iana-table"> | |||
| </artwork> | <name></name> | |||
| </figure> | <thead> | |||
| </t> | <tr> | |||
| </section> | <th>Type Value</th> | |||
| </middle> | <th>Name</th> | |||
| <th>Reference</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>0</td> | ||||
| <td>MPLS Label</td> | ||||
| <td>RFC 9573</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>1-254</td> | ||||
| <td>Unassigned</td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>255</td> | ||||
| <td>Reserved</td> | ||||
| <td></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </section> | ||||
| </middle> | ||||
| <back> | <back> | |||
| <references title="Normative References"> | ||||
| <?rfc include='reference.RFC.2119.xml'?> | <displayreference target="I-D.ietf-bier-evpn" to="BIER-EVPN"/> | |||
| <?rfc include='reference.RFC.8174.xml'?> | ||||
| <?rfc include='reference.RFC.6513.xml'?> | <references> | |||
| <?rfc include='reference.RFC.6514.xml'?> | <name>References</name> | |||
| <?rfc include='reference.RFC.7432.xml'?> | <references> | |||
| <?rfc include='reference.RFC.7524.xml'?> | <name>Normative References</name> | |||
| <?rfc include='reference.RFC.7582.xml'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
| <?rfc include='reference.RFC.7902.xml'?> | 119.xml"/> | |||
| <?rfc include='reference.RFC.4360.xml'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| </references> | 174.xml"/> | |||
| <references title="Informative References"> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
| <?rfc include='reference.RFC.5331.xml'?> | 513.xml"/> | |||
| <?rfc include='reference.RFC.8279.xml'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
| <?rfc include='reference.RFC.8556.xml'?> | 514.xml"/> | |||
| <?rfc include='reference.RFC.8402.xml'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | |||
| <?rfc include='reference.RFC.8660.xml'?> | 432.xml"/> | |||
| <?rfc include='reference.RFC.4364.xml'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | |||
| <?rfc include='reference.I-D.ietf-bier-evpn.xml'?> | 524.xml"/> | |||
| <?rfc include='reference.I-D.ietf-bess-evpn-bum-procedure-updates.xml'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | |||
| 582.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 902.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
| 360.xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
| 331.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 279.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 556.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 402.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 660.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
| 364.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 126.xml"/> | ||||
| <!-- draft-ietf-bier-evpn (-14 in EDIT as of May 2024) | ||||
| (long way to fix Zhaohui Zhang's initial. | ||||
| Have to keep "Przygienda, A." (as opposed to "Przygienda, T." as used in | ||||
| published RFCs), because this is a draft) --> | ||||
| <reference anchor="I-D.ietf-bier-evpn"> | ||||
| <front> | ||||
| <title>EVPN BUM Using BIER</title> | ||||
| <author fullname="Zhaohui Zhang" initials="Z." surname="Zhang"> | ||||
| <organization>Juniper Networks</organization> | ||||
| </author> | ||||
| <author fullname="Antoni Przygienda" initials="A." surname="Przygienda"> | ||||
| <organization>Juniper Networks</organization> | ||||
| </author> | ||||
| <author fullname="Ali Sajassi" initials="A." surname="Sajassi"> | ||||
| <organization>Cisco Systems</organization> | ||||
| </author> | ||||
| <author fullname="Jorge Rabadan" initials="J." surname="Rabadan"> | ||||
| <organization>Nokia</organization> | ||||
| </author> | ||||
| <date day="2" month="January" year="2024"/> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-bier-evpn-14"/> | ||||
| </reference> | ||||
| <!-- draft-ietf-bess-evpn-bum-procedure-updates (RFC 9572) --> | ||||
| <reference anchor="RFC9572" target="https://www.rfc-editor.org/info/rfc9572"> | ||||
| <front> | ||||
| <title>Updates to EVPN Broadcast, Unknown Unicast, or Multicast (BUM) Procedures | ||||
| </title> | ||||
| <author initials='Z' surname='Zhang' fullname='Zhaohui Zhang'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='W' surname='Lin' fullname='Wen Lin'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='J' surname='Rabadan' fullname='Jorge Rabadan'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='K' surname='Patel' fullname='Keyur Patel'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='A' surname='Sajassi' fullname='Ali Sajassi'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date year='2024' month='May'/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="9572"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC9572"/> | ||||
| </reference> | ||||
| </references> | ||||
| </references> | </references> | |||
| <section anchor="Acknowledgements" numbered="false" toc="default"> | ||||
| <name>Acknowledgements</name> | ||||
| <t>The authors thank <contact fullname="Stephane Litkowski"/>, <contact fu | ||||
| llname="Ali Sajassi"/>, and <contact fullname="Jingrong Xie"/> | ||||
| for their reviews of, comments on, and suggestions for this document. | ||||
| </t> | ||||
| </section> | ||||
| <section numbered="false" toc="default"> | ||||
| <name>Contributors</name> | ||||
| <t>The following individual also contributed to this document: | ||||
| </t> | ||||
| <contact fullname="Selvakumar Sivaraj"> | ||||
| <organization>Juniper Networks</organization> | ||||
| <address> | ||||
| <email>ssivaraj@juniper.net</email> | ||||
| </address> | ||||
| </contact> | ||||
| </section> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 93 change blocks. | ||||
| 557 lines changed or deleted | 758 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||