<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" ipr="trust200902" docName="draft-ietf-detnet-mpls-oam-00">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<front>
	<title abbrev="OAM for DetNet over MPLS">Operations, Administration and Maintenance (OAM) for Deterministic Networks (DetNet) with MPLS Data Plane</title>

	<author initials="G." surname="Mirsky" fullname="Greg Mirsky">
		<organization>ZTE Corp.</organization>
		<address>
			<email>gregimirsky@gmail.com</email>
		</address> 
	</author>
	
    <author fullname="Mach(Guoyi) Chen" initials="M." surname="Chen">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <code/>
          <country/>
        </postal>
        <email>mach.chen@huawei.com</email>
      </address>
    </author>
    
    <date year="2020"/>

    <area>Routing</area>

    <workgroup>DetNet  Working Group</workgroup>

    <keyword>Internet-Draft</keyword>
   
   <keyword>DetNet</keyword>
   
   <keyword>OAM</keyword>
	
	<abstract>
	<t>
	   This document lists functional requirements for Operations, Administration, and Maintenance (OAM)
	   toolset in Deterministic Networks (DetNet) and, using these requirements; defines format and use principals of the
	   DetNet service Associated Channel over a DetNet network with the MPLS data plane..
	 </t>
	</abstract>
</front>

<middle>
  <section anchor="intro" title="Introduction">
        <t>
   <xref target="RFC8655"/> introduces and explains Deterministic Networks (DetNet)
   architecture and how the Packet Replication and Elimination function (PREF) can be used to
   ensure low packet drop ratio in DetNet domain.
       </t>
       <t>
       Operations, Administration and Maintenance (OAM) protocols are used to detect, localize defects in the network,
       and monitor network performance. Some OAM functions, e.g., failure detection, work in the 
       network proactively, while others, e.g., defect localization, usually performed on-demand.
       These tasks achieved by a combination of active and hybrid, as defined in <xref target="RFC7799"/>,
       OAM methods.
       </t>
       <t>
   This document lists the functional requirements toward OAM for DetNet domain. 
   The list can further be used for gap analysis of available OAM tools to identify
   possible enhancements of existing or whether new OAM tools are required to
   support proactive and on-demand path monitoring and service validation.
   Also, this document defines format and use principals of the
	   DetNet service Associated Channel over a DetNet network with
	   the MPLS data plane <xref target="I-D.ietf-detnet-mpls"/>.
          </t>
  </section>
  
     <section title="Conventions used in this document">
         <section title="Terminology">
<t>
The term "DetNet OAM" used in this document interchangeably with longer version
"set of OAM protocols, methods and tools for Deterministic Networks".
</t>

           <t>CW         Control Word</t>
           <t>DetNet    Deterministic Networks</t> 
           <t>d-ACH      DetNet Associated Channel Header</t>
           <t>d-CW       DetNet Control Word</t>
           <t>DNH        DetNet Header</t>
           <t>GAL         Generic Associated Channel Label</t>
           <t>G-ACh      Generic Associated Channel</t>
           <t>OAM:      Operations, Administration and Maintenance</t>
           <t>PREF      Packet Replication and Elimination Function</t>
           <t>POF        Packet Ordering Function</t>
           <t>PW         Pseudowire</t>
           <t>RDI         Remote Defect Indication</t>
           <t>TSN        Time-Sensitive Network</t>
           <t>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
                 (LSR).</t>
          <t>S-Label    A DetNet "service" label that is used between DetNet
                 nodes that implement also the DetNet service sub-layer
                 functions.  An S-Label is also used to identify a
                 DetNet flow at DetNet service sub-layer.</t>
 <t>   Underlay Network or Underlay Layer: The network that provides
   connectivity between the DetNet nodes.  MPLS network providing LSP
   connectivity between DetNet nodes is an example of the underlay layer.</t>
   <t>DetNet Node - a node that is an actor in the DetNet domain. DetNet 
   domain edge node and node that performs PREF within the domain are 
   examples of DetNet node.</t>
         </section>    
         
        <section title="Keywords">
             <t>
   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 interpreted as
   described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> 
   when, and only when, they appear in all capitals, as shown here.
             </t>
          </section>

     </section>

  <section anchor="req-list" title="Requirements">
  <t>
  This section lists requirements for OAM in DetNet domain with MPLS data plane:
  <list style="numbers">
  <!--
  <t>
  The listed requirements MUST be supported for any type of 
  underlay network over which a DetNet domain can be realized.
  </t>
  -->
  <t>
  It MUST be possible to initiate DetNet OAM session from any 
  DetNet node towards another DetNet node(s) within given domain.
  </t>
  <t>
  It SHOULD be possible to initialize DetNet OAM session from a centralized controller.
  </t>
  <t>
  DetNet OAM MUST support proactive and on-demand OAM monitoring and measurement methods.
  </t>
  <t>
  DetNet OAM packets MUST be in-band, i.e., follow precisely the same 
  path as DetNet data plane traffic. 
  </t>
  <t>
  DetNet OAM MUST support unidirectional OAM methods, continuity check, 
  connectivity verification, and performance measurement.
  </t>
    <t>
  DetNet OAM MUST support bi-directional OAM methods. Such OAM methods MAY combine in-band monitoring or
  measurement in the forward direction and out-of-bound notification in the reverse direction, i.e., from egress to ingress
  end point of the OAM test session.
  </t>
 <t>
DetNet OAM MUST support proactive monitoring of a DetNet node availability in the given DetNet domain.
</t>
<t>
DetNet OAM MUST support Path Maximum Transmission Unit discovery.
</t>
<t>
DetNet OAM MUST support Remote Defect Indication (RDI) notification to the DetNet node
 performing continuity checking.
</t>
 <t>
  DetNet OAM MUST support performance measurement methods.
  </t>
  <t>
  DetNet OAM MAY support hybrid performance measurement methods.
  </t>
<t>
DetNet OAM MUST support unidirectional performance measurement methods. Calculated 
performance metrics MUST include but are not limited to throughput, packet loss, delay 
and delay variation metrics. <xref target="RFC6374"/> provides excellent details on performance
measurement and performance metrics.
</t>
<t>
DetNet OAM MUST support defect notification mechanism, like Alarm Indication Signal. Any DetNet node in the given DetNet domain
MAY originate a defect notification addressed to any subset of nodes within the domain.
</t>
<t>
DetNet OAM MUST support methods to enable survivability of the DetNet domain. These recovery methods MAY use
protection switching and restoration.
</t>
  <t>
  DetNet OAM MUST support the discovery of Packet Replication, Elimination, and Order preservation sub-functions locations in the domain.
  </t>
  <t>
  DetNet OAM MUST support testing of Packet Replication, Elimination, and Order preservation sub-functions in the domain.
  </t>
  <t>
  DetNet OAM MUST support monitoring any sub-set of paths traversed through the DetNet domain by the DetNet flow.
  </t>
  </list>
  </t>
</section>

<section anchor="oam-data-plane" title="Active OAM for DetNet Networks with MPLS Data Plane">
<t>
OAM protocols and mechanisms act within the data plane of the particular networking layer. And thus it is critical that the data plane encapsulation
supports OAM mechanisms in such a way to comply with the above-listed requirements. One of such examples that require special consideration is 
requirement #5:
<list>
  <t>
  DetNet OAM packets MUST be in-band, i.e., follow precisely the same 
  path as DetNet data plane traffic both for unidirectional and bi-directional DetNet paths. 
  </t>
</list>
</t>

<t>
The Det Net data plane encapsulation in transport network with MPLS encapsulation specified
in <xref target="I-D.ietf-detnet-mpls"/>. For the MPLS underlay network, DetNet flows to be encapsulated
 analogous to pseudowires (PW) over MPLS packet switched network, as described in <xref target="RFC3985"/>,
<xref target="RFC4385"/>. Generic PW MPLS Control Word (CW), 
defined in <xref target="RFC4385"/>, for DetNet displayed in <xref target="detnet-pw-cw"/>.
</t>

