RFC 5088

OSPF Protocol Extensions for Path Computation Element (PCE) Discovery

πŸ“… published January 2008, from ietf

RFC 5088: OSPF Protocol Extensions for Path Computation Element (PCE) Discovery πŸ¦‹βœ¨

Network Working Group 🌸 Request for Comments: 5088 Category: Standards Track πŸŽ€ Date: January 2008 πŸ“…

Authors: JL. Le Roux, Ed. (France Telecom), JP. Vasseur, Ed. (Cisco System Inc.), Y. Ikejiri (NTT Communications), and R. Zhang (BT) πŸ’–

Obsoletes and updates: This title block doesn't list any RFCs that it obsoletes or updates. 🫢


Table of Contents πŸ’…

   1. Introduction ....................................................2
   2. Terminology .....................................................4
   3. Overview ........................................................5
      3.1. PCE Discovery Information ..................................5
      3.2. Flooding Scope .............................................5
   4. The OSPF PCED TLV ...............................................6
      4.1. PCE-ADDRESS Sub-TLV ........................................7
      4.2. PATH-SCOPE Sub-TLV .........................................8
      4.3. PCE-DOMAIN Sub-TLV ........................................10
      4.4. NEIG-PCE-DOMAIN Sub-TLV ...................................11
      4.5. PCE-CAP-FLAGS Sub-TLV .....................................12
   5. Elements of Procedure ..........................................13
   6. Backward Compatibility .........................................14
   7. IANA Considerations ............................................14
      7.1. OSPF TLV ..................................................14
      7.2. PCE Capability Flags Registry .............................14
   8. Security Considerations ........................................15
   9. Manageability Considerations ...................................16
      9.1. Control of Policy and Functions ...........................16
      9.2. Information and Data Model ................................16
      9.3. Liveness Detection and Monitoring .........................16
      9.4. Verify Correct Operations .................................16
      9.5. Requirements on Other Protocols and Functional
           Components ................................................16
      9.6. Impact on Network Operations ..............................17
   10. Acknowledgments ...............................................17
   11. References ....................................................17
      11.1. Normative References .....................................17
      11.2. Informative References ...................................18

Status of This Memo ✨

okay so this spec is an Internet standards track protocol for the Internet community, and it's literally asking everyone to chime in with discussion and suggestions for improvements 🫢 For the current standardization state and status of this protocol, check the "Internet Official Protocol Standards" (STD 1) πŸ“š And the memo can be distributed with no limits, so share away πŸ’…

Abstract 🌈

okay picture this: a Path Computation Client (PCC) needs to find a set of Path Computation Elements (PCEs) on its own, automatically and dynamically, plus some info it can use to pick the right PCE 🧚 When the PCE is a Label Switching Router (LSR) in the Interior Gateway Protocol (IGP), or even a server quietly participating in the IGP, the simplest and most efficient move is to announce PCEs through IGP flooding πŸ”₯ So this document extends the Open Shortest Path First (OSPF) routing protocol to advertise PCE Discovery information within an OSPF area or across the entire OSPF routing domain πŸ‘‘

1. Introduction πŸ’–

[RFC4655] explains the motivations and architecture for a PCE-based path computation model for Multi-Protocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineered Label Switched Paths (TE LSPs) πŸŽ€ The model lets the PCE be separate from a Path Computation Client (PCC), which is also called a non co-located PCE, and it lets PCEs cooperate, where one PCE acts as a PCC making requests of another PCE 🀝 That cooperation needs a communication protocol between a PCC and a PCE, and also between PCEs. The requirements for that protocol live in [RFC4657], and the protocol itself is defined in [PCEP] πŸ“œ

The PCE architecture needs a PCC to know where one or more PCEs are in its domain, and possibly where PCEs in other domains are too, like for inter-domain TE LSP computation 🌸

A network can have a huge number of PCEs, each with potentially different capabilities 😭 So it's highly desirable to have a mechanism for automatic and dynamic PCE discovery, so PCCs can find a set of PCEs along with extra info about each one that helps with PCE selection πŸ’… It's also super valuable for a PCC to dynamically detect new PCEs, failed PCEs, or any change to PCE information πŸ™ˆ The detailed requirements for this discovery mechanism are in [RFC4674] πŸ¦‹

Just so you know, the PCE selection algorithm a PCC uses is out of scope for this document 🫢

