RFC 9056

Deterministic Networking (DetNet) Data Plane: IP over MPLS

πŸ“… published October 2021, from ietf

Part 1: RFC 9056 Gets a Glow-Up πŸŽ€

okay bestie, so this is RFC 9056, and it's giving Deterministic Networking (DetNet) Data Plane: IP over MPLS ✨. It's a Standards Track doc from the IETF, which means it's the real deal, not just vibes πŸ’…. It came out in October 2021 and it's written by B. Varga (who's the editor 🫢), L. Berger, D. Fedyk, S. Bryant, and J. Korhonen. Ericsson, LabN Consulting, Futurewei, and Korhonen's crew all show up on the byline 🌸. It doesn't obsolete or update anything, so it's a fresh start πŸ¦‹. The ISSN is 2070-1721 if you want to look it up πŸ’œ.

Now the tea β˜• This doc says what the DetNet data plane looks like when you wrap IP inside an MPLS network. DetNet is the service that gives flows extremely low packet loss and bounded end-to-end latency 😭πŸ”₯. Like, the packets basically arrive on time, every time. Iconic.

Status of This Memo πŸ“œ

This is an Internet Standards Track document πŸŽ€. It's a product of the IETF, it has community consensus, got public review, and the IESG approved it πŸ‘‘. More info on Internet Standards is in Section 2 of RFC 7841 πŸ’…. Errata and feedback live at https://www.rfc-editor.org/info/rfc9056 🌈.

Copyright (c) 2021 IETF Trust and the persons identified as the document authors. All rights reserved πŸ¦‹. This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as of the publication date 🧚. Read those carefully, because they spell out your rights 🫢. Any Code Components pulled out of this doc have to include the Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty πŸ“.

Table of Contents 🌸

  • 1. Introduction
  • 2. Terminology
    • 2.1. Terms Used in This Document
    • 2.2. Abbreviations
    • 2.3. Requirements Language
  • 3. DetNet IP Data Plane Overview
  • 4. DetNet IP over DetNet MPLS
    • 4.1. DetNet IP over DetNet MPLS Data Plane Scenarios
    • 4.2. DetNet IP over DetNet MPLS Encapsulation
  • 5. DetNet IP over DetNet MPLS Procedures
    • 5.1. DetNet IP over DetNet MPLS Flow Identification and Aggregation Procedures
    • 5.2. DetNet IP over DetNet MPLS Traffic Treatment Procedures
  • 6. Management and Control Information Summary
  • 7. Security Considerations
  • 8. IANA Considerations
  • 9. References
    • 9.1. Normative References
    • 9.2. Informative References
  • Acknowledgements
  • Contributors
  • Authors' Addresses

1. Introduction πŸ¦‹

Okay so DetNet is a service a network can offer to DetNet flows πŸ’…. It gives you delivery with extremely low packet loss and bounded end-to-end delivery latency 😭. If you want the background and the big picture, check the DetNet architecture in [RFC8655] πŸ“š.

This doc is all about the IP DetNet encapsulation running over an MPLS network 🌈. It maps the IP data plane encapsulation from [RFC8939] onto the DetNet MPLS data plane from [RFC8964] ✨.

2. Terminology πŸ’œ

2.1. Terms Used in This Document πŸŽ€

This doc uses the terminology from the DetNet architecture [RFC8655] and from [RFC8938] 🫢. It assumes you already know these docs and their vocab, so go read them if you don't πŸ“–.

2.2. Abbreviations 🌸

This doc uses the abbreviations from the DetNet architecture [RFC8655] and from [RFC8938] πŸ’…. On top of those, it uses the following ones:

CE            Customer Edge (equipment)

d-CW          DetNet Control Word

DetNet        Deterministic Networking

DF            DetNet Flow

DN            DetNet

L2            Layer 2

LSP           Label-Switched Path

MPLS          Multiprotocol Label Switching

PEF           Packet Elimination Function

PRF           Packet Replication Function

PREOF         Packet Replication, Elimination, and Ordering Functions

POF           Packet Ordering Function

PW            Pseudowire

S-Label       DetNet "service" Label

S-PE          Switching Provider Edge

T-PE          Terminating Provider Edge

TE            Traffic Engineering

TSN           Time-Sensitive Networking; TSN is a Task Group of the
              IEEE 802.1 Working Group

2.3. Requirements Language πŸ”₯

Okay this part is the important one πŸ‘‘. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this doc 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, no cap πŸ™ˆ.

3. DetNet IP Data Plane Overview 🧚

Figure 1 shows an IP DetNet with an MPLS-based DetNet network sitting as a sub-network between the relay nodes 🌸. An IP flow gets mapped to one or more PWs and MPLS (TE) LSPs πŸ¦‹. The end systems still send out IP-encapsulated traffic, and that traffic is identified as DetNet flows ✨. The relay nodes follow the procedures in Section 4 to map each DetNet flow onto MPLS LSPs πŸ’…. It isn't drawn, but relay nodes can also provide service sub-layer functions like PREOF using DetNet over MPLS, and that's shown by the solid line on the MPLS-facing side of the Service component 🫢. The Transit node is MPLS (TE) LSP aware and does switching based on MPLS labels, so it doesn't need to know anything about the DetNet service or the DetNet flow identification 🌈. For how IP flows map to MPLS, see Section 4, and for general DetNet-over-MPLS support, see [RFC8964] πŸ“š.

    DetNet IP       Relay         Transit         Relay      DetNet IP
    End System      Node           Node           Node       End System

   +----------+                                             +----------+
   |   Appl.  |<------------- End to End Service ---------->|  Appl.   |
   +----------+   .....-----+                 +-----.....   +----------+
   | Service  |<--: Service |--DetNet flow ---| Service :-->| Service  |
   |          |   :         |<-DN MPLS flow ->|         :   |          |
   +----------+   +---------+  +----------+   +---------+   +----------+
   |Forwarding|   |Fwd| |Fwd|  |Forwarding|   |Fwd| |Fwd|   |Forwarding|
   +-------.--+   +-.-+ +-.-+  +----.---.-+   +-.-+ +-.-+   +---.------+
           :  Link  :    /  ,-----.  \   : Link :    /  ,-----.  \
           +........+    +-[  Sub  ]-+   +......+    +-[  Sub  ]-+
                           [Network]                   [Network]
                            `-----'                     `-----'

                        |<---- DetNet MPLS ---->|
            |<--------------------- DetNet IP ------------------>|

         Figure 1: Architecture: DetNet IP over DetNet MPLS Network

4. DetNet IP over DetNet MPLS 🌸

This section explains how IP-encapsulated flows get carried over a DetNet MPLS data plane, as defined in [RFC8964] πŸ’œ. Since non-DetNet and DetNet IP packets look exactly the same on the wire, this section applies to any node that supports IP over DetNet MPLS 🫢. It calls both cases DetNet IP over DetNet MPLS πŸ¦‹.

4.1. DetNet IP over DetNet MPLS Data Plane Scenarios πŸŽ€

Here's an example of DetNet IP over DetNet MPLS in action ✨.

Figure 1 shows IP DetNet-enabled End Systems (hosts) connected to DetNet-enabled IP networks (DN IP), running over a DetNet-aware MPLS network 🌈. In this figure, the relay nodes act as T-PEs and sit at the edge of the MPLS domain, because the non-MPLS domain is DetNet aware πŸ’…. This is very similar to the DetNet MPLS Network (Figure 2 in [RFC8964]) 🫢. The difference is that in Figure 2 of [RFC8964] the T-PEs live at the end system and MPLS spans the whole DetNet service 🧚. The main difference in this doc is that the relay nodes are at the edges of the MPLS domain, so they act as T-PEs, and MPLS service sub-layer functions aren't provided over the DetNet IP network 🌸. The transit node functions shown above are the same as the ones in [RFC8964] πŸ’–.

Figure 2 shows how relay nodes can provide service protection over an MPLS domain πŸ¦‹. Here CE1 and CE2 are IP DetNet end systems that are interconnected through an MPLS domain like the one in [RFC8964] πŸ’œ. R1 and R3 sit at the edges of the MPLS domain, so they're similar to T-PEs, while R2 sits in the middle and is similar to an S-PE πŸ‘‘.

      DetNet                                         DetNet
IP    Service         Transit          Transit       Service  IP
DetNet               |<-Tnl->|        |<-Tnl->|               DetNet
End     |            V   1   V        V   2   V            |  End
System  |   +--------+       +--------+       +--------+   |  System
+---+   |   |   R1   |=======|   R2   |=======|   R3   |   |   +---+
|   |-------|._X_....|..DF1..|.__ ___.|..DF3..|...._X_.|-------|   |
|CE1|   |   |    \   |       |   X    |       |   /    |   |   |CE2|
|   |   |   |     \_.|..DF2..|._/ \__.|..DF4..|._/     |   |   |   |
+---+       |        |=======|        |=======|        |       +---+
    ^       +--------+       +--------+       +--------+       ^
    |        Relay Node       Relay Node       Relay Node      |
    |          (T-PE)           (S-PE)          (T-PE)         |
    |                                                          |
    |<-DN IP-> <-------- DetNet MPLS ---------------> <-DN IP->|
    |                                                          |
    |<-------------- End to End DetNet Service --------------->|

   -------------------------- Data Flow ------------------------->

    X   = Service protection (PRF, PREOF, PEF/POF)
    DFx = DetNet member flow x over a TE LSP

 Figure 2: Service Protection over DetNet MPLS Network for DetNet IP

Figure 1 also shows DetNet-enabled end systems connected to DetNet-enabled (DN) MPLS networks 🫢. A similar setup happens when the end systems aren't DetNet aware 🌈. In that case, the edge nodes sit at the MPLS domain boundary too, since it's also a DetNet domain boundary πŸ’…. The edge nodes act as DetNet service proxies for the end applications by starting and ending DetNet service for the application's IP flows ✨. The node types are different, but there's basically no difference in data plane processing between relays and edges πŸ¦‹. The Controller Plane operation probably differs, especially when distributed control plane protocols are used 🧚.

DetNet service protection still works for non-DetNet-aware end systems πŸ’–. It's basically the same as Figure 2, except CE1 and CE2 are non-DetNet-aware end systems and R1 and R3 become edge nodes 🌸.


Part 1 of 3. Part 2 is coming next, so stay tuned bestie πŸ«ΆπŸ’œ

4.2. DetNet IP over DetNet MPLS Encapsulation πŸŽ€

okay so the basic move here is to treat a DetNet IP flow as an App-flow from the DetNet MPLS point of view. πŸ’… Figure 3 shows what the example DetNet Sub-network format looks like, and honestly it's giving layers stacked on layers 🧚

                /->     +------+  +------+  +------+            ^ ^
                |       |  X   |  |  X   |  |  X   |<- App-flow : :
                |       +------+  +------+  +------+            : :
     App-flow <-+       |NProto|  |NProto|  |NProto|            : :(1)
      for MPLS  |       +------+  +------+  +------+            : :
                |       |  IP  |  |  IP  |  |  IP  |            : v
                \-> +---+======+--+======+--+======+-----+      :
     DetNet-MPLS        | d-CW |  | d-CW |  | d-CW |            :
                        +------+  +------+  +------+            :(2)
                        |Labels|  |Labels|  |Labels|            v
                    +---+======+--+======+--+======+-----+
     Link/Sub-network   |  L2  |  | TSN  |  | UDP  |
                        +------+  +------+  +------+
                                            |  IP  |
                                            +------+
                                            |  L2  |
                                            +------+
         (1) DetNet IP Flow (or simply IP flow)
         (2) DetNet MPLS Flow

         Figure 3: Example DetNet IP over MPLS Sub-network Formats

So in Figure 3, "App-flow" is the payload the DetNet IP data plane is carrying. "IP" and "NProto" are the fields described in Sections 5.1.1 (IP Header Information) and 5.1.2 (Other Protocol Header Information) of [RFC8939], respectively. "App-flow for MPLS" just means that one individual DetNet IP flow is the payload from the POV of the DetNet MPLS data plane defined in [RFC8964]. πŸ¦‹

Here's the tea β˜• Per Section 5.1 of [RFC8964], the DetNet MPLS data plane uses one S-Label to support one App-flow. Then DetNet IP Flow Identification Procedures in Section 5.1 of [RFC8939] say a single DetNet flow gets identified based on IP and next-level protocol header info. And Section 4.4 of [RFC8939] (DetNet Flow Aggregation) explains how aggregation works using prefixes, wildcards, lists, and port ranges. Put it all together and you get the pretty straightforward procedures in the next section. ✨

Also, as shown in Figure 2, DetNet relay nodes are in charge of mapping a DetNet flow, at the service sub-layer, from the IP DetNet data plane to the MPLS one and back again. πŸ” Their DetNet IP over DetNet MPLS data plane operation has two sets of procedures: mapping flow identifiers, and making sure the traffic gets the proper treatment. πŸ’œ

Mapping IP to DetNet MPLS works the same way for DetNet IP flows and plain IP flows. The six-tuple of IP gets mapped to the S-Label in both cases. Some of the fields may be mapped, or ignored, when going from IP to MPLS. 🌸


5. DetNet IP over DetNet MPLS Procedures πŸ‘‘

The main differences between mapping IP to DetNet MPLS and doing plain MPLS are these three things: (1) there's a mandatory flow identification step to make the forwarding decision (so forwarding is not based on FEC), (2) the d-CW (DetNet Control Word) is mandatory for the MPLS encapsulation, and (3) while forwarding over the DetNet MPLS network, the traffic needs treatment that's specific to DetNet flows. It's a whole glow-up 🌈

5.1. DetNet IP over DetNet MPLS Flow Identification and Aggregation Procedures ✨

A DetNet relay node (ingress T-PE) that sends a DetNet IP flow over a DetNet MPLS network MUST map a DetNet IP flow, as identified in [RFC8939], into a single MPLS DetNet flow, and it MUST process that flow in accordance with the procedures defined in [RFC8964]. PRF MAY be supported at the MPLS level for DetNet IP flows sent over a DetNet MPLS network. Aggregation MAY be supported as defined in Section 4.4 of [RFC8964]. Aggregation considerations in [RFC8939] MAY be used to identify an individual DetNet IP flow. The provisioning of the mapping of DetNet IP flows to DetNet MPLS flows MUST be supported via configuration, e.g., via the Controller Plane. 🫢

A DetNet relay node (egress T-PE) MAY be provisioned to handle packets received via the DetNet MPLS data plane as DetNet IP flows. A single incoming DetNet MPLS flow MAY be treated as a single DetNet IP flow, without examining the IP headers. Or, alternatively, packets received via the DetNet MPLS data plane MAY follow the normal DetNet IP flow identification procedures defined in Section 5.1 of [RFC8939]. πŸ“

An implementation MUST support the provisioning for handling any packet flows received via the DetNet MPLS data plane as DetNet IP flows, via configuration. Note that such configuration MAY include support from PREOF on the incoming DetNet MPLS flow. πŸ’…

   |  Note: Using Layer 4 (L4) transport protocols (e.g., for
   |  multipath) are out of scope of this document both for a single
   |  flow and aggregate flows.

5.2. DetNet IP over DetNet MPLS Traffic Treatment Procedures πŸ’–

The traffic treatment a particular DetNet IP flow needs is provisioned via configuration or the Controller Plane. When a DetNet IP flow is sent over DetNet MPLS, a DetNet relay node MUST ensure that the provisioned DetNet IP traffic treatment is provided at the forwarding sub-layer, as described in Section 5.2 of [RFC8964]. Note that PRF MAY be utilized when sending IP over MPLS. πŸ”₯

Traffic treatment for DetNet IP flows received over the DetNet MPLS data plane MUST follow Section 5.3 of [RFC8939] (DetNet IP Traffic Treatment Procedures). πŸ¦‹

6. Management and Control Information Summary 🧚

okay so here's what you need to know for DetNet IP over DetNet MPLS at the MPLS ingress node πŸ“₯

  • Each MPLS App-Flow gets selected from the incoming IP traffic using the IP flow identification info defined in [RFC8939]. That info is summarized in Section 5.1 of that document, and it includes all wildcards, port ranges, and the ability to ignore specific IP fields. πŸ’œ
  • The DetNet MPLS service that's going to be used to send the matching IP traffic. This matching info is provided in Section 5.1 of [RFC8964], and it covers both service and traffic delivery information. πŸŽ€

And here's what you need at the MPLS egress node πŸ“€

  • The S-Label value that identifies the encapsulated App-flow traffic.
  • For each S-Label, how the received traffic is to be handled. The traffic may be processed as any other DetNet IP traffic as defined in this document or in [RFC8939], or it may be directly treated as an MPLS App-flow for additional processing according to [RFC8964]. 🌸

It is the responsibility of the DetNet Controller Plane to properly provision both the flow identification info and the flow-specific resources needed to provide the traffic treatment that meets each flow's service requirements. This applies to aggregated and individual flows alike. πŸ‘‘

7. Security Considerations πŸ”

⚠️ Okay bestie, this section is seriously important, so read it carefully.

General security considerations for DetNet are described in detail in [RFC9055]. DetNet MPLS and DetNet IP security considerations equally apply to this document, and they're described in [RFC8964] and [RFC8939]. πŸ›‘οΈ

Security aspects that are unique to DetNet are the ones aimed at protecting the support of specific quality-of-service aspects of DetNet. Those are mainly about delivering data flows with extremely low packet loss rates and bounded end-to-end delivery latency. 😭

The main considerations for the data plane are maintaining the integrity of data and the delivery of the associated DetNet service traversing the DetNet network. Application flows can be protected by whatever means the underlying technology provides. For example, encryption may be used, such as that provided by IPsec [RFC4301] for IP flows, and/or by an underlying sub-net using MACsec [IEEE802.1AE-2018] for IP-over-Ethernet (Layer 2) flows. πŸ”’

From a data plane perspective, this document does not add or modify any header information. πŸ™Œ

At the management and control level, DetNet flows are identified on a per-flow basis. That may give Controller Plane attackers additional information about the data flows, compared to Controller Planes that don't include per-flow identification. This is an inherent property of DetNet, and it has security implications that should be considered when deciding whether DetNet is a suitable technology for any given use case. πŸ‘€

To provide uninterrupted availability of the DetNet service, provisions can be made against DoS attacks and delay attacks. To protect against DoS attacks, excess traffic from malicious or malfunctioning devices can be prevented or mitigated, for example through the use of existing mechanisms such as policing and shaping applied at the input of a DetNet domain. To keep DetNet packets from being delayed by an entity outside a DetNet domain, DetNet technology definitions can allow for mitigating man-in-the-middle attacks (for example, through authentication and authorization of devices within the DetNet domain). 🚨

8. IANA Considerations πŸ“

This document has no IANA actions. ✨

9. References πŸ“š

9.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>.

   [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>.

   [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>.

   [RFC8938]  Varga, B., Ed., Farkas, J., Berger, L., Malis, A., and S.
              Bryant, "Deterministic Networking (DetNet) Data Plane
              Framework", RFC 8938, DOI 10.17487/RFC8938, November 2020,
              <https://www.rfc-editor.org/info/rfc8938>.

   [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>.

   [RFC9055]  Grossman, E., Ed., Mizrahi, T., and A. Hacker,
              "Deterministic Networking (DetNet) Security
              Considerations", RFC 9055, DOI 10.17487/RFC9055, June
              2021, <https://www.rfc-editor.org/info/rfc9055>.

9.2. Informative References πŸ¦‹

   [IEEE802.1AE-2018]
              IEEE, "IEEE Standard for Local and metropolitan area
              networks-Media Access Control (MAC) Security", IEEE
              802.1AE-2018, DOI 10.1109/IEEESTD.2018.8585421, December
              2018, <https://ieeexplore.ieee.org/document/8585421>.

   [RFC4301]  Kent, S. and K. Seo, "Security Architecture for the
              Internet Protocol", RFC 4301, DOI 10.17487/RFC4301,
              December 2005, <https://www.rfc-editor.org/info/rfc4301>.

Acknowledgements πŸŽ€

bestie, the authors wanted to thank a whole squad of people for their contributions to this work 🫢 Pat Thaler, Norman Finn, Loa Andersson, David Black, Rodney Cummings, Ethan Grossman, Tal Mizrahi, David Mozes, Craig Gunther, George Swallow, Yuanlong Jiang, and Carlos J. Bernardos. Literally the MVPs πŸ‘‘

Contributors πŸ’œ

ngl this part is a little bit of rules-lawyering πŸ™ˆ RFC 7322 limits the number of authors listed on the front page to a maximum of 5, so the editor thanked and acknowledged the following folks for contributing text to this document instead πŸ’…

JÑnos Farkas 🌸

Ericsson

Email: janos.farkas@ericsson.com

Andrew G. Malis πŸ¦‹

Malis Consulting

Email: agmalis@gmail.com

JÑnos Farkas contributed substantially to the content of this document, so he gets extra main character energy ✨

Authors' Addresses 🌈

these are where you can find the people who wrote this thing, iykyk 🧚

BalΓ‘zs Varga (editor) πŸ’–

Ericsson
Budapest
Magyar Tudosok krt. 11.
1117
Hungary

Email: balazs.a.varga@ericsson.com

Lou Berger πŸ“

LabN Consulting, L.L.C.

Email: lberger@labn.net

Don Fedyk πŸ¦‹

LabN Consulting, L.L.C.

Email: dfedyk@labn.net

Stewart Bryant ⭐

Futurewei Technologies

Email: sb@stewartbryant.com

Jouni Korhonen πŸ”₯

Email: jouni.nospam@gmail.com
πŸ“¦ where this page comes from