<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.17 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-contreras-opsawg-scheduling-oam-tests-02" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="Scheduling OAM YANG">A YANG Data Model for Network Diagnosis by Scheduling Sequences of OAM Tests</title>
    <seriesInfo name="Internet-Draft" value="draft-contreras-opsawg-scheduling-oam-tests-02"/>
    <author fullname="Luis M. Contreras">
      <organization>Telefonica</organization>
      <address>
        <email>luismiguel.contrerasmurillo@telefonica.com</email>
      </address>
    </author>
    <author fullname="Victor Lopez">
      <organization>Nokia</organization>
      <address>
        <email>victor.lopez@nokia.com</email>
      </address>
    </author>
    <date year="2024" month="July" day="08"/>
    <area>Operations and Management</area>
    <workgroup>Operations and Management Area Working Group</workgroup>
    <keyword>OAM</keyword>
    <keyword>Scheduling</keyword>
    <keyword>Test sequences</keyword>
    <abstract>
      <?line 41?>

<t>This document defines a YANG data model for network diagnosis on-demand using Operations, Administration, and Maintenance (OAM) tests. This document defines both 'oam-unitary-test' and 'oam-test-sequence' data models to enable activation of network diagnosis procedures.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://vlopezalvarez.github.io/draft-contreras-opsawg-scheduling-oam-tests/draft-contreras-opsawg-scheduling-oam-tests.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-contreras-opsawg-scheduling-oam-tests/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Operations and Management Area Working Group Working Group mailing list (<eref target="mailto:opsawg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/opsawg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/vlopezalvarez/draft-contreras-opsawg-scheduling-oam-tests"/>.</t>
    </note>
  </front>
  <middle>
    <?line 45?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Operations, Administration, and Maintenance (OAM) tasks are fundamental functionalities of the network management. Given the emerging of data models and their utilization in Service Provider's management, the management of OAM tests represent also an area of interest for operators, which requires to be defined as a data model. OAM functionalities provide the means to identify and isolate faults, measure and report of performance. <xref target="RFC5860"/> defines the three main areas involved in OAM:</t>
      <ul spacing="normal">
        <li>
          <t>Fault management, which allows network operators to quickly identify and isolate faults in the network. The OAM framework defines mechanisms for fault detection and isolation, such as continuity check, link trace, and loopback.</t>
        </li>
        <li>
          <t>Performance management enables monitoring network performance and diagnosing performance issues (i.e., degradation). Some of the measurements such as frame delay measurement, frame delay variation measurement, and frame loss measurement.</t>
        </li>
        <li>
          <t>Security management defines mechanisms to protect OAM communications from unauthorized access and tampering.</t>
        </li>
      </ul>
      <t><xref target="RFC6428"/> defines several use cases for OAM tools, including:</t>
      <ul spacing="normal">
        <li>
          <t>Continuity Check: This function verifies that a path exists between two points in a network and that the path is operational.</t>
        </li>
        <li>
          <t>Loopback: This function allows a device to loop back a received packet back to the sender for diagnostic purposes.</t>
        </li>
        <li>
          <t>Link Trace: This function allows a network operator to trace a path through a network from one device to another.</t>
        </li>
        <li>
          <t>Performance Monitoring: This function allows a network operator to monitor the performance of a network and to identify and diagnose performance issues.</t>
        </li>
        <li>
          <t>Security Management: This function allows a network operator to protect OAM communications from unauthorized access and tampering.</t>
        </li>
        <li>
          <t>Configuration Management: This function allows a network operator to manage the configuration of network devices.</t>
        </li>
      </ul>
      <t>More recently, Incident Management <xref target="I-D.ietf-nmop-network-incident-yang"/> also considers the possibility of incident diagnosis, which can be favoured by dynamic invocation of OAM tests.</t>
      <t><xref target="RFC8531"/>, <xref target="RFC8532"/> and, <xref target="RFC8533"/> defined YANG models for OAM technologies. On the other hand, <xref target="RFC8531"/> defines a YANG data model for connection-oriented OAM protocols. The main aim of this document is to define a generic YANG data model that can be used to configure, control and monitor connection-oriented OAM protocols such as MPLS-TP OAM, PBB-TE OAM, and G.7713.1 OAM. <xref target="RFC8532"/> provides a generic YANG data model that can be used to configure, control and monitor connectionless OAM protocols such as BFD (Bidirectional Forwarding Detection), LBM (Loopback Messaging) and VCCV (Virtual Circuit Connectivity Verification). <xref target="RFC8533"/> provides a YANG data model that can be used to retrieve information related to OAM protocols such as Bidirectional Forwarding Detection (BFD), Loopback Messaging (LBM) and Virtual Circuit Connectivity Verification (VCCV).</t>
      <t><xref target="RFC8913"/> specifies a YANG data model for client and server implementations of the Two-Way Active Measurement Protocol (TWAMP).</t>
      <t>Previous RFCs defined the parameters required for each of the different tests that are used in network elements today. This document covers how to use OAM for network-wide use cases. Following, some illustrative examples are presented.</t>
      <t>The YANG data model resulting from this document will conform to the Network Management Datastore Architecture (NMDA) <xref target="RFC8342"/>.</t>
      <section anchor="terminology-and-notations">
        <name>Terminology and Notations</name>
        <t>This document assumes that the reader is familiar with the contents of <xref target="RFC7950"/>, <xref target="RFC8345"/>, <xref target="RFC8346"/> and <xref target="RFC8795"/>.</t>
        <t>Following terms are used for the representation of this data model.</t>
        <ul spacing="normal">
          <li>
            <t>OAM unitary test: it is a set of parameters that define a type of OAM test to be invoked. As an example, it includes the type test, configuration parameters, and target results.</t>
          </li>
          <li>
            <t>OAM test sequence: it is a set of OAM unitary tests that are run based on a set of time constraints, number of repetitions, order, and reporting outputs.</t>
          </li>
        </ul>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <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  <xref target="RFC2119"/>, <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
      </section>
      <section anchor="prefix-in-data-node-names">
        <name>Prefix in Data Node Names</name>
        <t>In this document, names of data nodes and other data model objects will be prefixed using the standard prefix associated with the corresponding YANG imported modules, as shown in the following table.</t>
        <table anchor="tab-prefixes">
          <name>Prefixes and corresponding YANG modules</name>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="left">Yang Module</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">oamut</td>
              <td align="left">ietf-oam-unitary-tests</td>
              <td align="left">RFCXXX</td>
            </tr>
            <tr>
              <td align="left">oamts</td>
              <td align="left">ietf-oam-test-sequence</td>
              <td align="left">RFCXXX</td>
            </tr>
            <tr>
              <td align="left">yang</td>
              <td align="left">ietf-yang-types</td>
              <td align="left">
                <xref target="RFC6991"/></td>
            </tr>
          </tbody>
        </table>
        <t>RFC Editor Note:
Please replace XXXX with the RFC number assigned to this document if the document becomes a RFC. Please remove this note in that case.</t>
      </section>
    </section>
    <section anchor="network-wide-oam-use-cases">
      <name>Network-wide OAM Use Cases</name>
      <section anchor="troubleshooting">
        <name>Troubleshooting</name>
        <t>After the detection of a problem in the network, OAM tests are performed to find the root cause for the detected issue. However, a problem detected can be caused by a variety of factors, such as a misconfiguration, hardware failure, or a software bug. OAM tests can help to find the root cause by testing specific components of the network and looking for anomalies or issues.</t>
        <t>There are a variety of different OAM tests that can be executed depending on the nature of the scenario. For example, if the issue is related to a L2 capability, tests can be run to check the status of the path via Ethernet Linktrace and later run an Ethernet Loopback to a concrete network element. If these tests are correct, the operator may want to check the availability of the service or its performance.</t>
        <t>Even though the troubleshooting process may be different depending on the problem detected, there are certain common procedures or logic that can be executed in order to narrow down the cause of the problem.</t>
      </section>
      <section anchor="birth-certificate">
        <name>Birth Certificate</name>
        <t>The aim of a birth certificate process is to validate that all relevant parameters are correct for a specific network service. The birth certificate process is done once the configuration of the network elements is completed and they are ready for service.</t>
        <t>If the birth certificate is successful, it means that the network service is functioning correctly and meets the requirements defined by the operator. The process requires running a set of OAM tests to verify that the service is performing as expected.</t>
        <t>The set of OAM tests done as part of a birth certificate process depends on the network service that is tested. For example, if the service is a virtual private network (VPN) Two-Way Active Measurement Protocol (TWAMP) Light will be used, while if the service is an E-LINE, Ethernet CFM tests will be executed.</t>
        <t>Once the birth certificate process has been completed and the OAM tests have been run, the test results are stored as part of the documentation process performed by the operator.</t>
      </section>
      <section anchor="proactive-supervision">
        <name>Proactive Supervision</name>
        <t>There are communication services that require to fulfill Service Level Agreements (SLAs). SLAs define performance parameters that the service must fulfill in order to meet the requirements of the customer or end user.</t>
        <t>Proactive testing ensures the SLAs are met. Proactive supervision requires running tests on service components to identify and resolve issues before they impact the customer or end user, or to minimize the impact of the end user.</t>
        <t>Proactive testing can be done via OAM tests. These tests can be run periodically at regular intervals depending on the specific SLA requirements and the network operator procedures. These procedures may require documenting the test results for future auditing processes with the customers.</t>
      </section>
      <section anchor="performance-based-path-routing">
        <name>Performance-based Path Routing</name>
        <t>Path Computation Elements (PCEs) allow computing end-to-end paths in a network. PCEs are used to facilitate traffic engineering and can be used to optimize network performance, reduce congestion, and improve the overall user experience.</t>
        <t>There are different algorithms to calculate a path in the network for some of them the PCE requires traffic engineering information. TE information includes data such as link metrics, bandwidth availability, and routing constraints. By using this information, the PCE can compute the optimal path for a particular service, taking into account its constraints and requirements. OAM techniques allow obtaining link metrics like delay and loss which can be used in the PCE algorithms.</t>
      </section>
    </section>
    <section anchor="modelling-the-scheduling-of-oam-tests">
      <name>Modelling the Scheduling of OAM Tests</name>
      <t>This document proposes two models: OAM unitary test and OAM test sequence models.</t>
      <section anchor="oam-unitary-test">
        <name>OAM Unitary Test</name>
        <t>The OAM unitary test model encompasses parameters that define a specific type of OAM test to be performed. The YANG model includes a container named "oam-unitary-tests" that serves as a container for activating OAM unitary tests for network diagnosis procedures. Inside the container, there is a list called "oam-unitary-test" representing a list of specific OAM unitary tests. The list key is defined as "name", which provides a unique name for each test. Each OAM test in the list references a test type with its concrete parameters. The test types are out of the scope of this document. Moreover, each OAM unitary test has two temporal parameters: "period-of-time" and "recurrence". Both are imported from the "ietf-schedule" module from <xref target="I-D.ietf-netmod-schedule-yang"/>. "period-of-time" identifies the period values that contain a precise period of time, while "recurrence" identifies the properties that contain a recurrence rule specification. "unitary-test-status" enumerates the state of the OAM unitary test.</t>
        <t><xref target="oam-uni-test-tree-st"/> contains the tree of the proposed model. Tree diagrams used in this document follow the notation defined in <xref target="RFC8340"/>.</t>
        <figure anchor="oam-uni-test-tree-st">
          <name>OAM unitary test</name>
          <artwork align="center"><![CDATA[
module: ietf-oam-unitary-test
  +--rw oam-unitary-tests
     +--rw oam-unitary-test* [name]
        +--rw name                      string
        +--rw (test-type)
        +--rw period-description?       string
        +--rw period-start              yang:date-and-time
        +--rw time-zone-identifier?     sys:timezone-name
        +--rw (period-type)?
        |  +--:(explicit)
        |  |  +--rw period-end?         yang:date-and-time
        |  +--:(duration)
        |     +--rw duration?           duration
        +--rw recurrence-description?   string
        +--rw frequency                 identityref
        +--rw interval?                 uint32
        +--rw unitary-test-status?      enumeration
]]></artwork>
        </figure>
        <t>The 'unitary-test-status' state machine is shown in <xref target="st-unitary-test-status"/>. The state machine includes the following states:</t>
        <ul spacing="normal">
          <li>
            <t>"planned": The initial state where the test is planned.</t>
          </li>
          <li>
            <t>"configured": The state where the test is being configured.</t>
          </li>
          <li>
            <t>"ready": The state where the test is ready to be executed.</t>
          </li>
          <li>
            <t>"on-going": The state where the test is currently running.</t>
          </li>
          <li>
            <t>"stop": The state where the test is manually stopped.</t>
          </li>
          <li>
            <t>"error": The state where an error occurs during the test.</t>
          </li>
          <li>
            <t>"finished": The final state where the test is completed.</t>
          </li>
        </ul>
        <figure anchor="st-unitary-test-status">
          <name>OAM unitary test state machine</name>
          <artwork align="center"><![CDATA[
   +---------+      +----------+      +---------+
+->| planned |----->|configured|----->|  ready  |
|  +---------+      +----------+      +---------+
|      A                 |                |
|      |                 |                V
|      |     +-------+   |          +----------+
|      ------| error |<--+----------| on-going |
|      |     +-------+              +----------+
|      |                                  |
|      V                                  |
|  +---------+      +--------+            |
+--| finished|<-----|  stop  |<------------+
   +---------+      +--------+            |
       A                                  |
       |                                  |
       +----------------------------------+

]]></artwork>
        </figure>
      </section>
      <section anchor="oam-test-sequence">
        <name>OAM Test Sequence</name>
        <t>The OAM test sequence model consists of a collection of OAM unitary tests that are executed based on specified time constraints, repetitions, ordering, and reporting outputs. These sequences provide a structured approach to running multiple OAM tests in a coordinated manner. Each OAM test sequence references a OAM unitary test type with its concrete parameters. Each OAM test sequence has two temporal parameters: "period-of-time" and "recurrence". Both are imported from the "ietf-schedule" module from <xref target="I-D.ietf-netmod-schedule-yang"/>. "period-of-time" identifies the period values that contain a precise period of time, while "recurrence" identifies the properties that contain a recurrence rule specification. "unitary-test-status" enumerates the state of the OAM test. Finally, "test-sequence-status" shows the state of the OAM test sequence.</t>
        <t>An example of the proposed structure <xref target="oam-test-sequence-tree-st"/>.</t>
        <figure anchor="oam-test-sequence-tree-st">
          <name>OAM test sequence</name>
          <artwork align="center"><![CDATA[
module: ietf-oam-test-sequence
  +--rw oam-test-sequence
     +--rw test-sequence* [name]
        +--rw name                      string
        +--rw test-ref* [name]
        |  +--rw name             string
        |  +--rw (test-type)
        |  +--rw numexecutions?   uint32
        +--rw period-description?       string
        +--rw period-start              yang:date-and-time
        +--rw time-zone-identifier?     sys:timezone-name
        +--rw (period-type)?
        |  +--:(explicit)
        |  |  +--rw period-end?         yang:date-and-time
        |  +--:(duration)
        |     +--rw duration?           duration
        +--rw recurrence-first
        |  +--rw utc-start-time?   yang:date-and-time
        |  +--rw duration?         uint32
        +--rw (recurrence-bound)?
        |  +--:(until)
        |  |  +--rw utc-until?          yang:date-and-time
        |  +--:(count)
        |     +--rw count?              uint32
        +--rw recurrence-description?   string
        +--rw frequency                 identityref
        +--rw interval?                 uint32
        +--rw test-sequence-status?     enumeration

]]></artwork>
        </figure>
        <t>The 'test-sequence-status' state machine is shown in <xref target="st-test-sequence-status"/>. The state machine includes the following states:</t>
        <ul spacing="normal">
          <li>
            <t>"planned": The initial state where the test is planned.</t>
          </li>
          <li>
            <t>"configured": The state where the test is being configured.</t>
          </li>
          <li>
            <t>"ready": The state where the test is ready to be executed.</t>
          </li>
          <li>
            <t>"on-going": The state where the test is currently running.</t>
          </li>
          <li>
            <t>"stop": The state where the test is manually stopped.</t>
          </li>
          <li>
            <t>"success": The success state when all unitary tests were successful.</t>
          </li>
          <li>
            <t>"failure": The success state when One or more tests in the sequence got an error.</t>
          </li>
          <li>
            <t>"error": The state where an error occurs during the test.</t>
          </li>
        </ul>
        <figure anchor="st-test-sequence-status">
          <name>OAM unitary test state machine</name>
          <artwork align="center"><![CDATA[
    +---------+      +----------+      +---------+
 +->| planned |----->|configured|----->|  ready  |
 |  +---------+      +----------+      +---------+
 |    A   A                 |              |
 |    |   |                 |              V
 |    |   |     +-------+   |          +----------+
 |    |   ------| error |<--+----------| on-going |
 |    |         +-------+              +----------+
 |    |                                    |
 |    |                                    |
 | +---------+      +--------+             |
 | | failure |<-----|  stop  |<------------+
 | +---------+      +--------+             |
 |                                         |
 | +---------+                             |
 +-| success |<----------------------------+
   +---------+

]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="yang-data-models-for-scheduling-oam-tests">
      <name>YANG Data Models for Scheduling OAM Tests</name>
      <section anchor="yang-models-overview">
        <name>YANG Models Overview</name>
        <t>This document proposes two models: OAM unitary test and OAM test sequence. OAM unitary test is a set of parameters that define a type of OAM test to be invoked. As an example, it includes the type test, configuration parameters, and target results. The OAM test sequences are a set of OAM unitary tests that are run based on a set of time constraints, number of repetitions, order, and reporting outputs.</t>
      </section>
      <section anchor="yang-model-for-scheduling-oam-unitary-test">
        <name>YANG Model for Scheduling OAM Unitary Test</name>
        <sourcecode markers="true"><![CDATA[ file ietf-oam-unitary-test@2024-07-05.yang
module ietf-oam-unitary-test {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-oam-unitary-test";
  prefix "oamut";

  // Import OAM models from RFCs RFC8531, RFC8532 and RFC8533

  // reference ietf-netmod-schedule-yang
  import ietf-schedule { prefix "schedule"; }

  organization
    "IETF OPSAWG (Operations and Management Area Working Group)";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>
     Author: Luis Miguel Contreras Murillo
          <luismiguel.contrerasmurillo@telefonica.com>
     Author: Victor Lopez
          <victor.lopez@nokia.com>";
  description
    "This module defines the 'ietf-oam-unitary-test' YANG model for
     activation of network diagnosis procedures.

    Copyright (c) 2024 IETF Trust and the persons identified as
    authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject
    to the license terms contained in, the Revised BSD License
    set forth in Section 4.c of the IETF Trust's Legal Provisions
    Relating to IETF Documents
      (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.";

  // RFC Ed.: update the date below with the date of RFC
  // publication and remove this note.
  // RFC Ed.: replace XXXX with actual RFC number and remove
  // this note.

  revision "2024-07-05" {
    description
      "Initial version";
    reference
      "RFCXXXX: A YANG Data Model for Network Diagnosis by Scheduling
       Sequences of OAM Tests";
       // Update with the correct RFC number when assigned
  }

  grouping oam-unitary-test {
    description
        "This grouping is defined for OAM unitary test for network
        diagnosis procedures.";

    leaf name {
      type string;
      description
        "Name for the test.";
    }

    choice test-type {
      mandatory true;
      description
        "Choose the type of test.";
        // Import OAM models from RFCs RFC8531, RFC8532 and RFC8533
    }
  }

  container oam-unitary-tests {
    description
      "Container for OAM unitary tests activation for network
      diagnosis procedures.";

    list oam-unitary-test {
      key name;
      description
        "List of OAM unitary tests activation for network diagnosis
        procedures.";

      uses oam-unitary-test;

      uses schedule:period-of-time;

      uses schedule:recurrence;

      leaf unitary-test-status {
        type enumeration {
          enum "planned" {
            description
              "The test is planned.";
          }
          enum "configure" {
            description
              "The test is configured.";
          }
          enum "ready" {
            description
              "The test status is ready.";
          }
          enum "ongoing" {
            description
              "The test is ongoing.";
          }
          enum "stop" {
            description
              "The test is stopped.";
          }
          enum "finish" {
            description
              "The test is finished.";
          }
          enum "error" {
            description
              "The test has an error.";
          }
        }
        description
          "Status of the test.";
      }
    }
  }
}

]]></sourcecode>
      </section>
      <section anchor="yang-model-for-oam-test-sequence">
        <name>YANG Model for OAM Test Sequence</name>
        <sourcecode markers="true"><![CDATA[ file ietf-oam-test-sequence@2024-07-05.yang

module ietf-oam-test-sequence {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-oam-test-sequence";
  prefix "oamts";

  import ietf-oam-unitary-test {
    prefix "oamut";
    // Update the reference with the correct RFC number or other
    // reference when assigned
    // reference "RFCXXXX";
  }

  // reference ietf-netmod-schedule-yang
  import ietf-schedule { prefix "schedule"; }

  organization
    "IETF OPSAWG (Operations and Management Area Working Group)";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>
     Author: Luis Miguel Contreras Murillo
          <luismiguel.contrerasmurillo@telefonica.com>
     Author: Victor Lopez
          <victor.lopez@nokia.com>";
  description
    "This module defines the 'oam-unitary-test' YANG model for
    activation of network diagnosis procedures.

    Copyright (c) 2024 IETF Trust and the persons identified as
    authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject
    to the license terms contained in, the Revised BSD License
    set forth in Section 4.c of the IETF Trust's Legal Provisions
    Relating to IETF Documents
      (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.";

  // RFC Ed.: update the date below with the date of RFC
  // publication and remove this note.
  // RFC Ed.: replace XXXX with actual RFC number and remove
  // this note.

  revision "2024-07-05" {
    description "Initial version";
    reference "RFCXXXX";
    // Update with the correct RFC number when assigned
  }

  // Data model definition

  container oam-test-sequence {
    description
      "Container for executing a sequence of ietf-oam-unitary-tests
      N times.";

    list test-sequence {
      key "name";
      description "List of test sequences.";

      leaf name {
        type string;
        description "Unique name for the test sequence.";
      }

      list test-ref {
        key "name";
        description "References to the ietf-oam-unitary-tests.";

        uses "oamut:oam-unitary-test";

        leaf numexecutions {
          type uint32;
          default 1;
          description
            "Number of times the test sequence should be
            executed.";
        }
      }

      uses schedule:period-of-time;

      uses schedule:recurrence-utc;

      leaf test-sequence-status {
        type enumeration {
          enum "planned" {
            description
              "The test sequence is planned.";
          }
          enum "configured" {
            description
              "The test sequence is configured.";
          }
          enum "ready" {
            description
              "The test sequence is ready.";
          }
          enum "ongoing" {
            description
              "The test sequence status is ongoing.";
          }
          enum "stop" {
            description
              "The test sequenceis stopped.";
          }
          enum "success" {
            description
              "All tests in the sequence were successful.";
          }
          enum "failure" {
            description
              "One or more tests in the sequence got an error.";
          }
          enum "error" {
            description
              "The test sequence status has an error.";
          }
        }

        description
          "Status of the test sequence execution.";
      }
    }
  }
}

]]></sourcecode>
      </section>
    </section>
    <section anchor="using-device-mode-within-oam-scheduling-models">
      <name>Using Device Mode Within OAM Scheduling Models</name>
      <t>This section discusses the problematic of reusing device models already defined in IETF within the context of scheduling OAM tests. There are two main approaches to enable OAM scheduling models:
  * Importing YANG model into the OAM scheduling models. This approach will copy the device model into the OAM unitary test model to enable the configuration and utilization of the desire OAM test. This approach requires to recreate new YANG models for each new test type or variation of the device models.
  * Schema-mount allows mounting a data model at a specified location of another (parent) schema. The main difference with importing the YANG modules is that they don't have to be prepared for mounting; any existing modules such as "ietf-twamp" can be mounted without any modifications.</t>
      <t>As an exmaple, we will use <xref target="RFC8913"/>, which defines a YANG data model for TWAMP, to illustrate how device models could be used.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The YANG module targeted in this document defines a schema for data that is designed to be accessed via network management protocols such as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.  The lowest NETCONF layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) <xref target="RFC6242"/>. The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS <xref target="RFC5246"/>.</t>
      <t>The NETCONF access control model <xref target="RFC6536"/> provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.</t>
      <t>There are a number of data nodes defined in this YANG module that are writable/creatable/deletable (i.e., config true, which is the default).  These data nodes may be considered sensitive or vulnerable   in some network environments.  Write operations (e.g., edit-config) to these data nodes without proper protection can have a negative effect on network operations.</t>
      <t>In which refers to the scheduling of the tests, security considerations in <xref target="I-D.ietf-netmod-schedule-yang"/> are also applicable here.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBC</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section will be used to track the status of the implementations of the model. It is aimed at being removed if the document becomes RFC.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC5860">
        <front>
          <title>Requirements for Operations, Administration, and Maintenance (OAM) in MPLS Transport Networks</title>
          <author fullname="M. Vigoureux" initials="M." role="editor" surname="Vigoureux"/>
          <author fullname="D. Ward" initials="D." role="editor" surname="Ward"/>
          <author fullname="M. Betts" initials="M." role="editor" surname="Betts"/>
          <date month="May" year="2010"/>
          <abstract>
            <t>This document lists architectural and functional requirements for the Operations, Administration, and Maintenance of MPLS Transport Profile. These requirements apply to pseudowires, Label Switched Paths, and Sections. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5860"/>
        <seriesInfo name="DOI" value="10.17487/RFC5860"/>
      </reference>
      <reference anchor="RFC6428">
        <front>
          <title>Proactive Connectivity Verification, Continuity Check, and Remote Defect Indication for the MPLS Transport Profile</title>
          <author fullname="D. Allan" initials="D." role="editor" surname="Allan"/>
          <author fullname="G. Swallow" initials="G." role="editor" surname="Swallow"/>
          <author fullname="J. Drake" initials="J." role="editor" surname="Drake"/>
          <date month="November" year="2011"/>
          <abstract>
            <t>Continuity Check, Proactive Connectivity Verification, and Remote Defect Indication functionalities are required for MPLS Transport Profile (MPLS-TP) Operations, Administration, and Maintenance (OAM).</t>
            <t>Continuity Check monitors a Label Switched Path for any loss of continuity defect. Connectivity Verification augments Continuity Check in order to provide confirmation that the desired source is connected to the desired sink. Remote Defect Indication enables an end point to report, to its associated end point, a fault or defect condition that it detects on a pseudowire, Label Switched Path, or Section.</t>
            <t>This document specifies specific extensions to Bidirectional Forwarding Detection (BFD) and methods for proactive Continuity Check, Continuity Verification, and Remote Defect Indication for MPLS-TP pseudowires, Label Switched Paths, and Sections using BFD as extended by this memo. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6428"/>
        <seriesInfo name="DOI" value="10.17487/RFC6428"/>
      </reference>
      <reference anchor="I-D.ietf-nmop-network-incident-yang">
        <front>
          <title>A YANG Data Model for Network Incident Management</title>
          <author fullname="Tong Hu" initials="T." surname="Hu">
            <organization>CMCC</organization>
          </author>
          <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
         </author>
          <author fullname="Qin Wu" initials="Q." surname="Wu">
            <organization>Huawei</organization>
          </author>
          <author fullname="Nigel Davis" initials="N." surname="Davis">
            <organization>Ciena</organization>
          </author>
          <author fullname="Chong Feng" initials="C." surname="Feng">
         </author>
          <date day="28" month="June" year="2024"/>
          <abstract>
            <t>   A network incident refers to an unexpected interruption of a network
   service, degradation of a network service quality, or sub-health of a
   network service.  Different data sources including alarms, metrics,
   and other anomaly information can be aggregated into a few amount of
   network incidents by data correlation analysis and the service impact
   analysis.

   This document defines a YANG Module for the network incident
   lifecycle management.  This YANG module is meant to provide a
   standard way to report, diagnose, and help resolve network incidents
   for the sake of network service health and root cause analysis.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-nmop-network-incident-yang-01"/>
      </reference>
      <reference anchor="RFC8531">
        <front>
          <title>Generic YANG Data Model for Connection-Oriented Operations, Administration, and Maintenance (OAM) Protocols</title>
          <author fullname="D. Kumar" initials="D." surname="Kumar"/>
          <author fullname="Q. Wu" initials="Q." surname="Wu"/>
          <author fullname="Z. Wang" initials="Z." surname="Wang"/>
          <date month="April" year="2019"/>
          <abstract>
            <t>This document presents a base YANG data model for connection-oriented Operations, Administration, and Maintenance (OAM) protocols. It provides a technology-independent abstraction of key OAM constructs for such protocols. The model presented here can be extended to include technology-specific details. This guarantees uniformity in the management of OAM protocols and provides support for nested OAM workflows (i.e., performing OAM functions at different levels through a unified interface).</t>
            <t>The YANG data model in this document conforms to the Network Management Datastore Architecture.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8531"/>
        <seriesInfo name="DOI" value="10.17487/RFC8531"/>
      </reference>
      <reference anchor="RFC8532">
        <front>
          <title>Generic YANG Data Model for the Management of Operations, Administration, and Maintenance (OAM) Protocols That Use Connectionless Communications</title>
          <author fullname="D. Kumar" initials="D." surname="Kumar"/>
          <author fullname="Z. Wang" initials="Z." surname="Wang"/>
          <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
          <author fullname="R. Rahman" initials="R." surname="Rahman"/>
          <author fullname="S. Raghavan" initials="S." surname="Raghavan"/>
          <date month="April" year="2019"/>
          <abstract>
            <t>This document presents a base YANG Data model for the management of Operations, Administration, and Maintenance (OAM) protocols that use connectionless communications. The data model is defined using the YANG data modeling language, as specified in RFC 7950. It provides a technology-independent abstraction of key OAM constructs for OAM protocols that use connectionless communication. The base model presented here can be extended to include technology-specific details.</t>
            <t>There are two key benefits of this approach: First, it leads to uniformity between OAM protocols. Second, it supports both nested OAM workflows (i.e., performing OAM functions at the same level or different levels through a unified interface) as well as interactive OAM workflows (i.e., performing OAM functions at the same level through a unified interface).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8532"/>
        <seriesInfo name="DOI" value="10.17487/RFC8532"/>
      </reference>
      <reference anchor="RFC8533">
        <front>
          <title>A YANG Data Model for Retrieval Methods for the Management of Operations, Administration, and Maintenance (OAM) Protocols That Use Connectionless Communications</title>
          <author fullname="D. Kumar" initials="D." surname="Kumar"/>
          <author fullname="M. Wang" initials="M." surname="Wang"/>
          <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
          <author fullname="R. Rahman" initials="R." surname="Rahman"/>
          <author fullname="S. Raghavan" initials="S." surname="Raghavan"/>
          <date month="April" year="2019"/>
          <abstract>
            <t>This document presents a retrieval method YANG data model for connectionless Operations, Administration, and Maintenance (OAM) protocols. It provides technology-independent RPC operations for OAM protocols that use connectionless communication. The retrieval methods model herein presented can be extended to include technology- specific details. There are two key benefits of this approach: First, it leads to uniformity between OAM protocols. Second, it supports both nested OAM workflows (i.e., performing OAM functions at different or the same levels through a unified interface) as well as interactive OAM workflows (i.e., performing OAM functions at the same levels through a unified interface).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8533"/>
        <seriesInfo name="DOI" value="10.17487/RFC8533"/>
      </reference>
      <reference anchor="RFC8913">
        <front>
          <title>Two-Way Active Measurement Protocol (TWAMP) YANG Data Model</title>
          <author fullname="R. Civil" initials="R." surname="Civil"/>
          <author fullname="A. Morton" initials="A." surname="Morton"/>
          <author fullname="R. Rahman" initials="R." surname="Rahman"/>
          <author fullname="M. Jethanandani" initials="M." surname="Jethanandani"/>
          <author fullname="K. Pentikousis" initials="K." role="editor" surname="Pentikousis"/>
          <date month="November" year="2021"/>
          <abstract>
            <t>This document specifies a data model for client and server
implementations of the Two-Way Active Measurement Protocol (TWAMP).
This document defines the TWAMP data model through Unified Modeling
Language (UML) class diagrams and formally specifies it using the
YANG data modeling language (RFC 7950). The data model is compliant
with the Network Management Datastore Architecture (NMDA).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8913"/>
        <seriesInfo name="DOI" value="10.17487/RFC8913"/>
      </reference>
      <reference anchor="RFC8342">
        <front>
          <title>Network Management Datastore Architecture (NMDA)</title>
          <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
          <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
          <author fullname="P. Shafer" initials="P." surname="Shafer"/>
          <author fullname="K. Watsen" initials="K." surname="Watsen"/>
          <author fullname="R. Wilton" initials="R." surname="Wilton"/>
          <date month="March" year="2018"/>
          <abstract>
            <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8342"/>
        <seriesInfo name="DOI" value="10.17487/RFC8342"/>
      </reference>
      <reference anchor="RFC7950">
        <front>
          <title>The YANG 1.1 Data Modeling Language</title>
          <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
          <date month="August" year="2016"/>
          <abstract>
            <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7950"/>
        <seriesInfo name="DOI" value="10.17487/RFC7950"/>
      </reference>
      <reference anchor="RFC8345">
        <front>
          <title>A YANG Data Model for Network Topologies</title>
          <author fullname="A. Clemm" initials="A." surname="Clemm"/>
          <author fullname="J. Medved" initials="J." surname="Medved"/>
          <author fullname="R. Varga" initials="R." surname="Varga"/>
          <author fullname="N. Bahadur" initials="N." surname="Bahadur"/>
          <author fullname="H. Ananthakrishnan" initials="H." surname="Ananthakrishnan"/>
          <author fullname="X. Liu" initials="X." surname="Liu"/>
          <date month="March" year="2018"/>
          <abstract>
            <t>This document defines an abstract (generic, or base) YANG data model for network/service topologies and inventories. The data model serves as a base model that is augmented with technology-specific details in other, more specific topology and inventory data models.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8345"/>
        <seriesInfo name="DOI" value="10.17487/RFC8345"/>
      </reference>
      <reference anchor="RFC8346">
        <front>
          <title>A YANG Data Model for Layer 3 Topologies</title>
          <author fullname="A. Clemm" initials="A." surname="Clemm"/>
          <author fullname="J. Medved" initials="J." surname="Medved"/>
          <author fullname="R. Varga" initials="R." surname="Varga"/>
          <author fullname="X. Liu" initials="X." surname="Liu"/>
          <author fullname="H. Ananthakrishnan" initials="H." surname="Ananthakrishnan"/>
          <author fullname="N. Bahadur" initials="N." surname="Bahadur"/>
          <date month="March" year="2018"/>
          <abstract>
            <t>This document defines a YANG data model for Layer 3 network topologies.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8346"/>
        <seriesInfo name="DOI" value="10.17487/RFC8346"/>
      </reference>
      <reference anchor="RFC8795">
        <front>
          <title>YANG Data Model for Traffic Engineering (TE) Topologies</title>
          <author fullname="X. Liu" initials="X." surname="Liu"/>
          <author fullname="I. Bryskin" initials="I." surname="Bryskin"/>
          <author fullname="V. Beeram" initials="V." surname="Beeram"/>
          <author fullname="T. Saad" initials="T." surname="Saad"/>
          <author fullname="H. Shah" initials="H." surname="Shah"/>
          <author fullname="O. Gonzalez de Dios" initials="O." surname="Gonzalez de Dios"/>
          <date month="August" year="2020"/>
          <abstract>
            <t>This document defines a YANG data model for representing, retrieving, and manipulating Traffic Engineering (TE) Topologies. The model serves as a base model that other technology-specific TE topology models can augment.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8795"/>
        <seriesInfo name="DOI" value="10.17487/RFC8795"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC6991">
        <front>
          <title>Common YANG Data Types</title>
          <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
          <date month="July" year="2013"/>
          <abstract>
            <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6991"/>
        <seriesInfo name="DOI" value="10.17487/RFC6991"/>
      </reference>
      <reference anchor="I-D.ietf-netmod-schedule-yang">
        <front>
          <title>A Common YANG Data Model for Scheduling</title>
          <author fullname="Qiufang Ma" initials="Q." surname="Ma">
            <organization>Huawei</organization>
          </author>
          <author fullname="Qin Wu" initials="Q." surname="Wu">
            <organization>Huawei</organization>
          </author>
          <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
            <organization>Orange</organization>
          </author>
          <author fullname="Daniel King" initials="D." surname="King">
            <organization>Lancaster University</organization>
          </author>
          <date day="25" month="June" year="2024"/>
          <abstract>
            <t>   This document defines a common schedule YANG module which is designed
   to be applicable for scheduling purposes such as event, policy,
   services, or resources based on date and time.  For the sake of
   better modularity, the module includes basic, intermediate, and
   advanced versions of recurrence related groupings.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-schedule-yang-02"/>
      </reference>
      <reference anchor="RFC8340">
        <front>
          <title>YANG Tree Diagrams</title>
          <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
          <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
          <date month="March" year="2018"/>
          <abstract>
            <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="215"/>
        <seriesInfo name="RFC" value="8340"/>
        <seriesInfo name="DOI" value="10.17487/RFC8340"/>
      </reference>
      <reference anchor="RFC6241">
        <front>
          <title>Network Configuration Protocol (NETCONF)</title>
          <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
          <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
          <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
          <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
          <date month="June" year="2011"/>
          <abstract>
            <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6241"/>
        <seriesInfo name="DOI" value="10.17487/RFC6241"/>
      </reference>
      <reference anchor="RFC8040">
        <front>
          <title>RESTCONF Protocol</title>
          <author fullname="A. Bierman" initials="A." surname="Bierman"/>
          <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
          <author fullname="K. Watsen" initials="K." surname="Watsen"/>
          <date month="January" year="2017"/>
          <abstract>
            <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8040"/>
        <seriesInfo name="DOI" value="10.17487/RFC8040"/>
      </reference>
      <reference anchor="RFC6242">
        <front>
          <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
          <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
          <date month="June" year="2011"/>
          <abstract>
            <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6242"/>
        <seriesInfo name="DOI" value="10.17487/RFC6242"/>
      </reference>
      <reference anchor="RFC5246">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
          <author fullname="T. Dierks" initials="T." surname="Dierks"/>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <date month="August" year="2008"/>
          <abstract>
            <t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol. The TLS protocol provides communications security over the Internet. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5246"/>
        <seriesInfo name="DOI" value="10.17487/RFC5246"/>
      </reference>
      <reference anchor="RFC6536">
        <front>
          <title>Network Configuration Protocol (NETCONF) Access Control Model</title>
          <author fullname="A. Bierman" initials="A." surname="Bierman"/>
          <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
          <date month="March" year="2012"/>
          <abstract>
            <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF protocol access for particular users to a pre-configured subset of all available NETCONF protocol operations and content. This document defines such an access control model. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6536"/>
        <seriesInfo name="DOI" value="10.17487/RFC6536"/>
      </reference>
    </references>
    <?line 581?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
pGsAAA==

-->

</rfc>