When PCCs are LSRs in the IGP (OSPF or IS-IS), and PCEs are LSRs or servers also in the IGP, the effective way to discover PCEs inside an IGP routing domain is to use IGP advertisements ✨

This document extends OSPFv2 [RFC2328] and OSPFv3 [RFC2740], so a PCE in an OSPF routing domain can advertise its location plus some info a PCC finds useful for PCE selection 🧚 That way it meets the dynamic PCE discovery requirements in [RFC4674] πŸ’–

Generic capability advertisement mechanisms for OSPF are defined in [RFC4970] πŸ“£ They let a router advertise its capabilities within an OSPF area or an entire OSPF routing domain. This document uses that generic mechanism to fully satisfy the dynamic PCE discovery requirements πŸ”₯

This document defines a new TLV, named the PCE Discovery TLV (PCED TLV), that is carried within the OSPF Router Information LSA ([RFC4970]) πŸŽ€

The PCE info that gets advertised is detailed in Section 3. The protocol extensions and procedures are defined in Sections 4 and 5 🌈

The OSPF extensions here allow PCE discovery within an OSPF routing domain. Solutions for PCE discovery across Autonomous System boundaries are beyond this document's scope and are left for further study πŸ‘‘

2. Terminology πŸ“–

ABR: OSPF Area Border Router 🌸

AS: Autonomous System πŸ¦‹

IGP: Interior Gateway Protocol. This means either of the two routing protocols, Open Shortest Path First (OSPF) or Intermediate System to Intermediate System (IS-IS) 🫢

Intra-area TE LSP: A TE LSP whose path does not cross an IGP area boundary ✨

Intra-AS TE LSP: A TE LSP whose path does not cross an AS boundary πŸ’…

Inter-area TE LSP: A TE LSP whose path transits two or more IGP areas. In other words, it's a TE LSP that crosses at least one IGP area boundary 🧚

Inter-AS TE LSP: A TE LSP whose path transits two or more ASes or sub-ASes (BGP confederations). In other words, it's a TE LSP that crosses at least one AS boundary πŸ’–

LSA: Link State Advertisement πŸŽ€

LSR: Label Switching Router πŸ”₯

PCC: Path Computation Client. Any client application that requests a path computation to be performed by a Path Computation Element πŸ™ˆ

PCE: Path Computation Element. An entity (component, application, or network node) that can compute a network path or route based on a network graph and apply computational constraints πŸ‘‘

PCED: PCE Discovery 🌈

PCE-Domain: In a PCE context, this means any collection of network elements within a common sphere of address management or path computational responsibility (called a "domain" in [RFC4655]). Examples of PCE-Domains include IGP areas and ASes. Don't mix this up with an OSPF routing domain, because it's different 😭

PCEP: Path Computation Element communication Protocol πŸ“œ

TE LSP: Traffic Engineered Label Switched Path 🌸

TLV: Type-Length-Variable data encoding πŸ¦‹

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] 🫢 These are the official requirement words, so pay attention to them ✨

IS-IS extensions for PCE discovery are defined in [RFC5089] πŸ’…

3. Overview 🧚

3.1. PCE Discovery Information πŸ’–

Okay, so the PCE discovery information is made of these bits πŸŽ€

  • The PCE location: an IPv4 and/or IPv6 address that is used to reach the PCE. It is RECOMMENDED to use an address that is always reachable if there is any connectivity to the PCE 🌈
  • The PCE path computation scope (i.e., intra-area, inter-area, inter-AS, or inter-layer) πŸ‘‘
  • The set of one or more PCE-Domain(s) into which the PCE has visibility and for which the PCE can compute paths 🌸
  • The set of zero, one, or more neighbor PCE-Domain(s) toward which the PCE can compute paths πŸ¦‹
  • A set of communication capabilities (e.g., support for request prioritization) and path computation-specific capabilities (e.g., supported constraints) 🫢

PCE discovery information is, by nature, pretty static, and it doesn't change with PCE activity ✨ It can change because of PCE configuration updates, PCE deployment or activation, PCE deactivation or suppression, or PCE failure πŸ’… So this info isn't expected to change often 🧚

3.2. Flooding Scope 🌸

The flooding scope for PCE information advertised through OSPF can be limited to one or more OSPF areas that the PCE belongs to, or it can be extended across the entire OSPF routing domain πŸ’–

Some PCEs may belong to multiple areas, and in that case the flooding scope may include those areas πŸŽ€ This could happen with an ABR, for instance, which advertises its PCE information within the backbone area and/or a subset of its attached IGP area(s) πŸ”₯

4. The OSPF PCED TLV πŸ’–

okay so the OSPF PCE Discovery TLV (PCED TLV) is the container that holds PCE info, and inside it is a non-ordered set of sub-TLVs πŸŽ€ order doesn't matter, it's just a bag of sub-TLVs πŸ’…

The format of the PCED TLV and its sub-TLVs is identical to the TLV format from the Traffic Engineering Extensions to OSPF [RFC3630]. so every TLV is 2 octets for the type, 2 octets for the length, and then a value field. the Length field tells you how long the value part is, in octets πŸ“

the TLV gets padded to 4-octet alignment, and the padding is NOT counted in the Length field πŸ™ˆ so a 3-octet value has a Length of 3, but the whole TLV takes up 8 octets. nested TLVs are 4-octet aligned too, and unrecognized types just get ignored ✨

here's the PCED TLV layout πŸ¦‹

                    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             |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//                            sub-TLVs                          //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

the fields for this one are:

Type:     6
Length:   Variable
Value:    This comprises one or more sub-TLVs

there are five sub-TLVs defined, and here's the lineup πŸ“‹

Sub-TLV type  Length               Name
      1      variable     PCE-ADDRESS sub-TLV
      2         4         PATH-SCOPE sub-TLV
      3         4         PCE-DOMAIN sub-TLV
      4         4         NEIG-PCE-DOMAIN sub-TLV
      5      variable     PCE-CAP-FLAGS sub-TLV

the PCE-ADDRESS and PATH-SCOPE sub-TLVs MUST always be present within the PCED TLV. no skipping those two, bestie 🫢

the PCE-DOMAIN and NEIG-PCE-DOMAIN sub-TLVs are optional. they MAY be present in the PCED TLV to help pick inter-domain PCEs 🌈

the PCE-CAP-FLAGS sub-TLV is optional too, and it MAY be present in the PCED TLV to help with the PCE selection process ✨

now the big one 😭 malformed PCED TLVs, or sub-TLVs that this document doesn't explicitly describe, MUST cause the LSA to be treated as malformed according to the normal procedures of OSPF. and any unrecognized sub-TLV MUST be silently ignored. so yeah, be strict with the bad stuff and chill with the stuff you don't know πŸ’€

the PCED TLV rides inside an OSPF Router Information LSA, which is defined in [RFC4970] πŸ“¦

also, no new sub-TLVs are getting added to the PCED TLV in the future. if a later application needs to advertise more PCE info in OSPF, that info will NOT be carried in the Router Information LSA. plot twist πŸ™ˆ

the sub-sections below describe the sub-TLVs that can show up inside the PCED TLV πŸŽ€

4.1. PCE-ADDRESS Sub-TLV 🌸

the PCE-ADDRESS sub-TLV gives an IP address you can use to reach the PCE. it is RECOMMENDED to use an address that stays reachable, as long as the PCE is alive and reachable πŸ¦‹

the PCE-ADDRESS sub-TLV is mandatory, so it MUST be present within the PCED TLV 😀 it MAY appear twice, for when the PCE has both an IPv4 and an IPv6 address. it MUST NOT appear more than once for the same address type. and if it does show up more than once for the same address type, only the first one gets processed and any others MUST be ignored πŸ“

here's the format ✨

                    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 = 1         |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     address-type              |          Reserved             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//                       PCE IP Address                        //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    PCE-ADDRESS sub-TLV format

the field breakdown πŸ”

Type:     1
Length:   8 (IPv4) or 20 (IPv6)

Address-type:
              1   IPv4
              2   IPv6

the Reserved field SHOULD be set to zero when you send it and MUST be ignored when you receive it 🧚 and the PCE IP Address is simply the IP address used to reach the PCE πŸ’œ

4.2. PATH-SCOPE Sub-TLV πŸ‘‘

the PATH-SCOPE sub-TLV tells you the PCE's path computation scope. that means what the PCE can compute, or help compute, for intra-area, inter-area, inter-AS, or inter-layer TE LSPs 🌈 it's giving "what can you do, boo" energy πŸ’…

the PATH-SCOPE sub-TLV is mandatory, so it MUST be present within the PCED TLV. there MUST be exactly one instance of the PATH-SCOPE sub-TLV in each PCED TLV. if it shows up more than once, only the first occurrence is processed and the rest MUST be ignored πŸ™…β€β™€οΈ

it holds a set of bit-flags for the supported path scopes, plus four fields for the PCE's preferences πŸ’–

here's the format πŸ¦‹

                    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 = 2         |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0|1|2|3|4|5|   Reserved        |PrefL|PrefR|PrefS|PrefY| Res   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Type:     2
   Length:   4
   Value:    This comprises a 2-octet flags field where each bit
             represents a supported path scope, as well as four
             preference fields used to specify PCE preferences.

the bits that are defined πŸŽ€

Bit      Path Scope

 0       L bit:  Can compute intra-area paths.
 1       R bit:  Can act as PCE for inter-area TE LSP
                 computation.
 2       Rd bit: Can act as a default PCE for inter-area TE LSP
                 computation.
 3       S bit:  Can act as PCE for inter-AS TE LSP computation.
 4       Sd bit: Can act as a default PCE for inter-AS TE LSP
                 computation.
 5       Y bit:  Can act as PCE for inter-layer TE LSP
                 computation.

PrefL field: PCE's preference for intra-area TE LSP computation.

PrefR field: PCE's preference for inter-area TE LSP computation.

PrefS field: PCE's preference for inter-AS TE LSP computation.

PrefY field: PCE's preference for inter-layer TE LSP computation.

Res: Reserved for future use.

the L, R, S, and Y bits get set when the PCE can act as a PCE for intra-area, inter-area, inter-AS, or inter-layer TE LSP computation, respectively 🧚 and they're non-exclusive, so a PCE can have several at once 🌸

the Rd bit, when it's set, means the PCE can be a default PCE for inter-area TE LSP computation. that's the PCE computing a path toward any neighbor area πŸ—ΊοΈ the Sd bit works the same way for inter-AS TE LSP computation, meaning the PCE can compute a path toward any neighbor AS 🌍

when the Rd and Sd bits are both set, the PCED TLV MUST NOT contain a NEIG-PCE-DOMAIN sub-TLV (see Section 4.4) 🚫 no mixing those two, periodt πŸ’…

when the R bit is clear, the Rd bit SHOULD be clear when you send it and MUST be ignored when you receive it. and when the S bit is clear, the Sd bit SHOULD be clear when you send it and MUST be ignored when you receive it πŸ™ˆ

the PrefL, PrefR, PrefS, and PrefY fields are each three bits long. they let the PCE set a preference for each computation scope, and 7 is the highest preference πŸ‘‘ these preferences can be used for weighted load balancing of path computation requests βš–οΈ an operator can decide to set a preference for each scope at each PCE so the path computation load gets spread out. how a PCC load balances its requests using those PCE preferences is out of scope for this document, and it's a matter for local or network-wide policy πŸŽ€ the same or different preferences can be used for each scope. for example, an operator who wants a PCE that handles both inter-area and inter-AS computation to be the go-to for inter-AS work could set PrefS higher than PrefR πŸ¦‹

when the L, R, S, or Y bits are cleared, the PrefL, PrefR, PrefS, and PrefY fields SHOULD respectively be set to 0 when you send them, and MUST be ignored when you receive them 🌸

both reserved fields SHOULD be set to zero when you send them and MUST be ignored when you receive them 🧚

4.3. PCE-DOMAIN Sub-TLV πŸ—ΊοΈ

the PCE-DOMAIN sub-TLV specifies a PCE-Domain (an area or an AS) where the PCE has topology visibility and can compute paths through πŸ’–

the PCE-DOMAIN sub-TLV SHOULD be present when the PCE-Domains the PCE can operate in can't be inferred from other IGP information. for example, when the PCE is inter-domain capable (that is, when the R bit or S bit is set) and the flooding scope is the entire routing domain (see Section 5 for how the flooding scope is set and interpreted) ✨

a PCED TLV can include multiple PCE-DOMAIN sub-TLVs when the PCE has visibility into multiple PCE-Domains 🌈

here's the format πŸŽ€

                    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 = 3         |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Domain-type               |          Reserved             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Domain ID                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    PCE-DOMAIN sub-TLV format

the field details πŸ”

Type:     3
Length:   8
Two domain-type values are defined:
              1   OSPF Area ID
              2   AS Number

