RFC 6001
Generalized MPLS (GMPLS) Protocol Extensions for Multi-Layer and Multi-Region Networks (MLN/MRN)
Generalized MPLS (GMPLS) Protocol Extensions for Multi-Layer and Multi-Region Networks (MLN/MRN) π¦
Okay bestie, let's set the scene first π This is RFC 6001, a Standards Track document from October 2010, so it's an official Internet standard and not just somebody's opinion π It was written by D. Papadimitriou and M. Vigoureux (Alcatel-Lucent), K. Shiomoto (NTT), D. Brungard (ATT), and JL. Le Roux (France Telecom). Its ISSN is 2070-1721. It updates RFC 4202, RFC 4203, RFC 4206, RFC 4874, RFC 4974, and RFC 5307. It doesn't list anything it obsoletes, so nothing gets replaced here π«Ά
Abstract
Okay so this one is about networks where Label Switching Routers (LSRs) work across different data plane switching layers, but a single Generalized Multi-Protocol Label Switching (GMPLS) control plane instance runs the whole show β¨ People call these GMPLS Multi-Layer Networks / Multi-Region Networks (MLN/MRN), and they have specific requirements that need to be met π
This document defines extensions to GMPLS routing and signaling protocols so MLN/MRN can actually work. It covers the situation where one GMPLS control plane instance controls multiple Label Switched Path (LSP) regions or layers inside a single Traffic Engineering (TE) domain πΈ
Status of This Memo
This is an Internet Standards Track document, so it's the real deal π₯
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It went through public review and was approved for publication by the Internet Engineering Steering Group (IESG). If you want more on Internet Standards, check out Section 2 of RFC 5741 π§
Info about the current status of this document, any errata, and how to send feedback lives at http://www.rfc-editor.org/info/rfc6001 π
Copyright Notice
Copyright (c) 2010 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 (http://trustee.ietf.org/license-info) as they stand on the date this document was published. Please read these carefully, because they spell out your rights and restrictions for this document. Code Components pulled out of this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License π
Okay, the fine print, but it matters: this document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person or people who control the copyright in some of that material may not have given the IETF Trust permission to allow modifications outside the IETF Standards Process. So unless you get an adequate license from whoever controls the copyright in those materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process. The exceptions are formatting it for publication as an RFC or translating it into languages other than English π
Table of Contents
1. Introduction ....................................................3
1.1. Conventions Used in This Document ..........................4
2. Summary of the Requirements and Evaluation ......................4
3. Interface Adjustment Capability Descriptor (IACD) ...............5
3.1. Overview ...................................................5
3.2. Interface Adjustment Capability Descriptor (IACD) ..........6
4. Multi-Region Signaling ..........................................9
4.1. XRO Subobjects ............................................10
5. Virtual TE Link ................................................12
5.1. Edge-to-Edge Association ..................................13
5.2. Soft Forwarding Adjacency (Soft FA) .......................16
6. Backward Compatibility .........................................18
7. Security Considerations ........................................18
8. IANA Considerations ............................................18
8.1. RSVP ......................................................18
8.2. OSPF ......................................................20
8.3. IS-IS .....................................................20
9. References .....................................................20
9.1. Normative References ......................................20
9.2. Informative References ....................................22
Acknowledgments....................................................23
Contributors ......................................................23
1. Introduction β¨
Generalized Multi-Protocol Label Switching (GMPLS) [RFC3945] takes MPLS and stretches it to handle multiple switching technologies: packet switching (PSC), Layer 2 switching (L2SC), Time-Division Multiplexing (TDM) Switching, wavelength switching (LSC), and fiber switching (FSC) π¦ A GMPLS switching type (PSC, TDM, and so on) describes a node's ability to forward data of a particular data plane technology, and it uniquely identifies a control plane LSP region. LSP regions are defined in [RFC4206]. A network made up of multiple switching types (for example, PSC and TDM) controlled by a single GMPLS control plane instance is called a Multi-Region Network (MRN) π
A data plane layer is a collection of network resources that can terminate and/or switch data traffic of a particular format. For example, LSC, TDM VC-11, and TDM VC-4-64c are three different layers π A network with transport nodes that take part in different data plane switching layers, all controlled by a single GMPLS control plane instance, is called a Multi-Layer Network (MLN) π
The applicability of GMPLS to multiple switching technologies gives you unified control and operations for both LSP provisioning and recovery, which is iconic π₯ This document covers the elements of a single GMPLS control plane instance controlling multiple layers within a given TE domain. A TE domain is a group of Label Switching Routers (LSRs) that enforces a common TE policy π«Ά A Control Plane (CP) instance can serve one, two, or more layers. Other possible approaches, like having multiple CP instances serving disjoint sets of layers, are outside the scope of this document π
The next sections cover the procedural side, meaning routing and signaling for these environments, plus the extensions needed to make GMPLS provide the capabilities for MLN/MRN unified control π The rationales and requirements for Multi-Layer/Region networks are laid out in [RFC5212]. Those requirements get evaluated against GMPLS protocols in [RFC5339], which identifies several areas where GMPLS protocol extensions are needed π§
Basically, this document defines GMPLS routing and signaling extensions so they cover the GMPLS MLN/MRN requirements β¨
1.1. Conventions Used in This Document
Okay, 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] π
Also, the reader is assumed to already know [RFC3945], [RFC3471], [RFC4201], [RFC4202], [RFC4203], [RFC4206], and [RFC5307] π
2. Summary of the Requirements and Evaluation πΈ
Here's the tea: as [RFC5339] points out, most MLN/MRN requirements depend on mechanisms and procedures (like local procedures and policies, or specific TE mechanisms and algorithms) that sit outside the scope of the GMPLS protocols. So they don't need any GMPLS protocol extensions at all π
Four areas for extensions of GMPLS protocols and procedures were identified in [RFC5339] π¦
- GMPLS routing extensions for advertising the internal adjustment capability of hybrid nodes. See Section 3.2.2 of [RFC5339].
- GMPLS signaling extensions for constrained multi-region signaling (Switching Capability inclusion/exclusion). See Section 3.2.1 of [RFC5339]. An additional eXclude Route Object (XRO) Label subobject is also defined, since it was absent from [RFC4874] π«Ά
- GMPLS signaling extensions for setting up and deleting virtual TE links (plus the exact trigger for when they actually get provisioned). See Section 3.1.1.2 of [RFC5339] π
- GMPLS routing and signaling extensions for graceful TE link deletion. See Section 3.1.1.3 of [RFC5339] β
The first three requirements get handled in Sections 3, 4, and 5 of this document, respectively. The fourth requirement is handled in [RFC5710], with extra context from [RFC5817] π
3. Interface Adjustment Capability Descriptor (IACD) π§
Okay, so in the MRN context, nodes with at least one interface that supports more than one switching capability are called hybrid nodes [RFC5212] π₯ The logical makeup of a hybrid node includes at least two distinct switching elements that are connected by "internal links" to provide adjustment between the supported switching capabilities π These internal links have finite capacities that MUST be taken into account when computing the path of a multi-region TE-LSP, no skipping that π Advertising the internal adjustment capability is required, and it's honestly critical info when you're doing multi-region path computation π β¨
3.1. Overview
okay so in an MRN environment π some LSRs can have multiple switching capabilities at once, like PSC and TDM or PSC and LSC, all under the control of one single GMPLS instance π¦
these nodes (hosting multiple Interface Switching Capabilities (ISCs) [RFC4202]) are required to hold and advertise resource info on link states and topology, just like other nodes hosting a single ISC β¨ they may also have to think about some portions of internal node resources used to terminate hierarchical LSPs π bc in circuit-switching techs (TDM, LSC, and FSC) LSPs need resources that get allocated in a discrete way (predetermined by the switching type) πΈ
for example, a node with PSC+LSC hierarchical switching capability can switch a lambda LSP, but it CANNOT terminate the Lambda LSP if there's no available (aka not already in use) adjustment capability between the LSC and the PSC switching components π ngl that's the whole problem lol. another one: L2SC (Ethernet) switching can be adapted in the Link Access Procedure-SDH (LAPS) X.86 and Generic Framing Procedure (GFP) for instance, before reaching the TDM switching matrix π similar stuff can happen if a switching fabric that supports both PSC and L2SC functionalities is assembled with LSC interfaces enabling "lambda" encoding. in that fabric, some interfaces can terminate Lambda LSPs and do frame (or cell) switching, while other interfaces can terminate Lambda LSPs and do packet switching π₯
so, within multi-region networks, advertising the so-called adjustment capability to terminate LSPs is what matters for path computation π (not the interface capability, since that one can be inferred from the bandwidth available for each switching capability). this lets a node tell remote nodes apart (and pick them during path computation) based on their adjustment capability, e.g., whether they terminate LSPs at the PSC or LSC level π§
so we're introducing the ability to tell the (internal) adjustment capability apart from the (interface) switching capability, by defining an Interface Adjustment Capability Descriptor (IACD) π«Ά
if you want the full problem statement, it's in [RFC5339] π
3.2. Interface Adjustment Capability Descriptor (IACD)
the Interface Adjustment Capability Descriptor (IACD) gives the info for the forwarding/switching capability π
quick note: adding the IACD as a TE link attribute does NOT change the format of the Interface Switching Capability Descriptor (ISCD) defined in [RFC4202], and it doesn't change how the ISCD sub-TLV is carried in the routing protocols or how it's processed when it's received [RFC4201], [RFC4203] π
the receiving LSR uses its Link State Database to figure out the IACD(s) of the far end of the link π different Interface Adjustment Capabilities at the two ends of a TE link are allowed π
3.2.1. OSPF
in OSPF, the IACD sub-TLV is defined as an optional sub-TLV of the TE Link TLV (Type 2, see [RFC3630]), with Type 25 and variable length π
the IACD sub-TLV format 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Lower SC | Lower Encoding| Upper SC | Upper Encoding|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Max LSP Bandwidth at priority 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Max LSP Bandwidth at priority 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Max LSP Bandwidth at priority 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Max LSP Bandwidth at priority 3 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Max LSP Bandwidth at priority 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Max LSP Bandwidth at priority 5 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Max LSP Bandwidth at priority 6 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Max LSP Bandwidth at priority 7 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Adjustment Capability-specific information |
| (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Lower Switching Capability (SC) field (byte 1) - 8 bits π¦ this indicates the lower switching capability associated with the Lower Encoding field (byte 2). the value of the Lower Switching Capability field MUST be set to the value of Switching Capability of the ISCD sub-TLV advertised for this TE link. if multiple ISCD sub-TLVs are advertised for that TE link, the Lower Switching Capability (SC) value MUST be set to the value of SC to which the adjustment capacity is associated.
Lower Encoding (byte 2) - 8 bits πΈ this contains one of the LSP Encoding Type values specified in Section 3.1.1 of [RFC3471] and updates.
Upper Switching Capability (SC) field (byte 3) - 8 bits β¨ this indicates the upper switching capability. the Upper Switching Capability field MUST be set to one of the values defined in [RFC4202].
Upper Encoding (byte 4) - 8 bits π this is set to the encoding of the available adjustment capacity, and to 0xFF when the corresponding SC value has no access to the wire (aka there is no ISC sub-TLV for this upper switching capability). the adjustment capacity is the set of resources associated to the upper switching capability.
Max LSP Bandwidth π the Maximum LSP Bandwidth is encoded as a list of eight 4-octet fields in the IEEE floating point format [IEEE], with priority 0 first and priority 7 last. the units are bytes per second. processing MUST follow the rules specified in [RFC4202].
The Adjustment Capability-specific information - variable π§ this field is defined so there's room for future addition of technology-specific info associated to the adjustment capability.
other fields MUST be processed as specified in [RFC4202] and [RFC4203] π«Ά
the bandwidth values give an indication of the resources still available to do insertion/extraction for a given adjustment at a given priority (resource pool concept: a set of shareable available resources that can be assigned dynamically) π₯
multiple IACD sub-TLVs MAY be present within a given TE Link TLV π
the presence of the IACD sub-TLV as part of the TE Link TLV does NOT change the format/messaging and the processing associated to the ISCD sub-TLV defined in [RFC4203] π
3.2.2. IS-IS
in IS-IS, the IACD sub-TLV is an optional sub-TLV of the Extended IS Reachability TLV (see [RFC5305]) with Type 27 π¦
the IACD sub-TLV format is identical to the OSPF sub-TLV format defined in Section 3.2.1. the fields of the IACD sub-TLV have the same processing and interpretation rules as defined in Section 3.2.1 β¨
multiple IACD sub-TLVs MAY be present within a given extended IS reachability TLV πΈ
the presence of the IACD sub-TLV as part of the extended IS reachability TLV does NOT change format/messaging and processing associated to the ISCD sub-TLV defined in [RFC5307] π
4. Multi-Region Signaling
ok this section is where things get spicy πΆοΈ Section 6.2 of [RFC4206] says that when a region boundary node receives a Path message, the node figures out whether or not it's at the edge of an LSP region with respect to the Explicit Route Object (ERO) carried in the message π if the node IS at the edge of a region, it must then find the other edge of the region with respect to the Explicit Route Object (ERO), using the IGP database. then it pulls out of the ERO the sub-sequence of hops from itself to the other end of the region π§©
then the node compares that sub-sequence of hops with all existing Forwarding Agency LSPs (FA-LSPs) it originated π
- if a match is found, that FA-LSP has enough unreserved bandwidth for the LSP being signaled, and the Generalized PID (G-PID) of the FA-LSP is compatible with the G-PID of the LSP being signaled, the node uses that FA-LSP like this π¦ the Path message for the original LSP gets sent to the egress of the FA-LSP. the previous hop (PHOP) in the message is the address of the node at the head-end of the FA-LSP. before sending the Path message, the ERO in that message is adjusted by removing the subsequence of the ERO that lies in the FA-LSP and replacing it with just the endpoint of the FA-LSP π
- if no existing FA-LSP is found, the node sets up a new FA-LSP. like, it starts a brand new LSP setup just for the FA-LSP π
Note: compatible G-PID implies that traffic can be processed by both ends of the FA-LSP without dropping traffic after its establishment. π‘
applying the procedure of [RFC4206] in an MRN environment MAY lead to the setup of single-hop FA-LSPs between each pair of nodes π so, since path computation can take into account a lot of info about the SC available on the nodes along the path, it makes sense to provide enough signaling info to indicate which SC to use and over which link π in particular, when a TE link has multiple SCs advertised as part of its ISCD sub-TLVs, an ERO doesn't give you a way to select a particular SC π
to limit the changes to the existing RSVP-TE procedures ([RFC3473] and referenced), this document defines a new subobject of the eXclude Route Object (XRO), see [RFC4874], called the Switching Capability subobject π§ this subobject lets you (when you want to) explicitly name at least one switching capability to be excluded from the resource selection process described above β¨
including this subobject in the XRO, to explicitly say which SCs have to be excluded over a specified TE link (before starting the procedure described above), solves the ambiguous choice among the SCs that could be used along a given path, and gives you the chance to optimize resource usage on a multi-region basis π note that implicit SC inclusion is easily supported by explicitly excluding other SCs (e.g., to include LSC, you're required to exclude PSC, L2SC, TDM, and FSC) π«Ά
the approach here is to put exclusions in the XRO and inclusions in the ERO π the ERO specifies the topological characteristics of the path to be signaled. using Explicit Exclusion Route Subobjects (EXRSs) would also lead to exclusion over certain portions of the LSP during FA-LSP setup. so it's more suited to extend the generality of the elements excluded by the XRO, and it also prevents complex consistency checks and transpositions between EXRS and XRO at FA-LSP head-ends π
4.1. XRO Subobjects β¨
okay so the contents of an EXCLUDE_ROUTE object (from [RFC4874]) are a bunch of variable-length data items called subobjects π§©
this doc defines the Switching Capability (SC) subobject of the XRO (Type 35), plus how it's encoded and processed π it also adds a Label subobject (Type 3) to the ones already in [RFC4874] π
4.1.1. SC Subobject π¦
XRO subobject Type 35: Switching Capability
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type=35 | Length | Attribute | Switching Cap |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- L (1 bit)
- 0 indicates that the attribute specified MUST be excluded.
- 1 indicates that the attribute specified SHOULD be avoided.
- Type (7 bits): the Type of the XRO SC subobject is 35.
- Length (8 bits): the total length of the subobject in bytes (including the Type and Length fields). The Length of the XRO SC subobject is 4.
- Attribute (8 bits)
- 0 is a reserved value.
- 1 indicates that the specified SC SHOULD be excluded or avoided with respect to the preceding numbered (Type 1 or Type 2) or unnumbered interface (Type) subobject.
- Switching Cap (8 bits): the Switching Capability value to be excluded.
The Switching Capability subobject MUST follow the set of one or more numbered or unnumbered interface subobjects to which this subobject refers.
In the case of a loose-hop ERO subobject, the XRO subobject MUST precede the loose-hop subobject identifying the tail-end node/interface of the traversed region(s).
4.1.2. Label Subobject π
the encoding of the XRO Label subobject is the same as the Label ERO subobject from [RFC3473], except for the L bit π here's how the XRO Label subobject is laid out:
XRO Subobject Type 3: Label Subobject
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type=3 | Length |U| Reserved | C-Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label |
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- L (1 bit)
- 0 indicates that the attribute specified MUST be excluded.
- 1 indicates that the attribute specified SHOULD be avoided.
- Type (7 bits): the Type of the XRO Label subobject is 3.
- Length (8 bits): the total length of the subobject in bytes (including the Type and Length fields). The Length is always divisible by 4.
- U (1 bit): see [RFC3471].
- C-Type (8 bits): the C-Type of the included Label Object. Copied from the Label Object (see [RFC3471]).
- Label: see [RFC3471].
XRO Label subobjects MUST follow the numbered or unnumbered interface subobjects to which they refer, and, when present, MUST also follow the Switching Capability subobject.
When XRO Label subobjects are following the Switching Capability subobject, the corresponding label values MUST be compatible with the SC capability to be explicitly excluded.
5. Virtual TE Link πΈ
okay so a virtual TE link is a TE link between two upper-layer nodes that isn't tied to a fully provisioned FA-LSP in a lower layer [RFC5212] π¦ it gets advertised like any other TE link, following the rules in [RFC4206] for fully provisioned TE links. basically it represents the potential to set up an FA-LSP in the lower layer to support the TE link that's been advertised π§ and the flooding scope is within an IGP area, same as any TE link π
there are two techniques for setting up, operating, and maintaining virtual TE links π the GMPLS protocol extensions for them are described in this section, and this section complements what's defined in [RFC4206] and [HIER-BIS] π«Ά
5.1. Edge-to-Edge Association π
this approach doesn't need state maintenance on transit LSRs π it relies on extensions to the GMPLS RSVP-TE Call procedure (see [RFC4974]). the endpoints swap identification and TE attributes info directly by setting up a call between the terminating LSRs. those endpoints are the LSP head-end and tail-end points of the LSPs that will get established π
The endpoints MUST belong to the same (LSP) region.
once the call is up, the association fills in the local Traffic Engineering DataBase (TEDB), and the virtual TE link gets advertised like any other TE link β¨ it can then be used to attract traffic πΈ when an upper-layer/region LSP wants to use this virtual TE link, one or more FA LSPs MUST be established using the procedures in [RFC4206] to make the virtual TE link "real" and let it carry traffic by nesting the upper-layer/region LSP π₯
to tell this call apart from the call and procedures in [RFC4974], a CALL_ATTRIBUTES object is introduced π
5.1.1. CALL_ATTRIBUTES Object π§
the CALL_ATTRIBUTES object signals attributes a call needs, or shows what a call is for π it's modeled on the LSP_ATTRIBUTES object from [RFC5420]. the CALL_ATTRIBUTES object MAY also be used to report call operational state on a Notify message π
the CALL_ATTRIBUTES object class is 202, of the form 11bbbbbb. this C-Num value (see [RFC2205], Section 3.10) makes sure LSRs that don't recognize the object pass it along transparently π«Ά
one C-Type is defined: C-Type = 1 for Call Attributes. this object is OPTIONAL and MAY be placed on Notify messages to convey extra info about the desired attributes of the call π¦
CALL_ATTRIBUTES class = 202, C-Type = 1
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// Call Attributes TLVs //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
the Call Attributes TLVs are encoded as described in Section 5.1.3 π§
5.1.2. Processing π·
if an egress (or intermediate) LSR doesn't support the object, it forwards it unexamined and unchanged π this makes it way easier to pass attributes across legacy networks that don't support this new object π
5.1.3. Call Attributes TLVs π
attributes carried by the CALL_ATTRIBUTES object are encoded inside TLVs called Call Attributes TLVs. one or more Call Attributes TLVs MAY be present in each object π
there are no ordering rules for Call Attributes TLVs, so no meaning should be read into the order they're received in. (quick note on that: the spec itself says SHOULD be placed on, so don't read into the order π)
There are no ordering rules for Call Attributes TLVs, and no interpretation SHOULD be placed on the order in which these TLVs are received.
each Call Attributes TLV carried by the CALL_ATTRIBUTES object is encoded 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 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// Value //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Type: the identifier of the TLV.
- Length: the total length of the TLV in octets, meaning the combined length of the Type, Length, and Value fields. That's four plus the length of the Value field in octets.
- The entire TLV MUST be padded with between zero and three trailing zeros to make it four-octet aligned. The Length field does not count any padding.
- Value: the data field for the TLV, padded as described above.
Assignment of Call Attributes TLV types MUST follow the rules specified in Section 8 (IANA Considerations). π«Ά
5.1.4. Call Attributes Flags TLV π
the Call Attributes TLV of Type 1 defines the Call Attributes Flags TLV π¦ the Call Attributes Flags TLV MAY be present in a CALL_ATTRIBUTES object β¨
its value field is an array of 32-bit units of flags, numbered from the most significant bit as bit zero. The Length field for this TLV MUST therefore always be a multiple of 4 bytes, regardless of the number of bits carried and no padding is required.
Unassigned bits are considered reserved and MUST be set to zero on transmission by the originator of the object. Bits not contained in the Call Attributes Flags TLV MUST be assumed to be set to zero. If the Call Attributes Flags TLV is absent, either because it is not contained in the CALL_ATTRIBUTES object or because this object is itself absent, all processing MUST be performed as though the bits were present and set to zero. In other terms, assigned bits that are not present either because the Call Attributes Flags TLV is deliberately foreshortened or because the TLV is not included MUST be treated as though they are present and are set to zero. π
5.1.5. Call Inheritance Flag π
this document introduces a specific Call Inheritance Flag at position bit 0 (the most significant bit) in the Call Attributes Flags TLV π it indicates that the association initiated between endpoints in a call results in a (virtual) TE link advertisement π₯
The Call Inheritance Flag MUST be set to 1 in order to indicate that the established association is to be translated into a TE link advertisement. The value of this flag SHALL by default be set to 1. Setting it to 0 results in a hidden TE link, or in deleting the corresponding TE link advertisement (by setting the corresponding Opaque LSA Age to MaxAge) if the association was established with this flag set to 1. In that latter case, the corresponding FA-LSP SHOULD also be torn down to prevent unused resources π§Ήπ
the Notify message used for establishing the association is defined as per [RFC4974]. Additionally, the Notify message MUST carry an LSP_TUNNEL_INTERFACE_ID Object, that allows identifying unnumbered FA-LSPs ([RFC3477], [RFC4206], [HIER-BIS]) and numbered FA-LSPs ([RFC4206], [HIER-BIS]). π¦
5.2. Soft Forwarding Adjacency (Soft FA) π¦
okay so the Soft FA approach is basically: you set up the FA LSP at the control plane level and don't actually commit any resources in the data plane π«Ά. That means the LSP only exists in the control plane domain. Once the FA is established, the TE link can be advertised following the procedures in [RFC4206] β¨.
There are two techniques to set up Soft FAs:
- The first one sets up the FA LSP while precluding resource commitment during establishment. These are known as pre-planned LSPs πΈ.
- The second one only makes use of path-provisioned LSPs. There's no resource demand during LSP establishment, so it's giving RSVP-TE equivalent of the Null service type in [RFC2997] π .
5.2.1. Pre-Planned LSP Flag π
The LSP ATTRIBUTES object and Attributes Flags TLV are defined in [RFC5420]. This doc defines a new flag, the Pre-Planned LSP flag, in the existing Attributes Flags TLV (numbered as Type 1) π.
The flag sits at bit 6, matching the IANA assignment. It's part of the Attributes Flags TLV and follows the general processing of [RFC5420] for the LSP_REQUIRED_ATTRIBUTE object. So LSRs that don't recognize the object reject the LSP setup, basically saying "sorry, we don't support the attributes you asked for" π
ββοΈ. Honestly it makes sense, because the new attribute needs to be examined at every transit LSR along the LSP being set up π.
The Pre-Planned LSP flag can take one of these values:
- When set to 0, the LSP MUST be fully provisioned. Not including this flag at all (so no matching TLV) is compliant with signaling message processing per [RFC3473]).
- When set to 1, the LSP MUST be provisioned in the control plane only.
If an LSP gets established with the Pre-Planned flag set to 1, no resources are committed at the data plane level π§.
Committing data plane resources happens by re-signaling the same LSP with the Pre-Planned flag set to 0. It is RECOMMENDED that no other modifications are made to other RSVP objects during this operation. Like, every intermediate node that sees the flag go from 1 to 0 shall only care about committing data plane resources, and nothing else about the LSP's properties or attributes π« .
If an LSP was established with the Pre-Planned flag set to 0, it MAY be re-signaled by setting the flag to 1 π.
5.2.2. Path Provisioned LSPs π
There's a real difference between an LSP established with 0 bandwidth (path provisioning) and an LSP established with a certain bandwidth value that isn't committed at the data plane level (i.e., a pre-planned LSP) π€.
Provisioning an LSP with 0 bandwidth (pre-planned or not) is pretty straightforward for a PSC LSP. In the SENDER_TSPEC/FLOWSPEC object, the Peak Data Rate field of IntServ objects (see [RFC2210]) MUST be set to 0. For an L2SC LSP, the Committed Information Rate (CIR), Excess Information Rate (EIR), Committed Burst Size (CBS), and Excess Burst Size (EBS) values MUST be set to 0 in the Type 2 sub-TLV of the Ethernet Bandwidth Profile TLV. In both cases, once the LSP commits resources, the actual traffic parameter values get used for the corresponding resource reservation β¨.
BUT, provisioning a TDM or LSC LSP with 0 bandwidth (pre-planned or not) is currently not possible π. That's because the exchanged label value is tightly coupled with resource allocation during LSP signaling (e.g., see [RFC4606] for a SONET/SDH LSP). For TDM and LSC LSPs, a NULL Label value is used to stop resource allocation at the data plane level. In these cases, once the LSP commits resources, the actual label value exchange happens to commit the allocation of timeslots/wavelengths π.
6. Backward Compatibility πΈ
New objects and procedures defined in this document run within a given TE domain, which is a group of LSRs that enforces a common TE policy. So the extensions defined here are expected to run in the context of a consistent TE policy. Specifying a consistent TE policy is outside the scope of this document π.
Inside these TE domains, we distinguish between edge LSRs and intermediate LSRs. Edge LSRs MUST be able to process Call Attributes as defined in Section 5.1 if that's the method selected for creating edge-to-edge associations. In that domain, intermediate LSRs are by definition transparent to Call processing π«§.
If the Soft FA method is used to create virtual TE links, edge and intermediate LSRs MUST support processing of the LSP ATTRIBUTE object per Section 5.2 π.
7. Security Considerations π
Okay, serious moment, bestie π. This document does not introduce any new security considerations beyond the ones already detailed in [RFC5920], which covers the MPLS and GMPLS security threats, the related defensive techniques, and the mechanisms for detection and reporting. The proposed GMPLS extensions are only applicable within a single TE domain. Such a domain is under the authority of a single administrative entity, and in this context, the multiple switching layers within that TE domain are all controlled by a single GMPLS control plane instance π.
Still, Call initiation, as depicted in Section 5.1, MUST strictly remain under control of the TE domain administrator. To prevent any abuse of Call setup, edge nodes MUST ensure isolation of their call controller (i.e., the call controller is not reachable via external TE domains). To further prevent man-in-the-middle attacks, security associations MUST be established between the edge nodes initiating and terminating calls. For this purpose, the Internet Key Exchange (IKE) protocol [RFC5996] MUST be used for performing mutual authentication and for establishing and maintaining these security associations π¨.
8. IANA Considerations π
8.1. RSVP π
IANA has made the following assignments in the "Class Names, Class Numbers, and Class Types" section of the "RSVP PARAMETERS" registry available from http://www.iana.org.
This document introduces a new class named CALL_ATTRIBUTES, which has been created in the 11bbbbbb range with the following definition:
Class Number Class Name Reference
------------ ----------------------- ---------
202 CALL ATTRIBUTES [RFC6001]
Class Type (C-Type):
1 Call Attributes [RFC6001]
IANA has established a "Call Attributes TLV" registry. The following types are defined:
TLV Value Name Reference
--------- ------------------------- ---------
0 Reserved [RFC6001]
1 Call Attributes Flags TLV [RFC6001]
The values should be allocated based on the following allocation policy as defined in [RFC5226].
Range Registration Procedures
----- ------------------------
0-32767 RFC Required
32768-65535 Reserved for Private Use
IANA has established a "Call Attributes Flags" registry. The following flags are defined:
Bit Number 32-bit Value Name Reference
---------- ------------ --------------------- ---------
0 0x80000000 Call Inheritance Flag [RFC6001]
The values should be allocated based on the "RFC Required" policy as defined in [RFC5226].
This document introduces a new Flag in the Attributes Flags TLV defined in [RFC5420]:
Bit Number Name Reference
---------- -------------------- ---------
6 Pre-Planned LSP Flag [RFC6001]
This document introduces two new subobjects for the EXCLUDE_ROUTE object [RFC4874], C-Type 1.
Subobject Type Subobject Description
-------------- -------------------------
3 Label
35 Switching Capability (SC)
8.2. OSPF π¦
IANA maintains the "Open Shortest Path First (OSPF) Traffic Engineering TLVs" registries, including the "Types for sub-TLVs of TE link TLV (Value 2)" registry.
This document defines the following sub-TLV of TE link TLV (Value 2).
Value Sub-TLV
----- -------------------------------------------------
25 Interface Adjustment Capability Descriptor (IACD)
8.3. IS-IS π§
This document defines the following new sub-TLV type of top-level TLV 22, which has been reflected in the ISIS sub-TLV registry for TLV 22, 141, and 222:
Type Description Length
---- ------------------------------------------------- ------
27 Interface Adjustment Capability Descriptor (IACD) Var.
9. References β¨
9.1. Normative References
These are the must-read docs the spec leans on, so here they are with every detail intact πβ¨
[IEEE] IEEE, "IEEE Standard for Binary Floating-Point
Arithmetic", Standard 754-1985, 1985.
[RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S.
Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1
Functional Specification", RFC 2205, September 1997.
[RFC2210] Wroclawski, J., "The Use of RSVP with IETF Integrated
Services", RFC 2210, September 1997.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2997] Bernet, Y., Smith, A., and B. Davie, "Specification of the
Null Service Type", RFC 2997, November 2000.
[RFC3471] Berger, L., Ed., "Generalized Multi-Protocol Label
Switching (GMPLS) Signaling Functional Description", RFC
3471, January 2003.
[RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label
Switching (GMPLS) Signaling Resource ReserVation Protocol-
Traffic Engineering (RSVP-TE) Extensions", RFC 3473,
January 2003.
[RFC3477] Kompella, K. and Y. Rekhter, "Signalling Unnumbered Links
in Resource ReSerVation Protocol - Traffic Engineering
(RSVP-TE)", RFC 3477, January 2003.
[RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering
(TE) Extensions to OSPF Version 2", RFC 3630, September
2003.
[RFC3945] Mannie, E., Ed., "Generalized Multi-Protocol Label
Switching (GMPLS) Architecture", RFC 3945, October 2004.
[RFC4201] Kompella, K., Rekhter, Y., and L. Berger, "Link Bundling
in MPLS Traffic Engineering (TE)", RFC 4201, October 2005.
[RFC4202] Kompella, K., Ed., and Y. Rekhter, Ed., "Routing
Extensions in Support of Generalized Multi-Protocol Label
Switching (GMPLS)", RFC 4202, October 2005.
[RFC4203] Kompella, K., Ed., and Y. Rekhter, Ed., "OSPF Extensions
in Support of Generalized Multi-Protocol Label Switching
(GMPLS)", RFC 4203, October 2005.
[RFC4206] Kompella, K. and Y. Rekhter, "Label Switched Paths (LSP)
Hierarchy with Generalized Multi-Protocol Label Switching
(GMPLS) Traffic Engineering (TE)", RFC 4206, October 2005.
[RFC4606] Mannie, E. and D. Papadimitriou, "Generalized Multi-
Protocol Label Switching (GMPLS) Extensions for
Synchronous Optical Network (SONET) and Synchronous
Digital Hierarchy (SDH) Control", RFC 4606, August 2006.
[RFC4874] Lee, CY., Farrel, A., and S. De Cnodder, "Exclude Routes -
Extension to Resource ReserVation Protocol-Traffic
Engineering (RSVP-TE)", RFC 4874, April 2007.
[RFC4974] Papadimitriou, D. and A. Farrel, "Generalized MPLS (GMPLS)
RSVP-TE Signaling Extensions in Support of Calls", RFC
4974, August 2007.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226,
May 2008.
[RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic
Engineering", RFC 5305, October 2008.
[RFC5307] Kompella, K., Ed., and Y. Rekhter, Ed., "IS-IS Extensions
in Support of Generalized Multi-Protocol Label Switching
(GMPLS)", RFC 5307, October 2008.
[RFC5420] Farrel, A., Ed., Papadimitriou, D., Vasseur, JP., and A.
Ayyangarps, "Encoding of Attributes for MPLS LSP
Establishment Using Resource Reservation Protocol Traffic
Engineering (RSVP-TE)", RFC 5420, February 2009.
[RFC5996] Kaufman, C., Hoffman, P., Nir, Y., and P. Eronen,
"Internet Key Exchange Protocol Version 2 (IKEv2)", RFC
5996, September 2010.
9.2. Informative References
Bonus reading for the curious, bestie. These aren't required, but they're so worth a look π§
[HIER-BIS] Shiomoto, K., Ed., and A. Farrel, "Procedures for
Dynamically Signaled Hierarchical Label Switched Paths",
Work in Progress, February 2010.
[RFC5212] Shiomoto, K., Papadimitriou, D., Le Roux, JL., Vigoureux,
M., and D. Brungard, "Requirements for GMPLS-Based Multi-
Region and Multi-Layer Networks (MRN/MLN)", RFC 5212, July
2008.
[RFC5339] Le Roux, JL., Ed., and D. Papadimitriou, Ed., "Evaluation
of Existing GMPLS Protocols against Multi-Layer and Multi-
Region Networks (MLN/MRN)", RFC 5339, September 2008.
[RFC5710] Berger, L., Papadimitriou, D., and JP. Vasseur, "PathErr
Message Triggered MPLS and GMPLS LSP Reroutes", RFC 5710,
January 2010.
[RFC5817] Ali, Z., Vasseur, JP., Zamfir, A., and J. Newton,
"Graceful Shutdown in MPLS and Generalized MPLS Traffic
Engineering Networks", RFC 5817, April 2010.
[RFC5920] Fang, L., Ed., "Security Framework for MPLS and GMPLS
Networks", RFC 5920, July 2010.
Acknowledgments π«Ά
The authors gave a big shoutout to Mr. Wataru Imajuku for the super helpful discussions about adjustment between regions. Thank you, queen π
Contributors π
These folks helped shape the spec, so they get their flowers πΈ
Eiji Oki
University of Electro-Communications
1-5-1 Chofugaoka
Chofu, Tokyo 182-8585, Japan
EMail: oki@ice.uec.ac.jp
Ichiro Inoue
NTT Network Service Systems Laboratories
3-9-11 Midori-cho
Musashino-shi, Tokyo 180-8585, Japan
Phone: +81 422 596076
EMail: ichiro.inoue@lab.ntt.co.jp
Emmanuel Dotaro
Alcatel-Lucent France
Route de Villejust
91620 Nozay, France
Phone: +33 1 69634723
EMail: emmanuel.dotaro@alcatel-lucent.fr
Gert Grammel
Alcatel-Lucent SEL
Lorenzstrasse, 10
70435 Stuttgart, Germany
EMail: gert.grammel@alcatel-lucent.de
Authors' Addresses π¦
Here's where you can find the authors. Slide into their inboxes if you've got questions π
Dimitri Papadimitriou
Alcatel-Lucent
Copernicuslaan 50
B-2018 Antwerpen, Belgium
Phone: +32 3 2408491
EMail: dimitri.papadimitriou@alcatel-lucent.com
Martin Vigoureux
Alcatel-Lucent
Route de Villejust
91620 Nozay, France
Phone: +33 1 30772669
EMail: martin.vigoureux@alcatel-lucent.fr
Kohei Shiomoto
NTT
3-9-11 Midori-cho
Musashino-shi, Tokyo 180-8585, Japan
Phone: +81 422 594402
EMail: shiomoto.kohei@lab.ntt.co.jp
Deborah Brungard
ATT
Rm. D1-3C22 - 200 S. Laurel Ave.
Middletown, NJ 07748, USA
Phone: +1 732 4201573
EMail: dbrungard@att.com
Jean-Louis Le Roux
France Telecom
Avenue Pierre Marzin
22300 Lannion, France
Phone: +33 2 96053020
EMail: jean-louis.leroux@rd.francetelecom.com
π¦ where this page comes from
- ietf: rfc6001 2010-10
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms