<?xml version="1.0" encoding="UTF-8"?>



<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-detnet-mpls-over-udp-ip-08" number="9025" ipr="trust200902" 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">
    Deterministic Networking (DetNet) Data Plane: MPLS over UDP/IP</title>
    <seriesInfo name="RFC" value="9025"/>
    <author role="editor" fullname="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>
    <author fullname="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." 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>sb@stewartbryant.com</email>
      </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 of MPLS-over-UDP technology.
      </t>
    </abstract>
  </front>
  <middle>
    <section 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 <xref target="RFC8655" format="default"/>.
      </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 <xref target="RFC8964" format="default"/>):
      </t>
      <ol spacing="normal" type="1"><li>A method for identifying DetNet flows
      to the processing element.</li>
        <li>A method for carrying the DetNet sequence number.</li>
        <li>A method for distinguishing DetNet Operations, Administration, and
        Maintenance (OAM) packets from DetNet data packets.</li>
        <li>A method for carrying queuing and forwarding indication.</li>
      </ol>
      <t>
  These requirements are satisfied by the DetNet over MPLS Encapsulation
  described in <xref target="RFC8964" format="default"/> and they are partly
  satisfied (i.e., IP flows can be identified; however, no DetNet sequence
  number is carried) by the DetNet IP data plane defined in <xref
  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 <xref target="RFC7510"
  format="default"/>.  It maps the MPLS data plane encapsulation described in
  <xref target="RFC8964" format="default"/> to the DetNet IP data plane
  defined in <xref target="RFC8939" format="default"/>.
      </t>
      <t>
	<xref target="RFC7510"/> specifies that "MPLS-in-UDP <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
	DetNet network because DetNet is constrained to operate within a
	single administrative control or within a closed group of
	administrative control.


      </t>
    </section>
    <section numbered="true" toc="default">
      <name>Terminology</name>
      <section numbered="true" toc="default">
        <name>Terms Used in This Document</name>
        <t>
   This document uses the terminology established in the DetNet architecture
   <xref target="RFC8655" format="default"/>; the reader is assumed
   to be familiar with that document and its terminology.
        </t>
      </section>
      <section numbered="true" toc="default">
        <name>Abbreviations</name>
        <t>
   The following abbreviations are used in this document:
        </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. </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 deaggregation endpoints.</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 between label-switching routers.</dd>
          <dt>MPLS</dt>
          <dd>Multiprotocol Label Switching</dd>
          <dt>OAM</dt>
          <dd>Operations, Administration, and Maintenance</dd>
          <dt>PEF</dt>
          <dd>Packet Elimination Function</dd>
          <dt>POF</dt>
          <dd>Packet Ordering Function</dd>
          <dt>PREOF</dt>
          <dd>Packet Replication, Elimination, and Ordering Functions</dd>
          <dt>PRF</dt>
          <dd>Packet Replication Function</dd>
          <dt>PSN</dt>
          <dd>Packet Switched Network</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 service sub-layer.</dd>
        </dl>
      </section>
      <section numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>
    The key words "<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 "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>

      </section>
    </section>

<section anchor="mpls-over-ip" numbered="true" toc="default">
      <name>DetNet MPLS Operation over DetNet                                       IP PSNs</name>
      <t>
  This document builds on the specification of MPLS over UDP defined
  in <xref target="RFC7510" format="default"/>.  It may partly or entirely replace the F-Label(s) used in <xref 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 <xref target="RFC8939" format="default"/>. The resulting encapsulation
  is shown in <xref target="IP-encap-dn" format="default"/>. There may be zero or more F-Labels
  between the S-Label and the UDP header.
      </t>
      <t>
   Note that this encapsulation works equally well with IPv4, IPv6, and
   IPv6-based Segment Routing <xref target="RFC8754" format="default"/>.
      </t>
      <figure anchor="IP-encap-dn">
        <name>UDP/IP Encapsulation of DetNet MPLS</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[
+---------------------------------+
|                                 |
|         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              |
+---------------------------------+

 ]]></artwork>
      </figure>
      <t>
    S-Labels, A-Labels (when present), d-CW, and zero or more F-Labels are used as defined in <xref target="RFC8964" format="default"/> and are not modified by this document.

      </t>
    </section>
    <section anchor="dp-procs" numbered="true" toc="default">
      <name>DetNet Data Plane Procedures</name>
      <t>
    To support outgoing DetNet MPLS over UDP encapsulation, an implementation
    <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 packet
    <bcp14>MUST</bcp14> be formatted according to the configuration
    information and as defined in <xref target="RFC7510" format="default"/>,
    and the UDP Source Port value <bcp14>MUST</bcp14> be set to uniquely
    identify the DetNet flow.  The packet <bcp14>MUST</bcp14> then be handled
    as a DetNet IP packet, per <xref target="RFC8939" format="default"/>.
    This includes QoS-related traffic treatment.
      </t>
      <t>
    To support the receive processing defined in this document, an 
	implementation <bcp14>MUST</bcp14> also support
    the provisioning of received UDP and IP header information.
        The provisioned information <bcp14>MUST</bcp14> be used to
    identify incoming app flows based on the combination of S-Label and
    incoming encapsulation header information.  Normal receive processing as defined in <xref target="RFC8964" format="default"/>, including PEF and POF,
    can then take place.
      </t>
    </section>
    <section anchor="ip-flow-id-info" numbered="true" toc="default">
      <name>Management and Control Information Summary</name>
      <t>
            The following summarizes the minimum set of information that is needed to
            configure DetNet MPLS over UDP/IP:
      </t>
      <ul spacing="normal">
        <li>Label information (A-Labels, S-Labels, and F-Labels) to be mapped
        to UDP/IP flows. Note that, for example, a single S-Label can map to
        multiple sets of UDP/IP information when PREOF is used.</li>
        <li>IPv4 or IPv6 source address field</li>
        <li>IPv4 or IPv6 destination address field</li>
        <li>DSCP Field in either IPv4 Type of Service or IPv6 Traffic Class Fields</li>

        <li>UDP Source Port </li>
        <li>UDP Destination Port </li>
        <li>Use/non-use of UDP checksum </li>
      </ul>
      <t>
            This information <bcp14>MUST</bcp14> be provisioned per DetNet
            flow via configuration, e.g., via the controller <xref
            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 exception criteria defined in
            <xref target="RFC7510" format="default"/>, particularly when IPv6
            is used.</t>
      <t>
            It is the responsibility of the DetNet Controller Plane to
            properly provision both flow identification information and the
            flow-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 translation
	devices/functions, it would be up to the Controller Plane to determine
	the appropriate information to ensure proper mapping at the
	sender/receiver.
</t>
</aside>
    </section>



<section 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 <xref target="RFC7510"
    format="default"/>, as this document is primarily an application of
    MPLS-over-UDP. Additionally, the security considerations of DetNet in
    general are discussed in <xref target="RFC8655" format="default"/> and
    <xref target="I-D.ietf-detnet-security" format="default"/>. Finally, MPLS-
    and IP-specific security considerations are described in <xref
    target="RFC8964" format="default"/> and <xref target="RFC8939"
    format="default"/>. This document does not have additional security
    considerations.
      </t>
    </section>
    <section anchor="iana" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>
This document has no IANA 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" numbered="false" toc="default">
      <name>Acknowledgements</name>
      <t>
                The authors wish to thank <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"/>, and <contact fullname="Carlos
                J. Bernardos"/> for their various contributions to this work.
      </t>
    </section>
    <section anchor="contrib" numbered="false" toc="default">
      <name>Contributors</name>
      <t>
    This document is derived from an earlier draft that was edited by <contact
    fullname="Jouni Korhonen" /> (jouni.nospam@gmail.com), and as such, he
    contributed to and authored text in this document.
      </t>
    </section>


  </back>
</rfc>

