<?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.1 (Ruby 2.7.0) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zheng-ccamp-client-pm-yang-10" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.1 -->
  <front>
    <title abbrev="PM YANG for Client Signal">A YANG Data Model for Client Signal Performance Monitoring</title>
    <seriesInfo name="Internet-Draft" value="draft-zheng-ccamp-client-pm-yang-10"/>
    <author initials="C." surname="Yu" fullname="Chaode Yu">
      <organization>Huawei Technologies</organization>
      <address>
        <email>yuchaode@huawei.com</email>
      </address>
    </author>
    <author initials="H." surname="Zheng" fullname="Haomian Zheng">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>H1, Huawei Xiliu Beipo Village, Songshan Lake</street>
          <city>Dongguan</city>
          <region>Guangdong</region>
          <code>523808</code>
          <country>China</country>
        </postal>
        <email>zhenghaomian@huawei.com</email>
      </address>
    </author>
    <author initials="I." surname="Busi" fullname="Italo Busi">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <country>Italy</country>
        </postal>
        <email>italo.busi@huawei.com</email>
      </address>
    </author>
  <author initials="Y." surname="Zheng" fullname="Yanlei Zheng">
   <organization>China Unicom</organization>
   <address>
    <postal>
     <street></street>
     <city></city>
     <region></region>
     <code></code>
     <country>China</country>
    </postal>
    <email>zhengyanlei@chinaunicom.cn</email>
   </address>
  </author>
    <author initials="V." surname="Lopez" fullname="Victor Lopez">
      <organization>Nokia</organization>
      <address>
        <postal>
          <country>Spain</country>
        </postal>
        <email>victor.lopez@nokia.com</email>
      </address>
    </author>
    <author initials="O." surname="Gonzalez de Dios" fullname="Oscar Gonzalez de Dios">
      <organization>Telefonica</organization>
      <address>
        <postal>
          <country>Spain</country>
        </postal>
        <email>oscar.gonzalezdedios@telefonica.com</email>
      </address>
    </author>
    <date year="2024" month="March" day="4"/>
    <area>Routing</area>
    <workgroup>CCAMP Working Group</workgroup>
    <abstract>
      <?line 62?>

<t>A transport network is a server-layer network to provide connectivity
services to its client.  Given the client signal is configured, the
followup function for performance monitoring, such as latency and bit
error rate, would be needed for network operation.</t>
      <t>This document describes the data model to support the performance
monitoring functionalities.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://haomianzheng.github.io/ccamp-client-pm-yang/draft-zheng-ccamp-client-pm-yang.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-zheng-ccamp-client-pm-yang/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Common Control and Measurement Plane Working Group mailing list (<eref target="mailto:ccamp@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ccamp/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ccamp/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/haomianzheng/ccamp-client-pm-yang"/>.</t>
    </note>
  </front>
  <middle>
    <?line 72?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Client-layer network and server-layer network have been respectively
modeled to allow the tunnels carrying the client traffic.  Server-
layers are modeled as tunnels with various switching technologies,
such as OTN in <xref target="I-D.ietf-ccamp-otn-tunnel-model"/> and WSON in
<xref target="I-D.ietf-ccamp-wson-tunnel-model"/>.  Client-layers are modeled as
client signals according to the client-signal identities specified in
<xref target="I-D.ietf-ccamp-layer1-types"/>.  These client signals can be
configured to existing tunnels via the client signal configuration
model specified in <xref target="I-D.ietf-ccamp-client-signal-yang"/>.</t>
      <t>In the network operation, the operator is interested in monitoring
their instantiated client signal over tunnels.  The objective of such
monitoring is to complete timely adjustment once there is abnormal
statistic which may result in failure of the client signal.  The
parameters specified in the performance monitoring model can be
collected for the operation need.  The OAM mechanism, can be
configured together with the performance monitoring model.</t>
    </section>
    <section anchor="terminology-and-notations">
      <name>Terminology and Notations</name>
      <t>A simplified graphical representation of the data model is used in
this document.  The meaning of the symbols in the YANG data tree
presented later in this document is defined in <xref target="RFC8340"/>.  They are
provided below for reference.</t>
      <ul spacing="normal">
        <li>
          <t>Brackets "[" and "]" enclose list keys.</t>
        </li>
        <li>
          <t>Abbreviations before data node names: "rw" means configuration
(read-write) and "ro" state data (read-only).</t>
        </li>
        <li>
          <t>Symbols after data node names: "?" means an optional node, "!"
means a presence container, and "*" denotes a list and leaf-list.</t>
        </li>
        <li>
          <t>Parentheses enclose choice and case nodes, and case nodes are also
marked with a colon (":").</t>
        </li>
        <li>
          <t>Ellipsis ("...") stands for contents of subtrees that are not
shown.</t>
        </li>
      </ul>
    </section>
    <section anchor="model-relationship">
      <name>Model Relationship</name>
      <t><xref target="I-D.ietf-ccamp-client-signal-yang"/> has specified the two models for
the client signal configuration, module ietf-trans-client-service for
transparent client service and module ietf-eth-tran-service for
Ethernet service.  Basically the client signal types in this document
is consistent with ietf-eth-tran-types, and focus on different
functionality.  On the perspective of operator, the modules in
<xref target="I-D.ietf-ccamp-client-signal-yang"/> can be used to configure the
service given any underlay tunnels, while the operation about
monitoring the performance on given service can be achieved by using
the model in this document.</t>
      <t>Consideration on Key Performance Information (KPI) monitoring for
Virtual Network (VN) and tunnels has been specified in
<xref target="I-D.ietf-teas-actn-pm-telemetry-autonomics"/>.  Usually the monitoring
on the tunnels are the VNs should be separately deployed for the
network operation, but it is possible to have common parameters that
are both needed for the VN/TE and the configured services.  Common
types are imported in both modules.</t>
      <t>VPN-level parameters and their monitoring have been defined in
<xref target="I-D.www-bess-yang-vpn-service-pm"/>.  This module focus on the
performance on the topology at different layer or the overlay
topology between VPN sites.  On the other hand, this document is
focusing on the performance of the service configured between
Customer Ends (CE).</t>
      <t><xref target="I-D.draft-yu-ccamp-optical-resource-pm-yang"/>is aimed to provide a performance management approach on the resource level in a traditional way. This resource stands for physical resource, such as board, port etc., or logical resource, e.g. TTP etc. The management object is different with this document. But there is some relationship between these two documents. The PM data of client signal can be collected on some specific resources. And usually there would be some additional calculation needed for client signal PM data. This collection mechanism, including which resource should be adopted, when these resource PM data should be collected and the calculation method are the focus of this document.</t>
    </section>
    
<section anchor="usecase"><name>Use Cases of Performance Management of Client Signal</name>

<section anchor="usecase-automatic-acceptance-test"><name>Automatic Service Acceptance Test</name>
<t>After the private line service is provisioned on the network, usually it needs to take an acceptance test before it is delivered to the user. This acceptance test includes some connectivity validation, such as traffic test, to make sure that it's reachable from the source access port to the destination access port. The engineers need to take tester onsite and run it manually. It is time consuming especially when the private line service is an inter-domain service which the source and destination could be in different cities</t>

<t>It is excellent if this acceptance test can be operated automatically by interface instead of being done manually. For some scenarios, it is feasible to achieve this target. For example, we can test the latency of private line service to replace the connectivity test. The section of 15.8.2.1.6 in <xref target="ITU-T_G.709"/> defines the mechanism of delay (latency) measurement mechanism of ODU path. If the latency value could be returned successfully through the ODU path, then there will not be interruption on the ODU path.</t>
</section>

<section anchor="usecase-privateline-service-sla-assurance"><name>Private Line Service SLA Assurance</name>
<t>SLA (Service Level Agreement) is an agreement aligned by the service provider and the user. This agreement defines service type, quality of service etc. which the service provider guarantees to the user.</t>

<t>Transport private line service has got the advantage of hard isolation, large bandwidth, low latency and high reliability. So usually it is more expensive than the other fixed broadband services. From the user's perspective, they also have some special demand for the private line service. For example, some industry customers, e.g. stock and futures industry customers who have a lot of high-frequency trading requirement, have extremely high requirement on latency. The customers from government and security assurance department have extremely high requirement on service reliability. The Private line service users expect to monitor service performance indicators to ensure that their private line services are cost-effective and meet SLA requirements.</t>

<t>And for the service provider, continuous monitoring of key services' performance and proactive O&amp;M can reduce customers' complaint and ensure SLA delivery. The performance data can even be used for precision marketing. For example, if the bandwidth usage of a user's private line is too high for a long time, the system can remind the user to adjust the bandwidth in a timely manner.</t>

<figure title="Architecture of Private Line SLA Assurance" anchor="fig-sla-assurance"><artwork type="ascii-art"><![CDATA[
 +----------+   +----------+
 | Operator |   |   User   |
 +----------+   +----------+
      ||             ||
 +----------+   +----------+
 |   OSS    |   |   APP    |
 +----------+   +----------+
      ||             ||
  +-----------------------+
  |  domain Controller    |
  +-----------------------+
            ||
      --------------
     /    Network   \
     \______________/
]]></artwork></figure>
</section>

</section>
    
    <section anchor="consideration-on-monitoring-parameters">
      <name>Consideration on Monitoring Parameters</name>
      <t>For the mechanism of performance monitoring, there have been a lot of discussion in <xref target="ITU-T_G.709"/>, <xref target="ITU-T_G.874"/>, <xref target="ITU-T_G.875"/>, <xref target="ITU-T_G.7710"/>, <xref target="ITU-T_G.7718"/>, and <xref target="ITU-T_G.7719"/>. This document would like to reference the definition of ITU-T instead of restarting new discussion. But for the service level's performance parameter, there is not enough definition both in ITU-T and IETF, this document will focus on how to define a service level performance parameter. Considering there could be a lot of new service performance parameters in the future, it is also suggested to define a generic data model to conduct the service performance parameters.</t>
      
      <section anchor="service-latence-measurement"><name>Service Latency Measurement</name>
      <t>
      According to the description of section 15.8.2.1.6 in <xref target="ITU-T_G.709"/>, PM overhead can be used to measure the delay (latency) of ODU path. Simply speaking, in the latency measurement process, the PM overhead is generated and delivered on the source port and looped back at the sink port. By observing the 0-1 change of PM overhead on the source port, it is able to obtain latency data of E2E ODU path.
      </t>

      <t>
      For intra-domain services, the domain controller can differentiate who is the source port and who is the sink port， and orchestrate the whole measurement  process. But for inter-domain service, it is hard for the domain controller to know the access port in its domain is a source or sink port. Therefore an orchestrator above is needed to do this orchestration. The orchestrator specify one of the domain's access port performs as the sink port and the other domain's access port performs as a source port. To be noted that, it is important specify the source and sink ports. Especially the sink port should be specified at first. It is not allowed to launch latency measurement from the source port until the sink port has finished its configuration (loop-back operation). Otherwise the overhead will not be transmitted back to the source port, so that no latency data will be obtained.
      </t>
<figure title="Inter-domain service latency measurement" anchor="fig-latence-measurement"><artwork type="ascii-art"><![CDATA[
               +--------------+
               | Orchestrator |
               +--------------+
               /       |      \
              /        |       \
             /         |        \
            /          |         \
      +------+     +------+     +------+
      | DC-A |     | DC-N |     | DC-Z |
      +------+     +------+     +------+
         |             |            |
  /-----------\        |        /-----------\
  | Network-A | ---(domian-n)---| Network-Z |--+
  |           |                 |           |<-|  loopback
  \-----------/                 \-----------/
]]></artwork></figure>
      
      </section>
      
      
    </section>
    <section anchor="oam-configuration">
      <name>OAM Configuration</name>
      <t>The operation, administration and maintenance protocols and data
models have been specified in <xref target="RFC8531"/> for the connection-oriented
network.  The model is referenced in this work to develop an
Ethernet-specific OAM models, which is augmenting the service
performance monitoring data model.</t>
      <t>The definitions of OAM terminologies, such as maintainence
Maintenance Domain (MD), Maintenance Association (MA), and
Maintenance End Points (MEP), can be found in <xref target="RFC8531"/> as well.</t>
    </section>
    <section anchor="yang-model-for-performance-monitoring">
      <name>YANG Model for Performance Monitoring</name>
      <section anchor="yang-tree-for-performance-monitoring">
        <name>YANG Tree for Performance Monitoring</name>
        <figure anchor="fig-service-pm-tree">
          <name>YANG Tree for Performance Monitoring</name>
          <artwork type="ascii-art" name="ietf-service-pm.tree"><![CDATA[
module: ietf-service-pm
  +--rw performance-monitoring
     +--rw service-pm* [service-name]
        +--rw service-name               union
        +--rw task-pm-enable?            boolean
        +--rw granularity?               identityref
        +--rw performance-data-config* [parameter-name]
        |  +--rw parameter-name    identityref
        |  +--rw measure-method?   identityref
        +--ro service-pm-state
           +--ro oam-state
           |  +--ro cc-state    enumeration
           |  +--ro lm-state?   enumeration
           |  +--ro dm-state?   enumeration
           +--ro performance-data* [parameter-name]
           |  +--ro parameter-name     identityref
           |  +--ro parameter-value* [index]
           |     +--ro index                uint64
           |     +--ro value
           |     |       performance-parameter-value
           |     +--ro value-unit           string
           |     +--ro value-description?   string
           |     +--ro start-time?          yang:date-and-time
           |     +--ro end-time?            yang:date-and-time
           +--ro monitor-state       identityref
           +--ro error-info
           |  +--ro error-code?      uint32
           |  +--ro error-message?   string
           +--ro alarm
              +--ro status?   identityref
]]></artwork>
        </figure>
      </section>
      <section anchor="yang-tree-for-oam-configuration">
        <name>YANG Tree for OAM Configuration</name>
        <figure anchor="fig-eth-service-oam-tree">
          <name>YANG Tree for OAM Configuration</name>
          <artwork type="ascii-art" name="ietf-eth-service-oam.tree"><![CDATA[
module: ietf-eth-service-oam
  augment /svc-pm:performance-monitoring/svc-pm:service-pm:
    +--rw oam-config
       +--rw source
       |  +--rw md-name?         string
       |  +--rw ma-name?         string
       |  +--rw ma-level?        string
       |  +--rw meg-id?          string
       |  +--rw meg-level?       string
       |  +--rw mep-id?          uint8
       |  +--rw remote-mep-id?   uint8
       +--rw destination
       |  +--rw md-name?         string
       |  +--rw ma-name?         string
       |  +--rw ma-level?        string
       |  +--rw meg-id?          string
       |  +--rw meg-level?       string
       |  +--rw mep-id?          uint8
       |  +--rw remote-mep-id?   uint8
       +--rw cc-interval?   identityref
       +--rw lm-interval?   identityref
       +--rw dm-interval?   identityref

  rpcs:
    +---x configure-oam
    |  +---w input
    |  |  +---w oam-config-list* [service-name]
    |  |     +---w service-name    union
    |  |     +---w source
    |  |     |  +---w md-name?         string
    |  |     |  +---w ma-name?         string
    |  |     |  +---w ma-level?        string
    |  |     |  +---w meg-id?          string
    |  |     |  +---w meg-level?       string
    |  |     |  +---w mep-id?          uint8
    |  |     |  +---w remote-mep-id?   uint8
    |  |     +---w destination
    |  |     |  +---w md-name?         string
    |  |     |  +---w ma-name?         string
    |  |     |  +---w ma-level?        string
    |  |     |  +---w meg-id?          string
    |  |     |  +---w meg-level?       string
    |  |     |  +---w mep-id?          uint8
    |  |     |  +---w remote-mep-id?   uint8
    |  |     +---w cc-interval?    identityref
    |  |     +---w lm-interval?    identityref
    |  |     +---w dm-interval?    identityref
    |  +--ro output
    |     +--ro oam-config-list* [service-name]
    |        +--ro service-name     union
    |        +--ro result?          enumeration
    |        +--ro error-code?      uint32
    |        +--ro error-message?   string
    +---x delete-oam-configurations
    |  +---w input
    |  |  +---w service-list* [service-name]
    |  |     +---w service-name    union
    |  +--ro output
    |     +--ro oam-config-list* [service-name]
    |        +--ro service-name     union
    |        +--ro result?          enumeration
    |        +--ro error-code?      uint32
    |        +--ro error-message?   string
    +---x get-node-eth-oam-configurations
       +---w input
       |  +---w te-node-list*   -> /nw:networks/network/node/node-id
       +--ro output
          +--ro oam-list* []
             +--ro node-id?
             |       -> /nw:networks/network/node/node-id
             +--ro mep-config-list* [md-name ma-name meg-id mep-id]
                +--ro md-name          string
                +--ro ma-name          string
                +--ro ma-level?        string
                +--ro meg-id           string
                +--ro meg-level?       string
                +--ro mep-id           uint8
                +--ro remote-mep-id?   uint8
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="yang-code-for-performance-monitoring">
      <name>YANG Code for Performance Monitoring</name>
      <section anchor="the-performance-monitoring-yang-code">
        <name>The Performance Monitoring YANG Code</name>
        <figure anchor="fig-service-pm-yang">
          <name>Performance Monitoring YANG Code</name>
          <sourcecode type="yang" markers="true" name="ietf-service-pm@2024-03-04.yang"><![CDATA[
module ietf-service-pm {
  yang-version 1.1;

  namespace "urn:ietf:params:xml:ns:yang:ietf-service-pm";
  prefix "svc-pm";

  import ietf-eth-tran-service {
    prefix "ethtsvc";
  }

  import ietf-yang-types {
    prefix "yang";
  }

  import ietf-trans-client-service {
    prefix "clntsvc";
  }

  organization
    "Internet Engineering Task Force (IETF) CCAMP WG";
  contact
    "
      WG List: <mailto:ccamp@ietf.org>
      ID-draft editor:
        Chaode Yu (yuchaode@huawei.com)
        Haomian Zheng (zhenghaomian@huawei.com);
        Italo Busi (italo.busi@huawei.com);
        Yanlei Zheng (zhengyanlei@chinaunicom.cn);
        Victor Lopez (victor.lopez@nokia.com);
        Oscar Gonzalez de Dios(oscar.gonzalezdedios@telefonica.com);
    ";

  description
    "This module defines the performance monitoring for Ethernet
     services. The model fully conforms to the Network Management
     Datastore Architecture (NMDA).

     Copyright (c) 2021 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 Simplified 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; see
     the RFC itself for full legal notices.";

  revision 2024-03-04 {
    description
      "Initial version";
    reference
      "ADD REFERENCE HERE";
  }

  typedef performance-parameter-value {
    type union {
      type uint32;
      type uint64;
      type decimal64 {
        fraction-digits 6;
      }
      type string;
    }
    description
      "A performance parameter value.";
  }

  grouping service-performance-monitor-set{
    description "the set of parameter name, value and description.";
    leaf parameter-name{
      type identityref {
        base performance-parameter-type;
      }
      description
        "The name of parameters to be monitored.
         For example, latency, Bit Error Rate, Bandwidth and so on.";
    }
    list parameter-value {
      key index;
      description
        "The table of values of the performance and
        their descriptions.";
      leaf index {
        type uint64;
        description
          "Used for list index";
      }
      leaf value {
        type performance-parameter-value;
        mandatory true;
        description
          "The value of the parameter. ";
      }
      leaf value-unit {
        type string;
        mandatory true;
        description
          "The value unit of the parameter.
           For example, second, minute and so on.";
      }
      leaf value-description{
        type string;
        description
          "The description of previous value. ";
      }
      leaf start-time {
        type yang:date-and-time;
        description
          "The time stamp when the parameter is started.";
      }
      leaf end-time {
        type yang:date-and-time;
        description
          "The time stamp when the parameter is ended.";
      }
    }
  }

  identity performance-parameter-type {
    description
      "Base type of the performance parameter being monitored.";
  }

  identity near-frame-loss {
    base performance-parameter-type;
    description
      "Near frame loss, using one-way eth loss measure,
       the sampling point is the MEP.";
  }

  identity far-frame-loss {
    base performance-parameter-type;
    description
      "Far frame loss, using one-way eth loss measure,
       the sampling point is the MEP.";
  }

  identity one-way-delay {
    base performance-parameter-type;
    description
      "One way delay.";
  }

  identity two-way-delay {
    base performance-parameter-type;
    description
      "Two way delay.";
  }

  identity receive-packets {
    base performance-parameter-type;
    description
      "Total number of received packets.";
  }

  identity transmit-packets {
    base performance-parameter-type;
    description
      "Total number of transmitted packets.";
  }

  identity ingress-bandwidth {
    base performance-parameter-type;
    description
      "Current bandwidth usage of the ingress traffic.";
  }

  identity egress-bandwidth {
    base performance-parameter-type;
    description
      "Current bandwidth usage of the egress traffic.";
  }

  identity alarm-status {
    description "indicates whether there is alarm or not";
  }
  identity alarm {
    base alarm-status;
    description "There is one or multiple alarms from the monitor. ";
  }

  identity no-alarm {
    base alarm-status;
    description "There is no alarms from the monitor. ";
  }

  identity monitoring-state {
    description
      "The state of performance monitoring. ";
  }

  identity monitoring {
    base monitoring-state;
    description "The Ethernet client signal is under monitoring. ";
  }

  identity monitor-finished {
    base monitoring-state;
    description
      "The monitoring of Ethernet client signal is finished. ";
  }

  identity monitor-failed {
    base monitoring-state;
    description
      "The monitoring of Ethernet client signal is failed. ";
  }

  identity granularity-type {
    description
      "Monitoring granularity";
  }

  identity granularity-1min {
    base granularity-type;
    description
      "1 minute";
  }

  identity granularity-15min {
    base granularity-type;
    description
      "15 minutes";
  }
  identity granularity-24h {
    base granularity-type;
    description
      "24 hours";
  }

  identity measure-method {
    description "Measure method.";
  }

  identity measure-by-loopback {
    base measure-method;
    description "Loopback measure method.";
  }

  identity measure-at-ingress {
    base measure-method;
    description "Ingress measure method.";
  }

  container performance-monitoring {
    description
      "This part is for performance monitoring. ";
    list service-pm {
      key "service-name";
      description
        "The list of service to be monitored.";
      leaf service-name {
        type union {
          type leafref {
            path "/ethtsvc:etht-svc/ethtsvc:etht-svc-instances"
               + "/ethtsvc:etht-svc-name";
          }
          type leafref {
            path "/clntsvc:client-svc/clntsvc:client-svc-instances"
               + "/clntsvc:client-svc-name";
          }
        }
        mandatory true;
        description "The name of service.";
      }

      leaf task-pm-enable {
        type boolean;
        description
          "Indicate whether the performance monitoring
          is enable or not.";
      }

      leaf granularity {
        type identityref {
          base granularity-type;
        }
        description
          "Monitoring granularity";
      }

      list performance-data-config {
        key parameter-name;
        description
          "Specify the performance parameters to be queried";

        leaf parameter-name {
          type identityref {
            base performance-parameter-type;
          }
          description
            "The name of parameters to be monitored.
             For example, latency, BER, Bandwidth and so on.";
        }
        leaf measure-method {
          type identityref {
            base measure-method;
          }
          description "Measure Methods.";
        }
      }

      container service-pm-state {
        config false;
        description
          "The state of service performance monitoring.";

        container oam-state {
          description "the state of OAM. ";
          leaf cc-state {
            type enumeration {
              enum up {
                description "up";
              }
              enum down {
                description "down";
              }
            }
            mandatory true;
            description
              "The state of continuity check.";
          }
          leaf lm-state {
            type enumeration {
              enum up {
                description "up";
              }
              enum down {
                description "down";
              }
            }
            description
              "The state of loss measurement.";
          }
          leaf dm-state {
            type enumeration {
              enum up {
                description "up";
              }
              enum down{
                description "down";
              }
            }
            description
              "The state of delay measurement.";
          }
        }

        list performance-data{
          key parameter-name;
          description "The list of performance under monitor.";
          uses service-performance-monitor-set;
        }

        leaf monitor-state {
          type identityref {
            base monitoring-state;
          }
          mandatory true;
          description "The status of performance monitoring. ";
        }

        container error-info {
          description
            "Describe the error message.";
          leaf error-code {
            type uint32;
            description
              "The code of error.";
          }
          leaf error-message {
            type string;
            description
              "The message of error.";
          }
        }

        container alarm {
          description
            "To retrieve the Alarm during performance Monitoring.";
          leaf status {
            type identityref {
              base alarm-status;
            }
            description "The status of the alarm. ";
          }
        }
      }
    }
  }

}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="the-oam-configuration-yang-code">
        <name>The OAM Configuration YANG Code</name>
        <figure anchor="fig-eth-service-oam-yang">
          <name>OAM Configuration YANG Code</name>
          <sourcecode type="yang" markers="true" name="ietf-eth-service-oam@2024-03-04.yang"><![CDATA[
module ietf-eth-service-oam {
  yang-version 1.1;

  namespace "urn:ietf:params:xml:ns:yang:ietf-eth-service-oam";
  prefix "eth-oam";

  import ietf-eth-tran-service {
    prefix "ethtsvc";
  }
  
  import ietf-service-pm {
    prefix "svc-pm";
  }
  
  import ietf-trans-client-service {
    prefix "clntsvc";
  }
  
  import ietf-network {
    prefix nw;
  }

  organization
    "Internet Engineering Task Force (IETF) CCAMP WG";
  contact
    "
      WG List: <mailto:ccamp@ietf.org>
      ID-draft editor:
        Chaode Yu (yuchaode@huawei.com)
        Haomian Zheng (zhenghaomian@huawei.com);
        Italo Busi (italo.busi@huawei.com);
        Yanlei Zheng (zhengyanlei@chinaunicom.cn);
        Victor Lopez (victor.lopez@nokia.com);
        Oscar Gonzalez de Dios(oscar.gonzalezdedios@telefonica.com);
    ";

  description
    "This module defines the performance monitoring for Ethernet
     services OAM. The model fully conforms to the Network Management
     Datastore Architecture (NMDA).

     Copyright (c) 2021 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 Simplified 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; see
     the RFC itself for full legal notices.";

  revision 2024-03-04 {
    description
      "Initial version";
    reference
      "ADD REFERENCE HERE";
  }
  
  identity interval-type {
    description "Time interval";
  }
  
  identity interval-3p33ms {
    base interval-type;
    description "3.33 milliseconds";
  }
  
  identity interval-10ms {
    base interval-type;
    description "10 milliseconds";
  }
  
  identity interval-100ms {
    base interval-type;
    description "100 milliseconds";
  }
  
  identity interval-1s {
    base interval-type;
    description "1 second";
  }
  
  identity interval-10s {
    base interval-type;
    description "10 seconds";
  }
  
  identity interval-1m {
    base interval-type;
    description "1 minute";
  }
  
  identity interval-10m {
    base interval-type;
    description "10 minutes";
  }
  
  grouping eth-service-oam-config {
    container source {
      uses mep-config;
      description "OAM MEP configuration on source node.";
      }
    container destination {
      uses mep-config;
      description "OAM MEP configuration on destination node.";
      }
    uses interval-config;
    description "OAM configuration on Eth services.";
  }
  
  grouping interval-config {
    description "OAM Interval Configuration.";
    leaf cc-interval {
      type identityref {
        base interval-type;
      }
      description "Continuity check interval.";
    }

    leaf lm-interval {
      type identityref {
        base interval-type;
      }
      description "Loss measurement interval.";
    }

    leaf dm-interval {
      type identityref {
        base interval-type;
      }
      description "Delay measurement interval.";
    }
  }
  
  grouping mep-config {
    description "OAM MEP Configuration.";
    leaf md-name {
     type string;
     description
       "Name of Maintenance Domain.";
    } 
    leaf ma-name {
     type string;
     description
       "Name of Maintenance Domain.
        An maintenance association(MA) is a part of an MD. 
        An MD can be divided into one or more MAs. ";
    }

    leaf ma-level {
      type string;
      description
        "Maintenance Association Level.";
    }

    leaf meg-id {
      type string;
      description 
        "Comply with Y.1731 term, mapping with 802.lag MA name.";
    }
    leaf meg-level {
      type string;
      description "Mapping with 802.lag MA level.";
    }
    
    leaf mep-id {
      type uint8;
      description "0 if Abnormal";
    }

    leaf remote-mep-id {
      type uint8;
      description "The remote MEP ID must be specified.";
    }
  }

  augment "/svc-pm:performance-monitoring/svc-pm:service-pm" {
    description
      "Augment with additional parameters required for Ethernet OAM";
      
    container oam-config {
      description "OAM configuration container.";
      uses eth-service-oam-config;
    }
  }
  
  grouping errors {
    description "The grouping of error information.";
    leaf error-code {
      type uint32;
      description "The error code.";
    }
    
    leaf error-message {
      type string;
      description "The error message.";
    }
  }
  
  /*
    * Operations
    */
  rpc configure-oam {
    description "Deliver OAM configurations. ";
    
    input {
      list oam-config-list {
        key "service-name";
        description
          "The request list of service oam to be configured.";
        leaf service-name {
          type union {
            type leafref {
              path "/ethtsvc:etht-svc/ethtsvc:etht-svc-instances"
                 + "/ethtsvc:etht-svc-name";
            } 
            type leafref {
              path "/clntsvc:client-svc/clntsvc:client-svc-instances"
                 + "/clntsvc:client-svc-name";
            } 
          
          }
          mandatory true;
          description "The name of service.";
        }
        uses eth-service-oam-config;
      }
    }
    
    output {
      list oam-config-list {
        key "service-name";
        description "The OAM configuration list. ";        
        leaf service-name {
          type union {
            type leafref {
              path "/ethtsvc:etht-svc/ethtsvc:etht-svc-instances"
                 + "/ethtsvc:etht-svc-name";
            } 
            type leafref {
              path "/clntsvc:client-svc/clntsvc:client-svc-instances"
                       + "/clntsvc:client-svc-name";
            } 
          }
          mandatory true;
          description "The name of service.";
        }
      }  
        leaf result {
          type enumeration {
            enum success {
              description "success";
            }
            enum failure {
              description "failure";
            }
          }
          description "Result of OAM configuration.";
        }
        uses errors;
        
      }
    }
    
    rpc delete-oam-configurations {
      description "Delete OAM configurations. ";
        input {
          list service-list {
            key "service-name";            
            leaf service-name {
              type union {
                type leafref {
                  path "/ethtsvc:etht-svc/ethtsvc:etht-svc-instances"
                     + "/ethtsvc:etht-svc-name";
                } 
                type leafref {
                  path "/clntsvc:client-svc/clntsvc:client-svc-instances"
                     + "/clntsvc:client-svc-name";
                } 
              }
              mandatory true;
              description "The name of service.";
            }
            description "The list of service.";
          }
        }
    
        output {
          list oam-config-list {
            key "service-name";
            leaf service-name {
              type union {
                type leafref {
                  path "/ethtsvc:etht-svc/ethtsvc:etht-svc-instances"
                     + "/ethtsvc:etht-svc-name";
                } 
                type leafref {
                  path "/clntsvc:client-svc/clntsvc:client-svc-instances"
                     + "/clntsvc:client-svc-name";
                } 
              }
              mandatory true;
              description "The name of service.";
            }   
            
            leaf result {
              type enumeration {
                enum success {
                  description "success";
                }
                enum failure {
                  description "failure";
                }
              }
              description "The result of OAM deletion.";
            }
            
            uses errors;
            description "The list of service.";
          }
        }
    }
    
    rpc get-node-eth-oam-configurations {
      description "Get the Eth node OAM configuration info.";
      input {
        leaf-list te-node-list {
           type leafref {
             path "/nw:networks/nw:network/nw:node/nw:node-id";
           }
          description
            "Node identifier.  Must be same in the topology."; 
        }
      }
      
      output {
        list oam-list {
          leaf node-id {
            type leafref {
             path "/nw:networks/nw:network/nw:node/nw:node-id";
            }
            description "The node identifier.";
          }
          list mep-config-list {
            key "md-name ma-name meg-id mep-id";
            uses mep-config;
            description "The list of MEP configuration.";
          }
          description "The list of OAM.";
        }
      }
    }
}

]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests IANA to register the following URIs in the "ns" subregistry within the "IETF XML Registry" <xref target="RFC3688"/>. Following the format in <xref target="RFC3688"/>, the following registrations are requested.</t>
      <artwork><![CDATA[
      URI: urn:ietf:params:xml:ns:yang:ietf-service-pm
      Registrant Contact: The IESG
      XML: N/A; the requested URI is an XML namespace.

      URI: urn:ietf:params:xml:ns:yang:ietf-eth-service-oam
      Registrant Contact: The IESG
      XML: N/A; the requested URI is an XML namespace.
]]></artwork>
      <t>This document requests IANA to register the following YANG modules in the "IANA Module Names" <xref target="RFC6020"/>. Following the format in <xref target="RFC6020"/>, the following registrations are requested:</t>
      <artwork><![CDATA[
      name:         ietf-service-pm
      namespace:    urn:ietf:params:xml:ns:yang:ietf-service-pm
      prefix:       svc-pm
      reference:    RFC XXXX (This document)

      name:         ietf-eth-service-oam
      namespace:    urn:ietf:params:xml:ns:yang:ietf-eth-service-oam
      prefix:       eth-oam
      reference:    RFC XXXX (This document)
]]></artwork>
      <t>RFC Editor: Please replace XXXX with the RFC number assigned to this document.</t>
    </section>
    <section anchor="manageability-considerations">
      <name>Manageability Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The data following the model defined in this document is exchanged
via, for example, the interface between an orchestrator and a
transport network controller.  The security concerns mentioned in
<xref target="I-D.ietf-ccamp-client-signal-yang"/> also applies to this document.</t>
      <t>The YANG module defined in this document can be accessed via the
RESTCONF protocol defined in <xref target="RFC8040"/>, or maybe via the NETCONF
protocol <xref target="RFC6241"/>.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-ccamp-layer1-types">
          <front>
            <title>A YANG Data Model for Layer 1 Types</title>
            <author fullname="Haomian Zheng" initials="H." surname="Zheng">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <abstract>
              <t>   This document defines a collection of common data types and groupings
   in the YANG data modeling language for use with layer 1 networks.
   These derived common types and groupings are intended to be imported
   by modules that specify OTN networks, such as topology, tunnel,
   client signal adaptation and service.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-layer1-types-16"/>
        </reference>
        <reference anchor="I-D.ietf-ccamp-client-signal-yang">
          <front>
            <title>A YANG Data Model for Transport Network Client Signals</title>
            <author fullname="Haomian Zheng" initials="H." surname="Zheng">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Aihua Guo" initials="A." surname="Guo">
              <organization>Futurewei</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Anton Snitser" initials="A." surname="Snitser">
              <organization>Cisco</organization>
            </author>
            <author fullname="Francesco Lazzeri" initials="F." surname="Lazzeri">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Chaode Yu" initials="C." surname="Yu">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="14" month="December" year="2023"/>
            <abstract>
              <t>   A transport network is a server-layer network to provide connectivity
   services to its client.  The topology and tunnel information in the
   transport layer has already been defined by generic Traffic-
   engineered models and technology-specific models (e.g., OTN, WSON).
   However, how the client signals are accessing to the network has not
   been described.  These information is necessary to both client and
   provider.

   This draft describes how the client signals are carried over
   transport network and defines YANG data models which are required
   during configuration procedure.  More specifically, several client
   signal (of transport network) models including ETH, STM-n, FC and so
   on, are defined in this draft.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-client-signal-yang-11"/>
        </reference>
        <reference anchor="I-D.ietf-teas-actn-pm-telemetry-autonomics">
          <front>
            <title>YANG models for Virtual Network (VN)/TE Performance Monitoring Telemetry and Scaling Intent Autonomics</title>
            <author fullname="Young Lee" initials="Y." surname="Lee">
              <organization>Samsung Electronics</organization>
            </author>
            <author fullname="Dhruv Dhody" initials="D." surname="Dhody">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Ricard Vilalta" initials="R." surname="Vilalta">
              <organization>CTTC</organization>
            </author>
            <author fullname="Daniel King" initials="D." surname="King">
              <organization>Lancaster University</organization>
            </author>
            <author fullname="Daniele Ceccarelli" initials="D." surname="Ceccarelli">
              <organization>Cisco</organization>
            </author>
            <date day="10" month="September" year="2023"/>
            <abstract>
              <t>   This document provides YANG data models that describe performance
   monitoring parameters and scaling intent mechanisms for TE-tunnels
   and Virtual Networks (VNs).  There performance monitoring parameters
   are exposed as the key telemetry data for tunnels and VN.

   The models presented in this document allow customers to subscribe to
   and monitor the key performance data of the TE-tunnel or the VN.  The
   models also provide customers with the ability to program autonomic
   scaling intent mechanisms on the level of TE-tunnel as well as VN.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-actn-pm-telemetry-autonomics-11"/>
        </reference>
        <reference anchor="I-D.www-bess-yang-vpn-service-pm">
          <front>
            <title>A YANG Model for Network and VPN Service Performance Monitoring</title>
            <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="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Bin Wen" initials="B." surname="Wen">
              <organization>Comcast</organization>
            </author>
            <author fullname="Chang Liu" initials="C." surname="Liu">
              <organization>China Unicom</organization>
            </author>
            <author fullname="Honglei Xu" initials="H." surname="Xu">
              <organization>China Telecom</organization>
            </author>
            <date day="22" month="April" year="2020"/>
            <abstract>
              <t>   The data model defined in RFC8345 introduces vertical layering
   relationships between networks that can be augmented to cover
   network/service topologies.  This document defines a YANG model for
   both Network Performance Monitoring and VPN Service Performance
   Monitoring that can be used to monitor and manage network performance
   on the topology at higher layer or the service topology between VPN
   sites.

   This model is designed as an augmentation to the network topology
   YANG data model defined in RFC8345.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-www-bess-yang-vpn-service-pm-06"/>
        </reference>
        <reference anchor="I-D.draft-yu-ccamp-optical-resource-pm-yang">
          <front>
            <title>A YANG Data Model for Optical Resource Performance Monitoring</title>
            <author fullname="Chaode Yu" initials="C." surname="Yu">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Fabio Peruzzini" initials="F." surname="Peruzzini">
              <organization>TIM</organization>
            </author>
            <author fullname="Yanlei Zheng" initials="Y." surname="Zheng">
              <organization>China Unicom</organization>
            </author>
            <author fullname="Victor Lopez" initials="V." surname="Lopez">
              <organization>Nokia</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Aihua Guo" initials="A." surname="Guo">
              <organization>Futurewei Technologies</organization>
            </author>
            <author fullname="Xing Zhao" initials="X." surname="Zhao">
              <organization>CAICT</organization>
            </author>
            <date day="23" month="October" year="2023"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-yu-ccamp-optical-resource-pm-yang-02"/>
        </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="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </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="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="ITU-T_G.709" >
  <front>
    <title>Interfaces for the optical transport network</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2020" month="June"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.709" value=""/>
</reference>

<reference anchor="ITU-T_G.874" >
  <front>
    <title>Management aspects of optical transport network elements</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2022" month="November"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.874" value=""/>
</reference>

<reference anchor="ITU-T_G.875" >
  <front>
    <title>Optical transport network: Protocol-neutral management information model for the network element view</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2020" month="June"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.875" value=""/>
</reference>

<reference anchor="ITU-T_G.7710" >
  <front>
    <title>Common equipment management function requirements</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2020" month="October"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.7710" value=""/>
</reference>

<reference anchor="ITU-T_G.7718" >
  <front>
    <title>Framework for the management of management-control components and functions</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2020" month="October"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.7718" value=""/>
</reference>

<reference anchor="ITU-T_G.7719" >
  <front>
    <title>Management information model for management-control components and functions</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2021" month="June"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.7719" value=""/>
</reference>        
        
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-ccamp-otn-tunnel-model">
          <front>
            <title>OTN Tunnel YANG Model</title>
            <author fullname="Haomian Zheng" initials="H." surname="Zheng">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Victor Lopez" initials="V." surname="Lopez">
              <organization>Nokia</organization>
            </author>
            <author fullname="Yunbin Xu" initials="Y." surname="Xu">
              <organization>CAICT</organization>
            </author>
            <date day="24" month="November" year="2023"/>
            <abstract>
              <t>   This document describes the YANG data model for tunnels in OTN TE
   networks.  The model can be used to do the configuration in order to
   establish the tunnel in OTN network.  This work is independent with
   the control plane protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-otn-tunnel-model-20"/>
        </reference>
        <reference anchor="I-D.ietf-ccamp-wson-tunnel-model">
          <front>
            <title>A Yang Data Model for WSON Tunnel</title>
            <author fullname="Young Lee" initials="Y." surname="Lee">
              <organization>Samsung</organization>
            </author>
            <author fullname="Haomian Zheng" initials="H." surname="Zheng">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Aihua Guo" initials="A." surname="Guo">
              <organization>Futurewei</organization>
            </author>
            <author fullname="Victor Lopez" initials="V." surname="Lopez">
              <organization>Nokia</organization>
            </author>
            <author fullname="Daniel King" initials="D." surname="King">
              <organization>Lancaster University</organization>
            </author>
            <author fullname="Bin Yeong Yoon" initials="B. Y." surname="Yoon">
              <organization>ETRI</organization>
            </author>
            <author fullname="Ricard Vilalta" initials="R." surname="Vilalta">
              <organization>CTTC</organization>
            </author>
            <date day="9" month="July" year="2023"/>
            <abstract>
              <t>   This document provides a YANG data model for WSON TE tunnel.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-wson-tunnel-model-09"/>
        </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>
      </references>


    </references>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  

</rfc>