<t>
          <figure align="left" anchor="detnet-pw-cw" title="DetNet Control Word Format">
          <artwork><![CDATA[    

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |0 0 0 0|                Sequence Number                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
        </figure>
            </t>
<t>
PREF in the DetNet domain composed by a combination of nodes that perform replication and elimination sub-functions.
The elimination sub-function always uses the S-Label and packet sequencing information, e.g., the value in the Sequence Number field
of DetNet CW (d-CW). The replication sub-function uses the  S-Label information only.
For data packets <xref target="detnet-data-flow"/> presents an example of PREF in DetNet domain.
</t>
<t>
          <figure align="left" anchor="detnet-data-flow" title="DetNet Data Plane Based on PW">
          <artwork><![CDATA[    

      1111   11111111  111111   112212   112212     132213
   CE1----EN1--------R1-------R2-------R3--------EN2----CE2
            \2          22222/                 3 /
             \2222222  /----+                 3 /
              +------R4------------------------+
                       333333333333333333333333

]]></artwork>
        </figure>
            </t>

<section anchor="active-oam-data-plane" title="DetNet Active OAM Encapsulation">
<t>
DetNet OAM, like PW OAM, uses PW Associated Channel Header defined in <xref target="RFC4385"/>.
<xref target="detnet-mpls-oam-format"/> displays the encapsulation of a DetNet
MPLS <xref target="I-D.ietf-detnet-mpls"/> active OAM packet.

          <figure align="left" anchor="detnet-mpls-oam-format" title="DetNet Active OAM Packet Encapsulation in MPLS Data Plane">
          <artwork><![CDATA[    
      +---------------------------------+
      |                                 |
      |         DetNet App-Flow         |
      |         Payload  Packet         |
      |                                 |
      +---------------------------------+ <--\
      | DetNet Associated Channel Header|    |
      +---------------------------------+    +--> DetNet active OAM
      |           S-Label               |    |    MPLS encapsulation
      +---------------------------------+    |
      |         [ F-Label(s) ]          |    |
      +---------------------------------+ <--/
      |           Data-Link             |
      +---------------------------------+
      |           Physical              |
      +---------------------------------+

]]></artwork>
        </figure>
            </t>

  <t>
    <xref target="detnet-mpls-oam-over-ip-format"/> displays encapsulation of a test packet of an active DetNet OAM protocol
  in case of MPLS-over-UDP/IP <xref target="I-D.ietf-detnet-mpls-over-udp-ip"/>.
            <figure align="left" anchor="detnet-mpls-oam-over-ip-format" title="DetNet Active OAM Packet Encapsulation in MPLS-over-UDP/IP">
          <artwork><![CDATA[    
      +---------------------------------+
      |                                 |
      |         DetNet App-Flow         |
      |         Payload  Packet         |
      |                                 |
      +---------------------------------+ <--\
      | DetNet Associated Channel Header|    |
      +---------------------------------+    +--> DetNet active OAM
      |             S-Label             |    |    MPLS encapsulation
      +---------------------------------+    |
      |          [ F-label(s) ]         |    |
      +---------------------------------+ <--+
      |           UDP Header            |    |
      +---------------------------------+    +--> DetNet data plane
      |           IP Header             |    |    IP encapsulation
      +---------------------------------+ <--/
      |           Data-Link             |
      +---------------------------------+
      |           Physical              |
      +---------------------------------+

]]></artwork>
        </figure>
  </t>
<t>
   <xref target="detnet-ach-oam"/> displays the format of the DetNet Associated Channel Header (d-ACH). 
          <figure align="left" anchor="detnet-ach-oam" title="DetNet Associated Channel Header Format">
          <artwork><![CDATA[    

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |0 0 0 1|Version|Sequence Number|         Channel Type          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   
]]></artwork>
        </figure>
</t>
<t>
   The meanings of the fields in the d-ACH are:
<list>
<t>
   Bits 0..3 MUST be 0b0001.  This value of the first nibble allows the packet to be distinguished
   from an IP packet <xref target="RFC4928"/> and a DetNet data packet <xref target="I-D.ietf-detnet-mpls"/>.
   </t>
<t>
 Version: this is the version number of the d-ACH. This specification defines version 0.
</t>
<t>
Sequence Number: this is unsigned eight bits-long field. The originating DetNet node 
MUST set the value of the Sequence Number field to a non-zero before packet being transmitted.
The originating node MUST monotonically increase the value of
the Sequence Number field for the every next active OAM packet.
</t>
<t>
Channel Type: the value of DetNet Associated Channel Type is one of values defined in the IANA PW Associated Channel Type registry.
</t>
</list>
</t>
<t>
The DetNet flow, according to <xref target="I-D.ietf-detnet-mpls"/>, is identified by the S-label that MUST be at the bottom
of the stack. Active OAM packet MUST have d-ACH immediately following the S-label. 
<!-- A DetNet node originating an OAM packet
MUST ensure that the value of the Sequence Number field in d-ACH
is monotonically increasing for the given value of the Channel Type field. -->
</t>
<!--
<t>
The Generic Associated Channel Label (GAL), defined in <xref target="RFC5586"/> and <xref target="RFC6423"/>, provides
a generalized label-based exception mechanism to indicate that the packet is on a Generic Associated Channel (G-ACh)
and that ACH immediately follows the label stack. For the DetNet domain in MPLS transport network, GAL MAY be used. If GAL is
used, it MUST precede S-Label on the label stack, and the S-Label MUST be followed by d-ACH.
</t>
-->
<t>
Special consideration for DetNet active OAM with MPLS data plane interworking with OAM in
IEEE 802.1 Time-Sensitive Networking (TSN) domain based on <xref target="I-D.ietf-detnet-mpls-over-tsn"/>:
<list style="symbols">
<t>Active OAM test packet MUST be mapped to the same TSN Stream ID as the monitored DetNet flow .</t>
<t>Active OAM test packets MUST be treated in the TSN domain based on its S-label and CoS marking (TC field value).</t>
</list>
</t>

</section>

<section anchor="oam-preof-sec" title="DetNet Replication, Elimination, and Ordering Sub-functions Interaction with Active OAM">
<t>
At the DetNet service layer, special functions MAY be applied
to the particular DetNet flow - PREF to potentially lower packet loss, improve the probability of on-time packet delivery
and Packet Ordering Function (POF) to ensure in-order packet delivery.
As data and the active OAM packets have the same Flow ID, S-label, sub-functions that
rely on sequencing information in the DetNet service layer MUST process 28 MSBs of the d-ACH
as the source of the sequencing information for the OAM packet.
</t>

</section>

</section>

<section anchor="hybrid-oam" title="Use of Hybrid OAM in DetNet">
<t>Hybrid OAM methods are used in performance monitoring and defined in <xref target="RFC7799"/> as:
<list>
<t>Hybrid Methods are Methods of Measurement that use a combination of
   Active Methods and Passive Methods.</t>
   </list>
   A hybrid measurement method may produce metrics as close to passive,
   but it still alters something in a data packet even if that is the value of a 
   designated field in the packet encapsulation. One example of such a hybrid measurement method
   is the Alternate Marking method described in <xref target="RFC8321"/>. Reserving the 
   field for the Alternate Marking method in the DetNet Header will enhance available to an operator 
   set of DetNet OAM tools.
   </t>
</section>

<section anchor="ip-over-ip-sec" title="OAM of DetNet MPLS Interworking with OAM of DetNet IP">
<t>
TBA
</t>
</section>

<section anchor="ip-over-tsn-sec" title="OAM of DetNet MPLS Interworking with OAM of TSN">
<t>
TBA
</t>
</section>

  <section anchor="iana-considerations" title="IANA Considerations">
  <t>
  TBA
  </t>
  </section>
 
   <section anchor="security-considerations" title="Security Considerations">
   <t>
   This document lists the OAM requirements for a DetNet domain
   and does not raise any security concerns or issues in addition to ones common to networking.
   </t>
   </section> 
   
   <section anchor="ack" title="Acknowledgment">
   <t>
  Authors extend their appreciation to Pascal Thubert for his insightful comments and productive discussion that helped to improve the document.
   </t>
   </section>
  
  </middle>
  
  <back>
    <!-- References split into informative and normative -->

    <references title="Normative References">
	
	  <?rfc include="reference.RFC.2119"?>
	  <?rfc include="reference.RFC.8174"?>
	  <!--
    <?rfc include="reference.RFC.5586"?>
    <?rfc include="reference.RFC.6423"?>
    -->
    <?rfc include="reference.RFC.8655"?>
    <?rfc include="reference.I-D.ietf-detnet-mpls"?>    
    <?rfc include="reference.I-D.ietf-detnet-mpls-over-udp-ip"?>
    <?rfc include="reference.I-D.ietf-detnet-mpls-over-tsn"?>
    
    </references>
    
    <references title="Informational References">

    <?rfc include="reference.RFC.7799"?>
    <?rfc include="reference.RFC.6374"?>
    <?rfc include="reference.RFC.3985"?>
    <?rfc include="reference.RFC.4385"?>
    <?rfc include="reference.RFC.8321"?>
    <?rfc include="reference.RFC.4928"?>

    </references>
    
  </back>
 </rfc>
