RFC 9025
Deterministic Networking (DetNet) Data Plane: MPLS over UDP/IP
Deterministic Networking (DetNet) Data Plane: MPLS over UDP/IP π
- RFC: 9025 π (Request for Comments: 9025)
- Category: Standards Track π (ISSN: 2070-1721)
- Date: April 2021 πΈ
- Published by: Internet Engineering Task Force (IETF) π
- Authors: B. Varga, Ed. (Ericsson), J. Farkas (Ericsson), L. Berger (LabN Consulting, L.L.C.), A. Malis (Malis Consulting), S. Bryant (Futurewei Technologies) π«Ά
- Obsoletes / Updates: neither is listed in the header, so this one isn't replacing or updating anything π
Abstract β¨
okay so this doc explains how the MPLS DetNet data plane works and how it gets wrapped up to ride over an IP network π¦ The whole approach is built on how MPLS-over-UDP already operates, so it's giving familiar vibes π
Status of This Memo π
bestie, this is an Internet Standards Track document π which means 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, and it went through public review before the Internet Engineering Steering Group (IESG) approved it for publication π If you want more on Internet Standards, check out Section 2 of RFC 7841.
You can find the current status of this document, any errata, and a place to send feedback at https://www.rfc-editor.org/info/rfc9025 π
Copyright Notice π
Copyright (c) 2021 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, as they read on the publication date. https://trustee.ietf.org/license-info has the details. Please read these carefully because they spell out your rights and restrictions for this document π Any Code Components pulled out of this document must include the Simplified BSD License text described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as the Simplified BSD License describes πΈ
Table of Contents ποΈ
1. Introduction
2. Terminology
2.1. Terms Used in This Document
2.2. Abbreviations
2.3. Requirements Language
3. DetNet MPLS Operation over DetNet IP PSNs
4. DetNet Data Plane Procedures
5. Management and Control Information Summary
6. Security Considerations
7. IANA Considerations
8. References
8.1. Normative References
8.2. Informative References
Acknowledgements
Contributors
Authors' Addresses
1. Introduction π§
okay so Deterministic Networking (DetNet) is a service a network can offer to DetNet flows β¨ It gives those flows extremely low packet loss rates and a guaranteed maximum end-to-end delivery latency. Main character energy π If you want the background and concepts, [RFC8655] is where to look.
To carry DetNet MPLS flows with full functionality at the DetNet layer over an IP network, you need these four components. They're a subset of the requirements for MPLS encapsulation listed in [RFC8964] π
- A method for identifying DetNet flows to the processing element.
- A method for carrying the DetNet sequence number.
- A method for distinguishing DetNet Operations, Administration, and Maintenance (OAM) packets from DetNet data packets.
- A method for carrying queuing and forwarding indication.
These requirements are fully satisfied by the DetNet over MPLS Encapsulation in [RFC8964], and they're partly satisfied by the DetNet IP data plane in [RFC8939] π¦ With that one, IP flows can be identified, but no DetNet sequence number gets carried.
This document is all about using the MPLS DetNet encapsulation over an IP network π The approach is modeled on how MPLS works over an IP Packet Switched Network (PSN) using UDP encapsulation, per [RFC7510]. It maps the MPLS data plane encapsulation from [RFC8964] onto the DetNet IP data plane from [RFC8939] π
[RFC7510] says, "MPLS-in-UDP MUST NOT be used over the general Internet, or over non-cooperating network operators, to carry traffic that is not congestion controlled." π That rule does apply when you use RFC 7510 in a DetNet network, since DetNet is limited to a single administrative control or a closed group of administrative control.
2. Terminology π
2.1. Terms Used in This Document
This document uses the terminology from the DetNet architecture in [RFC8655]. It assumes you already know that document and its terms, so go read it if you haven't πΈ
2.2. Abbreviations
Here are the abbreviations this document uses π
d-CW A DetNet Control Word (d-CW) is used for sequencing and
identifying duplicate packets of a DetNet flow at the
DetNet service sub-layer.
DetNet Deterministic Networking
DSCP Differentiated Services Code Point
A-Label A special case of an S-Label, whose properties are
known only at the aggregation and deaggregation
endpoints.
F-Label A DetNet "forwarding" label that identifies the LSP
used to forward a DetNet flow across an MPLS PSN, e.g.,
a hop-by-hop label used between label-switching
routers.
MPLS Multiprotocol Label Switching
OAM Operations, Administration, and Maintenance
PEF Packet Elimination Function
POF Packet Ordering Function
PREOF Packet Replication, Elimination, and Ordering Functions
PRF Packet Replication Function
PSN Packet Switched Network
S-Label A DetNet "service" label that is used between DetNet
nodes that also implement the DetNet service sub-layer
functions. An S-Label is also used to identify a
DetNet flow at the DetNet service sub-layer.
2.3. Requirements Language
Here's the deal with the key words. "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" are to be read as described in BCP 14 [RFC2119] [RFC8174], but only when they show up in all capitals, exactly like that π₯ Lowercase ones are just regular words, bestie.
3. DetNet MPLS Operation over DetNet IP PSNs π¦
This document builds on the MPLS over UDP spec in [RFC7510] β¨ It can partly or entirely swap out the F-Label(s) from [RFC8964] for UDP and IP headers. The UDP and IP header info is used to identify DetNet flows, including member flows, per [RFC8939]. The result looks like Figure 1 below. There can be zero or more F-Labels between the S-Label and the UDP header π
Note that this encapsulation works just as well with IPv4, IPv6, and IPv6-based Segment Routing [RFC8754] π
+---------------------------------+
| |
| DetNet App-Flow |
| Payload Packet |
| |
+---------------------------------+ <--\
| DetNet Control Word | |
+---------------------------------+ +--> DetNet data plane
| S-Label | | MPLS encapsulation
+---------------------------------+ |
| [ F-Label(s) ] | |
+---------------------------------+ <--+
| UDP Header | |
+---------------------------------+ +--> DetNet data plane
| IP Header | | IP encapsulation
+---------------------------------+ <--/
| Data-Link |
+---------------------------------+
| Physical |
+---------------------------------+
Figure 1: UDP/IP Encapsulation of DetNet MPLS
S-Labels, A-Labels (when present), d-CW, and zero or more F-Labels keep working the way [RFC8964] defines them. This document doesn't change any of them π«Ά
4. DetNet Data Plane Procedures π
Okay, this is the part where the rules get real. To support outgoing DetNet MPLS over UDP encapsulation, an implementation MUST support provisioning UDP and IP header information, either in addition to F-Label(s) or in place of them π₯ Heads up: when the PRF runs at the MPLS service sub-layer, there are multiple member flows, and each one needs its own UDP and IP header info provisioned.
The headers for each outgoing packet MUST be formatted according to the configuration information and as defined in [RFC7510]. The UDP Source Port value MUST be set so that it uniquely identifies the DetNet flow β¨ After that, the packet MUST then be handled as a DetNet IP packet, per [RFC8939], and that includes the QoS-related traffic treatment π
For the receive side, an implementation MUST also support provisioning received UDP and IP header information π That provisioned info MUST be used to identify incoming app flows based on the combo of the S-Label and the incoming encapsulation header info. Then normal receive processing from [RFC8964], including PEF and POF, can happen π¦
5. Management and Control Information Summary ποΈ
Here's the minimum set of info you need to configure DetNet MPLS over UDP/IP πΈ
- Label information (A-Labels, S-Labels, and F-Labels) that gets mapped to UDP/IP flows. For example, one S-Label can map to multiple sets of UDP/IP info when PREOF is used.
- IPv4 or IPv6 source address field
- IPv4 or IPv6 destination address field
- DSCP Field in either IPv4 Type of Service or IPv6 Traffic Class Fields
- UDP Source Port
- UDP Destination Port
- Use/non-use of UDP checksum
This info MUST be provisioned per DetNet flow through configuration, for example through the controller in [RFC8655] or the management plane π§ Whether to use the UDP checksum is a case-by-case call for each network scenario, based on the exception criteria in [RFC7510], especially when IPv6 is in play π
It's the DetNet Controller Plane's job to properly provision both the flow identification info and the flow-specific resources needed for the traffic treatment each flow's service requirements call for. This goes for both aggregated and individual flows π
| Note: In the presence of network (and port) address translation
| devices/functions, it would be up to the Controller Plane to
| determine the appropriate information to ensure proper mapping
| at the sender/receiver.
6. Security Considerations π
bestie, this one is serious, so read carefully π
The solution in this document reuses mechanisms specified in other documents, and the security considerations in those documents apply equally here. [RFC7510] is especially important, since this document is mainly an application of MPLS-over-UDP. The security considerations for DetNet in general are covered in [RFC8655] and [DETNET-SECURITY]. Finally, the MPLS- and IP-specific security considerations are described in [RFC8964] and [RFC8939]. This document doesn't add any security considerations of its own π«Ά
7. IANA Considerations π
This document has no IANA actions β¨
8. References π
8.1. Normative References β¨
okay bestie, these are the docs DetNet has to be read alongside, no skipping π
- [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. - [RFC7510] Xu, X., Sheth, N., Yong, L., Callon, R., and D. Black, "Encapsulating MPLS in UDP", RFC 7510, DOI 10.17487/RFC7510, April 2015,
https://www.rfc-editor.org/info/rfc7510. - [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. - [RFC8939] Varga, B., Ed., Farkas, J., Berger, L., Fedyk, D., and S. Bryant, "Deterministic Networking (DetNet) Data Plane: IP", RFC 8939, DOI 10.17487/RFC8939, November 2020,
https://www.rfc-editor.org/info/rfc8939. - [RFC8964] Varga, B., Ed., Farkas, J., Berger, L., Malis, A., Bryant, S., and J. Korhonen, "Deterministic Networking (DetNet) Data Plane: MPLS", RFC 8964, DOI 10.17487/RFC8964, January 2021,
https://www.rfc-editor.org/info/rfc8964.
8.2. Informative References π¦
these ones are super useful for context, not strictly required reading, but I'd still read them, ngl π€
- [DETNET-SECURITY] Grossman, E., Ed., Mizrahi, T., and A. J. Hacker, "Deterministic Networking (DetNet) Security Considerations", Work in Progress, Internet-Draft, draft-ietf-detnet-security-16, 22 February 2021,
https://tools.ietf.org/html/draft-ietf-detnet-security-16. - [RFC8655] Finn, N., Thubert, P., Varga, B., and J. Farkas, "Deterministic Networking Architecture", RFC 8655, DOI 10.17487/RFC8655, October 2019,
https://www.rfc-editor.org/info/rfc8655. - [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020,
https://www.rfc-editor.org/info/rfc8754.
Acknowledgements π«Ά
the authors wanted to give a huge shoutout to Pat Thaler, Norman Finn, Loa Anderson, David Black, Rodney Cummings, Ethan Grossman, Tal Mizrahi, David Mozes, Craig Gunther, George Swallow, Yuanlong Jiang, and Carlos J. Bernardos for their various contributions to this work. the whole squad, honestly πβ¨
Contributors πΈ
this document is derived from an earlier draft that was edited by Jouni Korhonen (jouni.nospam@gmail.com), and as such, he contributed to and authored text in this document. he really left his mark, iykyk π
Authors' Addresses π
the people who made it all happen, with their contact details, so you can slide into their inbox if you have questions π¬
BalΓ‘zs Varga (editor)
Ericsson
Budapest
Magyar Tudosok krt. 11.
1117
Hungary
Email: balazs.a.varga@ericsson.com
JΓ‘nos Farkas
Ericsson
Budapest
Magyar Tudosok krt. 11.
1117
Hungary
Email: janos.farkas@ericsson.com
Lou Berger
LabN Consulting, L.L.C.
Email: lberger@labn.net
Andrew G. Malis
Malis Consulting
Email: agmalis@gmail.com
Stewart Bryant
Futurewei Technologies
Email: sb@stewartbryant.com
π¦ where this page comes from
- ietf: rfc9025 2021-04
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms