RFC 9358

Path Computation Element Communication Protocol (PCEP) Extensions for Establishing Relationships between Sets of Label Switched Paths and Virtual Networks

πŸ“… published February 2023, from ietf

RFC 9358: PCEP Extensions for Establishing Relationships between Sets of Label Switched Paths and Virtual Networks πŸŽ€

RFC number: 9358 Category: Standards Track Date: February 2023 ISSN: 2070-1721 Obsoletes / Updates: Neither is listed in this document's title block.

Authors:

  • Y. Lee, Samsung Electronics πŸ’–
  • H. Zheng, Huawei Technologies 🌸
  • D. Ceccarelli, Cisco Systems πŸ¦‹

The title block doesn't list anything this one obsoletes or updates, so it's a standalone spec. Iconic energy ✨

Abstract

Okay so this doc is about how to level up the PCEP association mechanism from RFC 8697. The goal is to link sets of Label Switched Paths (LSPs) to a bigger structure, like a Virtual Network (VN) that a customer or application asked for. 🧚 That lets you control a whole VN using the PCE architecture, and it's giving very organized, very clean vibes πŸ’…

Status of This Memo

This is an Internet Standards Track document. 🌈

It's a product of the Internet Engineering Task Force (IETF), so it reflects the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). If you want more info on Internet Standards, check out Section 2 of RFC 7841. πŸ“š

For the current status, any errata, and how to send feedback, go to https://www.rfc-editor.org/info/rfc9358. ✨

Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved. πŸ”’

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they stand on the publication date. Please actually read those, bestie, because they explain your rights and restrictions for this document. πŸ’€

Code Components pulled from this document must include the Revised BSD License text, as described in Section 4.e of the Trust Legal Provisions. They're also provided without warranty, as described in the Revised BSD License.

Table of Contents πŸ—‚οΈ

1.  Introduction
2.  Terminology
3.  Operation Overview
4.  Extensions to PCEP
5.  Security Considerations
6.  IANA Considerations
  6.1.  ASSOCIATION Object Type Indicator
  6.2.  PCEP TLV Type Indicator
  6.3.  PCEP Error
7.  Manageability Considerations
  7.1.  Control of Function and Policy
  7.2.  Information and Data Models
  7.3.  Liveness Detection and Monitoring
  7.4.  Verification of Correct Operations
  7.5.  Requirements on Other Protocols
  7.6.  Impact on Network Operations
8.  References
  8.1.  Normative References
  8.2.  Informative References
Contributors
Authors' Addresses

1. Introduction ✨

Okay, so PCEP is the protocol that lets Path Computation Elements (PCEs) do path computations when Path Computation Clients (PCCs) ask them to πŸ’– [RFC5440].

[RFC8051] is the one to read for general considerations on stateful PCE deployments. It covers applicability, benefits, challenges, and limitations through a bunch of use cases 🌸. [RFC8231] adds PCEP extensions for stateful control. A stateful PCE doesn't just know what the IGP tells it. It also knows the set of active paths and their reserved resources πŸ‘‘. That extra state lets it compute constrained paths while thinking about each individual LSP and how they interact with each other. Main character energy πŸ’…

[RFC8281] covers the setup, maintenance, and teardown of PCE-initiated LSPs under the stateful PCE model πŸ¦‹.

[RFC8697] brings in a generic mechanism for grouping LSPs 🫢. You can use those groups to define associations between sets of LSPs, or between a set of LSPs and a set of attributes ✨.

[RFC8453] is the framework for Abstraction and Control of TE Networks (ACTN). It describes the different VN operations a customer or application can start. A VN is basically the customer's view of the TE network πŸŽ€. Which VN operations and views you get depends on what the client and provider agreed to, so there's a lot of flexibility 🌈.

[RFC8637] looks at the PCE and ACTN architectures and explains how PCE applies to ACTN 🧚. [RFC6805] and [RFC8751] describe a hierarchy of stateful PCEs, where a parent PCE coordinates multi-domain path computation across child PCEs. That's the foundation for PCE applicability to ACTN πŸ”₯. As [RFC8751] explains, in ACTN the child PCE is the Provisioning Network Controller (PNC), and the parent PCE is the Multi-Domain Service Coordinator (MDSC) πŸ‘‘.

So here's the thing πŸ™ˆ. We need a way to tie a set of LSPs to a VN "construct" so VN operations are easier in the PCE architecture. This association tells a PCE which LSPs belong to a certain VN. Then the PCE can optimize every LSP in that VN all at once πŸ’–. It can also take VN-specific actions, like relaxing constraints, taking policy actions, setting default behavior, and so on ✨.

This document specifies a PCEP extension that associates a set of LSPs based on their VN. Iconic, honestly πŸ’…πŸ«Ά

2. Terminology πŸŽ€

This document uses terminology from [RFC4655], [RFC5440], [RFC6805], [RFC8231], and [RFC8453] πŸ“š.

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 read as described in BCP 14 [RFC2119] [RFC8174]. They only carry that meaning when they appear in all capitals, exactly as shown here πŸ”₯.

3. Operation Overview ✨

okay so bestie, here's the big picture πŸ¦‹ LSPs (label switched paths) get linked up with the other LSPs they interact with by joining a shared association group, same as in [RFC8697]. and this doc is all about a special group called the "VN Association Group (VNAG)" πŸ’œ the whole point is that a bunch of LSPs that belong to one virtual network (VN) get treated as a team, not as lonely solo LSPs 🫢

why does that matter? ngl it's giving main character energy for optimization πŸ’… when you're computing a path, you wanna see how that one LSP affects all the other LSPs in the same VN, not just tunnel-vision on one. the optimization goals (like minimizing the load on the most loaded link (MLL) [RFC5541]) can be applied across the whole VN association πŸ“ and when the PCE does path reoptimization, it can use fancy advanced algorithms that look at every LSP in the VN and optimize them all together 🧚

3.1. VN Association Group ✨

here's the setup πŸŽ€ this doc defines the VNAG, and it's how you tie a set of LSPs to a VN. the ASSOCIATION object has a field that says what kind of association it is, and this doc adds a new Association Type value of 7 meaning "VN Association" 🌈 the Association Identifier in that object is the VNAG Identifier, and it's handled exactly like the generic Association Identifier from [RFC8697] πŸ’–

a "VNAG object" just means an ASSOCIATION object with the Association Type set to "VN Association" (7) πŸ¦‹

okay now the rules, and they're strict bestie πŸ™ˆ

  • local policies on the PCE decide the computational and optimization behavior for the LSPs in the VN πŸ”₯
  • an LSP MUST NOT belong to more than one VNAG πŸ’€
  • if an implementation sees more than one VNAG object in a PCEP message, it MUST process the first one and MUST ignore the rest 🫢

3.2. Advertising Support for the VN Association Type ✨

[RFC8697] says how a PCEP speaker tells its peer which Association Types it supports, using the ASSOC-Type-List TLV inside an OPEN object πŸ’œ so, a PCEP speaker MUST include the VN Association Type (7) in the ASSOC-Type-List TLV before it uses the VNAG object in any PCEP message. no skipping this step, periodt πŸ’…

and if the implementation doesn't support the VN Association Type, it'll send back a PCErr message with Error-Type=26 (Association Error) and Error-value=1 (Association Type is not supported) πŸ™ˆ as per [RFC8697], of course ✨

3.3. VNAG Identifiers ✨

the VNAG IDs are dynamic, so they're not something you configure by hand 🧚 they get created by the parent PCE (MDSC) based on the VN operations for the LSPs in the same VN 🌸 operator configuration of VNAG IDs is not supported, so there's no need to set an Operator-configured Association Range at all πŸŽ€

which means the VN Association Type (7) MUST NOT be present in the Operator-configured Association Range TLV, even if that TLV shows up in the OPEN object πŸ’€ and if an implementation does spot the VN Association Type (7) in an Operator-configured Association Range TLV anyway, it MUST ignore the associated Start-Assoc-ID and Range values πŸ™ˆ

3.4. Parent and Child PCE Interaction ✨

this association is especially useful in a PCEP session between a parent PCE (MDSC) and a child PCE (PNC) πŸ¦‹ when the child PCE is computing a path, it looks at the VN association in the parent PCE's request, then maps the VN to the associated LSPs and network resources πŸ’–

from the parent PCE's point of view, it gets a VN creation request from its customer 🫢 the VN is uniquely identified by the association parameters (Section 6.1.4 of [RFC8697]) in the VNAG, or by the Virtual Network Identifier encoded in the VIRTUAL-NETWORK-TLV ✨ that VN can be made of multiple LSPs in one domain or spread across multiple domains 🌈

the parent PCE sends a PCInitiate message with this association info in the VNAG object 🧚 that effectively binds an LSP that's about to be instantiated at the child PCE to the VN πŸ’œ and the VN association information MUST be included as part of the first PCRpt message πŸ’…

here's the picture of a typical VN operation using PCEP πŸ¦‹ (in a multi-domain setup, each domain is run by its own child PCE, and the border nodes in each domain stitch the segments together for the cross-domain tunnel once they get the instruction from their child PCE (PNC) 🌸)

                             ******
                   ..........*MDSC*..............................
                .            ****** ..                   MPI    .
             .                .        .                        .
          .                   .          .   PCInitiate LSPx    .
        .                    .             .   with VNAG        .
       .                    .                .                  .
      .                    .                  .                 .
     .                    .                    .                .
     v                    v                    v                .
   ******               ******               ******             .
   *PNC1*               *PNC2*               *PNC4*             .
   ******               ******               ******             .
   +---------------+    +---------------+    +---------------+  .
   |               |----|               |----|              C|  .
   |               |    |               |    |               |  .
   |DOMAIN 1       |----|DOMAIN 2       |----|DOMAIN 4       |  .
   +---------------+    +---------------+    +---------------+  .
                                            /                   .
                       ******              /                    .
                       *PNC3*<............/......................
                       ******            /
                       +---------------+/
                       |               |
                       |               |
                       |DOMAIN 3       |
                       +---------------+

   MDSC -> parent PCE
   PNC  -> child  PCE
   MPI  -> PCEP

       Figure 1: Example of VN Operations in H-PCE (Hierarchical PCE)
                                Architecture

whenever something changes with an instantiated LSP in a domain network, the domain's child PCE reports it with a PCRpt message, and the VNAG object in there shows how that LSP relates to the VN πŸŽ€ and whenever the customer updates a VN, the parent PCE sends a PCUpd message to let each affected child PCE know 🫢


4. Extensions to PCEP πŸŽ€

the VNAG uses the generic ASSOCIATION object from [RFC8697] πŸ’œ

this doc defines one new mandatory TLV, the "VIRTUAL-NETWORK-TLV" ✨ it can optionally be used together with the existing VENDOR-INFORMATION-TLV from [RFC7470], as described below 🌈

  • VIRTUAL-NETWORK-TLV: used to communicate the Virtual Network Identifier πŸ¦‹
  • VENDOR-INFORMATION-TLV: used to communicate arbitrary vendor-specific behavioral information, as described in [RFC7470] 🧚

the format of the VIRTUAL-NETWORK-TLV looks like this πŸ“

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Type=65             |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   //                   Virtual Network Identifier                //
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Figure 2: Format of the VIRTUAL-NETWORK-TLV

4.1. VIRTUAL-NETWORK-TLV Fields ✨

  • Type (16 bits): 65 πŸ’–
  • Length (16 bits): the length of the value portion of the TLV in octets, and it MUST be greater than 0 πŸ”₯ the TLV MUST be zero-padded so it's 4-octet aligned 🫢
  • Virtual Network Identifier (variable): a symbolic name that uniquely identifies the VN 🧚 it SHOULD be a string of printable ASCII [RFC0020] characters (i.e., 0x20 to 0x7E), without a NULL terminator πŸŽ€ it's a human-readable string that identifies a VN, and it can be specified along with the association info, which may be carried in a VENDOR-INFORMATION-TLV 🌸 an implementation uses it to keep a mapping to the VNAG and the LSPs associated with the VN πŸ’œ the Virtual Network Identifier MAY be specified by the customer, set via an operator policy, or auto-generated by the PCEP speaker ✨

the VIRTUAL-NETWORK-TLV MUST be included in the VNAG object πŸ’€ if a PCEP speaker gets a VNAG object without the VIRTUAL-NETWORK-TLV, it MUST send a PCErr message with Error-Type=6 (Mandatory Object missing) and Error-value=18 (VIRTUAL-NETWORK-TLV missing), and then close the session πŸ™ˆ

the format of the VENDOR-INFORMATION-TLV is defined in [RFC7470] πŸ¦‹

if a PCEP speaker receives a VNAG object with a TLV that breaks the rules in this document, it MUST send a PCErr message with Error-Type=10 (Reception of an invalid object) and Error-value=11 (Malformed object), and it MUST close the PCEP session πŸ’€


5. Security Considerations πŸ’€

the security considerations from [RFC5440], [RFC8231], and [RFC8281] apply to the extensions in this document too πŸ”₯

