RFC 8359
Network-Assigned Upstream Label
RFC 8359: Network-Assigned Upstream Label π
bestie, this one is from March 2018, and it's a Standards Track doc from the IETF (the Internet Engineering Task Force, the folks who write the Internet's rulebook π). It's an ISSN 2070-1721 document, and it updates RFC 3471, RFC 3473, and RFC 6205 β¨. The header doesn't list anything it obsoletes.
The editors are X. Zhang (Huawei Technologies) and V. Beeram (Juniper Networks), both marked "Ed." because they're the ones who pulled the whole thing together π«Ά. The other authors are I. Bryskin (Huawei Technologies), D. Ceccarelli (Ericsson), and O. Gonzalez de Dios (Telefonica). Such a big squad, and so iconic π
Abstract β¨
okay so the big idea is this: a GMPLS (Generalized Multi-Protocol Label Switching) RSVP-TE mechanism (Resource reSerVation Protocol with Traffic Engineering) that lets the network pick an upstream label for a bidirectional Label Switched Path (LSP) π¦. This is clutch when a node just doesn't have enough info to choose the right upstream label by itself, so it leans on the downstream node to pick one. The doc also updates RFCs 3471, 3473, and 6205 because it adds handling for a special label value in the UPSTREAM_LABEL object π
Status of This Memo πΈ
this is an Internet Standards Track document, no cap. It's a product of the IETF, it represents the consensus of the IETF community, it got public review, and the IESG (Internet Engineering Steering Group) approved it for publication π. If you want more on Internet Standards, check Section 2 of RFC 7841.
Info about its current status, any errata, and how to send feedback lives at https://www.rfc-editor.org/info/rfc8359 π₯
Copyright Notice π
the IETF Trust and the document authors own the copyright for 2018, and all rights are reserved π. This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents, which you can find at https://trustee.ietf.org/license-info as they stood on the publication date. Please actually read those, because they spell out what you can and can't do with this doc π
If you pull Code Components out of this document, they must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions. They also come without warranty, as described in the Simplified BSD License π
Table of Contents π§
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3
3. Unassigned Upstream Label . . . . . . . . . . . . . . . . . . 3
3.1. Procedures . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Backwards Compatibility . . . . . . . . . . . . . . . . . 5
4. Use-Case: Wavelength Setup for IP over Optical Networks . . . 5
4.1. Initial Setup . . . . . . . . . . . . . . . . . . . . . . 6
4.2. Wavelength Change . . . . . . . . . . . . . . . . . . . . 7
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
6. Security Considerations . . . . . . . . . . . . . . . . . . . 7
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 8
7.1. Normative References . . . . . . . . . . . . . . . . . . 8
7.2. Informative References . . . . . . . . . . . . . . . . . 9
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 9
Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10
1. Introduction β¨
okay so the GMPLS signaling extensions for setting up a bidirectional LSP are functionally described in [RFC3471] π . The GMPLS RSVP-TE extensions for that same setup are specified in [RFC3473] π¦. A bidirectional LSP shows up as an UPSTREAM_LABEL object in the Path message, and that's how you know it's bidirectional πΈ
here's the existing vibe: every upstream node must allocate a valid upstream label on the outgoing interface before it sends the initial Path message downstream. BUT (and this is the tea β) there are certain scenarios, see Section 4, where it's not desirable or possible for a node to pick that upstream label on its own π
so this doc defines the protocol mechanism for those scenarios. A node can offload the job of assigning the upstream label to nodes downstream in the network π§ This is only meant for bidirectional LSPs that use symmetric labels at each hop along the LSP path. Bidirectional Lambda Switch Capable (LSC) LSPs use symmetric lambda labels (format specified in [RFC6205]) at each hop, so they're the main vibe here π
now, per the bidirectional LSP setup procedures in [RFC3471] and [RFC3473], the UPSTREAM_LABEL object must indicate a label that is valid for forwarding. This doc updates that rule by letting the UPSTREAM_LABEL object indicate a special label that is not valid for forwarding π₯
also per the bidirectional LSC LSP setup procedures in [RFC6205], the LABEL_SET object and the UPSTREAM_LABEL object must contain the same label value. Again, this doc updates that by letting the UPSTREAM_LABEL object carry a special label value that's different from the one in the LABEL_SET object π
2. Requirements Language π
the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be read as described in BCP 14 [RFC2119] [RFC8174], but only when they appear in all capitals, as shown here π«Ά Lowercase versions are just regular English, bestie π
3. Unassigned Upstream Label π¦
this doc defines a special label value, "0xFFFFFFFF" (for a 4-octet label), to mean an Unassigned Upstream Label πΈ Similar "all-ones" patterns are expected for labels of other sizes β¨
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1|
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: Unassigned UPSTREAM_LABEL - "all-ones" Pattern
when this value shows up in the UPSTREAM_LABEL object of a Path message, it tells you the upstream node hasn't assigned an upstream label on its own. It's basically asking the downstream node for a label it can use in both the forward and reverse directions π§
and here's the bit that matters: the presence of this value in the UPSTREAM_LABEL object of a Path message MUST also be interpreted by the receiving node as a request to mandate symmetric labels for the LSP π₯ That's not optional, babe.
3.1. Procedures π
the procedures only cover messages exchanged between an upstream node and its immediate downstream node π The Unassigned Upstream Label gets used by an upstream node when it isn't in a position to pick the upstream label on its own. In that case, the upstream node sends a Path message downstream carrying the Unassigned Upstream Label, and it asks the downstream node to provide a symmetric label π¦
if the upstream node wants the downstream node to know about its limits on label selection, it MUST specify a list of valid labels via the LABEL_SET object, as specified in [RFC3473] π
then the downstream node picks a suitable symmetric label and sends it back via the LABEL object in the Resv message β¨ The upstream node then starts using that symmetric label for both directions of the LSP π If the downstream node can't pick a symmetric label, it MUST issue a PathErr message with a "Routing Problem/Unacceptable Label Value" indication π And if the upstream node that signaled the Unassigned Upstream Label gets a label with the "all-ones" pattern, or any other unacceptable label, in the LABEL object of the Resv message, it MUST issue a ResvErr message with a "Routing Problem/Unacceptable Label Value" indication π
the upstream node keeps signaling the Unassigned Upstream Label in the Path message even after it gets a good symmetric label in the Resv message πΈ Why? So the downstream node can pick a different symmetric label if it ever needs to change the label later on π§ And if the upstream node gets an unacceptable changed label, it MUST issue a ResvErr message with a "Routing Problem/Unacceptable Label Value" indication π₯
+----------+ +------------+
---| Upstream |--------------------| Downstream |---
+----------+ +------------+
Path
Upstream Label (Unassigned)
Label-Set (L1, L2 ... Ln)
------------------->
Resv
Label (Assigned - L2)
<-------------------
Figure 2: Signaling Sequence
3.2. Backwards Compatibility π«Ά
okay so if the downstream node runs an implementation that doesn't support the semantics of an Unassigned UPSTREAM LABEL, it will do one of two things π Option (a): it rejects the special label value and generates an error as specified in Section 3.1 of [RFC3473]. Option (b): it accepts the value and treats it as a valid label π
if the behavior is (a), there are no backwards compatibility concerns π If the behavior is (b), the downstream node sends back a label with the "all-ones" pattern in the LABEL object of the Resv message, and the upstream node responds by issuing a ResvErr message with a "Routing Problem/Unacceptable Label Value" indication π
4. Use-Case: Wavelength Setup for IP over Optical Networks πΈ
picture this, it's giving real world π Consider the network topology in Figure 3. Nodes A and B are client IP routers hooked up to an optical Wavelength Division Multiplexing (WDM) transport network β¨ F and I are WDM nodes. The transponder sits on the router and connects directly to the add-drop port on a WDM node π¦
the optical signal coming from "Router A" gets tuned to a particular wavelength π On "WDM-Node F", it gets multiplexed with optical signals at other wavelengths π Depending on how that multiplexing works, the router might not be allowed to send its signal into the optical network unless it's on the right wavelength. Sending a signal on the wrong wavelength could hurt existing optical trails π And if the clients don't have full visibility into the optical network, they can't pick the correct wavelength ahead of time π§
so the rest of this section looks at how the protocol mechanism in this doc lets the optical network pick and tell its clients the correct wavelength π It's giving network-assigned energy, periodt π
4.1. Initial Setup β¨
Okay so, here's the handshake, bestie π Picture three nodes in a row: Router A, Node F in the middle, and Router B at the end.
+---+ /-\ /-\ +---+
| A |----------------( F ) ~~~~~~~~~ ( I )----------------| B |
+---+ \-/ \-/ +---+
Path
Upstream Label (Unassigned/0xFFFFFFFF)
--------------------->
-- ~~ -- ~~ -->
Path
-------------------->
Resv
<--------------------
<-- ~~ -- ~~ --
Resv
Label (Assigned)
<---------------------
Figure 3: Initial Setup Sequence
Here's how the steps go π
- "Router A" doesn't have enough info to pick a good client wavelength yet π« So it sends a Path message downstream asking the network to assign a symmetric label it can use. Since the client wavelength is unknown, the laser is off at the ingress client. Lowkey iconic, honestly.
- The downstream node (Node F) gets the Path message, picks the right wavelength values, and forwards them in the right label fields over to the egress client ("Router B") π§
- "Router B" gets the Path message, turns the laser ON, and tunes it to the right wavelength (the one it got in the
UPSTREAM_LABEL/LABEL_SETof the Path). Then it sends a Resv message upstream π¦ - The Resv message that the ingress client receives carries a valid symmetric label in the
LABELobject. "Router A" turns its laser on and tunes it to the wavelength in that network-assigned symmetricLABELπ
Now, if the egress node relies on RSVP signaling to figure out exactly when to start using the LSP, implementations may choose to combine the sequence above with any of the existing graceful setup procedures πΈ Those are:
"ResvConf"setup procedure ([RFC2205])- Two-step
"ADMIN STATUS"based setup procedure ("A"bit set in the first step;"A"bit cleared when the LSP is ready for use) ([RFC3473])
4.2. Wavelength Change
Okay, plot twist π After the LSP is set up, the network might decide to change the wavelength for that LSP. There are a bunch of reasons this could happen, like policy stuff, restoration within the core, preemption, etc. Main character energy from the network, fr.
So if the ingress client gets a changed label through the LABEL object in a modified Resv message, it retunes the laser at the ingress to the new wavelength β¨ Same deal on the other side: if the egress client gets a changed label via UPSTREAM_LABEL/LABEL_SET in a modified Path message, it retunes the laser at the egress to the new wavelength π
5. IANA Considerations π
IANA maintains the "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Parameters" registry. IANA has added a new subregistry titled "Special Purpose Generalized Label Values". New values get assigned according to Standards Action [RFC8126] π
Here's the new subregistry, bestie:
Special Purpose Generalized Label Values
Pattern/ Label Name Applicable Reference
Value Objects
-------- ---------------- -------------- ----------
all-ones Unassigned UPSTREAM_LABEL [RFC8359]
Upstream Label
6. Security Considerations π
This document defines a special label value that gets carried in the UPSTREAM_LABEL object of a Path message. That special label value is used to enable the function of requesting network assignment of an upstream label π«Ά The changes proposed here are about the semantics of one specific field in an existing RSVP object, plus the procedures around it. So, no new security implications come up from this document, and the security considerations discussed by [RFC3473] still apply.
β οΈ Security is not a vibe to skip! The security considerations in [RFC3473] still apply here, so don't treat this section as the whole story.
For a general discussion on MPLS and GMPLS related security issues, check out the MPLS/GMPLS security framework [RFC5920] π
7. References π
7.1. Normative References
[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>.
[RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S.
Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1
Functional Specification", RFC 2205, DOI 10.17487/RFC2205,
September 1997, <https://www.rfc-editor.org/info/rfc2205>.
[RFC3471] Berger, L., Ed., "Generalized Multi-Protocol Label
Switching (GMPLS) Signaling Functional Description",
RFC 3471, DOI 10.17487/RFC3471, January 2003,
<https://www.rfc-editor.org/info/rfc3471>.
[RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label
Switching (GMPLS) Signaling Resource ReserVation Protocol-
Traffic Engineering (RSVP-TE) Extensions", RFC 3473,
DOI 10.17487/RFC3473, January 2003,
<https://www.rfc-editor.org/info/rfc3473>.
[RFC6205] Otani, T., Ed. and D. Li, Ed., "Generalized Labels for
Lambda-Switch-Capable (LSC) Label Switching Routers",
RFC 6205, DOI 10.17487/RFC6205, March 2011,
<https://www.rfc-editor.org/info/rfc6205>.
[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>.
7.2. Informative References
[RFC5920] Fang, L., Ed., "Security Framework for MPLS and GMPLS
Networks", RFC 5920, DOI 10.17487/RFC5920, July 2010,
<https://www.rfc-editor.org/info/rfc5920>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>.
Acknowledgements π«Ά
The authors would like to thank Adrian Farrel and Chris Bowers for their inputs. Thank you, legends π
Contributors π
John Drake
Juniper Networks
Email: jdrake@juniper.net
Gert Grammel
Juniper Networks
Email: ggrammel@juniper.net
Pawel Brzozowski
ADVA Optical Networking
Email: pbrzozowski@advaoptical.com
Zafar Ali
Cisco Systems, Inc.
Email: zali@cisco.com
Authors' Addresses π¦
Xian Zhang (editor)
Huawei Technologies
Email: zhang.xian@huawei.com
Vishnu Pavan Beeram (editor)
Juniper Networks
Email: vbeeram@juniper.net
Igor Bryskin
Huawei Technologies
Email: igor.bryskin@huawei.com
Daniele Ceccarelli
Ericsson
Email: daniele.ceccarelli@ericsson.com
Oscar Gonzalez de Dios
Telefonica
Email: ogondio@tid.es
π¦ where this page comes from
- ietf: rfc8359 2018-03
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms