<?xml version="1.0"encoding="US-ASCII"?>encoding="UTF-8"?> <!DOCTYPE rfc SYSTEM"rfc2629.dtd" [ ]> <!-- - From 2/25 call: o finish discussed split/removal of foo (IP and TSN) over MPLS (Lou) <done> After: All to o identify missing conformance language, notably WRT forwarding sub-layer o Aggregation section needs to be cleaned up o check conformance language in MPLS over TSN section Resolved in Mar 5 - need for S-Labels to be from platform label space (Andy) Pattern after e-vpn where stack is provided by downstream receiver - Different S-Labels for same application flow (Balazs) clarify that service sub-layer nodes can change s-labels --> <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> <?rfc toc="yes"?> <?rfc symrefs="yes"?> <?rfc sortrefs="yes"?> <?rfc iprnotified="no"?> <?rfc strict="yes"?> <?rfc compact="yes"?> <?rfc subcompact="no"?>"rfc2629-xhtml.ent"> <rfccategory="std"xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-detnet-mpls-over-udp-ip-08" number="9025" ipr="trust200902"submissionType="IETF">submissionType="IETF" category="std" consensus="true" obsoletes="" updates="" xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version="3"> <front> <title abbrev="DetNet MPLS over UDP/IP">DetNetDeterministic Networking (DetNet) Data Plane: MPLS over UDP/IP</title> <seriesInfo name="RFC" value="9025"/> <author role="editor"fullname="Balázsfullname="Balázs Varga" initials="B." surname="Varga"> <organization>Ericsson</organization> <address> <postal> <street>Magyar Tudosok krt. 11.</street> <city>Budapest</city> <country>Hungary</country> <code>1117</code> </postal> <email>balazs.a.varga@ericsson.com</email> </address> </author> <authorfullname="Jánosfullname="János Farkas" initials="J." surname="Farkas"> <organization>Ericsson</organization> <address> <postal> <street>Magyar Tudosok krt. 11.</street> <city>Budapest</city> <country>Hungary</country> <code>1117</code> </postal> <email>janos.farkas@ericsson.com</email> </address> </author> <author fullname="Lou Berger" initials="L." surname="Berger"> <organization>LabN Consulting, L.L.C.</organization> <address> <email>lberger@labn.net</email> </address> </author> <author fullname="Andrew G. Malis"initials="A.G."initials="A." surname="Malis"> <organization>Malis Consulting</organization> <address> <email>agmalis@gmail.com</email> </address> </author> <author fullname="Stewart Bryant" initials="S." surname="Bryant"> <organization>Futurewei Technologies</organization> <address><email>stewart.bryant@gmail.com</email> </address> </author> <!-- <author fullname="Jouni Korhonen" initials="J." surname="Korhonen"> organization abbrev="Nordic">Nordic Semiconductor</organization <address> <email>jouni.nospam@gmail.com</email><email>sb@stewartbryant.com</email> </address> </author>--> <!--author fullname="Donald Fauntleroy Duck" initials="D. F." surname="Duck"> <organization abbrev="Royal Bros.">Royal Bros.</organization> <address> <postal> <street>13 Paradise Road</street> <city>Duckburg</city> <region>Calisota</region> <country>USA</country> </postal> </address> </author--><date year="2021" month="April" /> <workgroup>DetNet</workgroup> <abstract> <t> This document specifies the MPLS Deterministic Networking (DetNet) data plane operation and encapsulation over an IP network. The approach is based on the operation ofMPLS-in-UDPMPLS-over-UDP technology. </t> </abstract> </front> <middle> <sectiontitle="Introduction" anchor="sec_intro">anchor="sec_intro" numbered="true" toc="default"> <name>Introduction</name> <t> Deterministic Networking (DetNet) is a service that can be offered by a network to DetNet flows. DetNet provides these flows extremely low packet loss rates and assured maximum end-to-end delivery latency. General background and concepts of DetNet can be found in <xreftarget="RFC8655"/>.target="RFC8655" format="default"/>. </t><!-- <t> The DetNet Architecture decomposes the DetNet related data plane functions into two sub-layers: a service sub-layer and a forwarding sub-layer. The service sub-layer is used to provide DetNet service protection and reordering. The forwarding sub-layer is used to provides congestion protection (low loss, assured latency, and limited reordering) leveraging MPLS Traffic Engineering mechanisms. </t> --><t> To carry DetNet MPLS flows with full functionality at the DetNet layer over an IP network, the following components are required (these are a subset of the requirements for MPLS encapsulation listed in <xreftarget="I-D.ietf-detnet-mpls"/>):target="RFC8964" format="default"/>): </t><t> <list style="numbers"> <t>A<ol spacing="normal" type="1"><li>A method for identifying DetNet flows to the processingelement.</t> <t>Aelement.</li> <li>A method for carrying the DetNet sequencenumber.</t> <t>Anumber.</li> <li>A method for distinguishing DetNetOAMOperations, Administration, and Maintenance (OAM) packets from DetNet datapackets.</t> <t>Apackets.</li> <li>A method for carryingqueueingqueuing and forwardingindication.</t> </list> </t>indication.</li> </ol> <t> These requirements are satisfied by the DetNet over MPLS Encapsulation described in <xreftarget="I-D.ietf-detnet-mpls"/>target="RFC8964" format="default"/> and they are partly satisfied (i.e., IP flows can beidentified howeveridentified; however, no DetNet sequence number is carried) by the DetNet IP data plane defined in <xreftarget="I-D.ietf-detnet-ip"/>target="RFC8939" format="default"/>. </t> <t> This document specifies use of the MPLS DetNet encapsulation over an IP network. The approach is modeled on the operation of MPLS over an IP Packet Switched Network (PSN) using UDP encapsulation <xreftarget="RFC7510"/>.target="RFC7510" format="default"/>. It maps the MPLS data plane encapsulation described in <xreftarget="I-D.ietf-detnet-mpls"/>target="RFC8964" format="default"/> to the DetNet IP data plane defined in <xreftarget="I-D.ietf-detnet-ip"/>.target="RFC8939" format="default"/>. </t> <t>As specified in<xreftarget="RFC7510"/>:target="RFC7510"/> specifies that "MPLS-in-UDPMUST NOT<bcp14>MUST NOT</bcp14> be used over the general Internet, or over non-cooperating network operators, to carry traffic that is not congestion controlled." This constraint does apply to the use of RFC 7510 in a DetNetnetworks as this document focuses on solutions for networks that are undernetwork because DetNet is constrained to operate within a single administrative control or within a closed group of administrative control. </t> </section> <sectiontitle="Terminology">numbered="true" toc="default"> <name>Terminology</name> <sectiontitle="Termsnumbered="true" toc="default"> <name>Terms Used in ThisDocument">Document</name> <t> This document uses the terminology established in the DetNet architecture <xreftarget="RFC8655"/>, andtarget="RFC8655" format="default"/>; the reader is assumed to be familiar with that document and its terminology. </t> </section> <sectiontitle="Abbreviations">numbered="true" toc="default"> <name>Abbreviations</name> <t> The following abbreviations are used in this document:<list style="hanging" hangIndent="14"> <t hangText="d-CW"></t> <dl newline="false" spacing="normal" indent="14"> <dt>d-CW</dt> <dd> A DetNet Control Word (d-CW) is used for sequencing and identifying duplicate packets of a DetNet flow at the DetNet service sub-layer.</t> <t hangText="DetNet">Deterministic Networking.</t> <t hangText="A-Label">A</dd> <dt>DetNet</dt> <dd>Deterministic Networking</dd> <dt>DSCP </dt> <dd>Differentiated Services Code Point </dd> <dt>A-Label</dt> <dd>A special case of an S-Label, whose properties are known only at the aggregation and deaggregationend-points.</t> <t hangText="F-Label">A Detnetendpoints.</dd> <dt>F-Label</dt> <dd>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 betweenlabel switching routers.</t> <t hangText="MPLS">Multiprotocollabel-switching routers.</dd> <dt>MPLS</dt> <dd>Multiprotocol LabelSwitching.</t> <t hangText="OAM">Operations,Switching</dd> <dt>OAM</dt> <dd>Operations, Administration, andMaintenance.</t> <t hangText="PEF">PacketMaintenance</dd> <dt>PEF</dt> <dd>Packet EliminationFunction.</t> <t hangText="POF">PacketFunction</dd> <dt>POF</dt> <dd>Packet OrderingFunction.</t> <t hangText="PREOF">PacketFunction</dd> <dt>PREOF</dt> <dd>Packet Replication,EliminationElimination, and OrderingFunctions.</t> <t hangText="PRF">PacketFunctions</dd> <dt>PRF</dt> <dd>Packet ReplicationFunction.</t> <t hangText="PSN">PacketFunction</dd> <dt>PSN</dt> <dd>Packet SwitchedNetwork.</t> <t hangText="S-Label">ANetwork</dd> <dt>S-Label</dt> <dd>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 servicesub-layer.</t> </list> </t>sub-layer.</dd> </dl> </section> <sectiontitle="Requirements Language">numbered="true" toc="default"> <name>Requirements Language</name> <t> The key words"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY","<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and"OPTIONAL""<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described inBCP 14BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here. </t> </section> </section><!-- end of terminology --> <!-- ===================================================================== --><section anchor="mpls-over-ip"title="DetNetnumbered="true" toc="default"> <name>DetNet MPLS Operation over DetNet IPPSNs">PSNs</name> <t> This document builds on the specification of MPLS over UDP defined in <xreftarget="RFC7510"/>.target="RFC7510" format="default"/>. It mayreplacepartly or entirely replace the F-Label(s) used in <xreftarget="I-D.ietf-detnet-mpls"/>target="RFC8964" format="default"/> with UDP and IP headers. The UDP and IP header information is used to identify DetNet flows, including member flows, per <xreftarget="I-D.ietf-detnet-ip"/>.target="RFC8939" format="default"/>. The resulting encapsulation is shown in <xreftarget="IP-encap-dn"/>.target="IP-encap-dn" format="default"/>. There may be zero or moreF-label(s)F-Labels between theS-labelS-Label and the UDP header. </t> <t> Note that this encapsulation works equally well with IPv4, IPv6, and IPv6-based Segment Routing <xreftarget="RFC8754"/>.target="RFC8754" format="default"/>. </t> <figuretitle="UDP/IPanchor="IP-encap-dn"> <name>UDP/IP Encapsulation of DetNetMPLS" anchor="IP-encap-dn">MPLS</name> <artworkalign="center"><![CDATA[align="center" name="" type="" alt=""><![CDATA[ +---------------------------------+ | | | DetNet App-Flow | | Payload Packet | | | +---------------------------------+ <--\ | DetNet Control Word | | +---------------------------------+ +--> DetNet data plane | S-Label | | MPLS encapsulation +---------------------------------+ | | [F-label(s)F-Label(s) ] | | +---------------------------------+ <--+ | UDP Header | | +---------------------------------+ +--> DetNet data plane | IP Header | | IP encapsulation +---------------------------------+ <--/ | Data-Link | +---------------------------------+ | Physical | +---------------------------------+]]> </artwork></figure>]]></artwork> </figure> <t> S-Labels, A-Labels (when present),d-CWd-CW, and zero or more F-Labels are used as defined in <xreftarget="I-D.ietf-detnet-mpls"/>target="RFC8964" format="default"/> and are not modified by this document. </t> </section> <section anchor="dp-procs"title="DetNetnumbered="true" toc="default"> <name>DetNet Data PlaneProcedures">Procedures</name> <t> To support outgoing DetNet MPLS over UDP encapsulation, an implementationMUST<bcp14>MUST</bcp14> support the provisioning of UDP and IP header information in addition to or in place of F-Label(s). Note, when the PRF is performed at the MPLS service sub-layer, there will be multiple member flows, and each member flow will require the provisioning of their own UDP and IP header information. The headers for each outgoing packetMUST<bcp14>MUST</bcp14> be formatted according to the configuration information and as defined in <xreftarget="RFC7510"/>,target="RFC7510" format="default"/>, and the UDP Source Port valueMUST<bcp14>MUST</bcp14> be set to uniquely identify the DetNet flow. The packetMUST<bcp14>MUST</bcp14> then be handled as a DetNet IP packet, per <xreftarget="I-D.ietf-detnet-ip"/>.target="RFC8939" format="default"/>. This includesQoS relatedQoS-related traffic treatment. </t> <t> To support the receive processing defined in this document, an implementationMUST<bcp14>MUST</bcp14> also support the provisioning of received UDP and IP header information. The provisioned informationMUST<bcp14>MUST</bcp14> be used to identify incomingapp-flowsapp flows based on the combination of S-Label and incoming encapsulation header information. Normal receive processing as defined in <xreftarget="I-D.ietf-detnet-mpls"/>,target="RFC8964" format="default"/>, including PEF and POF, can then take place. </t> </section> <section anchor="ip-flow-id-info"title="Managementnumbered="true" toc="default"> <name>Management and Control InformationSummary">Summary</name> <t> The following summarizes the minimum set of information that is needed to configure DetNet MPLS over UDP/IP:<list style="symbols"> <t>Label</t> <ul spacing="normal"> <li>Label information(A-labels, S-labels(A-Labels, S-Labels, andF-labels)F-Labels) to be mapped to UDP/IP flows. Notethatthat, for example, a single S-Label can map to multiple sets of UDP/IP information when PREOF isused.</t> <t>IPv4used.</li> <li>IPv4 or IPv6 source addressfield.</t> <t>IPv4field</li> <li>IPv4 or IPv6 destination addressfield.</t> <t>DSCPfield</li> <li>DSCP Field in either IPv4 Type of Service or IPv6 Traffic ClassFields.</t> <t>UDPFields</li> <li>UDP SourcePort. </t> <t>UDPPort </li> <li>UDP DestinationPort. </t> <t>Use/non-usePort </li> <li>Use/non-use of UDPchecksum. </t> </list>checksum </li> </ul> <t> This informationMUST<bcp14>MUST</bcp14> be provisioned per DetNet flow via configuration, e.g., via the controller <xreftarget="RFC8655"/>target="RFC8655" format="default"/> or management plane. Not using the UDP checksum has to be evaluated on a case-by-case basis for a given network scenario based on the exceptioncriteria'scriteria defined in <xreftarget="RFC7510"/>,target="RFC7510" format="default"/>, particularly when IPv6 is used.</t> <t> It is the responsibility of the DetNetcontroller planeController Plane to properly provision both flow identification information and theflow specificflow-specific resources needed to provide the traffic treatment needed to meet each flow's service requirements. This applies for both aggregated and individual flows. </t> <aside> <t> Note: In the presence of network (and port) address translationdevices/functionsdevices/functions, it would be up to thecontroller planeController Plane to determine the appropriate information to ensure proper mapping at the sender/receiver. </t> </aside> </section><!-- ===================================================================== --><sectiontitle="Security Considerations">numbered="true" toc="default"> <name>Security Considerations</name> <t> The solution defined in this document reuses mechanisms specified in other documents, and the security considerations in those documents apply equally to this document. Of particular note is <xreftarget="RFC7510"/>,target="RFC7510" format="default"/>, as this document is primarily an application ofMPLS-in-UDP.MPLS-over-UDP. Additionally, the security considerations of DetNet in general are discussed in <xreftarget="RFC8655"/>target="RFC8655" format="default"/> and <xreftarget="I-D.ietf-detnet-security"/>.target="I-D.ietf-detnet-security" format="default"/>. Finally,MPLSMPLS- andIP specificIP-specific security considerations are described in <xreftarget="I-D.ietf-detnet-mpls"/>target="RFC8964" format="default"/> and <xreftarget="I-D.ietf-detnet-ip"/>.target="RFC8939" format="default"/>. Thisdraftdocument does not have additional security considerations. </t> </section> <section anchor="iana"title="IANA Considerations">numbered="true" toc="default"> <name>IANA Considerations</name> <t> This documentmakeshas no IANArequests.actions. </t> </section> </middle> <back> <displayreference target="I-D.ietf-detnet-security" to="DETNET-SECURITY"/> <references> <name>References</name> <references> <name>Normative References</name> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7510.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8964.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8939.xml"/> </references> <references> <name>Informative References</name> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8655.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8754.xml"/> <reference anchor='I-D.ietf-detnet-security'> <front> <title>Deterministic Networking (DetNet) Security Considerations</title> <author initials='E' surname='Grossman' fullname='Ethan Grossman' role="editor"> <organization /> </author> <author initials='T' surname='Mizrahi' fullname='Tal Mizrahi'> <organization /> </author> <author initials='A. J.' surname='Hacker' fullname='Andrew Hacker'> <organization /> </author> <date month='February' day='22' year='2021' /> </front> <seriesInfo name='Internet-Draft' value='draft-ietf-detnet-security-16' /> </reference> </references> </references> <section anchor="acks"title="Acknowledgements">numbered="false" toc="default"> <name>Acknowledgements</name> <t> The authors wish to thankPat Thaler, Norman Finn, Loa Anderson, David Black, Rodney Cummings, Ethan Grossman, Tal Mizrahi, David Mozes, Craig Gunther, George Swallow, Yuanlong Jiang<contact fullname="Pat Thaler"/>, <contact fullname="Norman Finn"/>, <contact fullname="Loa Anderson"/>, <contact fullname="David Black"/>, <contact fullname="Rodney Cummings"/>, <contact fullname="Ethan Grossman"/>, <contact fullname="Tal Mizrahi"/>, <contact fullname="David Mozes"/>, <contact fullname="Craig Gunther"/>, <contact fullname="George Swallow"/>, <contact fullname="Yuanlong Jiang"/>, andCarlos<contact fullname="Carlos J.BernardosBernardos"/> for their various contributions to this work. </t> </section> <section anchor="contrib"title="Contributors">numbered="false" toc="default"> <name>Contributors</name> <t> This document is derived from an earlier draft that was edited byJouni Korhonen (jouni.nospam@gmail.com)<contact fullname="Jouni Korhonen" /> (jouni.nospam@gmail.com), and as such, he contributed to and authored text in this document. </t> </section></middle> <back> <references title="Normative References"> <?rfc include="reference.RFC.2119"?> <?rfc include="reference.RFC.7510"?> <?rfc include="reference.RFC.8174"?> <?rfc include="reference.I-D.ietf-detnet-mpls'?> <?rfc include="reference.I-D.ietf-detnet-ip'?> </references> <references title="Informative References"> <?rfc include="reference.RFC.8655"?> <?rfc include="reference.RFC.8754"?> <?rfc include="reference.I-D.ietf-detnet-security"?> </references></back> </rfc>