this doc introduces the VN Association Type (7) for the ASSOCIATION object 🧚 more security stuff about LSP associations, due to a malicious PCEP speaker, is described in [RFC8697], and it applies to the VN Association Type as well 😭 so securing the PCEP session with Transport Layer Security (TLS) [RFC8253] is RECOMMENDED 🫢 this is seriously not optional-vibes, bestie, lock that session down πŸ”’


6. IANA Considerations 🌈

6.1. ASSOCIATION Object Type Indicator πŸŽ€

IANA has assigned the following new value in the "ASSOCIATION Type Field" subregistry within the "Path Computation Element Protocol (PCEP) Numbers" registry πŸ¦‹

+=======+================+===========+
| Value | Name           | Reference |
+=======+================+===========+
| 7     | VN Association | RFC 9358  |
+-------+----------------+-----------+

                 Table 1

6.2. PCEP TLV Type Indicator πŸ’œ

IANA has assigned the following new value in the "PCEP TLV Type Indicators" subregistry within the "Path Computation Element Protocol (PCEP) Numbers" registry ✨

+=======+=====================+===========+
| Value | Name                | Reference |
+=======+=====================+===========+
| 65    | VIRTUAL-NETWORK-TLV | RFC 9358  |
+-------+---------------------+-----------+

                    Table 2

6.3. PCEP Error 🧚

IANA has allocated the following new error value in the "PCEP-ERROR Object Error Types and Values" subregistry within the "Path Computation Element Protocol (PCEP) Numbers" registry 🌸

+============+================+=====================+===========+
| Error-Type | Meaning        | Error-value         | Reference |
+============+================+=====================+===========+
| 6          | Mandatory      | 18: VIRTUAL-        | RFC 9358  |
|            | Object missing | NETWORK-TLV missing |           |
+------------+----------------+---------------------+-----------+

                               Table 3

7. Manageability Considerations πŸ“

7.1. Control of Function and Policy πŸŽ€

an operator MUST be allowed to mark LSPs that belong to the same VN πŸ’– this could also be done automatically based on the VN configuration ✨

7.2. Information and Data Models ✨

okay so the PCEP YANG module [PCE-PCEP-YANG] should support the association between LSPs, and that includes VN association πŸ¦‹

7.3. Liveness Detection and Monitoring πŸ’–

bestie, the mechanisms in this doc don't add any new liveness detection and monitoring requirements on top of the ones already listed in [RFC5440] 🫢

7.4. Verification of Correct Operations πŸ”

same energy here: no new operation verification requirements beyond what's already in [RFC5440] πŸ’…

7.5. Requirements on Other Protocols 🌸

the mechanisms here don't put any new requirements on other protocols. Other protocols are literally off the hook 🧚

7.6. Impact on Network Operations πŸ“

[RFC8637] describes the network operations when PCE is used for VN operations. Section 3 further specifies the operations when VN associations are used. It's giving "read the previous chapter first" πŸ“–βœ¨

8. References ✨

8.1. Normative References 🌈

[RFC0020]  Cerf, V., "ASCII format for network interchange", STD 80,
           RFC 20, DOI 10.17487/RFC0020, October 1969,
           <https://www.rfc-editor.org/info/rfc20>.

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119,
           DOI 10.17487/RFC2119, March 1997,
           <https://www.rfc-editor.org/info/rfc2119>.

[RFC5440]  Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation
           Element (PCE) Communication Protocol (PCEP)", RFC 5440,
           DOI 10.17487/RFC5440, March 2009,
           <https://www.rfc-editor.org/info/rfc5440>.

[RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
           2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
           May 2017, <https://www.rfc-editor.org/info/rfc8174>.

[RFC8231]  Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path
           Computation Element Communication Protocol (PCEP)
           Extensions for Stateful PCE", RFC 8231,
           DOI 10.17487/RFC8231, September 2017,
           <https://www.rfc-editor.org/info/rfc8231>.

[RFC8253]  Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody,
           "PCEPS: Usage of TLS to Provide a Secure Transport for the
           Path Computation Element Communication Protocol (PCEP)",
           RFC 8253, DOI 10.17487/RFC8253, October 2017,
           <https://www.rfc-editor.org/info/rfc8253>.

[RFC8281]  Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path
           Computation Element Communication Protocol (PCEP)
           Extensions for PCE-Initiated LSP Setup in a Stateful PCE
           Model", RFC 8281, DOI 10.17487/RFC8281, December 2017,
           <https://www.rfc-editor.org/info/rfc8281>.

[RFC8697]  Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H.,
           Dhody, D., and Y. Tanaka, "Path Computation Element
           Communication Protocol (PCEP) Extensions for Establishing
           Relationships between Sets of Label Switched Paths
           (LSPs)", RFC 8697, DOI 10.17487/RFC8697, January 2020,
           <https://www.rfc-editor.org/info/rfc8697>.

8.2. Informative References πŸ“š

[PCE-PCEP-YANG]
           Dhody, D., Ed., Beeram, V., Hardwick, J., and J. Tantsura,
           "A YANG Data Model for Path Computation Element
           Communications Protocol (PCEP)", Work in Progress,
           Internet-Draft, draft-ietf-pce-pcep-yang-20, 23 October
           2022, <https://datatracker.ietf.org/doc/html/draft-ietf-
           pce-pcep-yang-20>.

[RFC4655]  Farrel, A., Vasseur, J.-P., and J. Ash, "A Path
           Computation Element (PCE)-Based Architecture", RFC 4655,
           DOI 10.17487/RFC4655, August 2006,
           <https://www.rfc-editor.org/info/rfc4655>.

[RFC5541]  Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of
           Objective Functions in the Path Computation Element
           Communication Protocol (PCEP)", RFC 5541,
           DOI 10.17487/RFC5541, June 2009,
           <https://www.rfc-editor.org/info/rfc5541>.

[RFC6805]  King, D., Ed. and A. Farrel, Ed., "The Application of the
           Path Computation Element Architecture to the Determination
           of a Sequence of Domains in MPLS and GMPLS", RFC 6805,
           DOI 10.17487/RFC6805, November 2012,
           <https://www.rfc-editor.org/info/rfc6805>.

[RFC7470]  Zhang, F. and A. Farrel, "Conveying Vendor-Specific
           Constraints in the Path Computation Element Communication
           Protocol", RFC 7470, DOI 10.17487/RFC7470, March 2015,
           <https://www.rfc-editor.org/info/rfc7470>.

[RFC8051]  Zhang, X., Ed. and I. Minei, Ed., "Applicability of a
           Stateful Path Computation Element (PCE)", RFC 8051,
           DOI 10.17487/RFC8051, January 2017,
           <https://www.rfc-editor.org/info/rfc8051>.

[RFC8453]  Ceccarelli, D., Ed. and Y. Lee, Ed., "Framework for
           Abstraction and Control of TE Networks (ACTN)", RFC 8453,
           DOI 10.17487/RFC8453, August 2018,
           <https://www.rfc-editor.org/info/rfc8453>.

[RFC8637]  Dhody, D., Lee, Y., and D. Ceccarelli, "Applicability of
           the Path Computation Element (PCE) to the Abstraction and
           Control of TE Networks (ACTN)", RFC 8637,
           DOI 10.17487/RFC8637, July 2019,
           <https://www.rfc-editor.org/info/rfc8637>.

[RFC8751]  Dhody, D., Lee, Y., Ceccarelli, D., Shin, J., and D. King,
           "Hierarchical Stateful Path Computation Element (PCE)",
           RFC 8751, DOI 10.17487/RFC8751, March 2020,
           <https://www.rfc-editor.org/info/rfc8751>.

Contributors 🫢

Dhruv Dhody
Huawei Technologies
Divyashree Technopark, Whitefield
Bangalore 560066
Karnataka
India
Email: dhruv.ietf@gmail.com


Qin Wu
Huawei Technologies
China
Email: bill.wu@huawei.com


Xian Zhang
Huawei Technologies
China
Email: zhang.xian@huawei.com


Adrian Farrel
Old Dog Consulting
Email: adrian@olddog.co.uk

Authors' Addresses πŸ’Œ

Young Lee
Samsung Electronics
Seoul
Republic of Korea
Email: younglee.tx@gmail.com


Haomian Zheng
Huawei Technologies
H1, Huawei Xiliu Beipo Village Songshan Lake
Dongguan
Guangdong, 523808
China
Email: zhenghaomian@huawei.com


Daniele Ceccarelli
Cisco Systems
Torshamnsgatan,48
Stockholm
Sweden
Email: daniele.ietf@gmail.com

That's the whole doc, bestie πŸŽ€πŸ‘‘ thank you for sticking with me through all three parts πŸ₯ΉπŸ’–

πŸ“¦ where this page comes from