Domain ID is where the good stuff is πŸ¦‹ when domain-type is 1, it's the 32-bit Area ID of an area where the PCE has visibility and can compute paths. when domain-type is 2, it's the AS number of an AS where the PCE has visibility and can compute paths. and if the AS number is coded in two octets, the AS Number field MUST have its first two octets set to 0 🧚

4.4. NEIG-PCE-DOMAIN Sub-TLV 🌸

okay so the NEIG-PCE-DOMAIN sub-TLV tells everyone which neighbor PCE-Domain (an area or an AS) a PCE can compute paths toward πŸ’… basically it says "I can help with inter-domain TE LSPs whose paths go through this neighbor domain" πŸ¦‹ that's so useful, bestie!

A PCED sub-TLV can hold several NEIG-PCE-DOMAIN sub-TLVs if the PCE can compute paths toward several neighbor PCE-Domains. Main character energy πŸ‘‘

The NEIG-PCE-DOMAIN sub-TLV uses the same format as the PCE-DOMAIN sub-TLV:

                    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 = 4         |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Domain-type               |          Reserved             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Domain ID                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    NEIG-PCE-DOMAIN sub-TLV format
  • Type: 4
  • Length: 8

Two domain-type values are defined:

1   OSPF Area ID
2   AS Number

Domain ID: when the domain-type is 1, this is the 32-bit Area ID of a neighbor area that the PCE can compute paths toward. When the domain-type is 2, this is the AS number of a neighbor AS that the PCE can compute paths toward. When the AS number is coded in two octets, the AS Number field MUST have its first two octets set to 0. πŸ”₯

The NEIG-PCE-DOMAIN sub-TLV MUST be present at least once with domain-type set to 1 if the R bit is set and the Rd bit is cleared, and MUST be present at least once with domain-type set to 2 if the S bit is set and the Sd bit is cleared. πŸ’–

4.5. PCE-CAP-FLAGS Sub-TLV ✨

the PCE-CAP-FLAGS sub-TLV is an optional sub-TLV that shows off what a PCE can do πŸŽ€ it MAY be present within the PCED TLV. It MUST NOT be present more than once. If it shows up more than once, only the first occurrence gets processed and any others MUST be ignored. not me being strict about it πŸ™ˆ

The value field is an array of 32-bit flag units, numbered from the most significant bit as bit zero. Each bit stands for one PCE capability. 🧚

Here's the format:

  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 = 5         |             Length            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
//                 PCE Capability Flags                          //
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Type: 5
  • Length: Multiple of 4 octets
  • Value: an array of 32-bit flag units, numbered from the most significant as bit zero, where each bit represents one PCE capability.

IANA will manage the space of the PCE Capability Flags. πŸ“‹

The following bits have been assigned by IANA:

Bit       Capabilities

 0        Path computation with GMPLS link constraints
 1        Bidirectional path computation
 2        Diverse path computation
 3        Load-balanced path computation
 4        Synchronized path computation
 5        Support for multiple objective functions
 6        Support for additive path constraints
          (max hop count, etc.)
 7        Support for request prioritization
 8        Support for multiple requests per message

9-31      Reserved for future assignments by IANA.

These capabilities are defined in [RFC4657]. πŸ“š

Reserved bits SHOULD be set to zero on transmission and MUST be ignored on receipt. 🌈

5. Elements of Procedure 🎬

The PCED TLV gets advertised within OSPFv2 Router Information LSAs (Opaque type of 4 and Opaque ID of 0) or OSPFv3 Router Information LSAs (function code of 12), which are defined in [RFC4970]. So the elements of procedure are inherited from [RFC4970]. it's giving inheritance energy πŸ’œ

In OSPFv2, the flooding scope is controlled by the opaque LSA type (as defined in [RFC2370]). In OSPFv3, it's controlled by the S1/S2 bits (as defined in [RFC2740]). If the flooding scope is area local, the PCED TLV MUST be carried within an OSPFv2 type 10 router information LSA, or an OSPFV3 Router Information LSA with the S1 bit set and the S2 bit clear. If the flooding scope is the entire IGP domain, the PCED TLV MUST be carried within an OSPFv2 type 11 Router Information LSA, or an OSPFv3 Router Information LSA with the S1 bit clear and the S2 bit set. When only the L bit of the PATH-SCOPE sub-TLV is set, the flooding scope MUST be area local. πŸ¦‹

