Skip to main content

A YANG Data Model for Client Signal Performance Monitoring
draft-zheng-ccamp-client-pm-yang-09

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Active".
Authors Chaode Yu , Haomian Zheng , Italo Busi , Zheng Yanlei , Victor Lopez , Oscar Gonzalez de Dios
Last updated 2024-01-10 (Latest revision 2023-07-09)
RFC stream (None)
Formats
Stream Stream state (No stream defined)
Associated None milestone
Oct 2022
First version of client signal performance monitoring YANG model working group draft
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-zheng-ccamp-client-pm-yang-09
CCAMP Working Group                                                C. Yu
Internet-Draft                                                  H. Zheng
Intended status: Standards Track                                 I. Busi
Expires: 13 July 2024                                Huawei Technologies
                                                                Y. Zheng
                                                            China Unicom
                                                                V. Lopez
                                                                   Nokia
                                                     O. Gonzalez de Dios
                                                              Telefonica
                                                         10 January 2024

       A YANG Data Model for Client Signal Performance Monitoring
                  draft-zheng-ccamp-client-pm-yang-09

Abstract

   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.

   This document describes the data model to support the performance
   monitoring functionalities.

About This Document

   This note is to be removed before publishing as an RFC.

   The latest revision of this draft can be found at
   https://haomianzheng.github.io/ccamp-client-pm-yang/draft-zheng-
   ccamp-client-pm-yang.html.  Status information for this document may
   be found at https://datatracker.ietf.org/doc/draft-zheng-ccamp-
   client-pm-yang/.

   Discussion of this document takes place on the Common Control and
   Measurement Plane Working Group mailing list (mailto:ccamp@ietf.org),
   which is archived at https://mailarchive.ietf.org/arch/browse/ccamp/.
   Subscribe at https://www.ietf.org/mailman/listinfo/ccamp/.

   Source for this draft and an issue tracker can be found at
   https://github.com/haomianzheng/ccamp-client-pm-yang.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

Yu, et al.                Expires 13 July 2024                  [Page 1]
Internet-Draft          PM YANG for Client Signal           January 2024

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 13 July 2024.

Copyright Notice

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

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Terminology and Notations . . . . . . . . . . . . . . . . . .   3
   3.  Model Relationship  . . . . . . . . . . . . . . . . . . . . .   4
   4.  Consideration on Monitoring Parameters  . . . . . . . . . . .   4
   5.  OAM Configuration . . . . . . . . . . . . . . . . . . . . . .   5
   6.  YANG Model for Performance Monitoring . . . . . . . . . . . .   5
     6.1.  YANG Tree for Performance Monitoring  . . . . . . . . . .   5
     6.2.  YANG Tree for OAM Configuration . . . . . . . . . . . . .   6
   7.  YANG Code for Performance Monitoring  . . . . . . . . . . . .   7
     7.1.  The Performance Monitoring YANG Code  . . . . . . . . . .   7
     7.2.  The OAM Configuration YANG Code . . . . . . . . . . . . .  16
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  23
   9.  Manageability Considerations  . . . . . . . . . . . . . . . .  24
   10. Security Considerations . . . . . . . . . . . . . . . . . . .  24
   11. References  . . . . . . . . . . . . . . . . . . . . . . . . .  24
     11.1.  Normative References . . . . . . . . . . . . . . . . . .  24
     11.2.  Informative References . . . . . . . . . . . . . . . . .  25
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  26
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  26

Yu, et al.                Expires 13 July 2024                  [Page 2]
Internet-Draft          PM YANG for Client Signal           January 2024

1.  Introduction

   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 [I-D.ietf-ccamp-otn-tunnel-model] and WSON in
   [I-D.ietf-ccamp-wson-tunnel-model].  Client-layers are modeled as
   client signals according to the client-signal identities specified in
   [I-D.ietf-ccamp-layer1-types].  These client signals can be
   configured to existing tunnels via the client signal configuration
   model specified in [I-D.ietf-ccamp-client-signal-yang].

   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.

2.  Terminology and Notations

   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 [RFC8340].  They are
   provided below for reference.

   *  Brackets "[" and "]" enclose list keys.

   *  Abbreviations before data node names: "rw" means configuration
      (read-write) and "ro" state data (read-only).

   *  Symbols after data node names: "?" means an optional node, "!"
      means a presence container, and "*" denotes a list and leaf-list.

   *  Parentheses enclose choice and case nodes, and case nodes are also
      marked with a colon (":").

   *  Ellipsis ("...") stands for contents of subtrees that are not
      shown.

Yu, et al.                Expires 13 July 2024                  [Page 3]
Internet-Draft          PM YANG for Client Signal           January 2024

3.  Model Relationship

   [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
   [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.

   Consideration on Key Performance Information (KPI) monitoring for
   Virtual Network (VN) and tunnels has been specified in
   [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.

   VPN-level parameters and their monitoring have been defined in
   [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).

4.  Consideration on Monitoring Parameters

   There can be multiple groups of parameters for monitoring, such as
   latency, bit error rate (BER).  Some of these parameters are layer-
   dependent, for example, packet loss is only applicable in packet
   networks are won't be neede for layer 1 OTN and layer 0 WSON.

   This document starts with the specification of the latency
   measurement for both Ethernet service and client signal service.  In
   the future version additional parameters would be added into the data
   model in the same approach as the latency in the current version.  A
   candidate list of parameters to be monitored include: Latency, Packet
   Loss, Bit Error Rate (BER), Jitter, Bandwidth, Byte/Packet number and
   so on.

Yu, et al.                Expires 13 July 2024                  [Page 4]
Internet-Draft          PM YANG for Client Signal           January 2024

5.  OAM Configuration

   The operation, administration and maintenance protocols and data
   models have been specified in [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.

   The definitions of OAM terminologies, such as maintainence
   Maintenance Domain (MD), Maintenance Association (MA), and
   Maintenance End Points (MEP), can be found in [RFC8531] as well.

6.  YANG Model for Performance Monitoring

6.1.  YANG Tree for Performance Monitoring

   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

               Figure 1: YANG Tree for Performance Monitoring

Yu, et al.                Expires 13 July 2024                  [Page 5]
Internet-Draft          PM YANG for Client Signal           January 2024

6.2.  YANG Tree for OAM Configuration

   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

Yu, et al.                Expires 13 July 2024                  [Page 6]
Internet-Draft          PM YANG for Client Signal           January 2024

       |  |     +---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

                 Figure 2: YANG Tree for OAM Configuration

7.  YANG Code for Performance Monitoring

7.1.  The Performance Monitoring YANG Code

   <CODE BEGINS> file "ietf-service-pm@2021-07-07.yang"
   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";

Yu, et al.                Expires 13 July 2024                  [Page 7]
Internet-Draft          PM YANG for Client Signal           January 2024

     }

     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:
           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 2021-07-07 {
       description
         "Initial version";
       reference
         "ADD REFERENCE HERE";
     }

     typedef performance-parameter-value {
       type union {

Yu, et al.                Expires 13 July 2024                  [Page 8]
Internet-Draft          PM YANG for Client Signal           January 2024

         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. ";

Yu, et al.                Expires 13 July 2024                  [Page 9]
Internet-Draft          PM YANG for Client Signal           January 2024

         }
         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

Yu, et al.                Expires 13 July 2024                 [Page 10]
Internet-Draft          PM YANG for Client Signal           January 2024

         "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. ";

Yu, et al.                Expires 13 July 2024                 [Page 11]
Internet-Draft          PM YANG for Client Signal           January 2024

     }

     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 {

Yu, et al.                Expires 13 July 2024                 [Page 12]
Internet-Draft          PM YANG for Client Signal           January 2024

         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 {

Yu, et al.                Expires 13 July 2024                 [Page 13]
Internet-Draft          PM YANG for Client Signal           January 2024

               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

Yu, et al.                Expires 13 July 2024                 [Page 14]
Internet-Draft          PM YANG for Client Signal           January 2024

                 "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. ";
             }
           }
         }
       }
     }

   }

Yu, et al.                Expires 13 July 2024                 [Page 15]
Internet-Draft          PM YANG for Client Signal           January 2024

   <CODE ENDS>

                 Figure 3: Performance Monitoring YANG Code

7.2.  The OAM Configuration YANG Code

   <CODE BEGINS> file "ietf-eth-service-oam@2021-07-10.yang"
   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:
           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

Yu, et al.                Expires 13 July 2024                 [Page 16]
Internet-Draft          PM YANG for Client Signal           January 2024

        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 2021-07-10 {
       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;

Yu, et al.                Expires 13 July 2024                 [Page 17]
Internet-Draft          PM YANG for Client Signal           January 2024

       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 {

Yu, et al.                Expires 13 July 2024                 [Page 18]
Internet-Draft          PM YANG for Client Signal           January 2024

        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;
       }
     }

Yu, et al.                Expires 13 July 2024                 [Page 19]
Internet-Draft          PM YANG for Client Signal           January 2024

     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 {

Yu, et al.                Expires 13 July 2024                 [Page 20]
Internet-Draft          PM YANG for Client Signal           January 2024

             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.";

Yu, et al.                Expires 13 July 2024                 [Page 21]
Internet-Draft          PM YANG for Client Signal           January 2024

               }
               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";
              }

Yu, et al.                Expires 13 July 2024                 [Page 22]
Internet-Draft          PM YANG for Client Signal           January 2024

             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.";
           }
         }
       }
   }
   <CODE ENDS>

                   Figure 4: OAM Configuration YANG Code

8.  IANA Considerations

   This document requests IANA to register the following URIs in the
   "ns" subregistry within the "IETF XML Registry" [RFC3688].  Following
   the format in [RFC3688], the following registrations are requested.

         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.

   This document requests IANA to register the following YANG modules in
   the "IANA Module Names" [RFC6020].  Following the format in
   [RFC6020], the following registrations are requested:

Yu, et al.                Expires 13 July 2024                 [Page 23]
Internet-Draft          PM YANG for Client Signal           January 2024

         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)

   RFC Editor: Please replace XXXX with the RFC number assigned to this
   document.

9.  Manageability Considerations

   TBD.

10.  Security Considerations

   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
   [I-D.ietf-ccamp-client-signal-yang] also applies to this document.

   The YANG module defined in this document can be accessed via the
   RESTCONF protocol defined in [RFC8040], or maybe via the NETCONF
   protocol [RFC6241].

11.  References

11.1.  Normative References

   [I-D.ietf-ccamp-client-signal-yang]
              Zheng, H., Guo, A., Busi, I., Snitser, A., Lazzeri, F.,
              and C. Yu, "A YANG Data Model for Transport Network Client
              Signals", Work in Progress, Internet-Draft, draft-ietf-
              ccamp-client-signal-yang-11, 14 December 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
              client-signal-yang-11>.

   [I-D.ietf-ccamp-layer1-types]
              Zheng, H. and I. Busi, "A YANG Data Model for Layer 1
              Types", Work in Progress, Internet-Draft, draft-ietf-
              ccamp-layer1-types-16, 10 July 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
              layer1-types-16>.

Yu, et al.                Expires 13 July 2024                 [Page 24]
Internet-Draft          PM YANG for Client Signal           January 2024

   [I-D.ietf-teas-actn-pm-telemetry-autonomics]
              Lee, Y., Dhody, D., Vilalta, R., King, D., and D.
              Ceccarelli, "YANG models for Virtual Network (VN)/TE
              Performance Monitoring Telemetry and Scaling Intent
              Autonomics", Work in Progress, Internet-Draft, draft-ietf-
              teas-actn-pm-telemetry-autonomics-11, 10 September 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-teas-
              actn-pm-telemetry-autonomics-11>.

   [I-D.www-bess-yang-vpn-service-pm]
              Wu, Q., Boucadair, M., de Dios, O. G., Wen, B., Liu, C.,
              and H. Xu, "A YANG Model for Network and VPN Service
              Performance Monitoring", Work in Progress, Internet-Draft,
              draft-www-bess-yang-vpn-service-pm-06, 22 April 2020,
              <https://datatracker.ietf.org/doc/html/draft-www-bess-
              yang-vpn-service-pm-06>.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              DOI 10.17487/RFC3688, January 2004,
              <https://www.rfc-editor.org/rfc/rfc3688>.

   [RFC6020]  Bjorklund, M., Ed., "YANG - A Data Modeling Language for
              the Network Configuration Protocol (NETCONF)", RFC 6020,
              DOI 10.17487/RFC6020, October 2010,
              <https://www.rfc-editor.org/rfc/rfc6020>.

   [RFC6241]  Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
              and A. Bierman, Ed., "Network Configuration Protocol
              (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
              <https://www.rfc-editor.org/rfc/rfc6241>.

   [RFC8040]  Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
              Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
              <https://www.rfc-editor.org/rfc/rfc8040>.

   [RFC8531]  Kumar, D., Wu, Q., and Z. Wang, "Generic YANG Data Model
              for Connection-Oriented Operations, Administration, and
              Maintenance (OAM) Protocols", RFC 8531,
              DOI 10.17487/RFC8531, April 2019,
              <https://www.rfc-editor.org/rfc/rfc8531>.

11.2.  Informative References

Yu, et al.                Expires 13 July 2024                 [Page 25]
Internet-Draft          PM YANG for Client Signal           January 2024

   [I-D.ietf-ccamp-otn-tunnel-model]
              Zheng, H., Busi, I., Belotti, S., Lopez, V., and Y. Xu,
              "OTN Tunnel YANG Model", Work in Progress, Internet-Draft,
              draft-ietf-ccamp-otn-tunnel-model-20, 24 November 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
              otn-tunnel-model-20>.

   [I-D.ietf-ccamp-wson-tunnel-model]
              Lee, Y., Zheng, H., Guo, A., Lopez, V., King, D., Yoon, B.
              Y., and R. Vilalta, "A Yang Data Model for WSON Tunnel",
              Work in Progress, Internet-Draft, draft-ietf-ccamp-wson-
              tunnel-model-09, 9 July 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
              wson-tunnel-model-09>.

   [RFC8340]  Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
              BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
              <https://www.rfc-editor.org/rfc/rfc8340>.

Acknowledgments

   TODO acknowledge.

Authors' Addresses

   Chaode Yu
   Huawei Technologies
   Email: yuchaode@huawei.com

   Haomian Zheng
   Huawei Technologies
   H1, Huawei Xiliu Beipo Village, Songshan Lake
   Dongguan
   Guangdong, 523808
   China
   Email: zhenghaomian@huawei.com

   Italo Busi
   Huawei Technologies
   Italy
   Email: italo.busi@huawei.com

   Yanlei Zheng
   China Unicom
   China

Yu, et al.                Expires 13 July 2024                 [Page 26]
Internet-Draft          PM YANG for Client Signal           January 2024

   Email: zhengyanlei@chinaunicom.cn

   Victor Lopez
   Nokia
   Spain
   Email: victor.lopez@nokia.com

   Oscar Gonzalez de Dios
   Telefonica
   Spain
   Email: oscar.gonzalezdedios@telefonica.com

Yu, et al.                Expires 13 July 2024                 [Page 27]