| < draft-ietf-pce-binding-label-sid-07.txt | draft-ietf-pce-binding-label-sid-08.txt > | |||
|---|---|---|---|---|
| PCE Working Group S. Sivabalan | PCE Working Group S. Sivabalan | |||
| Internet-Draft Ciena Corporation | Internet-Draft Ciena Corporation | |||
| Intended status: Standards Track C. Filsfils | Intended status: Standards Track C. Filsfils | |||
| Expires: August 24, 2021 Cisco Systems, Inc. | Expires: October 16, 2021 Cisco Systems, Inc. | |||
| J. Tantsura | J. Tantsura | |||
| Apstra, Inc. | Juniper Networks | |||
| S. Previdi | S. Previdi | |||
| C. Li | C. Li | |||
| Huawei Technologies | Huawei Technologies | |||
| February 20, 2021 | April 14, 2021 | |||
| Carrying Binding Label/Segment-ID in PCE-based Networks. | Carrying Binding Label/Segment Identifier in PCE-based Networks. | |||
| draft-ietf-pce-binding-label-sid-07 | draft-ietf-pce-binding-label-sid-08 | |||
| Abstract | Abstract | |||
| In order to provide greater scalability, network opacity, and service | In order to provide greater scalability, network opacity, and service | |||
| independence, Segment Routing (SR) utilizes a Binding Segment | independence, Segment Routing (SR) utilizes a Binding Segment | |||
| Identifier (BSID). It is possible to associate a BSID to RSVP-TE | Identifier (BSID). It is possible to associate a BSID to an RSVP-TE | |||
| signaled Traffic Engineering Label Switching Path or binding Segment- | signaled Traffic Engineering Label Switching Path or an SR Traffic | |||
| ID (SID) to SR Traffic Engineering path. Such a binding label/SID | Engineering path. The BSID can be used by an upstream node for | |||
| can be used by an upstream node for steering traffic into the | steering traffic into the appropriate TE path to enforce SR policies. | |||
| appropriate TE path to enforce SR policies. This document proposes | This document specifies the binding value as an MPLS label or Segment | |||
| an approach for reporting binding label/SID to Path Computation | Identifier. It further specify an approach for reporting binding | |||
| Element (PCE) for supporting PCE-based Traffic Engineering policies. | label/SID by a Path Computation Client (PCC) to the Path Computation | |||
| Element (PCE) to support PCE-based Traffic Engineering policies. | ||||
| Requirements Language | ||||
| 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 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
| capitals, as shown here. | ||||
| 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 | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 August 24, 2021. | This Internet-Draft will expire on October 16, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 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 | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3. Path Binding TLV . . . . . . . . . . . . . . . . . . . . . . 6 | 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1. SRv6 Endpoint Behavior and SID Structure . . . . . . . . 7 | 4. Path Binding TLV . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.1. SRv6 Endpoint Behavior and SID Structure . . . . . . . . 7 | |||
| 5. Binding SID in SR-ERO . . . . . . . . . . . . . . . . . . . . 10 | 5. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 6. Binding SID in SRv6-ERO . . . . . . . . . . . . . . . . . . . 10 | 6. Binding SID in SR-ERO . . . . . . . . . . . . . . . . . . . . 10 | |||
| 7. PCE Allocation of Binding SID . . . . . . . . . . . . . . . . 10 | 7. Binding SID in SRv6-ERO . . . . . . . . . . . . . . . . . . . 11 | |||
| 8. Implementation Status . . . . . . . . . . . . . . . . . . . . 12 | 8. PCE Allocation of Binding label/SID . . . . . . . . . . . . . 11 | |||
| 8.1. Huawei . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 9. Implementation Status . . . . . . . . . . . . . . . . . . . . 13 | |||
| 8.2. Cisco . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 9.1. Huawei . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 9.2. Cisco . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 10. Manageability Considerations . . . . . . . . . . . . . . . . 13 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | |||
| 10.1. Control of Function and Policy . . . . . . . . . . . . . 14 | 11. Manageability Considerations . . . . . . . . . . . . . . . . 14 | |||
| 10.2. Information and Data Models . . . . . . . . . . . . . . 14 | 11.1. Control of Function and Policy . . . . . . . . . . . . . 14 | |||
| 10.3. Liveness Detection and Monitoring . . . . . . . . . . . 14 | 11.2. Information and Data Models . . . . . . . . . . . . . . 14 | |||
| 10.4. Verify Correct Operations . . . . . . . . . . . . . . . 14 | 11.3. Liveness Detection and Monitoring . . . . . . . . . . . 14 | |||
| 10.5. Requirements On Other Protocols . . . . . . . . . . . . 14 | 11.4. Verify Correct Operations . . . . . . . . . . . . . . . 15 | |||
| 10.6. Impact On Network Operations . . . . . . . . . . . . . . 14 | 11.5. Requirements On Other Protocols . . . . . . . . . . . . 15 | |||
| 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 11.6. Impact On Network Operations . . . . . . . . . . . . . . 15 | |||
| 11.1. PCEP TLV Type Indicators . . . . . . . . . . . . . . . . 14 | 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 11.1.1. TE-PATH-BINDING TLV . . . . . . . . . . . . . . . . 15 | 12.1. PCEP TLV Type Indicators . . . . . . . . . . . . . . . . 15 | |||
| 11.2. LSP Object . . . . . . . . . . . . . . . . . . . . . . . 15 | 12.1.1. TE-PATH-BINDING TLV . . . . . . . . . . . . . . . . 15 | |||
| 11.3. PCEP Error Type and Value . . . . . . . . . . . . . . . 16 | 12.2. LSP Object . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 | 12.3. PCEP Error Type and Value . . . . . . . . . . . . . . . 16 | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 13.1. Normative References . . . . . . . . . . . . . . . . . . 16 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 13.2. Informative References . . . . . . . . . . . . . . . . . 18 | 14.1. Normative References . . . . . . . . . . . . . . . . . . 17 | |||
| Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 19 | 14.2. Informative References . . . . . . . . . . . . . . . . . 19 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 20 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | ||||
| 1. Introduction | 1. Introduction | |||
| A PCE can compute Traffic Engineering paths (TE paths) through a | A Path Computation Element (PCE) can compute Traffic Engineering | |||
| network that are subject to various constraints. Currently, TE paths | paths (TE paths) through a network where those paths are subject to | |||
| are either set up using the RSVP-TE signaling protocol or Segment | various constraints. Currently, TE paths are either set up using the | |||
| Routing (SR). We refer to such paths as RSVP-TE paths and SR-TE | RSVP-TE signaling protocol or Segment Routing (SR). We refer to such | |||
| paths respectively in this document. | paths as RSVP-TE paths and SR-TE paths respectively in this document. | |||
| As per [RFC8402] SR allows a headend node to steer a packet flow | As per [RFC8402] SR allows a headend node to steer a packet flow | |||
| along any path. The headend node is said to steer a flow into an | along any path. The headend node is said to steer a flow into an | |||
| Segment Routing Policy (SR Policy). Further, as per | Segment Routing Policy (SR Policy). Further, as per | |||
| [I-D.ietf-spring-segment-routing-policy], an SR Policy is a framework | [I-D.ietf-spring-segment-routing-policy], an SR Policy is a framework | |||
| that enables instantiation of an ordered list of segments on a node | that enables instantiation of an ordered list of segments on a node | |||
| for implementing a source routing policy with a specific intent for | for implementing a source routing policy with a specific intent for | |||
| traffic steering from that node. | traffic steering from that node. | |||
| As described in [RFC8402], Binding Segment Identifier (BSID) is bound | As described in [RFC8402], a Binding Segment Identifier (BSID) is | |||
| to an Segment Routed (SR) Policy, instantiation of which may involve | bound to a Segment Routed (SR) Policy, instantiation of which may | |||
| a list of SIDs. Any packets received with an active segment equal to | involve a list of SIDs. Any packets received with an active segment | |||
| BSID are steered onto the bound SR Policy. A BSID may be either a | equal to a BSID are steered onto the bound SR Policy. A BSID may be | |||
| local (SR Local Block (SRLB)) or a global (SR Global Block (SRGB)) | either a local (SR Local Block (SRLB)) or a global (SR Global Block | |||
| SID. As per Section 6.4 of [I-D.ietf-spring-segment-routing-policy] | (SRGB)) SID. As per Section 6.4 of | |||
| a BSID can also be associated with any type of interfaces or tunnel | [I-D.ietf-spring-segment-routing-policy] a BSID can also be | |||
| to enable the use of a non-SR interface or tunnels as segments in a | associated with any type of interfaces or tunnel to enable the use of | |||
| SID-list. | a non-SR interface or tunnel as a segment in a SID-list. In this | |||
| document, binding label/SID is used to generalize the allocation of | ||||
| binding value for both SR and non-SR paths. | ||||
| [RFC5440] describes the Path Computation Element Protocol (PCEP) for | [RFC5440] describes the Path Computation Element Protocol (PCEP) for | |||
| communication between a Path Computation Client (PCC) and a PCE or | communication between a Path Computation Client (PCC) and a PCE or | |||
| between a pair of PCEs as per [RFC4655]. [RFC8231] specifies | between a pair of PCEs as per [RFC4655]. [RFC8231] specifies | |||
| extension to PCEP that allows a PCC to delegate its LSPs to a | extensions to PCEP that allow a PCC to delegate its Label Switched | |||
| stateful PCE. A stateful PCE can then update the state of LSPs | Paths (LSPs) to a stateful PCE. A stateful PCE can then update the | |||
| delegated to it. [RFC8281] specifies a mechanism allowing a PCE to | state of LSPs delegated to it. [RFC8281] specifies a mechanism | |||
| dynamically instantiate an LSP on a PCC by sending the path and | allowing a PCE to dynamically instantiate an LSP on a PCC by sending | |||
| characteristics. The PCEP extension to setup and maintain SR-TE | the path and characteristics. | |||
| paths is specified in [RFC8664]. | ||||
| [RFC8664] provides a mechanism for a network controller (acting as a | [RFC8664] provides a mechanism for a network controller (acting as a | |||
| PCE) to instantiate candidate paths for an SR Policy onto a head-end | PCE) to instantiate SR-TE paths (candidate paths) for an SR Policy | |||
| node (acting as a PCC) using PCEP. For more information on the SR | onto a head-end node (acting as a PCC) using PCEP. For more | |||
| Policy Architecture, see [I-D.ietf-spring-segment-routing-policy]. | information on the SR Policy Architecture, see | |||
| [I-D.ietf-spring-segment-routing-policy]. | ||||
| Binding label/SID has local significance to the ingress node of the | A binding label/SID has local significance to the ingress node of the | |||
| corresponding TE path. When a stateful PCE is deployed for setting | corresponding TE path. When a stateful PCE is deployed for setting | |||
| up TE paths, it may be desirable to report the binding label or SID | up TE paths, it may be desirable for PCC to report the binding label/ | |||
| to the stateful PCE for the purpose of enforcing end-to-end TE/SR | SID to the stateful PCE for the purpose of enforcing end-to-end TE/SR | |||
| policy. A sample Data Center (DC) use-case is illustrated in the | policy. A sample Data Center (DC) use-case is illustrated in the | |||
| following diagram. In the MPLS DC network, an SR LSP (without | Figure 1. In the MPLS DC network, an SR LSP (without traffic | |||
| traffic engineering) is established using a prefix SID advertised by | engineering) is established using a prefix SID advertised by BGP (see | |||
| BGP (see [RFC8669]). In IP/MPLS WAN, an SR-TE LSP is setup using the | [RFC8669]). In the IP/MPLS WAN, an SR-TE LSP is set up using the | |||
| PCE. The list of SIDs of the SR-TE LSP is {A, B, C, D}. The gateway | PCE. The list of SIDs of the SR-TE LSP is {A, B, C, D}. The gateway | |||
| node 1 (which is the PCC) allocates a binding SID X and reports it to | node 1 (which is the PCC) allocates a binding SID X and reports it to | |||
| the PCE. In order for the access node to steer the traffic over the | the PCE. In order for the access node to steer the traffic over the | |||
| SR-TE LSP, the PCE passes the SID stack {Y, X} where Y is the prefix | SR-TE LSP, the PCE passes the SID stack {Y, X} where Y is the prefix | |||
| SID of the gateway node-1 to the access node. In the absence of the | SID of the gateway node-1 to the access node. In the absence of the | |||
| binding SID X, the PCE should pass the SID stack {Y, A, B, C, D} to | binding SID X, the PCE should pass the SID stack {Y, A, B, C, D} to | |||
| the access node. This example also illustrates the additional | the access node. This example also illustrates the additional | |||
| benefit of using the binding SID to reduce the number of SIDs imposed | benefit of using the binding SID to reduce the number of SIDs imposed | |||
| on the access nodes with a limited forwarding capacity. | on the access nodes with a limited forwarding capacity. | |||
| skipping to change at page 5, line 12 ¶ | skipping to change at page 5, line 10 ¶ | |||
| specified binding value, it reports the binding value to the PCE. | specified binding value, it reports the binding value to the PCE. | |||
| Otherwise, the PCC sends an error message to the PCE indicating the | Otherwise, the PCC sends an error message to the PCE indicating the | |||
| cause of the failure. A local policy or configuration at the PCC | cause of the failure. A local policy or configuration at the PCC | |||
| SHOULD dictate if the binding label/SID needs to be assigned. | SHOULD dictate if the binding label/SID needs to be assigned. | |||
| In this document, we introduce a new OPTIONAL TLV that a PCC can use | In this document, we introduce a new OPTIONAL TLV that a PCC can use | |||
| in order to report the binding label/SID associated with a TE LSP, or | in order to report the binding label/SID associated with a TE LSP, or | |||
| a PCE to request a PCC to allocate a specific binding label/SID | a PCE to request a PCC to allocate a specific binding label/SID | |||
| value. This TLV is intended for TE LSPs established using RSVP-TE, | value. This TLV is intended for TE LSPs established using RSVP-TE, | |||
| SR, or any other future method. Also, in the case of SR-TE LSPs, the | SR, or any other future method. Also, in the case of SR-TE LSPs, the | |||
| TLV can carry a binding MPLS label (for SR-TE path with MPLS data- | TLV can carry a binding label (for SR-TE path with MPLS data-plane) | |||
| plane) or a binding IPv6 SID (e.g., IPv6 address for SR-TE paths with | or a binding IPv6 SID (e.g., IPv6 address for SR-TE paths with IPv6 | |||
| IPv6 data-plane). Binding value means either MPLS label or SID | data-plane). Throughout this document, the term "binding value" | |||
| throughout this document. | means either an MPLS label or SID. | |||
| Additionally, to support the PCE based central controller [RFC8283] | Additionally, to support the PCE based central controller [RFC8283] | |||
| operation where the PCE would take responsibility for managing some | operation where the PCE would take responsibility for managing some | |||
| part of the MPLS label space for each of the routers that it | part of the MPLS label space for each of the routers that it | |||
| controls, the PCE could directly make the binding label/SID | controls, the PCE could directly make the binding label/SID | |||
| allocation and inform the PCC. See Section 7 for details. | allocation and inform the PCC. See Section 8 for details. | |||
| 2. Terminology | 2. Requirements Language | |||
| 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 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
| capitals, as shown here. | ||||
| 3. Terminology | ||||
| The following terminologies are used in this document: | The following terminologies are used in this document: | |||
| BSID: Binding Segment Identifier. | BSID: Binding Segment Identifier. | |||
| LER: Label Edge Router. | ||||
| LSP: Label Switched Path. | LSP: Label Switched Path. | |||
| LSR: Label Switching Router. | ||||
| PCC: Path Computation Client. | PCC: Path Computation Client. | |||
| PCE: Path Computation Element | PCE: Path Computation Element | |||
| PCEP: Path Computation Element Protocol. | PCEP: Path Computation Element Protocol. | |||
| RSVP-TE: Resource ReserVation Protocol-Traffic Engineering. | RSVP-TE: Resource ReserVation Protocol-Traffic Engineering. | |||
| SID: Segment Identifier. | SID: Segment Identifier. | |||
| SR: Segment Routing. | SR: Segment Routing. | |||
| SRGB: Segment Routing Global Block. | ||||
| SRLB: Segment Routing Local Block. | ||||
| TLV: Type, Length, and Value. | TLV: Type, Length, and Value. | |||
| 3. Path Binding TLV | 4. Path Binding TLV | |||
| The new optional TLV is called "TE-PATH-BINDING TLV" (whose format is | The new optional TLV is called "TE-PATH-BINDING TLV" (whose format is | |||
| shown in the figure below) is defined to carry the binding label or | shown in the Figure 2) is defined to carry the binding label/SID for | |||
| SID for a TE path. This TLV is associated with the LSP object | a TE path. This TLV is associated with the LSP object specified in | |||
| specified in ([RFC8231]). The type of this TLV is to be allocated by | [RFC8231]. This TLV can also be carried in the PCEP-ERROR object | |||
| IANA. | [RFC5440] in case of error. Multiple instance of TE-PATH-BINDING | |||
| TLVs MAY be present in the LSP and PCEP-ERROR object. The type of | ||||
| this TLV is 55 (early allocated by IANA). The length is variable. | ||||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | BT | Flags | Reserved | | | BT | Flags | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ~ Binding Value (variable length) ~ | ~ Binding Value (variable length) ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 2: TE-PATH-BINDING TLV | Figure 2: TE-PATH-BINDING TLV | |||
| TE-PATH-BINDING TLV is a generic TLV such that it is able to carry | TE-PATH-BINDING TLV is a generic TLV such that it is able to carry | |||
| MPLS label binding as well as SRv6 Binding SID. It is formatted | binding label/SID (i.e. MPLS label or SRv6 SID). It is formatted | |||
| according to the rules specified in [RFC5440]. | according to the rules specified in [RFC5440]. The value portion of | |||
| the TLV comprise of: | ||||
| Binding Type (BT): A one-octet field identifies the type of binding | Binding Type (BT): A one-octet field identifies the type of binding | |||
| included in the TLV. This document specifies the following BT | included in the TLV. This document specifies the following BT | |||
| values: | values: | |||
| o BT = 0: The binding value is an MPLS label carried in the format | o BT = 0: The binding value is a 20-bit MPLS label value. The TLV | |||
| specified in [RFC5462] where only the label value is valid, and | is padded to 4-bytes alignment. The Length MUST be set to 7 and | |||
| other fields MUST be considered invalid. The Length MUST be set | first 20 bits are used to encode the MPLS label value. | |||
| to 7. | ||||
| o BT = 1: Similar to the case where BT is 0 except that all the | o BT = 1: The binding value is a 32-bit MPLS label stack entry as | |||
| fields on the MPLS label entry are set on transmission. However, | per [RFC3032] with Label, TC [RFC5462], S, and TTL values encoded. | |||
| the receiver MAY choose to override TC, S, and TTL values | Note that the receiver MAY choose to override TC, S, and TTL | |||
| according its local policy. The Length MUST be set to 8. | values according to its local policy. The Length MUST be set to | |||
| 8. | ||||
| o BT = 2: The binding value is an SRv6 SID with a format of a 16 | o BT = 2: The binding value is an SRv6 SID with a format of a 16 | |||
| octet IPv6 address, representing the binding SID for SRv6. The | octet IPv6 address, representing the binding SID for SRv6. The | |||
| Length MUST be set to 20. | Length MUST be set to 20. | |||
| o BT = 3: The binding value is a 24 octet field, defined in | o BT = 3: The binding value is a 24 octet field, defined in | |||
| Section 3.1, that contains the SRv6 SID as well as its Behavior | Section 4.1, that contains the SRv6 SID as well as its Behavior | |||
| and Structure. The Length MUST be set to 28. | and Structure. The Length MUST be set to 28. | |||
| Flags: 1 octet of flags. Following flags are defined in the new | Section 12.1.1 defines the IANA registry used to maintain all these | |||
| binding types as well as any future ones. Note that, multiple TE- | ||||
| PATH-BINDING TLVs with different Binding Types MAY be present for the | ||||
| same LSP. | ||||
| Flags: 1 octet of flags. Following flag is defined in the new | ||||
| registry "TE-PATH-BINDING TLV Flag field" as described in | registry "TE-PATH-BINDING TLV Flag field" as described in | |||
| Section 11.1.1: | Section 12.1.1: | |||
| 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| | |I|S| | |R| | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| where: | Figure 3: Flags | |||
| o S-Flag: This flag encodes the "Specified-BSID-only" behavior. It | where: | |||
| is used as described in Section 6.2.3 of | ||||
| [I-D.ietf-spring-segment-routing-policy]. | ||||
| o I-Flag: This flag encodes the "Drop Upon Invalid" behavior. It is | o R (Removal - 1 bit): When set, the requesting PCEP peer requires | |||
| used as described in Section 8.2 of | the removal of the binding value for the LSP. When unset, the | |||
| [I-D.ietf-spring-segment-routing-policy]. | PCEP peer indicates that the binding value is added or retained | |||
| for the LSP. This flag is used in the PCRpt and PCUpd messages. | ||||
| It is ignored in other PCEP messages. | ||||
| o Unassigned bits MUST be set to 0 while sending and ignored on | o The unassigned flags MUST be set to 0 while sending and ignored on | |||
| receipt. | receipt. | |||
| Reserved: MUST be set to 0 while sending and ignored on receipt. | Reserved: MUST be set to 0 while sending and ignored on receipt. | |||
| Binding Value: A variable-length field, padded with trailing zeros to | Binding Value: A variable-length field, padded with trailing zeros to | |||
| a 4-octet boundary. For the BT as 0, the 20 bits represent the MPLS | a 4-octet boundary. For the BT as 0, the 20 bits represent the MPLS | |||
| label. For the BT as 1, the 32-bits represent the label stack entry | label. For the BT as 1, the 32-bits represent the MPLS label stack | |||
| as per [RFC5462]. For the BT as 2, the 128-bits represent the SRv6 | entry as per [RFC3032]. For the BT as 2, the 128-bits represent the | |||
| SID. For the BT as 3, the Binding Value contains SRv6 Endpoint | SRv6 SID. For the BT as 3, the Binding Value also contains the SRv6 | |||
| Behavior and SID Structure, defined in Section 3.1. | Endpoint Behavior and SID Structure, defined in Section 4.1. | |||
| 3.1. SRv6 Endpoint Behavior and SID Structure | 4.1. SRv6 Endpoint Behavior and SID Structure | |||
| Carried as the Binding Value in the TE-PATH-BINDING TLV when the BT | This section specify the format of the Binding Value in the TE-PATH- | |||
| is set to 3. Applicable for SRv6 Binding SIDs | BINDING TLV when the BT is set to 3 for the SRv6 Binding SIDs | |||
| [I-D.ietf-spring-srv6-network-programming]. | [RFC8986], as shown in Figure 4. | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SRv6 Binding SID (16 octets) | | | SRv6 Binding SID (16 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reserved | Endpoint Behavior | | | Reserved | Endpoint Behavior | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | LB Length | LN Length | Fun. Length | Arg. Length | | | LB Length | LN Length | Fun. Length | Arg. Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 4: SRv6 Endpoint Behavior and SID Structure | Figure 4: SRv6 Endpoint Behavior and SID Structure | |||
| Reserved: 2 octets. MUST be set to 0 on transmit and ignored on | The Binding Value consist of: | |||
| receipt. | ||||
| Endpoint Behavior: 2 octets. The Endpoint Behavior code point for | o SRv6 Binding SID: 16 octets. The 128-bits IPv6 address, | |||
| this SRv6 SID as defined in section 9.2 of | representing the binding SID for SRv6. | |||
| [I-D.ietf-spring-srv6-network-programming]. When set with the value | ||||
| 0, the choice of behavior is considered unset. | ||||
| LB Length: 1 octet. SRv6 SID Locator Block length in bits. | o Reserved: 2 octets. It MUST be set to 0 on transmit and ignored | |||
| on receipt. | ||||
| LN Length: 1 octet. SRv6 SID Locator Node length in bits. | o Endpoint Behavior: 2 octets. The Endpoint Behavior code point for | |||
| this SRv6 SID as per the IANA subregistry called "SRv6 Endpoint | ||||
| Behaviors", created by [RFC8986]. When the field is set with the | ||||
| value 0, the endpoint behavior is considered unknown. | ||||
| Function Length: 1 octet. SRv6 SID Function length in bits. | o The following fields are used to advertise the length of each | |||
| individual part of the SRv6 SID as defined in [RFC8986]: | ||||
| Argument Length: 1 octet. SRv6 SID Arguments length in bits. | * LB Length: 1 octet. SRv6 SID Locator Block length in bits. | |||
| 4. Operation | * LN Length: 1 octet. SRv6 SID Locator Node length in bits. | |||
| * Function Length: 1 octet. SRv6 SID Function length in bits. | ||||
| * Argument Length: 1 octet. SRv6 SID Arguments length in bits. | ||||
| 5. Operation | ||||
| The binding value is allocated by the PCC and reported to a PCE via | The binding value is allocated by the PCC and reported to a PCE via | |||
| PCRpt message. If a PCE does not recognize the TE-PATH-BINDING TLV, | PCRpt message. If a PCE does not recognize the TE-PATH-BINDING TLV, | |||
| it would ignore the TLV in accordance with ([RFC5440]). If a PCE | it would ignore the TLV in accordance with [RFC5440]. If a PCE | |||
| recognizes the TLV but does not support the TLV, it MUST send PCErr | recognizes the TLV but does not support the TLV, it MUST send PCErr | |||
| with Error-Type = 2 (Capability not supported). | with Error-Type = 2 (Capability not supported). | |||
| If a TE-PATH-BINDING TLV is absent in the PCRpt message, PCE MUST | ||||
| assume that the corresponding LSP does not have any binding. If a | ||||
| PCE recognizes an invalid binding value (e.g., label value from the | ||||
| reserved label space when MPLS label binding is used), it MUST send | ||||
| the PCErr message with Error-Type = 10 ("Reception of an invalid | ||||
| object") and Error Value = 2 ("Bad label value") as specified in | ||||
| [RFC8664]. | ||||
| Multiple TE-PATH-BINDING TLVs are allowed to be present in the same | Multiple TE-PATH-BINDING TLVs are allowed to be present in the same | |||
| LSP object. This signifies the presence of multiple binding SIDs for | LSP object. This signifies the presence of multiple binding SIDs for | |||
| the given LSP. | the given LSP. In the case of multiple TE-PATH-BINDING TLVs, | |||
| existing instances of TE-PATH-BINDING TLVs MAY be included in the LSP | ||||
| object. In case of an error condition, the whole message is rejected | ||||
| and the resulting PCErr message MAY include the offending TE-PATH- | ||||
| BINDING TLV in the PCEP-ERROR object. | ||||
| If a PCE recognizes an invalid binding value (e.g., label value from | ||||
| the reserved MPLS label space), it MUST send a PCErr message with | ||||
| Error-Type = 10 ("Reception of an invalid object") and Error Value = | ||||
| 2 ("Bad label value") as specified in [RFC8664]. | ||||
| For SRv6 BSIDs, it is RECOMMENDED to always explicitly specify the | For SRv6 BSIDs, it is RECOMMENDED to always explicitly specify the | |||
| SRv6 Endpoint Behavior and SID Structure in the TE-PATH-BINDING TLV | SRv6 Endpoint Behavior and SID Structure in the TE-PATH-BINDING TLV | |||
| by setting the BT (Binding Type) to 3, instead of 2. The choice of | by setting the BT (Binding Type) to 3. This enables the sender to | |||
| interpreting SRv6 Endpoint Behavior and SID Structure when none is | have control of the SRv6 Endpoint Behavior and SID Structure. A | |||
| explicitly specified is left up to the implementation. | sender MAY choose to set the BT to 2, in which case the receiving | |||
| implementation chooses how to interpret the SRv6 Endpoint Behavior | ||||
| If a PCE requires a PCC to allocate a specific binding value, it may | and SID Structure according to local policy. | |||
| do so by sending a PCUpd or PCInitiate message containing a TE-PATH- | ||||
| BINDING TLV. If the value can be successfully allocated, the PCC | ||||
| reports the binding value to the PCE. If the PCC considers the | ||||
| binding value specified by the PCE invalid, it MUST send a PCErr | ||||
| message with Error-Type = TBD2 ("Binding label/SID failure") and | ||||
| Error Value = TBD3 ("Invalid SID"). If the binding value is valid, | ||||
| but the PCC is unable to allocate the binding value, it MUST send a | ||||
| PCErr message with Error-Type = TBD2 ("Binding label/SID failure") | ||||
| and Error Value = TBD4 ("Unable to allocate the specified label/ | ||||
| SID"). | ||||
| If a PCC receives TE-PATH-BINDING TLV in any message other than PCUpd | If a PCC wishes to withdraw a previously reported binding value, it | |||
| or PCInitiate, it MUST close the corresponding PCEP session with the | MUST send a PCRpt message with the specific TE-PATH-BINDING TLV with | |||
| reason "Reception of a malformed PCEP message" (according to | R flag set to 1. If a PCC wishes to modify a previously reported | |||
| [RFC5440]). Similarly, if a PCE receives a TE-PATH-BINDING TLV in | binding, it MUST withdraw the old binding value (with R flag set in | |||
| any message other than a PCRpt or if the TE-PATH-BINDING TLV is | the old TE-PATH-BINDING TLV) and include a new TE-PATH-BINDING TLV | |||
| associated with any object other than LSP object, the PCE MUST close | containing the new binding value. Note that, other instances of TE- | |||
| the corresponding PCEP session with the reason "Reception of a | PATH-BINDING TLVs that are unchanged MAY also be included. | |||
| malformed PCEP message" (according to [RFC5440]). | ||||
| If a PCC wishes to withdraw or modify a previously reported binding | If a PCE requires a PCC to allocate a specific binding value(s), it | |||
| value, it MUST send a PCRpt message without any TE-PATH-BINDING TLV | may do so by sending a PCUpd or PCInitiate message containing a TE- | |||
| or with the TE-PATH-BINDING TLV containing the new binding value | PATH-BINDING TLV(s). If the value(s) can be successfully allocated, | |||
| respectively. | the PCC reports the binding value(s) to the PCE. If the PCC | |||
| considers the binding value specified by the PCE invalid, it MUST | ||||
| send a PCErr message with Error-Type = TBD2 ("Binding label/SID | ||||
| failure") and Error Value = TBD3 ("Invalid SID"). If the binding | ||||
| value is valid, but the PCC is unable to allocate the binding value, | ||||
| it MUST send a PCErr message with Error-Type = TBD2 ("Binding label/ | ||||
| SID failure") and Error Value = TBD4 ("Unable to allocate the | ||||
| specified binding value"). Note that in case of an error, the PCC | ||||
| rejects the PCUpd or PCInitiate message in its entirety and can carry | ||||
| the offending TE-PATH-BINDING TLV in the PCEP-ERROR object. | ||||
| If a PCE wishes to modify a previously requested binding value, it | If a PCE wishes to request withdrawal of a previously reported | |||
| MUST send a PCUpd message with TE-PATH-BINDING TLV containing the new | binding value, it MUST send a PCUpd message with the specific TE- | |||
| binding value. The absence of TE-PATH-BINDING TLV in PCUpd message | PATH-BINDING TLV with R flag set to 1. If a PCE wishes to modify a | |||
| means that the PCE does not specify a binding value in which case the | previously requested binding value, it MUST request withdrawal of the | |||
| binding value allocation is governed by the PCC's local policy. | old binding value (with R flag set in the old TE-PATH-BINDING TLV) | |||
| and include a new TE-PATH-BINDING TLV containing the new binding | ||||
| value. | ||||
| If a PCC receives a valid binding value from a PCE which is different | In some cases, a stateful PCE can request the PCC to allocate any | |||
| than the current binding value, it MUST try to allocate the new | binding value. It instructs the PCC by sending a PCUpd message | |||
| value. If the new binding value is successfully allocated, the PCC | containing an empty TE-PATH-BINDING TLV, i.e., no binding value is | |||
| MUST report the new value to the PCE. Otherwise, it MUST send a | specified (making the length field of the TLV as 4). A PCE can also | |||
| PCErr message with Error-Type = TBD2 ("Binding label/SID failure") | request PCC to allocate a binding value at the time of initiation by | |||
| and Error Value = TBD4 ("Unable to allocate the specified label/ | sending a PCInitiate message with an empty TE-PATH-BINDING TLV. Only | |||
| one such instance of empty TE-PATH-BINDING TLV SHOULD be included in | ||||
| the LSP object and others ignored on receipt. If the PCC is unable | ||||
| to allocate a new binding value as per the specified BT, it MUST send | ||||
| a PCErr message with Error-Type = TBD2 ("Binding label/SID failure") | ||||
| and Error-Value = TBD5 ("Unable to allocate a new binding label/ | ||||
| SID"). | SID"). | |||
| In some cases, a stateful PCE can request the PCC to allocate a | As previously noted, if a message contains an invalid TE-PATH-BINDING | |||
| binding value. It may do so by sending a PCUpd message containing an | TLV that leads to an error condition, the whole message is rejected | |||
| empty TE-PATH-BINDING TLV, i.e., no binding value is specified | including any other valid instances of TE-PATH-BINDING TLVs, if any. | |||
| (making the length field of the TLV as 4). A PCE can also request | The resulting error message MAY include the offending TE-PATH-BINDING | |||
| PCC to allocate a binding value at the time of initiation by sending | TLV in the PCEP-ERROR object. | |||
| a PCInitiate message with an empty TE-PATH-BINDING TLV. If the PCC | ||||
| is unable to allocate a binding value, it MUST send a PCErr message | ||||
| with Error-Type = TBD2 ("Binding label/SID failure") and Error-Value | ||||
| = TBD5 ("Unable to allocate label/SID"). | ||||
| 5. Binding SID in SR-ERO | If a PCC receives a TE-PATH-BINDING TLV in any message other than | |||
| PCUpd or PCInitiate, it MUST close the corresponding PCEP session | ||||
| with the reason "Reception of a malformed PCEP message" (according to | ||||
| [RFC5440]). Similarly, if a PCE receives a TE-PATH-BINDING TLV in | ||||
| any message other than a PCRpt or if the TE-PATH-BINDING TLV is | ||||
| associated with any object other than an LSP or PCEP-ERROR object, | ||||
| the PCE MUST close the corresponding PCEP session with the reason | ||||
| "Reception of a malformed PCEP message" (according to [RFC5440]). | ||||
| If a TE-PATH-BINDING TLV is absent in the PCRpt message and no | ||||
| binding values were reported before, the PCE MUST assume that the | ||||
| corresponding LSP does not have any binding. Similarly, if TE-PATH- | ||||
| BINDING TLV is absent in the PCUpd message and no binding values were | ||||
| reported before, the PCC's local policy dictates how the binding | ||||
| allocations are made for a given LSP. | ||||
| 6. Binding SID in SR-ERO | ||||
| In PCEP messages, LSP route information is carried in the Explicit | In PCEP messages, LSP route information is carried in the Explicit | |||
| Route Object (ERO), which consists of a sequence of subobjects. | Route Object (ERO), which consists of a sequence of subobjects. | |||
| [RFC8664] defines a new ERO subobject "SR-ERO subobject" capable of | [RFC8664] defines a new ERO subobject "SR-ERO subobject" capable of | |||
| carrying a SID as well as the identity of the node/adjacency (NAI) | carrying a SID as well as the identity of the node/adjacency (NAI) | |||
| represented by the SID. The NAI Type (NT) field indicates the type | represented by the SID. The NAI Type (NT) field indicates the type | |||
| and format of the NAI contained in the SR-ERO. In case of binding | and format of the NAI contained in the SR-ERO. In case of binding | |||
| SID, the NAI MUST NOT be included and NT MUST be set to zero. So as | SID, the NAI MUST NOT be included and NT MUST be set to zero. So as | |||
| per Section 5.2.1 of [RFC8664], for NT=0, the F bit is set to 1, the | per Section 5.2.1 of [RFC8664], for NT=0, the F bit is set to 1, the | |||
| S bit needs to be zero and the Length is 8. Further, the M bit is | S bit needs to be zero and the Length is 8. Further, the M bit is | |||
| set. If these conditions are not met, the entire ERO MUST be | set. If these conditions are not met, the entire ERO MUST be | |||
| considered invalid and a PCErr message is sent with Error-Type = 10 | considered invalid and a PCErr message is sent by the PCC with Error- | |||
| ("Reception of an invalid object") and Error-Value = 11 ("Malformed | Type = 10 ("Reception of an invalid object") and Error-Value = 11 | |||
| object"). | ("Malformed object"). | |||
| 6. Binding SID in SRv6-ERO | 7. Binding SID in SRv6-ERO | |||
| [RFC8664] defines a new ERO subobject "SRv6-ERO subobject" for SRv6 | [I-D.ietf-pce-segment-routing-ipv6] defines a new ERO subobject | |||
| SID. The NAI MUST NOT be included and NT MUST be set to zero. So as | "SRv6-ERO subobject" for an SRv6 SID. As stated in Section 6, in | |||
| per Section 5.2.1 of [RFC8664], for NT=0, the F bit is set to 1, the | case of binding SID, the NAI is not included and NT is set to zero | |||
| S bit needs to be zero and the Length is 24. If these conditions are | i.e., NT=0, the F bit is set to 1, the S bit needs to be zero and the | |||
| not met, the entire ERO is considered invalid and a PCErr message is | Length is 24 [I-D.ietf-pce-segment-routing-ipv6]. As per [RFC8664], | |||
| sent with Error-Type = 10 ("Reception of an invalid object") and | if these conditions are not met, the entire ERO is considered invalid | |||
| Error-Value = 11 ("Malformed object") (as per [RFC8664]). | and a PCErr message is sent by the PCC with Error-Type = 10 | |||
| ("Reception of an invalid object") and Error-Value = 11 ("Malformed | ||||
| object"). | ||||
| 7. PCE Allocation of Binding SID | 8. PCE Allocation of Binding label/SID | |||
| Section 4 already includes the scenario where a PCE requires a PCC to | Section 5 already includes the scenario where a PCE requires a PCC to | |||
| allocate a specified binding value by sending a PCUpd or PCInitiate | allocate a specified binding value by sending a PCUpd or PCInitiate | |||
| message containing a TE-PATH-BINDING TLV. This section specify an | message containing a TE-PATH-BINDING TLV. This section specifies an | |||
| OPTIONAL feature for the PCE to allocate the binding label on its own | OPTIONAL feature for the PCE to allocate the binding label/SID on its | |||
| accord in the case where the PCE also controls the label space of the | own accord in the case where the PCE also controls the label space of | |||
| PCC and can make the label allocation on its own as described in | the PCC and can make the label allocation on its own as described in | |||
| [RFC8283]. Note that the act of requesting a specific binding value | [RFC8283]. Note that the act of requesting a specific binding value | |||
| (Section 4) is different from the act of allocating a binding label/ | (Section 5) is different from the act of allocating a binding label/ | |||
| SID as described in this section. | SID as described in this section. | |||
| [RFC8283] introduces the architecture for PCE as a central controller | [RFC8283] introduces the architecture for PCE as a central controller | |||
| as an extension of the architecture described in [RFC4655] and | as an extension of the architecture described in [RFC4655] and | |||
| assumes the continued use of PCEP as the protocol used between PCE | assumes the continued use of PCEP as the protocol used between PCE | |||
| and PCC. [I-D.ietf-pce-pcep-extension-for-pce-controller] specifies | and PCC. [I-D.ietf-pce-pcep-extension-for-pce-controller] specifies | |||
| the procedures and PCEP extensions for using the PCE as the central | the procedures and PCEP extensions for using the PCE as the central | |||
| controller. | controller. | |||
| For an implementation that supports PCECC operations as per | For an implementation that supports PCECC operations as per | |||
| [I-D.ietf-pce-pcep-extension-for-pce-controller], the binding label/ | [I-D.ietf-pce-pcep-extension-for-pce-controller], the binding label/ | |||
| SID MAY also be allocated by the PCE itself. Both peers need to | SID MAY also be allocated by the PCE itself. Both peers need to | |||
| exchange the PCECC capability as described in | exchange the PCECC capability as described in | |||
| [I-D.ietf-pce-pcep-extension-for-pce-controller] before PCE could | [I-D.ietf-pce-pcep-extension-for-pce-controller] before the PCE can | |||
| allocate the binding label/SID on its own. | allocate the binding label/SID on its own. | |||
| A new P flag in the LSP object [RFC8231] is introduced to indicate | A new P flag in the LSP object [RFC8231] is introduced to indicate | |||
| the allocation needs to be made by the PCE: | the allocation needs to be made by the PCE: | |||
| o P (PCE-allocated binding label/SID - TBD6): If the bit is set to | o P (PCE-allocated binding label/SID): If the bit is set to 1, it | |||
| 1, it indicates that the PCC requests PCE to make allocations for | indicates that the PCC requests PCE to make allocations for this | |||
| this LSP. The TLV in LSP object identifies what should be | LSP. The TE-PATH-BINDING TLV in the LSP object identifies that | |||
| allocated, such as Binding label/SID. A PCC would set this bit to | the allocation is for binding label/SID. A PCC would set this bit | |||
| 1 and include a TE-PATH-BINDING TLV in the LSP object to request | to 1 and include a TE-PATH-BINDING TLV in the LSP object to | |||
| for allocation of Binding label/SID by the PCE in the PCEP | request for allocation of binding label/SID by the PCE in the PCEP | |||
| message. A PCE would also set this bit to 1 and include a TE- | message. A PCE would also set this bit to 1 and include a TE- | |||
| PATH-BINDING TLV to indicate that the Binding label/SID is | PATH-BINDING TLV to indicate that the binding label/SID is | |||
| allocated by PCE and encoded in the PCEP message towards PCC. | allocated by PCE and encoded in the PCEP message towards PCC. | |||
| Further, a PCE would set this bit to 0 and include a TE-PATH- | Further, a PCE would set this bit to 0 and include a TE-PATH- | |||
| BINDING TLV in the LSP object to indicate that the Binding label/ | BINDING TLV in the LSP object to indicate that the binding label/ | |||
| SID should be allocated by the PCC as described in Section 4. | SID should be allocated by the PCC as described in Section 5. | |||
| Note that, | Note that - | |||
| o a PCE could allocate the binding label/SID on its own accord for a | o A PCE could allocate the binding label/SID on its own accord for a | |||
| PCE-initiated or delegated LSP, and inform the PCC in the | PCE-initiated or delegated LSP, and inform the PCC in the | |||
| PCInitiate message or PCUpd message by setting P=1 and including | PCInitiate message or PCUpd message by setting P=1 and including | |||
| TE-PATH-BINDING TLV in the LSP object. | TE-PATH-BINDING TLV in the LSP object. | |||
| o to let the PCC allocates the binding label/SID, a PCE could set | o To let the PCC allocates the binding label/SID, a PCE could set | |||
| P=0 and empty TE-PATH-BINDING TLV ( i.e., no binding value is | P=0 and include an empty TE-PATH-BINDING TLV ( i.e., no binding | |||
| specified) in the LSP object in PCInitiate/PCUpd message. | value is specified) in the LSP object in PCInitiate/PCUpd message. | |||
| o a PCC could request that the PCE allocate the binding label/SID by | o A PCC could request that the PCE allocate the binding label/SID by | |||
| setting P=1, D=1, and empty TE-PATH-BINDING TLV in PCRpt message. | setting P=1, D=1, and including an empty TE-PATH-BINDING TLV in | |||
| The PCE would allocate it and respond to the PCC with PCUpd | PCRpt message. The PCE would allocate it and respond to the PCC | |||
| message including the allocated binding label/SID in the TE-PATH- | with PCUpd message including the allocated binding label/SID in | |||
| BINDING TLV and P=1, D=1 in the LSP object. | the TE-PATH-BINDING TLV and P=1, D=1 in the LSP object. | |||
| o if both peers have not exchanged the PCECC capabilities as per | o If both peers have not exchanged the PCECC capabilities as per | |||
| [I-D.ietf-pce-pcep-extension-for-pce-controller] and it receives | [I-D.ietf-pce-pcep-extension-for-pce-controller] and a PCEP peer | |||
| P=1 in the LSP object, it needs to act as per | receives P=1 in the LSP object, it needs to act as per | |||
| [I-D.ietf-pce-pcep-extension-for-pce-controller]: | [I-D.ietf-pce-pcep-extension-for-pce-controller]: | |||
| * Send a PCErr message with Error-Type=19 (Invalid Operation) and | * Send a PCErr message with Error-Type=19 (Invalid Operation) and | |||
| Error-Value=TBD (Attempted PCECC operations when PCECC | Error-Value=16 (Attempted PCECC operations when PCECC | |||
| capability was not advertised) | capability was not advertised) | |||
| * Terminate the PCEP session | * Terminate the PCEP session | |||
| It is assumed that the label range to be used by a PCE is known and | It is assumed that the label range to be used by a PCE is known and | |||
| set on both PCEP peers. The exact mechanism is out of scope of | set on both PCEP peers. The exact mechanism is out of scope of | |||
| [I-D.ietf-pce-pcep-extension-for-pce-controller] or this document. | [I-D.ietf-pce-pcep-extension-for-pce-controller] or this document. | |||
| Note that the specific BSID could be from the PCE-controlled or the | Note that the specific BSID could be from the PCE-controlled or the | |||
| PCC-controlled label space. PCE would directly allocate the label | PCC-controlled label space. The PCE can directly allocate the label | |||
| from the PCE-controlled label space using P=1 as described above, | from the PCE-controlled label space using P=1 as described above, | |||
| whereas PCE would request for the allocation of a specific BSID from | whereas the PCE can request for the allocation of a specific BSID | |||
| the PCC-controlled label space with P=0 as described in Section 4. | from the PCC-controlled label space with P=0 as described in | |||
| Section 5. | ||||
| 8. Implementation Status | 9. Implementation Status | |||
| [Note to the RFC Editor - remove this section before publication, as | [Note to the RFC Editor - remove this section before publication, as | |||
| well as remove the reference to RFC 7942.] | well as remove the reference to RFC 7942.] | |||
| This section records the status of known implementations of the | This section records the status of known implementations of the | |||
| protocol defined by this specification at the time of posting of this | protocol defined by this specification at the time of posting of this | |||
| Internet-Draft, and is based on a proposal described in [RFC7942]. | Internet-Draft, and is based on a proposal described in [RFC7942]. | |||
| The description of implementations in this section is intended to | The description of implementations in this section is intended to | |||
| assist the IETF in its decision processes in progressing drafts to | assist the IETF in its decision processes in progressing drafts to | |||
| RFCs. Please note that the listing of any individual implementation | RFCs. Please note that the listing of any individual implementation | |||
| skipping to change at page 12, line 47 ¶ | skipping to change at page 13, line 30 ¶ | |||
| features. Readers are advised to note that other implementations may | features. Readers are advised to note that other implementations may | |||
| exist. | exist. | |||
| According to [RFC7942], "this will allow reviewers and working groups | According to [RFC7942], "this will allow reviewers and working groups | |||
| to assign due consideration to documents that have the benefit of | to assign due consideration to documents that have the benefit of | |||
| running code, which may serve as evidence of valuable experimentation | running code, which may serve as evidence of valuable experimentation | |||
| and feedback that have made the implemented protocols more mature. | and feedback that have made the implemented protocols more mature. | |||
| It is up to the individual working groups to use this information as | It is up to the individual working groups to use this information as | |||
| they see fit". | they see fit". | |||
| 8.1. Huawei | 9.1. Huawei | |||
| o Organization: Huawei | o Organization: Huawei | |||
| o Implementation: Huawei's Router and Controller | o Implementation: Huawei's Router and Controller | |||
| o Description: An experimental code-point is used and plan to | o Description: An experimental code-point is used and plan to | |||
| request early code-point allocation from IANA after WG adoption. | request early code-point allocation from IANA after WG adoption. | |||
| o Maturity Level: Production | o Maturity Level: Production | |||
| o Coverage: Full | o Coverage: Full | |||
| o Contact: chengli13@huawei.com | o Contact: chengli13@huawei.com | |||
| 8.2. Cisco | 9.2. Cisco | |||
| o Organization: Cisco Systems | o Organization: Cisco Systems | |||
| o Implementation: Head-end and controller. | o Implementation: Head-end and controller. | |||
| o Description: An experimental code-point is currently used. | o Description: An experimental code-point is currently used. | |||
| o Maturity Level: Production | o Maturity Level: Production | |||
| o Coverage: Full | o Coverage: Full | |||
| o Contact: mkoldych@cisco.com | o Contact: mkoldych@cisco.com | |||
| 9. Security Considerations | 10. Security Considerations | |||
| The security considerations described in [RFC5440], [RFC8231], | The security considerations described in [RFC5440], [RFC8231], | |||
| [RFC8281] and [RFC8664] are applicable to this specification. No | [RFC8281] and [RFC8664] are applicable to this specification. No | |||
| additional security measure is required. | additional security measure is required. | |||
| As described [RFC8664], SR allows a network controller to instantiate | As described [RFC8664], SR allows a network controller to instantiate | |||
| and control paths in the network. A rouge PCE can manipulate binding | and control paths in the network. A rogue PCE can manipulate binding | |||
| SID allocations to move traffic around for some other LSPs that uses | SID allocations to move traffic around for some other LSP that uses | |||
| BSID in its SR-ERO. | BSID in its SR-ERO. | |||
| Thus, as per [RFC8231], it is RECOMMENDED that these PCEP extensions | Thus, as per [RFC8231], it is RECOMMENDED that these PCEP extensions | |||
| only be activated on authenticated and encrypted sessions across PCEs | only be activated on authenticated and encrypted sessions across PCEs | |||
| and PCCs belonging to the same administrative authority, using | and PCCs belonging to the same administrative authority, using | |||
| Transport Layer Security (TLS) [RFC8253], as per the recommendations | Transport Layer Security (TLS) [RFC8253], as per the recommendations | |||
| and best current practices in BCP195 [RFC7525] (unless explicitly set | and best current practices in BCP195 [RFC7525] (unless explicitly set | |||
| aside in [RFC8253]). | aside in [RFC8253]). | |||
| 10. Manageability Considerations | 11. Manageability Considerations | |||
| All manageability requirements and considerations listed in | All manageability requirements and considerations listed in | |||
| [RFC5440], [RFC8231], and [RFC8664] apply to PCEP protocol extensions | [RFC5440], [RFC8231], and [RFC8664] apply to PCEP protocol extensions | |||
| defined in this document. In addition, requirements and | defined in this document. In addition, requirements and | |||
| considerations listed in this section apply. | considerations listed in this section apply. | |||
| 10.1. Control of Function and Policy | 11.1. Control of Function and Policy | |||
| A PCC implementation SHOULD allow the operator to configure the | A PCC implementation SHOULD allow the operator to configure the | |||
| policy based on which PCC needs to allocates the binding label/SID. | policy based on which PCC needs to allocates the binding label/SID. | |||
| 10.2. Information and Data Models | 11.2. Information and Data Models | |||
| The PCEP YANG module [I-D.ietf-pce-pcep-yang] could be extended to | The PCEP YANG module [I-D.ietf-pce-pcep-yang] could be extended to | |||
| include policy configuration for binding label/SID allocation. | include policy configuration for binding label/SID allocation. | |||
| 10.3. Liveness Detection and Monitoring | 11.3. Liveness Detection and Monitoring | |||
| Mechanisms defined in this document do not imply any new liveness | Mechanisms defined in this document do not imply any new liveness | |||
| detection and monitoring requirements in addition to those already | detection and monitoring requirements in addition to those already | |||
| listed in [RFC5440]. | listed in [RFC5440]. | |||
| 10.4. Verify Correct Operations | 11.4. Verify Correct Operations | |||
| Mechanisms defined in this document do not imply any new operation | Mechanisms defined in this document do not imply any new operation | |||
| verification requirements in addition to those already listed in | verification requirements in addition to those already listed in | |||
| [RFC5440], [RFC8231], and [RFC8664]. | [RFC5440], [RFC8231], and [RFC8664]. | |||
| 10.5. Requirements On Other Protocols | 11.5. Requirements On Other Protocols | |||
| Mechanisms defined in this document do not imply any new requirements | Mechanisms defined in this document do not imply any new requirements | |||
| on other protocols. | on other protocols. | |||
| 10.6. Impact On Network Operations | 11.6. Impact On Network Operations | |||
| Mechanisms defined in [RFC5440], [RFC8231], and [RFC8664] also apply | Mechanisms defined in [RFC5440], [RFC8231], and [RFC8664] also apply | |||
| to PCEP extensions defined in this document. Further, the mechanism | to PCEP extensions defined in this document. Further, the mechanism | |||
| described in this document can help the operator to request control | described in this document can help the operator to request control | |||
| of the LSPs at a particular PCE. | of the LSPs at a particular PCE. | |||
| 11. IANA Considerations | 12. IANA Considerations | |||
| IANA maintains the "Path Computation Element Protocol (PCEP) Numbers" | IANA maintains the "Path Computation Element Protocol (PCEP) Numbers" | |||
| registry. This document requests IANA actions to allocate code | registry. This document requests IANA actions to allocate code | |||
| points for the protocol elements defined in this document. | points for the protocol elements defined in this document. | |||
| 11.1. PCEP TLV Type Indicators | 12.1. PCEP TLV Type Indicators | |||
| This document defines a new PCEP TLV; IANA is requested to make the | This document defines a new PCEP TLV; IANA is requested to confirm | |||
| following allocations from the "PCEP TLV Type Indicators" subregistry | the following early allocations from the "PCEP TLV Type Indicators" | |||
| of the PCEP Numbers registry, as follows: | subregistry of the PCEP Numbers registry, as follows: | |||
| Value Description Reference | Value Description Reference | |||
| TBD1 TE-PATH-BINDING This document | 55 TE-PATH-BINDING This document | |||
| 11.1.1. TE-PATH-BINDING TLV | 12.1.1. TE-PATH-BINDING TLV | |||
| IANA is requested to create a new subregistry "TE-PATH-BINDING TLV BT | IANA is requested to create a new subregistry "TE-PATH-BINDING TLV BT | |||
| field" to manage the value of the Binding Type field in the TE-PATH- | field" to manage the value of the Binding Type field in the TE-PATH- | |||
| BINDING TLV. Initial values for the subregistry are given below. | BINDING TLV. Initial values for the subregistry are given below. | |||
| New values are assigned by Standards Action [RFC8126]. | New values are assigned by Standards Action [RFC8126]. | |||
| Value Description Reference | Value Description Reference | |||
| 0 MPLS Label This document | 0 MPLS Label This document | |||
| 1 MPLS Label Stack This document | 1 MPLS Label Stack This document | |||
| Entry | Entry | |||
| 2 SRv6 SID This document | 2 SRv6 SID This document | |||
| 3 SRv6 SID with This document | 3 SRv6 SID with This document | |||
| Behavior and | Behavior and | |||
| Structure | Structure | |||
| 4-255 Unassigned This document | ||||
| IANA is requested to create a new subregistry "TE-PATH-BINDING TLV | IANA is requested to create a new subregistry "TE-PATH-BINDING TLV | |||
| Flag field" to manage the Flag field in the TE-PATH-BINDING TLV. New | Flag field" to manage the Flag field in the TE-PATH-BINDING TLV. New | |||
| values are to be assigned by Standards Action [RFC8126]. Each bit | values are to be assigned by Standards Action [RFC8126]. Each bit | |||
| should be tracked with the following qualities: | should be tracked with the following qualities: | |||
| o Bit number (count from 0 as the most significant bit) | o Bit number (count from 0 as the most significant bit) | |||
| o Description | o Description | |||
| o Reference | o Reference | |||
| Bit Description Reference | Bit Description Reference | |||
| 7 Specified-BSID-Only This document | 0 R (Removal) This document | |||
| Flag (S-Flag) | 1-7 Unassigned This document | |||
| 6 Drop Upon Invalid This document | ||||
| Flag (I-Flag) | ||||
| 11.2. LSP Object | 12.2. LSP Object | |||
| IANA is requested to allocate new code-point in the "LSP Object Flag | IANA is requested to confirm the early allocation for a new code- | |||
| Field" sub-registry for the new P flag as follows: | point in the "LSP Object Flag Field" sub-registry for the new P flag | |||
| as follows: | ||||
| Bit Description Reference | Bit Description Reference | |||
| TBD6 PCE-allocated binding This document | 0 PCE-allocated binding This document | |||
| label/SID | label/SID | |||
| 11.3. PCEP Error Type and Value | 12.3. PCEP Error Type and Value | |||
| This document defines a new Error-type and Error-Values for the PCErr | This document defines a new Error-type and Error-Values for the PCErr | |||
| message. IANA is requested to allocate new error-type and error- | message. IANA is requested to allocate new error-type and error- | |||
| values within the "PCEP-ERROR Object Error Types and Values" | values within the "PCEP-ERROR Object Error Types and Values" | |||
| subregistry of the PCEP Numbers registry, as follows: | subregistry of the PCEP Numbers registry, as follows: | |||
| Error-Type Meaning Error-value Reference | Error-Type Meaning Error-value Reference | |||
| TBD2 Binding label/SID This | TBD2 Binding label/SID This | |||
| failure document | failure document | |||
| TBD3: Invalid SID This | TBD3: Invalid SID This | |||
| document | document | |||
| TBD4: Unable to allocate the This | TBD4: Unable to allocate the This | |||
| specified label/SID document | specified binding value document | |||
| TBD5: Unable to allocate This | TBD5: Unable to allocate a This | |||
| label/SID document | new binding label/SID document | |||
| 12. Acknowledgements | 13. Acknowledgements | |||
| We like to thank Milos Fabian, Mrinmoy Das, and Andrew Stone for | We like to thank Milos Fabian, Mrinmoy Das, Andrew Stone, Tom Petch, | |||
| their valuable comments. | Aijun Wang, Olivier Dugeon, and Adrian Farrel for their valuable | |||
| comments. | ||||
| 13. References | 14. References | |||
| 13.1. Normative References | 14.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | ||||
| Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | ||||
| Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, | ||||
| <https://www.rfc-editor.org/info/rfc3032>. | ||||
| [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation | [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation | |||
| Element (PCE) Communication Protocol (PCEP)", RFC 5440, | Element (PCE) Communication Protocol (PCEP)", RFC 5440, | |||
| DOI 10.17487/RFC5440, March 2009, | DOI 10.17487/RFC5440, March 2009, | |||
| <https://www.rfc-editor.org/info/rfc5440>. | <https://www.rfc-editor.org/info/rfc5440>. | |||
| [RFC5462] Andersson, L. and R. Asati, "Multiprotocol Label Switching | [RFC5462] Andersson, L. and R. Asati, "Multiprotocol Label Switching | |||
| (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic | (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic | |||
| Class" Field", RFC 5462, DOI 10.17487/RFC5462, February | Class" Field", RFC 5462, DOI 10.17487/RFC5462, February | |||
| 2009, <https://www.rfc-editor.org/info/rfc5462>. | 2009, <https://www.rfc-editor.org/info/rfc5462>. | |||
| skipping to change at page 17, line 48 ¶ | skipping to change at page 18, line 48 ¶ | |||
| and J. Hardwick, "Path Computation Element Communication | and J. Hardwick, "Path Computation Element Communication | |||
| Protocol (PCEP) Extensions for Segment Routing", RFC 8664, | Protocol (PCEP) Extensions for Segment Routing", RFC 8664, | |||
| DOI 10.17487/RFC8664, December 2019, | DOI 10.17487/RFC8664, December 2019, | |||
| <https://www.rfc-editor.org/info/rfc8664>. | <https://www.rfc-editor.org/info/rfc8664>. | |||
| [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
| Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
| RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
| <https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
| [I-D.ietf-spring-srv6-network-programming] | [RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, | |||
| Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., | D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 | |||
| Matsushima, S., and Z. Li, "SRv6 Network Programming", | (SRv6) Network Programming", RFC 8986, | |||
| draft-ietf-spring-srv6-network-programming-28 (work in | DOI 10.17487/RFC8986, February 2021, | |||
| progress), December 2020. | <https://www.rfc-editor.org/info/rfc8986>. | |||
| [I-D.ietf-pce-pcep-extension-for-pce-controller] | [I-D.ietf-pce-pcep-extension-for-pce-controller] | |||
| Li, Z., Peng, S., Negi, M., Zhao, Q., and C. Zhou, "PCEP | Li, Z., Peng, S., Negi, M., Zhao, Q., and C. Zhou, "PCEP | |||
| Procedures and Protocol Extensions for Using PCE as a | Procedures and Protocol Extensions for Using PCE as a | |||
| Central Controller (PCECC) of LSPs", draft-ietf-pce-pcep- | Central Controller (PCECC) of LSPs", draft-ietf-pce-pcep- | |||
| extension-for-pce-controller-10 (work in progress), | extension-for-pce-controller-10 (work in progress), | |||
| January 2021. | January 2021. | |||
| 13.2. Informative References | 14.2. Informative References | |||
| [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | |||
| Element (PCE)-Based Architecture", RFC 4655, | Element (PCE)-Based Architecture", RFC 4655, | |||
| DOI 10.17487/RFC4655, August 2006, | DOI 10.17487/RFC4655, August 2006, | |||
| <https://www.rfc-editor.org/info/rfc4655>. | <https://www.rfc-editor.org/info/rfc4655>. | |||
| [RFC8283] Farrel, A., Ed., Zhao, Q., Ed., Li, Z., and C. Zhou, "An | [RFC8283] Farrel, A., Ed., Zhao, Q., Ed., Li, Z., and C. Zhou, "An | |||
| Architecture for Use of PCE and the PCE Communication | Architecture for Use of PCE and the PCE Communication | |||
| Protocol (PCEP) in a Network with Central Control", | Protocol (PCEP) in a Network with Central Control", | |||
| RFC 8283, DOI 10.17487/RFC8283, December 2017, | RFC 8283, DOI 10.17487/RFC8283, December 2017, | |||
| skipping to change at page 19, line 5 ¶ | skipping to change at page 19, line 43 ¶ | |||
| P. Mattes, "Segment Routing Policy Architecture", draft- | P. Mattes, "Segment Routing Policy Architecture", draft- | |||
| ietf-spring-segment-routing-policy-09 (work in progress), | ietf-spring-segment-routing-policy-09 (work in progress), | |||
| November 2020. | November 2020. | |||
| [I-D.ietf-pce-pcep-yang] | [I-D.ietf-pce-pcep-yang] | |||
| Dhody, D., Hardwick, J., Beeram, V., and J. Tantsura, "A | Dhody, D., Hardwick, J., Beeram, V., and J. Tantsura, "A | |||
| YANG Data Model for Path Computation Element | YANG Data Model for Path Computation Element | |||
| Communications Protocol (PCEP)", draft-ietf-pce-pcep- | Communications Protocol (PCEP)", draft-ietf-pce-pcep- | |||
| yang-15 (work in progress), October 2020. | yang-15 (work in progress), October 2020. | |||
| [I-D.ietf-pce-segment-routing-ipv6] | ||||
| Li, C., Negi, M., Sivabalan, S., Koldychev, M., | ||||
| Kaladharan, P., and Y. Zhu, "PCEP Extensions for Segment | ||||
| Routing leveraging the IPv6 data plane", draft-ietf-pce- | ||||
| segment-routing-ipv6-08 (work in progress), November 2020. | ||||
| Appendix A. Contributor Addresses | Appendix A. Contributor Addresses | |||
| Jonathan Hardwick | Jonathan Hardwick | |||
| Metaswitch Networks | Metaswitch Networks | |||
| 100 Church Street | 33 Genotin Road | |||
| Enfield, Middlesex | Enfield | |||
| UK | United Kingdom | |||
| EMail: Jonathan.Hardwick@metaswitch.com | EMail: Jonathan.Hardwick@metaswitch.com | |||
| Dhruv Dhody | Dhruv Dhody | |||
| Huawei Technologies | Huawei Technologies | |||
| Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefield | |||
| Bangalore, Karnataka 560066 | Bangalore, Karnataka 560066 | |||
| India | India | |||
| EMail: dhruv.ietf@gmail.com | EMail: dhruv.ietf@gmail.com | |||
| skipping to change at page 20, line 13 ¶ | skipping to change at page 21, line 13 ¶ | |||
| EMail: msiva282@gmail.com | EMail: msiva282@gmail.com | |||
| Clarence Filsfils | Clarence Filsfils | |||
| Cisco Systems, Inc. | Cisco Systems, Inc. | |||
| Pegasus Parc | Pegasus Parc | |||
| De kleetlaan 6a, DIEGEM BRABANT 1831 | De kleetlaan 6a, DIEGEM BRABANT 1831 | |||
| BELGIUM | BELGIUM | |||
| EMail: cfilsfil@cisco.com | EMail: cfilsfil@cisco.com | |||
| Jeff Tantsura | Jeff Tantsura | |||
| Apstra, Inc. | Juniper Networks | |||
| EMail: jefftant.ietf@gmail.com | EMail: jefftant.ietf@gmail.com | |||
| Stefano Previdi | Stefano Previdi | |||
| Huawei Technologies | Huawei Technologies | |||
| EMail: stefano@previdi.net | EMail: stefano@previdi.net | |||
| Cheng Li | Cheng Li | |||
| Huawei Technologies | Huawei Technologies | |||
| End of changes. 107 change blocks. | ||||
| 289 lines changed or deleted | 335 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/ | ||||