When the PCE function gets deactivated, the OSPF speaker advertising this PCE MUST originate a new Router Information LSA that no longer includes the corresponding PCED TLV, as long as there are other TLVs in the LSA. If there are no other TLVs in the LSA, it MUST either send an empty Router Information LSA or purge it by prematurely aging it. 🧹

The PCE address (the address indicated within the PCE-ADDRESS sub-TLV) SHOULD be reachable via some prefixes advertised by OSPF. πŸ“

The PCED TLV information about a specific PCE is only considered current and useable when the router advertising it is itself reachable via OSPF calculated paths in the same area as the LSA where the PCED TLV appears. πŸ—ΊοΈ

A change in the state of a PCE (activate, deactivate, parameter change) MUST result in a corresponding change in the PCED TLV information advertised by an OSPF router (inserted, removed, updated) in its LSA. How PCEs decide what to advertise, and how that info gets handed to OSPF, is out of scope for this document. Some info may be configured (like address, preferences, scope), and other info may be automatically determined by the PCE (like areas of visibility). βš™οΈ

A change in information in the PCED TLV MUST NOT trigger any SPF computation at a receiving router. no SPF drama here, periodt πŸ’…

6. Backward Compatibility 🫢

The PCED TLV defined in this document does not introduce any interoperability issues. no drama, all good ✨

A router that doesn't support the PCED TLV will just silently ignore the TLV, as specified in [RFC4970]. πŸ™ˆ

7. IANA Considerations πŸ“‹

7.1. OSPF TLV

IANA has defined a registry for TLVs carried in the Router Information LSA defined in [RFC4970]. IANA has assigned a new TLV codepoint for the PCED TLV carried within the Router Information LSA. πŸŽ€

Value      TLV Name                      Reference
-----     --------                       ----------
  6         PCED                       (this document)

7.2. PCE Capability Flags Registry

This document provides new capability bit flags, which are present in the PCE-CAP-FLAGS TLV referenced in Section 4.1.5. πŸ”₯

IANA has created a new top-level OSPF registry, the "PCE Capability Flags" registry, and will manage the space of PCE capability bit flags. They're numbered in the usual IETF notation, starting at zero and continuing at least through 31, with the most significant bit as bit zero. 🌸

New bit numbers may be allocated only by an IETF Consensus action. πŸ”’

Each bit should be tracked with the following qualities:

  • Bit number
  • Capability Description
  • Defining RFC

Several bits are defined in this document. The following values have been assigned:

Bit       Capability Description

 0        Path computation with GMPLS link constraints
 1        Bidirectional path computation
 2        Diverse path computation
 3        Load-balanced path computation
 4        Synchronized paths computation
 5        Support for multiple objective functions
 6        Support for additive path constraints
          (max hop count, etc.)
 7        Support for request prioritization
 8        Support for multiple requests per message

8. Security Considerations 🚨

This one's serious, bestie. Read it all. 😭

This document defines OSPF extensions for PCE discovery within an administrative domain. So the security of PCE discovery relies on the security of OSPF. πŸ”

Mechanisms defined to ensure the authenticity and integrity of OSPF LSAs [RFC2154], and their TLVs, can be used to secure the PCE Discovery information as well. πŸ›‘οΈ

OSPF provides no encryption mechanism for protecting the privacy of LSAs. That includes, in particular, the privacy of the PCE discovery information. yikes, so not private at all πŸ’€

9. Manageability Considerations 🧠

Manageability considerations for PCE Discovery are addressed in Section 4.10 of [RFC4674]. πŸ“–

9.1. Control of Policy and Functions

Requirements for configuring PCE discovery parameters on PCCs and PCEs are discussed in Section 4.10.1 of [RFC4674]. πŸ“

In particular, a PCE implementation SHOULD allow the following parameters to be configured on the PCE:

  • The PCE IPv4/IPv6 address(es) (see Section 4.1).
  • The PCE Scope, including the inter-domain functions (inter-area, inter-AS, inter-layer), the preferences, and whether the PCE can act as default PCE (see Section 4.2).
  • The PCE-Domains (see Section 4.3).
  • The neighbor PCE-Domains (see Section 4.4).
  • The PCE capabilities (see Section 4.5).

9.2. Information and Data Model

A MIB module for PCE Discovery is defined in [PCED-MIB]. πŸ—‚οΈ

9.3. Liveness Detection and Monitoring

This document specifies the use of OSPF as a PCE Discovery Protocol. The requirements in [RFC4674] include the ability to determine liveness of the PCE Discovery protocol. Normal operation of OSPF meets these requirements. πŸ’“

9.4. Verify Correct Operations

You can correlate what was advertised with what was received by comparing the information in the PCED TLV received by the PCC with what's stored at the PCE, using the PCED MIB [PCED-MIB]. The number of dropped, corrupt, and rejected information elements are available through the PCED MIB. πŸ”

9.5. Requirements on Other Protocols and Functional Components

The OSPF extensions defined in this document don't imply any requirement on other protocols. 🌿

9.6. Impact on Network Operations

Frequent changes in PCE information advertised in the PCED TLV may have a significant impact on OSPF. They might destabilize the network by causing PCCs to swap between PCEs. πŸŒͺ️

As discussed in Section 4.10.4 of [RFC4674], it MUST be possible to apply at least the following controls:

  • Configurable limit on the rate of announcement of changed parameters at a PCE.
  • Control of the impact on PCCs, such as through rate-limiting the processing of PCED TLVs.
  • Configurable control of triggers that cause a PCC to swap to another PCE.

10. Acknowledgments πŸ’œ

Thank you to Lucy Wong, Adrian Farrel, Les Ginsberg, Mike Shand, and Lou Berger for their useful comments and suggestions. 🫢

Thank you also to Dave Ward, Lars Eggert, Sam Hartman, Tim Polk, and Lisa Dusseault for their comments during the final stages of publication. 🌈

11. References πŸ“š

11. References πŸ“š

Okay bestie, this is the references section and honestly it's giving librarian's dream πŸ“šπŸ’… Let's get into it.

11.1. Normative References πŸŽ€

These are the ones you NEED to have read, no skipping 🫢

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2154] Murphy, S., Badger, M., and B. Wellington, "OSPF with Digital Signatures", RFC 2154, June 1997.

[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998.

[RFC2370] Coltun, R., "The OSPF Opaque LSA Option", RFC 2370, July 1998.

[RFC2740] Coltun, R., Ferguson, D., and J. Moy, "OSPF for IPv6", RFC 2740, December 1999.

[RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering (TE) Extensions to OSPF Version 2", RFC 3630, September 2003.

[RFC4970] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and S. Shaffer, "Extensions to OSPF for Advertising Optional Router Capabilities", RFC 4970, July 2007.

11.2. Informative References πŸ¦‹

These ones are just for extra context, lowkey optional but iconic to read ✨

[PCED-MIB] Stephan, E., "Definitions of Managed Objects for Path Computation Element Discovery", Work in Progress, March 2007.

[PCEP] Vasseur, JP., Ed., and JL. Le Roux, Ed., "Path Computation Element (PCE) communication Protocol (PCEP) ", Work in Progress, November 2007.

[RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path Computation Element (PCE)-Based Architecture", RFC 4655, August 2006.

[RFC4657] Ash, J., Ed., and J. Le Roux, Ed., "Path Computation Element (PCE) Communication Protocol Generic Requirements", RFC 4657, September 2006.

[RFC4674] Le Roux, J., Ed., "Requirements for Path Computation Element (PCE) Discovery", RFC 4674, October 2006.

[RFC5089] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. Zhang, "IS-IS Protocol Extensions for Path Computation Element (PCE) Discovery", RFC 5089, January 2008.

Authors' Addresses πŸ’Œ

The people who wrote this whole thing, with their deets 🌸

Jean-Louis Le Roux (Editor) France Telecom 2, avenue Pierre-Marzin 22307 Lannion Cedex FRANCE EMail: jeanlouis.leroux@orange-ftgroup.com

Jean-Philippe Vasseur (Editor) Cisco Systems, Inc. 1414 Massachusetts Avenue Boxborough, MA 01719 USA EMail: jpv@cisco.com

Yuichi Ikejiri NTT Communications Corporation 1-1-6, Uchisaiwai-cho, Chiyoda-ku Tokyo 100-8019 JAPAN EMail: y.ikejiri@ntt.com

Raymond Zhang BT 2160 E. Grand Ave. El Segundo, CA 90025 USA EMail: raymond.zhang@bt.com

Copyright (C) The IETF Trust (2008).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property πŸ”

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

πŸ“¦ where this page comes from