<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ccamp-client-signal-yang-15" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title abbrev="Client Signals YANG Model">A YANG Data Model for Transport Network Client Signals</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-client-signal-yang-15"/>
    <author initials="H." surname="Zheng" fullname="Haomian Zheng">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>H1 XiliuBeipo Village, Songshan Lake</street>
          <city>Dongguan</city>
          <region>Guangdong</region>
          <country>China</country>
        </postal>
        <email>zhenghaomian@huawei.com</email>
      </address>
    </author>
    <author initials="A." surname="Guo" fullname="Aihua Guo">
      <organization>Futurewei</organization>
      <address>
        <email>aihuaguo.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="I." surname="Busi" fullname="Italo Busi">
      <organization>Huawei Technologies</organization>
      <address>
        <email>italo.busi@huawei.com</email>
      </address>
    </author>
    <author initials="A." surname="Snitser" fullname="Anton Snitser">
      <organization>Cisco</organization>
      <address>
        <email>asnizar@cisco.com</email>
      </address>
    </author>
    <author initials="C." surname="Yu" fullname="Chaode Yu">
      <organization>Huawei Technologies</organization>
      <address>
        <email>yuchaode@huawei.com</email>
      </address>
    </author>
    <date year="2025" month="July" day="28"/>
    <area>Routing</area>
    <workgroup>CCAMP Working Group</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 126?>

<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.</t>
      <t>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>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-ccamp-wg.github.io/draft-ietf-ccamp-client-signal-yang/draft-ietf-ccamp-client-signal-yang.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ccamp-client-signal-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/ietf-ccamp-wg/draft-ietf-ccamp-client-signal-yang"/>.</t>
    </note>
  </front>
  <middle>
    <?line 142?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="overview">
        <name>Overview</name>
        <t>A transport network is a server-layer network designed to provide
connectivity services for a client-layer network to carry the client
traffic transparently across the server-layer network resources.
Currently the topology and tunnel models have been defined for
transport networks, including <xref target="I-D.ietf-ccamp-otn-topo-yang"/> and
<xref target="I-D.ietf-ccamp-otn-tunnel-model"/>, providing server-layer topology
abstraction and tunnel configuration between PEs.  However, there is
a missing piece for configuring how the PEs should map the client-
layer traffic, received from the CE, over the server-layer tunnels:
this gap is expected to be solved in this document.</t>
        <t>This document defines a data model of all transport network client
signals, using YANG language defined in <xref target="RFC7950"/>.  The model can be
used by applications exposing to a transport network controller via a
RESTconf interface.  Furthermore, it can be used by an application
for the following purposes (but not limited to):</t>
        <ul spacing="normal">
          <li>
            <t>To request/update an end-to-end service by driving a new tunnel to
be set up to support this service;</t>
          </li>
          <li>
            <t>To request/update an end-to-end service by using an existing
tunnel;</t>
          </li>
          <li>
            <t>To receive notification with regard to the information change of
the given service;</t>
          </li>
        </ul>
        <t>The YANG modules defined in this document conforms to the Network
Management Datastore Architecture (NMDA) defined in <xref target="RFC8342"/>.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <section anchor="prefixes-in-model-names">
        <name>Prefixes in Model Names</name>
        <t>In this document, names of data nodes and other data model objects
are prefixed using the standard prefix associated with the
corresponding YANG imported modules, including <xref target="RFC6991"/>, <xref target="RFC8294"/>
and <xref target="I-D.ietf-ccamp-otn-tunnel-model"/>, which are shown as follow.</t>
        <table anchor="tab-prefixes">
          <name>Prefixes and corresponding YANG modules</name>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="left">YANG module</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">yang</td>
              <td align="left">ietf-yang-types</td>
              <td align="left">
                <xref target="RFC6991"/></td>
            </tr>
            <tr>
              <td align="left">rt-types</td>
              <td align="left">ietf-routing-types</td>
              <td align="left">
                <xref target="RFC8294"/></td>
            </tr>
            <tr>
              <td align="left">te-types</td>
              <td align="left">ietf-te-types</td>
              <td align="left">[RFCYYYY]</td>
            </tr>
            <tr>
              <td align="left">l1-types</td>
              <td align="left">ietf-layer1-types</td>
              <td align="left">[RFCZZZZ]</td>
            </tr>
            <tr>
              <td align="left">nw</td>
              <td align="left">ietf-network</td>
              <td align="left">
                <xref target="RFC8345"/></td>
            </tr>
            <tr>
              <td align="left">nt</td>
              <td align="left">ietf-network-topology</td>
              <td align="left">
                <xref target="RFC8345"/></td>
            </tr>
            <tr>
              <td align="left">te</td>
              <td align="left">ietf-te</td>
              <td align="left">[RFCKKKK]</td>
            </tr>
            <tr>
              <td align="left">clnt-types</td>
              <td align="left">ietf-trans-client-svc-types</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">etht-types</td>
              <td align="left">ietf-eth-tran-types</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">clnt-svc</td>
              <td align="left">ietf-trans-client-service</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">etht-svc</td>
              <td align="left">ietf-eth-tran-service</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <t>RFC Editor Note:
Please replace XXXX with the number assigned to the RFC once this draft becomes an RFC.
Please replace YYYY with the RFC numbers assigned to <xref target="I-D.ietf-teas-rfc8776-update"/>.
Please replace ZZZZ with the RFC numbers assigned to <xref target="I-D.ietf-ccamp-layer1-types"/>.
Please replace KKKK with the RFC numbers assigned to <xref target="I-D.ietf-teas-yang-te"/>.</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>
    <section anchor="transport-network-client-signal-overview">
      <name>Transport Network Client Signal Overview</name>
      <section anchor="overview-of-service-request-and-network-configuration-scenarios">
        <name>Overview of Service Request and Network Configuration Scenarios</name>
        <t>A global view of a multi-domain service can be described as the
<xref target="fig-overview"/>. The customer is usually responsible to configure the CE
nodes and to request to the provider the service intent, from the CE
nodes perspective, while the provider is responsible to configure the
whole network (including the PE nodes) to support the customer
service intent.  Generally speaking, the network configurations
required to support a customer service can be split into two
different groups: CE-PE and PE-PE.  The CE-PE configuration deals
with the client layer one-hop access link, while PE-PE configuration
deals with the server layer tunnel.  In <xref target="fig-overview"/> we mark the
intermediate nodes as 'P', which has same switching capability of PE
but just not the 'end-point'.  In this example, the link P-P and PE-P
are a server-layer intra-domain or inter-domain link.</t>
        <figure anchor="fig-overview">
          <name>Global view of Client Service with the Network Provider</name>
          <artwork type="ascii-art"><![CDATA[
         +----+                                            +----+
         | CE |                                            | CE |
         +--+-+                                            +--+-+
            |                                                 |
            | -------------                      -------------|
          //|/             \\\\             /////             |\\\\
        //  |                  \\         //                  |    \\
       | +--+-+    +---+  +---+  |       | +---+   +---+   +--+-+    |
      |  | PE +----+ P +--+ P +---+-----+--+ P +---+ P +---+ PE |     |
       | +----+    +---+  +---+  |       | +---+   +---+   +----+    |
        \\                     //         \\                       //
          \\\\             ////             \\\\\             /////
              -------------                      -------------
                 Domain 1                         Domain 2
]]></artwork>
        </figure>
        <t>According to the responsibilities of each controller in <xref target="RFC8453"/>,
the controllers have different views of the service request and
network configuration.  The duty of CNC is to give the MDSC a
description of the customer service intent: candidate YANG models
include L1CSM <xref target="I-D.ietf-ccamp-l1csm-yang"/>, L2SM <xref target="RFC8466"/> and L3SM
<xref target="RFC8299"/>, which are classified as customer service models, according
to <xref target="RFC8309"/>.  These models provide necessary attributes to describe
the customer service intent from the customer/CE perspective, and do
not provide any specific network configuration.  These models also
implies that the customer service description can be considered in a
separate manner rather than integratig with network configurations,
which also enable the controllers to abstract/virtualize the network
resource to make them visible to the customer and also easier to
manage.  In other words, the network knowledge is not necessary at
CNC and CMI, which is seen in an abstracted form as shown in
<xref target="fig-cnc-view"/>.</t>
        <figure anchor="fig-cnc-view">
          <name>CNC Viewpoint on the Client Service</name>
          <artwork type="ascii-art"><![CDATA[
                              /---------\
                           ///           \\\
     +----+               |                 |                 +----+
     | CE |--------------+      NETWORK      +----------------| CE |
     +----+               |                 |                 +----+
                           \\\           ///
                              \---------/
]]></artwork>
        </figure>
        <t>The functionalities of MDSC have been described in <xref target="RFC8453"/>, which
include the customer mapping/translation and multi-domain
coordination.  By receiving the request from CNC, MDSC need to
understand what network configuration can support the customer
service intent and turn to the corresponding PNCs for configuration.
The service request is therefore decomposed by MDSC into a few
network configurations and forwarded to one or multiple PNCs
respectively in single-domain and multi-domain scenario.  In general,
the MDSC has the view of both PE and CE nodes and of some abstract
information regarding the P nodes, as shown in <xref target="fig-mdsc-view"/>.  It is worth
noting that this MDSC view is different with <xref target="fig-overview"/> at the intra-
domain link.  Usually these details are hidden, for scalability
purposes, and therefore the MDSC has only an abstract view of each
domain internal topology.</t>
        <figure anchor="fig-mdsc-view">
          <name>MDSC view of both Client Service and Network Abstraction</name>
          <artwork type="ascii-art"><![CDATA[
                       ------                -----
                   ////      \\\\        ///-     -\\\
                 //              \\    //             \\
     +----+     | +----+     +---+ |  |+---+     +----+ |     +----+
     | CE |-----+-| PE |-----| P |-+--+| P |-----| PE |-+-----| CE |
     +----+     | +----+     +---+ |  |+---+     +----+ |     +----+
                 \\              //    \\             //
                   \\\\      ////        \\\-     -///
                       ------                -----
                      Domain 1             Domain 2
]]></artwork>
        </figure>
        <t>PNC is the controller that configure the physical devices, based on
the network configuration received from the MDSC.  Each PNC has the
detailed view of its own domain, the example of view from PNC in
domain 1 is shown in <xref target="fig-pnc-view"/>.  The PNC has all the detailed topology
information on PE and P nodes and on the intra-domain links.  The PNC
configures the tunnel/tunnel segment within its domain based on the
network configuration provided by the MDSC.  The PNC also configures
the network part of the CE-PE access links as well as the mapping of
the client-layer traffic and the server-layer tunnels, based on the
network configuration provided by the MDSC.  The interaction between
PNC and MDSC for the client-layer network configuration is
accomplished by the models defined in this draft.</t>
        <figure anchor="fig-pnc-view">
          <name>PNC view on Network Configuration</name>
          <artwork type="ascii-art"><![CDATA[
            |                        |                        |
            | -------------          |           -------------|
          //|/             \\\\      |      /////             |\\\\
        //  |                  \\    |    //                  |    \\
       | +--+-+    +---+  +---+  |   |   | +---+   +---+   +--+-+    |
      |  | PE +----+ P +--+ P +---+--+--+--+ P +---+ P +---+ PE |     |
       | +----+    +---+  +---+  |   |   | +---+   +---+   +----+    |
        \\                     //    |    \\                       //
          \\\\             ////      |      \\\\\             /////
              -------------          |           -------------
          PNC View in Domain 1       |       PNC View in Domain 2
]]></artwork>
        </figure>
      </section>
      <section anchor="applicability-of-proposed-model">
        <name>Applicability of Proposed Model</name>
        <t>Existing TE and technology-specific models, such as topology models
and tunnel models, support the network configuration among PEs and
Ps.  The customer service models, such as L1CSM, L2SM and L3SM, focus
on describing the attributes among CEs.  However, there is a missing
piece on how to configure the CE-PE session.  The models defined in
this document provide the configuration on CE-PE when the provider
server-layer network is TE-based technology.</t>
        <t>In the example of OTN as the server-layer transport network, a full
list of G-PID was summarized in <xref target="RFC7139"/>, which can be divided into
a few categories.  The G-PID signals can be categorized into
transparent and non-transparent.  Examples of transparent signals may
include Ethernetphysical interfaces, FC, STM-n and so on.  In this
approach the OTN devices is not aware of the client signal type, and
this information is only necessary among the controllers.  Once the
OTN tunnel is set up, there is no switching requested on the client
layer, and therefore only signal mapping is needed, without a client
tunnel set up.  The models that supporting the configuration of
transparent signals are defined in <xref target="cbr-svc-tree"/>.  The other category
would be non-transparent, such as Carrier Ethernet and MPLS-TP, with
a switching request on the client layer.  Once the OTN tunnel is set
up, a corresponding tunnel in the client layer has to be set up to
carry services.  The models that supporting the configuration of
transparent signals are defined in <xref target="eth-svc-tree"/>.</t>
        <t>It is also worth noting that some client signal can be carried over
multiple types of networks.  For example, the Ethernet services can
be carried over either OTN or Ethernet TE tunnels (over optical or
microwave networks).  The model specified in this document allows the
support from networks with different technologies.  The list of
identities for client signals are defined in
<xref target="I-D.ietf-ccamp-layer1-types"/>.</t>
        <section anchor="identifier-and-readable-information">
          <name>Identifier and Readable Information</name>
          <t>Name: The identifier of the client signal service can be configured
or retrieved by the name information.  The naming of this attribute
is based on the requirements of unifying with TE tunnel models.  It
can be readable or unreadable.  If it is readable, to make it unique,
it is needed to specify a unified structure for all the PNC systems.
It is hard to do that for the reason of a lot of customized
requirements from different Operators.  In the ICT technology, UUID
format could be a good option.  Title: The title of client signal
service can be configured with its readable name.  Description: More
detail information of client signal service, such as some
administrative information or location information.  User-label: An
alias of client signal service which is used to tag based on the
maintenance requirement.</t>
          <artwork type="ascii-art"><![CDATA[
   module: ietf-trans-client-service
      +--rw client-svc
         +--rw client-svc-instances* [client-svc-name]
            +--rw client-svc-name           string
            +--rw client-svc-title?         string
            +--rw user-label?               string
            +--rw client-svc-descr?         string
            ...................................

   module: ietf-eth-tran-service
      +--rw etht-svc-instances* [etht-svc-name]
            +--rw etht-svc-name             string
            +--rw etht-svc-title?           string
            +--rw user-label?               string
            +--rw etht-svc-descr?           string
            ...................................
]]></artwork>
        </section>
        <section anchor="unified-resource-identifiers">
          <name>Unified Resource Identifiers</name>
          <t>In <xref target="I-D.ietf-teas-rfc8776-update"/>, it is recognized that if the
used topology resource adopts TE modeling, there could be two
identifier systems, one is the network modeling system and the other
one from TE topology modeling.  The access ports of client signal
service or end points of Ethernet service also adopt the TE topology
resources.  So two identifiers are both fine to specified in the
configuration requests.</t>
          <artwork type="ascii-art"><![CDATA[
   module: ietf-trans-client-service
      +--rw client-svc
         +--rw client-svc-instances* [client-svc-name]
            +--rw src-access-ports
            |  +--rw access-node-id?    te-types:te-node-id
            |  +--rw access-node-uri?   nw:node-id
            |  +--rw access-ltp-id?     te-types:te-tp-id
            |  +--rw access-ltp-uri?    nt:tp-id
            |  +--rw client-signal?     identityref
            +--rw dst-access-ports
               +--rw access-node-id?    te-types:te-node-id
               +--rw access-node-uri?   nw:node-id
               +--rw access-ltp-id?     te-types:te-tp-id
               +--rw access-ltp-uri?    nt:tp-id
               +--rw client-signal?     identityref
               ...................................

   module: ietf-eth-tran-service
      +--rw etht-svc
         +--rw etht-svc-instances* [etht-svc-name]
            +--rw etht-svc-end-points* [etht-svc-end-point-name]
               +--rw etht-svc-access-points* [access-point-id]
                  +--rw access-point-id    string
                  +--rw access-node-id?    te-types:te-node-id
                  +--rw access-node-uri?   nw:node-id
                  +--rw access-ltp-id?     te-types:te-tp-id
                  +--rw access-ltp-uri?    nt:tp-id
                  +--rw access-role?       identityref
                  ...................................
]]></artwork>
        </section>
        <section anchor="threshold-configuration">
          <name>Threshold Configuration</name>
          <t>Some PM data are quite critical for client signal service users'
experience, e.g. latency value.  For the Operators, they can
configure a service-oriented threshold for the PM data, to make the
maintenance engineer recognize the network issues in time.</t>
          <artwork type="ascii-art"><![CDATA[
   module: ietf-trans-client-service
      +--rw client-svc
         +--rw client-svc-instances* [client-svc-name]
            +--rw alarm-shreshold
               +--rw latency-threshold?   uint32
               ...................................

   module: ietf-eth-tran-service
      +--rw etht-svc
         +--rw etht-svc-instances* [etht-svc-name]
            +--rw alarm-shreshold
               +--rw latency-threshold?   uint32
               ...................................
]]></artwork>
        </section>
      </section>
      <section anchor="state-data-of-services">
        <name>State data of Services</name>
        <section anchor="generic-requirements">
          <name>Generic Requirements</name>
          <t>States have been defined to retrieve the status of the delivered
services.  A few generic states defined in <xref target="I-D.ietf-teas-rfc8776-update"/> are reused in
this document.  These states include the operational state and the
provisioning state.</t>
          <artwork type="ascii-art"><![CDATA[
   module: ietf-trans-client-service
      +--rw client-svc
         +--rw client-svc-instances* [client-svc-name]
            +--ro operational-state?        identityref
            +--ro provisioning-state?       identityref
            ...................................

   module: ietf-eth-tran-service
      +--rw etht-svc
         +--rw etht-svc-instances* [etht-svc-name]
            +--ro state
               +--ro operational-state?    identityref
               +--ro provisioning-state?   identityref
               ...................................
]]></artwork>
        </section>
        <section anchor="timestamp-and-administrative-information">
          <name>Timestamp and Administrative information</name>
          <t>A few other parameters are defined for the management of the
services.  Given the complicated labor division, the creation, update
and maintainance may have different responsible systems.  So the log
of the service would be helpful and should be easy to retrived in a
standard way as well.  These information include, but not restricted
to the following:</t>
          <ul spacing="normal">
            <li>
              <t>When the service is created and has been last updated, these are
specified in the creation-time and last-updated-time.</t>
            </li>
            <li>
              <t>Who created the service and who made the last update to the
service, these are specified in the created-by and last-updated-
by.</t>
            </li>
            <li>
              <t>The owner of the service is specifed as owned-by, which would be
useful when the service is delegated by or to a specific system.
The identifier of the system is used to represent such
information.</t>
            </li>
          </ul>
          <artwork type="ascii-art"><![CDATA[
   module: ietf-trans-client-service
      +--rw client-svc
         +--rw client-svc-instances* [client-svc-name]
            +--ro creation-time?            yang:date-and-time
            +--ro last-updated-time?        yang:date-and-time
            +--ro created-by?               string
            +--ro last-updated-by?          string
            +--ro owned-by?                 string
            ...................................

   module: ietf-eth-tran-service
      +--rw etht-svc
         +--rw etht-svc-instances* [etht-svc-name]
            +--ro state
               +--ro creation-time?        yang:date-and-time
               +--ro last-updated-time?    yang:date-and-time
               +--ro created-by?           string
               +--ro last-updated-by?      string
               +--ro owned-by?             string
               ...................................
]]></artwork>
        </section>
        <section anchor="performance-monitoring-status">
          <name>performance monitoring status</name>
          <t>For the Operators, there are also some requirements to provide some
PM data to the service users.  Especially some PM data are quite
critical for users' experience.</t>
          <t>For example, one of the great advantage of client signal service is
it can provide deterministic low latency.  Some industry users, e.g.
stock trading company, have great demand of stable short latency
service to ensure their high-frequency fast trading operations can be
finished quickly and definitely.  In addition to provision a low-
latency client signal service, Operators can also provide some other
differentiated services for these kinds of service users.  For
example latency visibility can be provided to the users, to let them
monitor the latency values.</t>
          <t>The latency measurement mechanism can be referenced from sub-clause
7.10.1 of <xref target="ITU-T_G.875"/>.  And PNC can provide a measurement latency
after service is provisioned if the devices support this measurement
mechanism.  Otherwise providing an estimated value could be a
workaround solution.</t>
          <artwork type="ascii-art"><![CDATA[
   module: ietf-trans-client-service
      +--rw client-svc
         +--rw client-svc-instances* [client-svc-name]
            +--ro pm-state
               +--ro latency?   uint32
               ...................................

   module: ietf-eth-tran-service
      +--rw etht-svc
         +--rw etht-svc-instances* [etht-svc-name]
            +--ro state
               +--ro pm-state
                  +--ro latency?   uint32
                  ...................................
]]></artwork>
        </section>
        <section anchor="error-message-report">
          <name>Error Message Report</name>
          <t>Once the processing of client signal service configuration, including
creation, updating, deletion, meets with some internal problems, such
as no enough available bandwidth, or wrong client signal mapping
.etc., the problems should be reported to the client system to make
the issues read by the maintenance engineers.  Since these error
messages are more technologies-specific, especially sometimes
accurate location information is needed in these messages, it is hard
to standardize these error messages by RESTCONF protocol errors.  For
the client systems, they would like to get these messages both from
notifications and retrieval.  So this document defines an error
container in the YANG data model to let the PNC to provide these
messages.</t>
          <artwork type="ascii-art"><![CDATA[
   module: ietf-trans-client-service
      +--rw client-svc
         +--rw client-svc-instances* [client-svc-name]
            +--ro error-info
               +--ro error-code?          uint16
               +--ro error-description?   string
               +--ro error-timestamp?     yang:date-and-time
               ...................................

   module: ietf-eth-tran-service
      +--rw etht-svc
         +--rw etht-svc-instances* [etht-svc-name]
            +--rw etht-svc-end-points* [etht-svc-end-point-name]
            +--ro state
               +--ro error-info
                  +--ro error-code?          uint16
                  +--ro error-description?   string
                  +--ro error-timestamp?     yang:date-and-time
                  ...................................
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="yang-model-for-transport-network-client-signal">
      <name>YANG Model for Transport Network Client Signal</name>
      <section anchor="eth-svc-tree">
        <name>YANG Tree for Ethernet Service</name>
        <figure anchor="fig-eth-svc-tree">
          <artwork type="ascii-art" name="ietf-eth-tran-service-fold.tree"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

module: ietf-eth-tran-service
  +--rw etht-svc
     +--rw globals
     |  +--rw named-bandwidth-profiles* [bandwidth-profile-name]
     |     +--rw bandwidth-profile-name    string
     |     +--rw bandwidth-profile-type?
     |     |       etht-types:bandwidth-profile-type
     |     +--rw CIR?                      uint64
     |     +--rw CBS?                      uint64
     |     +--rw EIR?                      uint64
     |     +--rw EBS?                      uint64
     |     +--rw color-aware?              boolean
     |     +--rw coupling-flag?            boolean
     +--rw etht-svc-instances* [etht-svc-name]
        +--rw etht-svc-name             string
        +--rw etht-svc-title?           string
        +--rw user-label?               string
        +--rw etht-svc-descr?           string
        +--rw etht-svc-customer?        string
        +--rw etht-svc-type?            etht-types:service-type
        +--rw etht-svc-lifecycle?       etht-types:lifecycle-status
        +--rw te-topology-identifier
        |  +--rw provider-id?   te-global-id
        |  +--rw client-id?     te-global-id
        |  +--rw topology-id?   te-topology-id
        +--rw resilience
        |  +--rw protection
        |  |  +--rw protection-type?                identityref
        |  |  +--rw protection-reversion-disable?   boolean
        |  |  +--rw hold-off-time?                  uint32
        |  |  +--rw wait-to-revert?                 uint16
        |  |  +--rw aps-signal-id?                  uint8
        |  +--rw restoration
        |     +--rw restoration-type?                identityref
        |     +--rw restoration-scheme?              identityref
        |     +--rw restoration-reversion-disable?   boolean
        |     +--rw hold-off-time?                   uint32
        |     +--rw wait-to-restore?                 uint16
        |     +--rw wait-to-revert?                  uint16
        +--rw etht-svc-end-points* [etht-svc-end-point-name]
        |  +--rw etht-svc-end-point-name                   string
        |  +--rw etht-svc-end-point-id?                    string
        |  +--rw etht-svc-end-point-descr?                 string
        |  +--rw topology-role?
        |  |       identityref
        |  +--rw resilience
        |  +--rw etht-svc-access-points* [access-point-id]
        |  |  +--rw access-point-id    string
        |  |  +--rw access-node-id?    te-types:te-node-id
        |  |  +--rw access-node-uri?   nw:node-id
        |  |  +--rw access-ltp-id?     te-types:te-tp-id
        |  |  +--rw access-ltp-uri?    nt:tp-id
        |  |  +--rw access-role?       identityref
        |  |  +--rw pm-config
        |  |  |  +--rw pm-enable?             boolean
        |  |  |  +--rw sending-rate-high?     uint64
        |  |  |  +--rw sending-rate-low?      uint64
        |  |  |  +--rw receiving-rate-high?   uint64
        |  |  |  +--rw receiving-rate-low?    uint64
        |  |  +--ro state
        |  |  |  +--ro operational-state?    identityref
        |  |  |  +--ro provisioning-state?   identityref
        |  |  +--ro performance?       identityref
        |  +--rw service-classification-type?
        |  |       identityref
        |  +--rw (service-classification)?
        |  |  +--:(port-classification)
        |  |  +--:(vlan-classification)
        |  |     +--rw outer-tag!
        |  |     |  +--rw tag-type?
        |  |     |  |       etht-types:eth-tag-classify
        |  |     |  +--rw (individual-bundling-vlan)?
        |  |     |     +--:(individual-vlan)
        |  |     |     |  +--rw vlan-value?   etht-types:vlanid
        |  |     |     +--:(vlan-bundling)
        |  |     |        +--rw vlan-range?
        |  |     |                etht-types:vid-range-type
        |  |     +--rw second-tag!
        |  |        +--rw tag-type?
        |  |        |       etht-types:eth-tag-classify
        |  |        +--rw (individual-bundling-vlan)?
        |  |           +--:(individual-vlan)
        |  |           |  +--rw vlan-value?   etht-types:vlanid
        |  |           +--:(vlan-bundling)
        |  |              +--rw vlan-range?
        |  |                      etht-types:vid-range-type
        |  +--rw split-horizon-group?                      string
        |  +--rw (direction)?
        |  |  +--:(symmetrical)
        |  |  |  +--rw ingress-egress-bandwidth-profile
        |  |  |     +--rw (style)?
        |  |  |        +--:(named)
        |  |  |        |  +--rw bandwidth-profile-name?   leafref
        |  |  |        +--:(value)
        |  |  |           +--rw bandwidth-profile-type?
        |  |  |           |       etht-types:bandwidth-profile-type
        |  |  |           +--rw CIR?                      uint64
        |  |  |           +--rw CBS?                      uint64
        |  |  |           +--rw EIR?                      uint64
        |  |  |           +--rw EBS?                      uint64
        |  |  |           +--rw color-aware?              boolean
        |  |  |           +--rw coupling-flag?            boolean
        |  |  +--:(asymmetrical)
        |  |     +--rw ingress-bandwidth-profile
        |  |     |  +--rw (style)?
        |  |     |     +--:(named)
        |  |     |     |  +--rw bandwidth-profile-name?   leafref
        |  |     |     +--:(value)
        |  |     |        +--rw bandwidth-profile-type?
        |  |     |        |       etht-types:bandwidth-profile-type
        |  |     |        +--rw CIR?                      uint64
        |  |     |        +--rw CBS?                      uint64
        |  |     |        +--rw EIR?                      uint64
        |  |     |        +--rw EBS?                      uint64
        |  |     |        +--rw color-aware?              boolean
        |  |     |        +--rw coupling-flag?            boolean
        |  |     +--rw egress-bandwidth-profile
        |  |        +--rw (style)?
        |  |           +--:(named)
        |  |           |  +--rw bandwidth-profile-name?   leafref
        |  |           +--:(value)
        |  |              +--rw bandwidth-profile-type?
        |  |              |       etht-types:bandwidth-profile-type
        |  |              +--rw CIR?                      uint64
        |  |              +--rw CBS?                      uint64
        |  |              +--rw EIR?                      uint64
        |  |              +--rw EBS?                      uint64
        |  |              +--rw color-aware?              boolean
        |  |              +--rw coupling-flag?            boolean
        |  +--rw vlan-operations
        |     +--rw (direction)?
        |        +--:(symmetrical)
        |        |  +--rw symmetrical-operation
        |        |     +--rw pop-tags?    uint8
        |        |     +--rw push-tags
        |        |        +--rw outer-tag!
        |        |        |  +--rw tag-type?
        |        |        |  |       etht-types:eth-tag-type
        |        |        |  +--rw vlan-value?    etht-types:vlanid
        |        |        |  +--rw default-pcp?   uint8
        |        |        +--rw second-tag!
        |        |           +--rw tag-type?
        |        |           |       etht-types:eth-tag-type
        |        |           +--rw vlan-value?    etht-types:vlanid
        |        |           +--rw default-pcp?   uint8
        |        +--:(asymmetrical)
        |           +--rw asymmetrical-operation
        |              +--rw ingress
        |              |  +--rw pop-tags?    uint8
        |              |  +--rw push-tags
        |              |     +--rw outer-tag!
        |              |     |  +--rw tag-type?
        |              |     |  |       etht-types:eth-tag-type
        |              |     |  +--rw vlan-value?
        |              |     |  |       etht-types:vlanid
        |              |     |  +--rw default-pcp?   uint8
        |              |     +--rw second-tag!
        |              |        +--rw tag-type?
        |              |        |       etht-types:eth-tag-type
        |              |        +--rw vlan-value?
        |              |        |       etht-types:vlanid
        |              |        +--rw default-pcp?   uint8
        |              +--rw egress
        |                 +--rw pop-tags?    uint8
        |                 +--rw push-tags
        |                    +--rw outer-tag!
        |                    |  +--rw tag-type?
        |                    |  |       etht-types:eth-tag-type
        |                    |  +--rw vlan-value?
        |                    |  |       etht-types:vlanid
        |                    |  +--rw default-pcp?   uint8
        |                    +--rw second-tag!
        |                       +--rw tag-type?
        |                       |       etht-types:eth-tag-type
        |                       +--rw vlan-value?
        |                       |       etht-types:vlanid
        |                       +--rw default-pcp?   uint8
        +--rw alarm-threshold
        |  +--rw latency-threshold?   uint32
        +--rw underlay
        |  +--rw (technology)?
        |  |  +--:(native-ethernet)
        |  |  |  +--rw eth-tunnels* [name]
        |  |  |     +--rw name
        |  |  |     |       -> /te:te/tunnels/tunnel/name
        |  |  |     +--rw encoding?         identityref
        |  |  |     +--rw switching-type?   identityref
        |  |  +--:(frame-base)
        |  |  |  +--rw otn-tunnels* [name]
        |  |  |     +--rw name
        |  |  |     |       -> /te:te/tunnels/tunnel/name
        |  |  |     +--rw encoding?         identityref
        |  |  |     +--rw switching-type?   identityref
        |  |  +--:(mpls-tp)
        |  |     +--rw pw
        |  |        +--rw pw-id?                       string
        |  |        +--rw pw-name?                     string
        |  |        +--rw transmit-label?
        |  |        |       rt-types:mpls-label
        |  |        +--rw receive-label?
        |  |        |       rt-types:mpls-label
        |  |        +--rw encapsulation-type?          identityref
        |  |        +--ro oper-status?                 identityref
        |  |        +--rw ingress-bandwidth-profile
        |  |        |  +--rw (style)?
        |  |        |     +--:(named)
        |  |        |     |  +--rw bandwidth-profile-name?   leafref
        |  |        |     +--:(value)
        |  |        |        +--rw bandwidth-profile-type?
        |  |        |        |       etht-types:bandwidth-profile-ty\
pe
        |  |        |        +--rw CIR?                      uint64
        |  |        |        +--rw CBS?                      uint64
        |  |        |        +--rw EIR?                      uint64
        |  |        |        +--rw EBS?                      uint64
        |  |        +--rw pw-paths* [path-id]
        |  |           +--rw path-id       uint8
        |  |           +--rw tp-tunnels* [name]
        |  |              +--rw name    string
        |  +--rw src-split-horizon-group?   string
        |  +--rw dst-split-horizon-group?   string
        +--rw admin-status?             identityref
        +--ro state
           +--ro operational-state?    identityref
           +--ro provisioning-state?   identityref
           +--ro creation-time?        yang:date-and-time
           +--ro last-updated-time?    yang:date-and-time
           +--ro created-by?           string
           +--ro last-updated-by?      string
           +--ro owned-by?             string
           +--ro pm-state
           |  +--ro latency?   uint32
           +--ro error-info
              +--ro error-code?          uint16
              +--ro error-description?   string
              +--ro error-timestamp?     yang:date-and-time
]]></artwork>
        </figure>
      </section>
      <section anchor="cbr-svc-tree">
        <name>YANG Tree for other Transport Network Client Signal Model</name>
        <figure anchor="fig-cbr-svc-tree">
          <artwork type="ascii-art" name="ietf-trans-client-service.tree"><![CDATA[
module: ietf-trans-client-service
  +--rw client-svc
     +--rw client-svc-instances* [client-svc-name]
        +--rw client-svc-name           string
        +--rw client-svc-title?         string
        +--rw user-label?               string
        +--rw client-svc-descr?         string
        +--rw client-svc-customer?      string
        +--rw resilience
        +--rw te-topology-identifier
        |  +--rw provider-id?   te-global-id
        |  +--rw client-id?     te-global-id
        |  +--rw topology-id?   te-topology-id
        +--rw admin-status?             identityref
        +--rw src-access-ports
        |  +--rw access-node-id?    te-types:te-node-id
        |  +--rw access-node-uri?   nw:node-id
        |  +--rw access-ltp-id?     te-types:te-tp-id
        |  +--rw access-ltp-uri?    nt:tp-id
        |  +--rw client-signal?     identityref
        +--rw dst-access-ports
        |  +--rw access-node-id?    te-types:te-node-id
        |  +--rw access-node-uri?   nw:node-id
        |  +--rw access-ltp-id?     te-types:te-tp-id
        |  +--rw access-ltp-uri?    nt:tp-id
        |  +--rw client-signal?     identityref
        +--ro pm-state
        |  +--ro latency?   uint32
        +--ro error-info
        |  +--ro error-code?          uint16
        |  +--ro error-description?   string
        |  +--ro error-timestamp?     yang:date-and-time
        +--rw alarm-threshold
        |  +--rw latency-threshold?   uint32
        +--rw direction?                identityref
        +--rw svc-tunnels* [tunnel-name]
        |  +--rw tunnel-name    string
        +--ro operational-state?        identityref
        +--ro provisioning-state?       identityref
        +--ro creation-time?            yang:date-and-time
        +--ro last-updated-time?        yang:date-and-time
        +--ro created-by?               string
        +--ro last-updated-by?          string
        +--ro owned-by?                 string
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="yang-code-for-transport-network-client-signal">
      <name>YANG Code for Transport Network Client Signal</name>
      <section anchor="the-eth-service-yang-code">
        <name>The ETH Service YANG Code</name>
        <t>This module imports typedefs and modules from <xref target="RFC6991"/>, <xref target="RFC8294"/>,
<xref target="I-D.ietf-teas-rfc8776-update"/>.</t>
        <figure anchor="fig-eth-svc-yang">
          <sourcecode type="yang" markers="true" name="ietf-eth-tran-service@2024-01-11.yang"><![CDATA[
module ietf-eth-tran-service {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-eth-tran-service";
  prefix etht-svc;

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 6991: Common YANG Data Types";
  }

  import ietf-routing-types {
    prefix rt-types;
    reference
      "RFC 8294: Common YANG Data Types for the Routing Area";
  }

  import ietf-te-types {
    prefix te-types;
    reference "RFCYYYY: Traffic Engineering Common YANG Types";
  }
  // RFC Editor: replace YYYY with the actual RFC number assigned
  // to the RFC once draft-ietf-teas-rfc8776-update
  // becomes an RFC, update date information and remove this note.

  import ietf-network {
    prefix nw;
    reference
      "RFC8345: A YANG Data Model for Network Topologies";
  }

  import ietf-network-topology {
    prefix "nt";
    reference
      "RFC8345: A YANG Data Model for Network Topologies";
  }

  import ietf-te {
    prefix "te";
    reference
      "RFCKKKK: A YANG Data Model for Traffic Engineering Tunnels
      and Interfaces";
  }
  // RFC Editor: replace KKKK with the actual RFC number assigned
  // to the RFC once draft-ietf-teas-yang-te
  // becomes an RFC, update date information and remove this note.

  import ietf-eth-tran-types {
    prefix etht-types;
    reference
      "RFCXXXX: A YANG Data Model for Transport Network Client 
      Signals";
  }
  // RFC Editor: replace XXXX with the actual RFC number assigned
  // to the RFC once this draft
  // becomes an RFC, update date information and remove this note.

  organization
    "Internet Engineering Task Force (IETF) CCAMP WG";
  contact
    "WG Web: <https://datatracker.ietf.org/wg/ccamp/>
     WG List: <mailto:ccamp@ietf.org>

     Editor: Haomian Zheng
             <mailto:zhenghaomian@huawei.com>

     Editor: Aihua Guo
             <mailto:aihuaguo.ietf@gmail.com>

     Editor: Italo Busi
             <mailto:italo.busi@huawei.com>

     Editor: Anton Snitser
             <mailto:asnizar@cisco.com>

     Editor: Chaode Yu
             <mailto:yuchaode@huawei.com>";

  description
    "This module defines a YANG data model for describing
    Ethernet transport network client services.

    The model fully conforms to the Network Management
    Datastore Architecture (NMDA).

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

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

    This version of this YANG module is part of RFC XXXX; see
    the RFC itself for full legal notices.";

  revision 2024-01-11 {
    description
      "Initial Version";
    reference
      "RFC XXXX: A YANG Data Model for Transport Network Client
      Signals";
  }
  // RFC Editor: replace XXXX with the actual RFC number assigned
  // to the RFC once this draft
  // becomes an RFC, update date information and remove this note.

  /*
   * Groupings
   */

  grouping vlan-classification {
    description
      "A grouping which represents classification
      on an 802.1Q VLAN tag.";

    leaf tag-type {
      type etht-types:eth-tag-classify;
      description
        "The tag type used for VLAN classification.";
    }
    choice individual-bundling-vlan {
      description
        "VLAN based classification can be individual
         or bundling.";

      case individual-vlan {
        leaf vlan-value {
          type etht-types:vlanid;
          description
            "VLAN ID value.";
        }
      }
      case vlan-bundling {
        leaf vlan-range {
          type etht-types:vid-range-type;
          description
            "List of VLAN ID values.";
        }
      }
    }
  }

  grouping vlan-write {
    description
      "A grouping which represents push/pop operations
       of an 802.1Q VLAN tag.";

    leaf tag-type {
      type etht-types:eth-tag-type;
      description
        "The VLAN tag type to push/swap.";
    }
    leaf vlan-value {
      type etht-types:vlanid;
      description
        "The VLAN ID value to push/swap.";
    }
/*
 * To be added: this attribute is used when:
 * a) the ETH service has only one CoS (as in current version)
 * b) as a default when a mapping between a given CoS value
 *    and the PCP value is not defined (in future versions)
 */
    leaf default-pcp {
      type uint8 {
        range "0..7";
      }
      description
        "The default Priority Code Point (PCP) value to push/swap";
    }
  }

  grouping vlan-operations {
    description
      "A grouping which represents VLAN operations.";

    leaf pop-tags {
      type uint8 {
        range "1..2";
      }
      description
        "The number of VLAN tags to pop (or swap if used in
        conjunction with push-tags)";
    }
    container push-tags {
      description
        "The VLAN tags to push (or swap if used in
         conjunction with pop-tags)";
      container outer-tag {
        presence
          "Indicates existence of the outermost VLAN tag to
           push/swap";
        description
          "The outermost VLAN tag to push/swap.";
        uses vlan-write;
      }
      container second-tag {
      must
        '../outer-tag/tag-type = "etht-types:s-vlan-tag-type" and ' +
        'tag-type = "etht-types:c-vlan-tag-type"'
        {
          error-message
            "
              When pushing/swapping two tags, the outermost tag must
              be specified and of S-VLAN type and the second
              outermost tag must be of C-VLAN tag type.
            ";
          description
            "
              For IEEE 802.1Q interoperability, when pushing/swapping
              two tags, it is required that the outermost tag exists
              and is an S-VLAN, and the second outermost tag is a
              C-VLAN.
            ";
        }
        presence
          "Indicates existence of a second outermost VLAN tag to
           push/swap";
        description
          "The second outermost VLAN tag to push/swap.";
        uses vlan-write;
      }
    }
  }

  grouping named-or-value-bandwidth-profile {
    description
      "A grouping to configure a bandwdith profile either by
       referencing a named bandwidth profile or by
       configuring the values of the bandwidth profile attributes.";
    choice style {
      description
        "Whether the bandwidth profile is named or defined by value";
      case named {
        description
          "Named bandwidth profile.";
        leaf bandwidth-profile-name {
          type leafref {
             path "/etht-svc:etht-svc/etht-svc:globals/"
             + "etht-svc:named-bandwidth-profiles/"
             + "etht-svc:bandwidth-profile-name";
             }
          description
            "Name of the bandwidth profile.";
        }
      }
      case value {
        description
          "Bandwidth profile configured by value.";
        uses etht-types:etht-bandwidth-profiles;
      }
    }
  }

  grouping bandwidth-profiles {
    description
      "A grouping which represent bandwidth profile configuration.";

    choice direction {
      description
        "Whether the bandwidth profiles are symmetrical or
         asymmetrical";
      case symmetrical {
        description
          "The same bandwidth profile is used to describe both
           the ingress and the egress bandwidth profile.";
        container ingress-egress-bandwidth-profile {
          description
            "The bandwdith profile used in both directions.";
          uses named-or-value-bandwidth-profile;
        }
      }
      case asymmetrical {
        description
          "Ingress and egress bandwidth profiles can be specified.";
        container ingress-bandwidth-profile {
          description
            "The bandwdith profile used in the ingress direction.";
          uses named-or-value-bandwidth-profile;
        }
        container egress-bandwidth-profile {
          description
            "The bandwdith profile used in the egress direction.";
          uses named-or-value-bandwidth-profile;
        }
      }
    }
  }

  grouping etht-svc-access-parameters {
    description
      "ETH services access parameters";

    leaf access-node-id {
      type te-types:te-node-id;
      description
        "The identifier of the access node in
         the ETH TE topology.";
    }
    leaf access-node-uri {
      type nw:node-id;
      description
        "The identifier of the access node in the network.";
    }
    leaf access-ltp-id {
      type te-types:te-tp-id;
      description
        "The TE link termination point identifier, used
         together with access-node-id to identify the
         access LTP.";
    }
    leaf access-ltp-uri {
      type nt:tp-id;
      description
        "The link termination point identifier in network topology,
        used together with access-node-uri to identify the
        access LTP.";
    }
    leaf access-role {
      type identityref {
        base etht-types:access-role;
      }
      description
        "Indicate the role of access, e.g., working or protection. ";
    }
    container pm-config {
      uses pm-config-grouping;
      description
      "This grouping is used to set the threshold value for
      performance monitoring. ";
    }
    container state {
      config false;
      description
        "The state is used to monitor the status of service. ";
      leaf operational-state {
        type identityref {
          base te-types:tunnel-state-type;
        }
        description
          "Indicating the operational state of client signal. ";
      }
      leaf provisioning-state {
        type identityref {
          base te-types:lsp-state-type;
        }
        description
          "Indicating the provisional state of client signal,
          especially when there is a change, i.e., revise, create. ";
      }
    }
    leaf performance {
      type identityref {
        base etht-types:performance;
      }
      config false;
      description
        "Performance Monitoring for the service. ";
    }
  }

  grouping etht-svc-tunnel-parameters {
    description
      "ETH services tunnel parameters.";

    choice technology {
      description
        "Service multiplexing is optional and flexible.";
      case native-ethernet {
        /*
         placeholder to support proprietary multiplexing
         (for further discussion)
        */
        list eth-tunnels {
          key name;
          description
            "ETH Tunnel list in native Ethernet scenario.";
          uses tunnels-grouping;
        }
      }
      case frame-base {
        list otn-tunnels {
          key name;
          description
            "OTN Tunnel list in Frame-based scenario.";
          uses tunnels-grouping;
        }
      }
      case mpls-tp {
        container pw {
          description
            "Pseudowire information for Ethernet over MPLS-TP.";
          uses pw-segment-grouping;
        }
      }
    }
    /*
    * Open issue: 
    *   can we constraints it to be used only with mp services?
    */
    leaf src-split-horizon-group {
      type string;
      description
        "Identify a split horizon group at the source Tunnel
        Termination Point (TTP).";
    }
    leaf dst-split-horizon-group {
      type string;
      description
        "Identify a split horizon group at the destination Tunnel
        Termination Point (TTP).";
    }
  }

  grouping  etht-svc-pm-threshold-config {
    description
      "Configuraiton parameters for Ethernet service PM thresholds.";

    leaf sending-rate-high {
      type uint64;
      description
        "High threshold of packet sending rate in kbps.";
    }
    leaf sending-rate-low {
      type uint64;
      description
        "Low threshold of packet sending rate in kbps.";
    }
    leaf receiving-rate-high {
      type uint64;
      description
        "High threshold of packet receiving rate in kbps.";
    }
    leaf receiving-rate-low {
      type uint64;
      description
        "Low threshold of packet receiving rate in kbps.";
    }
  }

  grouping  etht-svc-pm-stats {
    description
      "Ethernet service PM statistics.";

    leaf sending-rate-too-high {
      type uint32;
      description
        "Counter that indicates the number of times the
        sending rate is above the high threshold";
    }
    leaf sending-rate-too-low {
      type uint32;
      description
        "Counter that indicates the number of times the
        sending rate is below the low threshold";
    }
    leaf receiving-rate-too-high {
      type uint32;
      description
        "Counter that indicates the number of times the
        receiving rate is above the high threshold";
    }
    leaf receiving-rate-too-low {
      type uint32;
      description
        "Counter that indicates the number of times the
        receiving rate is below the low threshold";
    }
  }

  grouping  etht-svc-instance-config {
    description
      "Configuraiton parameters for Ethernet services.";

    leaf etht-svc-name {
      type string;
      description
        "Name of the ETH service.";
    }
    leaf etht-svc-title {
      type string;
      description
        "The Identifier of the ETH service.";
    }
    leaf user-label {
      type string;
      description
        "Alias of the ETH service.";
    }
    leaf etht-svc-descr {
      type string;
      description
        "Description of the ETH service.";
    }
    leaf etht-svc-customer {
      type string;
      description
        "Customer of the ETH service.";
    }
    leaf etht-svc-type {
      type etht-types:service-type;
      description
        "Type of ETH service (p2p, mp2mp or rmp).";
      /* Add default as p2p */
    }
    leaf etht-svc-lifecycle {
      type etht-types:lifecycle-status;
      description
        "Lifecycle state of ETH service.";
      /* Add default as installed  */
    }
    uses te-types:te-topology-identifier;
    uses resilience-grouping;
    list etht-svc-end-points {
      key etht-svc-end-point-name;
      description
        "The logical end point for the ETH service. ";
      uses etht-svc-end-point-grouping;
    }
    container alarm-threshold {
      description
        "threshold configuration for the E2E client signal";
      uses alarm-threshold-grouping;
    }
    container underlay {
      description
        "The unterlay tunnel information that carrying the
        ETH service. ";
      uses etht-svc-tunnel-parameters;
    }
    leaf admin-status {
      type identityref {
        base te-types:tunnel-admin-state-type;
      }
      default te-types:tunnel-admin-state-up;
      description "ETH service administrative state.";
    }
  }

  grouping  etht-svc-instance-state {
    description
      "State parameters for Ethernet services.";

    leaf operational-state {
      type identityref {
        base te-types:tunnel-state-type;
      }
      default te-types:tunnel-state-up;
      description
        "ETH service operational state.";
    }
    leaf provisioning-state {
      type identityref {
        base te-types:lsp-state-type;
      }
      description
        "ETH service provisioning state.";
    }
    leaf creation-time {
      type yang:date-and-time;
      description
        "Time of ETH service creation.";
    }
    leaf last-updated-time {
      type yang:date-and-time;
      description
        "Time of ETH service last update.";
    }
    leaf created-by {
       type string;
       description
         "The client signal is created by whom,
          can be a system or staff ID.";
     }
     leaf last-updated-by {
       type string;
       description
         "The client signal is last updated by whom,
          can be a system or staff ID.";
     }
     leaf owned-by {
       type string;
       description
         "The client signal is last updated by whom,
          can be a system ID.";
     }
     container pm-state {
       description
         "PM data of E2E Ethernet service";
       uses pm-state-grouping;
     }
     container error-info {
       description "error messages of configuration";
       uses error-info-grouping;
     }
  }

  grouping pm-state-grouping {
    description
      "Performance Monitoring (PM) state attributes";
    leaf latency {
      type uint32;
      units microsecond;
      description
        "latency value of the E2E Ethernet service";
    }
  }

  grouping error-info-grouping {
    description
      "Error information parameters";

    leaf error-code {
      type uint16;
      description "error code";
    }
    leaf error-description {
      type string;
      description "detail message of error";
    }
    leaf error-timestamp {
      type yang:date-and-time;
      description "the date and time error is happened";
    }
  }

  grouping alarm-threshold-grouping {
    description
      "Alarm threshold parameters.";
    leaf latency-threshold {
      type uint32;
      units microsecond;
      description
        "a threshold for the E2E client signal service's
        latency. Once the latency value exceed this threshold,
        an alarm should be triggered.";
     }
  }

  grouping resilience-grouping {
    description
      "Grouping for resilience configuration. ";
    container resilience {
    description
      "To configure the data plane protection parameters,
      currently a placeholder only, future candidate attributes
      include, Revert, WTR, Hold-off Timer, ...";
      uses te:protection-restoration-properties;
    }
  }

  grouping etht-svc-end-point-grouping {
    description
      "Grouping for the end point configuration.";

    leaf etht-svc-end-point-name {
      type string;
      description
        "The name of the logical end point of ETH service. ";
    }
    leaf etht-svc-end-point-id {
      type string;
      description
        "The identifier of the logical end point of ETH service.";
    }
    leaf etht-svc-end-point-descr {
      type string;
      description
        "The description of the logical end point of ETH service. ";
    }
    leaf topology-role {
      type identityref {
        base etht-types:topology-role;
      }
      description
        "Indicating the underlay topology role,
        e.g., hub,spoke, any-to-any ";
    }
    container resilience {
      description
        "Placeholder for resilience configuration, for future
        study.";
    }
    list etht-svc-access-points {
      key access-point-id;
      min-elements "1";
      /*
        Open Issue:
          Is it possible to limit the max-elements only for p2p
          services?
            max-elements "2";
      */
      description
        "List of the ETH trasport services access point instances.";
      leaf access-point-id {
        type string;
        description
          "ID of the service access point instance";
      }
      uses etht-svc-access-parameters;
    }
    leaf service-classification-type {
      type identityref {
        base etht-types:service-classification-type;
      }
      description
        "Service classification type.";
    }
    choice service-classification {
      description
        "Access classification can be port-based or
         VLAN based.";
      case port-classification {
        /* no additional information */
      }
      case vlan-classification {
        container outer-tag {
          presence "The outermost VLAN tag exists";
          description
            "Classifies traffic using the outermost VLAN tag.";
          uses vlan-classification;
        }
        container second-tag {
          must
            '../outer-tag/tag-type = "etht-types:classify-s-vlan"' +
            ' and tag-type = "etht-types:classify-c-vlan"'
          {
            error-message
              "
                When matching two tags, the outermost tag must be
                specified and of S-VLAN type and the second
                outermost tag must be of C-VLAN tag type.
              ";
            description
              "
                For IEEE 802.1Q interoperability, when matching two
                tags, it is required that the outermost tag exists
                and is an S-VLAN, and the second outermost tag is a
                C-VLAN.
              ";
          }
          presence "The second outermost VLAN tag exists";
          description
            "Classifies traffic using the second outermost VLAN
            tag.";
          uses vlan-classification;
        }
      }
    }
    /*
    * Open issue: 
    *   can we constraints it to be used only with mp services?
    */
    leaf split-horizon-group {
      type string;
      description "Identify a split horizon group";
    }
    uses bandwidth-profiles;
    container vlan-operations {
      description
        "Configuration of VLAN operations.";
      choice direction {
        description
          "Whether the VLAN operations are symmetrical or
           asymmetrical";
        case symmetrical {
          container symmetrical-operation {
            uses vlan-operations;
            description
              "Symmetrical operations.
               Expressed in the ingress direction, but
               the reverse operation is applied to egress traffic";
          }
        }
        case asymmetrical {
          container asymmetrical-operation {
            description "Asymmetrical operations";
            container ingress {
              uses vlan-operations;
              description "Ingress operations";
            }
            container egress {
              uses vlan-operations;
              description "Egress operations";
            }
          }
        }
      }
    }
  }

  grouping pm-config-grouping {
    description
      "Grouping used for Performance Monitoring Configuration. ";

    leaf pm-enable {
      type boolean;
      description
      "Whether to enable the performance monitoring.";
    }
    leaf sending-rate-high {
      type uint64;
      description
      "The upperbound of sending rate.";
    }
    leaf sending-rate-low {
      type uint64;
      description
      "The lowerbound of sending rate.";
    }
    leaf receiving-rate-high {
      type uint64;
      description
      "The upperbound of receiving rate.";
    }
    leaf receiving-rate-low {
      type uint64;
      description
      "The lowerbound of receiving rate.";
    }
  }

  grouping pw-segment-grouping {
    description
      "Grouping used for PW configuration. ";

    leaf pw-id {
      type string;
      description
        "The Identifier information of pseudowire. ";
    }
    leaf pw-name {
      type string;
      description
        "The name information of pseudowire.";
    }
    leaf transmit-label {
      type rt-types:mpls-label;
      description
        "Transmit label information in PW. ";
    }
    leaf receive-label {
      type rt-types:mpls-label;
      description
        "Receive label information in PW. ";
    }
    leaf encapsulation-type {
      type identityref {
        base etht-types:encapsulation-type;
      }
      description
        "The encapsulation type, raw or tag. ";
    }
    leaf oper-status {
      type identityref {
        base te-types:tunnel-state-type;
      }
      config false;
      description
        "The operational state of the PW segment. ";
    }
    container ingress-bandwidth-profile {
      description
        "Bandwidth Profile for ingress. ";
      uses pw-segment-named-or-value-bandwidth-profile;
    }
    list pw-paths {
      key path-id;
      description
        "A list of pw paths. ";
      leaf path-id {
        type uint8;
        description
          "The identifier of pw paths. ";
      }
      list tp-tunnels {
        key name;
        description
          "Names of TP Tunnel underlay";
        leaf name {
          type string;
          description
            "Names of TP Tunnel underlay";
        }
      }
    }
  }

  grouping pw-segment-named-or-value-bandwidth-profile {
    description
      "A grouping to configure a bandwdith profile either by
       referencing a named bandwidth profile or by
       configuring the values of the bandwidth profile attributes.";

    choice style {
      description
        "Whether the bandwidth profile is named or defined by value";
      case named {
        description
          "Named bandwidth profile.";
        leaf bandwidth-profile-name {
          type leafref {
            path "/etht-svc:etht-svc/etht-svc:globals/"
            + "etht-svc:named-bandwidth-profiles/"
            + "etht-svc:bandwidth-profile-name";
          }
          description
            "Name of the bandwidth profile.";
        }
      }
      case value {
        description
          "Bandwidth profile configured by value.";
        uses etht-types:pw-segement-bandwidth-profile-grouping;
      }
    }
  }

  grouping tunnels-grouping {
    description
      "A group of tunnels. ";
    leaf name {
      type leafref {
        path "/te:te/te:tunnels/te:tunnel/te:name";
        require-instance false;
      }
      description "Dependency tunnel name";
    }
    leaf encoding {
      type identityref {
        base te-types:lsp-encoding-types;
      }
      description "LSP encoding type";
      reference "RFC3945";
    }
    leaf switching-type {
      type identityref {
        base te-types:switching-capabilities;
      }
      description "LSP switching type";
      reference "RFC3945";
    }
  }

  /*
   * Data nodes
   */

  container etht-svc {
    description
      "ETH services.";

    container globals {
      description
        "Globals Ethernet configuration data container";
      list named-bandwidth-profiles {
        key bandwidth-profile-name;
        description
          "List of named bandwidth profiles used by
           Ethernet services.";

        leaf bandwidth-profile-name {
          type string;
          description
            "Name of the bandwidth profile.";
        }
        uses etht-types:etht-bandwidth-profiles;
      }
    }
    list etht-svc-instances {
      key etht-svc-name;
      description
        "The list of p2p ETH service instances";

      uses etht-svc-instance-config;
      container state {
        config false;
        description
          "Ethernet Service states.";
        uses etht-svc-instance-state;
      }
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="yang-code-for-eth-type">
        <name>YANG Code for ETH type</name>
        <t>This module references a few documents including <xref target="RFC2697"/>,
<xref target="RFC2698"/>, <xref target="RFC4115"/>, <xref target="IEEE_802.1ad"/>, <xref target="IEEE_802.1q"/> and <xref target="MEF10"/>.</t>
        <figure anchor="fig-eth-types-yang">
          <sourcecode type="yang" markers="true" name="ietf-eth-tran-types@2024-01-11.yang"><![CDATA[
module ietf-eth-tran-types {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-eth-tran-types";
  prefix etht-types;

  organization
    "Internet Engineering Task Force (IETF) CCAMP WG";
  contact
    "WG Web: <https://datatracker.ietf.org/wg/ccamp/>
     WG List: <mailto:ccamp@ietf.org>

     Editor: Haomian Zheng
             <mailto:zhenghaomian@huawei.com>

     Editor: Aihua Guo
             <mailto:aihuaguo.ietf@gmail.com>

     Editor: Italo Busi
             <mailto:italo.busi@huawei.com>

     Editor: Anton Snitser
             <mailto:asnizar@cisco.com>

     Editor: Chaode Yu
             <mailto:yuchaode@huawei.com>";

  description
    "This module defines a collection of common YANG identity, data
    type and grouping definitions for describing Ethernet transport
    network clients.

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

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

    This version of this YANG module is part of RFC XXXX; see
    the RFC itself for full legal notices.";

  revision 2024-01-11 {
    description
      "Initial Version";
    reference
      "RFC XXXX: A YANG Data Model for Transport Network Client
      Signals";
  }
  // RFC Editor: replace XXXX with the actual RFC number assigned
  // to the RFC once this draft
  // becomes an RFC, update date information and remove this note.

  /*
   * Identities
   */

  identity eth-vlan-tag-type {
    description
      "ETH VLAN tag type.";
  }

    identity c-vlan-tag-type {
      base eth-vlan-tag-type;
      description
        "802.1Q Customer VLAN";
    }

    identity s-vlan-tag-type {
      base eth-vlan-tag-type;
      description
        "802.1Q Service VLAN (QinQ)";
    }

  identity service-classification-type {
    description
      "Service classification.";
  }

    identity port-classification {
      base service-classification-type;
      description
        "Port classification.";
    }

    identity vlan-classification {
      base service-classification-type;
      description
        "VLAN classification.";
    }

    identity eth-vlan-tag-classify {
      description
        "VLAN tag classification.";
    }

      identity classify-c-vlan {
        base eth-vlan-tag-classify;
        description
          "Classify 802.1Q Customer VLAN tag.
          Only C-tag type is accepted";
      }

      identity classify-s-vlan {
        base eth-vlan-tag-classify;
        description
          "Classify 802.1Q Service VLAN (QinQ) tag.
          Only S-tag type is accepted";
      }

      identity classify-s-or-c-vlan {
        base eth-vlan-tag-classify;
        description
          "Classify S-VLAN or C-VLAN tag-classify.
          Either tag is accepted";
      }

  identity bandwidth-profile-type {
    description
      "Bandwidth Profile Types";
  }

    identity mef-10-bwp {
      base bandwidth-profile-type;
      description
        "MEF 10 Bandwidth Profile";
    }

    identity rfc-2697-bwp {
      base bandwidth-profile-type;
      description
        "RFC 2697 Bandwidth Profile";
    }

    identity rfc-2698-bwp {
      base bandwidth-profile-type;
      description
        "RFC 2698 Bandwidth Profile";
    }

    identity rfc-4115-bwp {
      base bandwidth-profile-type;
      description
        "RFC 4115 Bandwidth Profile";
    }

  identity service-type {
    description
      "Type of Ethernet service.";
  }

    identity p2p-svc {
      base service-type;
      description
        "Ethernet point-to-point service (EPL, EVPL).";
    }

    identity rmp-svc {
      base service-type;
      description
        "Ethernet rooted-multitpoint service (E-TREE, EP-TREE).";
    }

    identity mp2mp-svc {
      base service-type;
      description
        "Ethernet multipoint-to-multitpoint service
        (E-LAN, EP-LAN).";
    }

  identity lifecycle-status {
    description
      "Lifecycle Status.";
  }

    identity installed {
      base lifecycle-status;
      description
        "Installed.";
    }

    identity planned {
      base lifecycle-status;
      description
        "Planned.";
    }

    identity pending-removal {
      base lifecycle-status;
      description
        "Pending Removal.";
    }

  identity topology-role {
    description
      "The role of underlay topology: e.g., hub, spoke,
      any-to-any.";
  }

  identity resilience {
    description
    "Placeholder for resilience information in data plane,
    for future study. ";
  }

  identity access-role {
    description
    "Indicating whether the access is a working or protection
    access.";
  }

    identity root-primary {
      base access-role;
      description
        "Designates the primary root UNI of an E-Tree service, and 
        may also designates the UNI access role of E-LINE and E-LAN
        service.";
    }

    identity root-backup {
      base access-role;
      description
        "Designates the backup root UNI of an E-Tree service.";
    }

    identity leaf-access {
      base access-role;
      description
        "Designates the leaf UNI of an E-Tree service.";
    }

  identity performance {
    description
    "Placeholder for performance information, for future study.";
  }

  identity encapsulation-type {
    description
    "Indicating how the service is encapsulated (to PW), e.g, raw or
    tag. ";
  }

  /*
   * Data Types
   */

  typedef eth-tag-type {
    type identityref {
      base eth-vlan-tag-type;
    }
    description
      "Identifies a specific ETH VLAN tag type.";
  }

  typedef eth-tag-classify {
    type identityref {
      base eth-vlan-tag-classify;
    }
    description
      "Identifies a specific VLAN tag classification.";
  }

  typedef vlanid {
    type uint16 {
      range "1..4094";
    }
    description
      "The 12-bit VLAN-ID used in the VLAN Tag header.";
  }

  typedef vid-range-type {
    type string {
      pattern "([1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?" +
              "(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)";
    }
    description
      "A list of VLAN Ids, or non overlapping VLAN ranges, in
       ascending order, between 1 and 4094.
       This type is used to match an ordered list of VLAN Ids, or
       contiguous ranges of VLAN Ids. Valid VLAN Ids must be in the
       range 1 to 4094, and included in the list in non overlapping
       ascending order.

       For example: 1,10-100,50,500-1000";
  }

  typedef bandwidth-profile-type {
    type identityref {
      base bandwidth-profile-type;
    }
    description
      "Identifies a specific Bandwidth Profile type.";
  }

  typedef service-type {
    type identityref {
      base service-type;
    }
    description
      "Identifies the type of Ethernet service.";
  }

  typedef lifecycle-status {
    type identityref {
      base lifecycle-status;
    }
    description
      "Identifies the lLifecycle Status .";
  }

  /*
   * Groupings
   */

  grouping etht-bandwidth-profiles {
    description
      "Bandwidth profile configuration paramters.";

    leaf bandwidth-profile-type {
      type etht-types:bandwidth-profile-type;
      description
        "The type of bandwidth profile.";
    }
    leaf CIR {
      type uint64;
      description
        "Committed Information Rate in Kbps";
    }
    leaf CBS {
      type uint64;
      description
        "Committed Burst Size in in KBytes";
    }
    leaf EIR {
      type uint64;
      /* Need to indicate that EIR is not supported by RFC 2697

      must
        '../bw-profile-type = "mef-10-bwp" or ' +
        '../bw-profile-type = "rfc-2698-bwp" or ' +
        '../bw-profile-type = "rfc-4115-bwp"'

      must
        '../bw-profile-type != "rfc-2697-bwp"'
      */
      description
        "Excess Information Rate in Kbps
         In case of RFC 2698, PIR = CIR + EIR";
    }
    leaf EBS {
      type uint64;
      description
        "Excess Burst Size in KBytes.
          In case of RFC 2698, PBS = CBS + EBS";
    }
    leaf color-aware {
      type boolean;
      description
        "Indicates weather the color-mode is
        color-aware or color-blind.";
    }
    leaf coupling-flag {
      type boolean;
      /* Need to indicate that Coupling Flag is defined only for
         MEF 10

      must
        '../bw-profile-type = "mef-10-bwp"'
      */
      description
        "Coupling Flag.";
    }
  }

  grouping pw-segement-bandwidth-profile-grouping {
    description
      "bandwidth profile grouping for PW segment.";

    leaf bandwidth-profile-type {
      type etht-types:bandwidth-profile-type;
      description
        "The type of bandwidth profile.";
    }
    leaf CIR {
      type uint64;
      description
        "Committed Information Rate in Kbps";
    }
    leaf CBS {
      type uint64;
      description
        "Committed Burst Size in in KBytes";
    }
    leaf EIR {
      type uint64;
      /* Need to indicate that EIR is not supported by RFC 2697

      must
        '../bw-profile-type = "mef-10-bwp" or ' +
        '../bw-profile-type = "rfc-2698-bwp" or ' +
        '../bw-profile-type = "rfc-4115-bwp"'

      must
        '../bw-profile-type != "rfc-2697-bwp"'
      */
      description
        "Excess Information Rate in Kbps
         In case of RFC 2698, PIR = CIR + EIR";
    }
    leaf EBS {
      type uint64;
      description
        "Excess Burst Size in KBytes.
          In case of RFC 2698, PBS = CBS + EBS";
    }
  }

  grouping eth-bandwidth {
    description
      "Available bandwith for ethernet.";
    leaf eth-bandwidth {
      type uint64{
        range "0..10000000000";
      }
      units "Kbps";
      description
        "Available bandwith value expressed in kilobits per second";
    }
  }

  grouping eth-label-restriction {
    description
      "Label Restriction for ethernet.";
    leaf tag-type {
      type etht-types:eth-tag-type;
      description "VLAN tag type.";
    }
    leaf priority {
      type uint8;
      description "priority.";
    }
  }

  grouping eth-label {
    description
      "Label for ethernet.";
    leaf vlanid {
      type etht-types:vlanid;
        description
          "VLAN tag id.";
    }
  }

  grouping eth-label-step {
    description "Label step for Ethernet VLAN";
    leaf eth-step {
      type uint16 {
        range "1..4095";
      }
      default 1;
      description
        "Label step which represent possible increments for
        an Ethernet VLAN tag.";
      reference
        "IEEE 802.1ad: Provider Bridges.";
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="other-client-signal-yang-code">
        <name>Other Client Signal YANG Code</name>
        <t>This module imports typedefs and modules from <xref target="RFC6991"/>,
<xref target="I-D.ietf-ccamp-otn-tunnel-model"/>, <xref target="I-D.ietf-teas-rfc8776-update"/>.</t>
        <figure anchor="fig-cbr-svc-yang">
          <sourcecode type="yang" markers="true" name="ietf-trans-client-service@2024-01-11.yang"><![CDATA[
module ietf-trans-client-service {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-trans-client-service";
  prefix clnt-svc;

  import ietf-yang-types {
    prefix yang;
    reference "RFC 6991: Common YANG Data Types";
  }

  import ietf-te-types {
    prefix te-types;
    reference "RFCYYYY: Traffic Engineering Common YANG Types";
  }
  // RFC Editor: replace YYYY with the actual RFC number assigned
  // to the RFC once draft-ietf-teas-rfc8776-update
  // becomes an RFC, update date information and remove this note.

  import ietf-layer1-types {
    prefix l1-types;
    reference "RFCZZZZ: A YANG Data Model for Layer 1 Types";
  }
  // RFC Editor: replace ZZZZ with the actual RFC number assigned
  // to the RFC once draft-ietf-ccamp-layer1-types
  // becomes an RFC, update date information and remove this note.

  import ietf-network {
    prefix nw;
    reference "RFC8345: A YANG Data Model for Network Topologies";
  }

  import ietf-network-topology {
    prefix nt;
    reference "RFC8345: A YANG Data Model for Network Topologies";
  }

  import ietf-trans-client-svc-types {
    prefix clnt-types;
    reference
      "RFCXXXX: A YANG Data Model for Transport Network Client 
      Signals";
  }
  // RFC Editor: replace XXXX with the actual RFC number assigned
  // to the RFC once this draft
  // becomes an RFC, update date information and remove this note.

  organization
    "Internet Engineering Task Force (IETF) CCAMP WG";
  contact
    "WG Web: <https://datatracker.ietf.org/wg/ccamp/>
     WG List: <mailto:ccamp@ietf.org>

     Editor: Haomian Zheng
             <mailto:zhenghaomian@huawei.com>

     Editor: Aihua Guo
             <mailto:aihuaguo.ietf@gmail.com>

     Editor: Italo Busi
             <mailto:italo.busi@huawei.com>

     Editor: Anton Snitser
             <mailto:asnizar@cisco.com>

     Editor: Chaode Yu
             <mailto:yuchaode@huawei.com>";

  description
    "This module defines a YANG data model for describing
    transport network client services.

    The model fully conforms to the Network Management
    Datastore Architecture (NMDA).

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

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

    This version of this YANG module is part of RFC XXXX; see
    the RFC itself for full legal notices.";

  revision 2024-01-11 {
    description
      "Initial Version";
    reference
      "RFC XXXX: A YANG Data Model for Transport Network Client
      Signals";
  }
  // RFC Editor: replace XXXX with the actual RFC number assigned
  // to the RFC once this draft
  // becomes an RFC, update date information and remove this note.

  /*
   * Groupings
   */

  grouping client-svc-access-parameters {
    description
      "Transport network client signals access parameters";

    leaf access-node-id {
      type te-types:te-node-id;
      description
        "The identifier of the access node in the TE topology.";
    }
    leaf access-node-uri {
      type nw:node-id;
      description
        "The identifier of the access node in the network.";
    }
    leaf access-ltp-id {
      type te-types:te-tp-id;
      description
        "The TE link termination point identifier in TE topology, 
        used together with access-node-id to identify the access
        Link Termination Point (LTP).";
    }
    leaf access-ltp-uri {
      type nt:tp-id;
      description
        "The link termination point identifier in network topology,
        used together with access-node-uri to identify the access
        LTP";
    }
    leaf client-signal {
      type identityref {
        base l1-types:client-signal;
      }
      description
        "Identify the client signal type associated with this port";
    }
  }

  grouping pm-state-grouping {
    description
      "Performance Monitoring (PM) state attributes";
    leaf latency {
      type uint32;
      units microsecond;
      description
        "latency value of the E2E client signal service";
    }
  }

  grouping error-info-grouping {
    description
      "Error information parameters";
    leaf error-code {
      type uint16;
      description "error code";
    }
    leaf error-description {
      type string;
      description "detail message of error";
    }
    leaf error-timestamp {
      type yang:date-and-time;
      description "the date and time error is happened";
    }
  }

  grouping alarm-threshold-grouping {
    description
      "Alarm threshold parameters.";
    leaf latency-threshold {
      type uint32;
      units microsecond;
      description
        "a threshold for the E2E client signal service's
        latency. Once the latency value exceed this threshold,
        an alarm should be triggered.";
    }
  }

  grouping client-svc-tunnel-parameters {
    description
      "Transport network client signals tunnel parameters";

    leaf tunnel-name {
      type string;
      description
        "TE tunnel instance name.";
    }
  }

  grouping  client-svc-instance-config {
    description
      "Configuration parameters for client services.";

    leaf client-svc-name {
      type string;
      description
        "Identifier of the p2p transport network client signals.";
    }
    leaf client-svc-title {
      type string;
      description
        "Name of the p2p transport network client signals.";
    }
    leaf user-label {
      type string;
      description
        "Alias of the p2p transport network client signals.";
    }
    leaf client-svc-descr {
      type string;
      description
        "Description of the transport network client signals.";
    }
    leaf client-svc-customer {
      type string;
      description
        "Customer of the transport network client signals.";
    }
    container resilience {
      description "Place holder for resilience functionalities";
    }
    uses te-types:te-topology-identifier;
    leaf admin-status {
      type identityref {
        base te-types:tunnel-admin-state-type;
      }
      default te-types:tunnel-admin-state-up;
      description "Client signals administrative state.";
    }
    container src-access-ports {
      description
        "Source access port of a client signal.";
      uses client-svc-access-parameters;
    }
    container dst-access-ports {
      description
        "Destination access port of a client signal.";
      uses client-svc-access-parameters;
    }
    container pm-state {
      config false;
      description "PM data of E2E client signal";
      uses pm-state-grouping;
    }
    container error-info {
      config false;
      description "error messages of configuration";
      uses error-info-grouping;
    }
    container alarm-threshold {
      description
        "threshold configuration for the E2E client signal";
      uses alarm-threshold-grouping;
    }
    leaf direction {
      type identityref {
        base clnt-types:direction;
      }
      description "Uni-dir or Bi-dir for the client signal.";
    }
    list svc-tunnels {
      key tunnel-name;
      description
        "List of the TE Tunnels supporting the client signal.";
      uses client-svc-tunnel-parameters;
    }
  }

  grouping  client-svc-instance-state {
    description
      "State parameters for client services.";
    leaf operational-state {
      type identityref {
        base te-types:tunnel-state-type;
      }
      config false;
      description "Client signal operational state.";
    }
    leaf provisioning-state {
      type identityref {
        base te-types:lsp-state-type;
      }
      config false;
      description "Client signal provisioning state.";
    }
    leaf creation-time {
      type yang:date-and-time;
      config false;
      description "The time of the client signal be created.";
    }
    leaf last-updated-time {
      type yang:date-and-time;
      config false;
      description "The time of the client signal's latest update.";
    }
    leaf created-by {
      type string;
      config false;
      description
        "The client signal is created by whom,
        can be a system or staff ID.";
    }
    leaf last-updated-by {
      type string;
      config false;
      description
        "The client signal is last updated by whom,
        can be a system or staff ID.";
    }
    leaf owned-by {
      type string;
      config false;
      description
        "The client signal is owned by whom,
        can be a system ID.";
    }
  }

  /*
   * Data nodes
   */

  container client-svc {
    description
      "Transport client services.";

    list client-svc-instances {
      key client-svc-name;
      description
        "The list of p2p transport client service instances";
      uses client-svc-instance-config;
      uses client-svc-instance-state;
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="other-client-signal-types-yang-code">
        <name>Other Client Signal Types YANG Code</name>
        <t>This module defines the types for other client signal types.</t>
        <figure anchor="fig-cbr-types-yang">
          <sourcecode type="yang" markers="true" name="ietf-trans-client-svc-types@2024-01-11.yang"><![CDATA[
module ietf-trans-client-svc-types {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-trans-client-svc-types";
  prefix clnt-types;

  organization
     "Internet Engineering Task Force (IETF) CCAMP WG";
  contact
    "WG Web: <https://datatracker.ietf.org/wg/ccamp/>
     WG List: <mailto:ccamp@ietf.org>

     Editor: Haomian Zheng
             <mailto:zhenghaomian@huawei.com>

     Editor: Aihua Guo
             <mailto:aihuaguo.ietf@gmail.com>

     Editor: Italo Busi
             <mailto:italo.busi@huawei.com>

     Editor: Anton Snitser
             <mailto:asnizar@cisco.com>

     Editor: Chaode Yu
             <mailto:yuchaode@huawei.com>";

  description
    "This module defines a collection of common YANG identity
    definitions for describing Costant Bit Rate (CBR) transport
    network clients.

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

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

    This version of this YANG module is part of RFC XXXX; see
    the RFC itself for full legal notices.";

  revision 2024-01-11 {
    description
      "Initial Version";
    reference
      "RFC XXXX: A YANG Data Model for Transport Network Client
      Signals";
  }
  // RFC Editor: replace XXXX with the actual RFC number assigned
  // to the RFC once this draft
  // becomes an RFC, update date information and remove this note.

  /*
   * Identities
   */

  identity direction {
    description
      "Direction information of Client Signal.";
  }

    identity bidirectional {
      base direction;
      description
        "Client Signal is bi-directional.";
    }

    identity unidirectional {
      base direction;
      description
        "Client Signal is uni-directional.";
    }
}
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>[Note to the RFC Editor - remove this section before publication, as
well as remove the reference to RFC <xref target="RFC7942"/>.]</t>
      <t>This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in <xref target="RFC7942"/>.
The description of implementations in this section is intended to
assist the IETF in its decision processes in progressing drafts to
RFCs.  Please note that the listing of any individual implementation
here does not imply endorsement by the IETF.  Furthermore, no effort
has been spent to verify the information presented here that was
supplied by IETF contributors.  This is not intended as, and must not
be construed to be, a catalog of available implementations or their
features.  Readers are advised to note that other implementations may
exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups
to assign due consideration to documents that have the benefit of
running code, which may serve as evidence of valuable experimentation
and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as
they see fit".</t>
      <section anchor="usage-of-the-eth-service-yang-model-on-onap">
        <name>Usage of the ETH Service YANG Model on ONAP</name>
        <t>The implementation of the CCVPN (Cross Domain and Cross Layer VPN)
use-case on ONAP follows the ACTN <xref target="RFC8453"/> architecture.  In the
design of CCVPN, ONAP presumes the responsibility of the MDSC, and
third party network domain controllers the PNCs.  Consequently, the
ETH Service YANG model is used as the MPI between ONAP and the domain
controllers.</t>
        <ul spacing="normal">
          <li>
            <t>Organization: China Mobile, Huawei Technologies, etc.</t>
          </li>
          <li>
            <t>Implementation: ONAP CCVPN uses the ETH Service YANG model as the
ACTN MPI</t>
          </li>
          <li>
            <t>Description: ONAP CCVPN realizes the E-LINE and E-TREE service on
a multi-domain network.  Both of the services are modeled on ONAP
by the ETH Service YANG model, and the model instances (e.g., JSON
objects) are sent between ONAP and the domain controllers.  Refer
to the following CCVPN wiki for more information:
https://wiki.onap.org/display/DW/
CCVPN%28Cross+Domain+and+Cross+Layer+VPN%29+USE+CASE</t>
          </li>
          <li>
            <t>Maturity Level: Prototype</t>
          </li>
          <li>
            <t>Coverage: Partial</t>
          </li>
          <li>
            <t>Contact: henry.yu1@huawei.com</t>
          </li>
        </ul>
      </section>
    </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 network
domain controller.</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>
      <t>There are a number of data nodes defined in the YANG module which are
writable/creatable/deletable (i.e., config true, which is the
default).  These data nodes may be considered sensitive or vulnerable
in some network environments.  Write operations (e.g., POST) to these
data nodes without proper protection can have a negative effect on
network operations.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>It is proposed that IANA should assign new URIs from the "IETF XML
Registry" <xref target="RFC3688"/> as follows:</t>
      <artwork type="ascii-art"><![CDATA[
         URI: urn:ietf:params:xml:ns:yang:ietf-eth-tran-service
         Registrant Contact: The IESG
         XML: N/A; the requested URI is an XML namespace.

         URI: urn:ietf:params:xml:ns:yang:ietf-trans-client-service
         Registrant Contact: The IESG
         XML: N/A; the requested URI is an XML namespace.

         URI: urn:ietf:params:xml:ns:yang:ietf-eth-tran-types
         Registrant Contact: The IESG
         XML: N/A; the requested URI is an XML namespace.

         URI: urn:ietf:params:xml:ns:yang:ietf-trans-client-svc-types
         Registrant Contact: The IESG
         XML: N/A; the requested URI is an XML namespace.
]]></artwork>
      <t>This document registers following YANG modules in the YANG Module
Names registry <xref target="RFC6020"/>.</t>
      <artwork type="ascii-art"><![CDATA[
   name:         ietf-eth-tran-service
   namespace:    urn:ietf:params:xml:ns:yang:ietf-eth-tran-service
   prefix:       ethtsvc
   reference:    RFC XXXX: A YANG Data Model for Transport
                           Network Client Signals

   name:         ietf-eth-tran-types
   namespace:    urn:ietf:params:xml:ns:yang:ietf-eth-tran-types
   prefix:       etht-types
   reference:    RFC XXXX: A YANG Data Model for Transport
                           Network Client Signals

   name:         ietf-trans-client-service
   namespace:    urn:ietf:params:xml:ns:yang:ietf-trans-client-service
   prefix:       clntsvc
   reference:    RFC XXXX: A YANG Data Model for Transport
                           Network Client Signals

   name:         ietf-trans-client-svc-types
   namespace:    urn:ietf:params:xml:ns:yang:ietf-trans-client-svc-types
   prefix:       clntsvc-types
   reference:    RFC XXXX: A YANG Data Model for Transport
                           Network Client Signals
]]></artwork>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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 G.875" value=""/>
        </reference>
        <reference anchor="I-D.ietf-ccamp-otn-topo-yang">
          <front>
            <title>A YANG Data Model for Optical Transport Network Topology</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="Xufeng Liu" initials="X." surname="Liu">
              <organization>Alef Edge</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <date day="7" month="November" year="2024"/>
            <abstract>
              <t>   This document defines a YANG data model for representing, retrieving,
   and manipulating Optical Transport Network (OTN) topologies.  It is
   independent of control plane protocols and captures topological and
   resource-related information pertaining to OTN.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-otn-topo-yang-20"/>
        </reference>
        <reference anchor="I-D.ietf-ccamp-otn-tunnel-model">
          <front>
            <title>A YANG Data Model for Optical Transport Network (OTN) Tunnels and Label Switched Paths</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="4" month="June" year="2025"/>
            <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-23"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC8294">
          <front>
            <title>Common YANG Data Types for the Routing Area</title>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="C. Hopps" initials="C." surname="Hopps"/>
            <author fullname="L. Berger" initials="L." surname="Berger"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>This document defines a collection of common data types using the YANG data modeling language. These derived common types are designed to be imported by other modules defined in the routing area.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8294"/>
          <seriesInfo name="DOI" value="10.17487/RFC8294"/>
        </reference>
        <reference anchor="RFC8345">
          <front>
            <title>A YANG Data Model for Network Topologies</title>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="J. Medved" initials="J." surname="Medved"/>
            <author fullname="R. Varga" initials="R." surname="Varga"/>
            <author fullname="N. Bahadur" initials="N." surname="Bahadur"/>
            <author fullname="H. Ananthakrishnan" initials="H." surname="Ananthakrishnan"/>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines an abstract (generic, or base) YANG data model for network/service topologies and inventories. The data model serves as a base model that is augmented with technology-specific details in other, more specific topology and inventory data models.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8345"/>
          <seriesInfo name="DOI" value="10.17487/RFC8345"/>
        </reference>
        <reference anchor="I-D.ietf-teas-rfc8776-update">
          <front>
            <title>Common YANG Data Types for Traffic Engineering</title>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei</organization>
            </author>
            <author fullname="Aihua Guo" initials="A." surname="Guo">
              <organization>Futurewei Technologies</organization>
            </author>
            <author fullname="Xufeng Liu" initials="X." surname="Liu">
              <organization>Alef Edge</organization>
            </author>
            <author fullname="Tarek Saad" initials="T." surname="Saad">
              <organization>Cisco Systems Inc.</organization>
            </author>
            <author fullname="Igor Bryskin" initials="I." surname="Bryskin">
              <organization>Individual</organization>
            </author>
            <date day="21" month="February" year="2025"/>
            <abstract>
              <t>   This document defines a collection of common data types, identities,
   and groupings in YANG data modeling language.  These derived common
   data types, identities and groupings are intended to be imported by
   other modules, e.g., those which model the Traffic Engineering (TE)
   configuration and state capabilities.

   This document obsoletes RFC 8776.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-rfc8776-update-17"/>
        </reference>
        <reference anchor="I-D.ietf-ccamp-layer1-types">
          <front>
            <title>Common YANG Data Types for Layer 1 Networks</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="23" month="February" year="2024"/>
            <abstract>
              <t>   This document defines a collection of common common data types,
   identities, and groupings in the YANG data modeling language.  These
   derived common common data types, identities, and groupings are
   intended to be imported by modules that model Layer 1 configuration
   and state capabilities.  The Layer 1 types are representative of
   Layer 1 client signals applicable to transport networks, such as
   Optical Transport Networks (OTN).  The Optical Transport Network
   (OTN) data structures are included in this document as Layer 1 types.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-layer1-types-18"/>
        </reference>
        <reference anchor="I-D.ietf-teas-yang-te">
          <front>
            <title>A YANG Data Model for Traffic Engineering Tunnels, Label Switched Paths and Interfaces</title>
            <author fullname="Tarek Saad" initials="T." surname="Saad">
              <organization>Cisco Systems Inc</organization>
            </author>
            <author fullname="Rakesh Gandhi" initials="R." surname="Gandhi">
              <organization>Cisco Systems Inc</organization>
            </author>
            <author fullname="Xufeng Liu" initials="X." surname="Liu">
              <organization>Alef Edge</organization>
            </author>
            <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
              <organization>Juniper Networks</organization>
            </author>
            <author fullname="Igor Bryskin" initials="I." surname="Bryskin">
              <organization>Individual</organization>
            </author>
            <date day="29" month="May" year="2025"/>
            <abstract>
              <t>   This document defines a YANG data model for the provisioning and
   management of Traffic Engineering (TE) tunnels, Label Switched Paths
   (LSPs), and interfaces.  The model covers data that is independent of
   any technology or dataplane encapsulation and is divided into two
   YANG modules that cover device-specific, and device independent data.

   This model covers data for configuration, operational state, remote
   procedural calls, and event notifications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-yang-te-38"/>
        </reference>
        <reference anchor="I-D.ietf-ccamp-l1csm-yang">
          <front>
            <title>A YANG Data Model for L1 Connectivity Service Model (L1CSM)</title>
            <author fullname="Young Lee" initials="Y." surname="Lee">
              <organization>Samsung</organization>
            </author>
            <author fullname="Kwang-koog Lee" initials="K." surname="Lee">
              <organization>Korea Telecom</organization>
            </author>
            <author fullname="Haomian Zheng" initials="H." surname="Zheng">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Daniele Ceccarelli" initials="D." surname="Ceccarelli">
              <organization>Cisco</organization>
            </author>
            <date day="11" month="April" year="2024"/>
            <abstract>
              <t>   This document provides a YANG Layer 1 Connectivity Service Model
   (L1CSM).

   This model can be utilized by a customer network controller to
   initiate a connectivity service request as well as to retrieve
   service states for a Layer 1 network controller communicating with
   its customer network controller.  This YANG model is in compliance of
   Network Management Datastore Architecture (NMDA).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-l1csm-yang-26"/>
        </reference>
        <reference anchor="RFC7139">
          <front>
            <title>GMPLS Signaling Extensions for Control of Evolving G.709 Optical Transport Networks</title>
            <author fullname="F. Zhang" initials="F." role="editor" surname="Zhang"/>
            <author fullname="G. Zhang" initials="G." surname="Zhang"/>
            <author fullname="S. Belotti" initials="S." surname="Belotti"/>
            <author fullname="D. Ceccarelli" initials="D." surname="Ceccarelli"/>
            <author fullname="K. Pithewan" initials="K." surname="Pithewan"/>
            <date month="March" year="2014"/>
            <abstract>
              <t>ITU-T Recommendation G.709 [G709-2012] introduced new Optical channel Data Unit (ODU) containers (ODU0, ODU4, ODU2e, and ODUflex) and enhanced Optical Transport Network (OTN) flexibility.</t>
              <t>This document updates the ODU-related portions of RFC 4328 to provide extensions to GMPLS signaling to control the full set of OTN features, including ODU0, ODU4, ODU2e, and ODUflex.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7139"/>
          <seriesInfo name="DOI" value="10.17487/RFC7139"/>
        </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="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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="IEEE_802.1ad">
          <front>
            <title>IEEE Standard for Local and Metropolitan Area Networks - Virtual Bridged Local Area Networks - Amendment 4: Provider Bridges</title>
            <author>
              <organization>Institute of Electrical and Electronics Engineers</organization>
            </author>
            <date year="2005" month="December"/>
          </front>
          <seriesInfo name="IEEE 802.1ad-2005" value=""/>
        </reference>
        <reference anchor="IEEE_802.1q">
          <front>
            <title>IEEE Standard for Local and Metropolitan Area Networks - Bridges and Bridged Networks</title>
            <author>
              <organization/>
            </author>
            <date year="2022" month="December"/>
          </front>
          <seriesInfo name="IEEE 802.1Q-2022" value=""/>
        </reference>
        <reference anchor="MEF10" target="https://www.mef.net/Assets/Technical_Specifications/PDF/MEF_10.pdf">
          <front>
            <title>Ethernet Services Attributes Phase 1</title>
            <author>
              <organization>MEF Forum</organization>
            </author>
            <date year="2004" month="November"/>
          </front>
          <seriesInfo name="MEF 10" value=""/>
        </reference>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC8453">
          <front>
            <title>Framework for Abstraction and Control of TE Networks (ACTN)</title>
            <author fullname="D. Ceccarelli" initials="D." role="editor" surname="Ceccarelli"/>
            <author fullname="Y. Lee" initials="Y." role="editor" surname="Lee"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>Traffic Engineered (TE) networks have a variety of mechanisms to facilitate the separation of the data plane and control plane. They also have a range of management and provisioning protocols to configure and activate network resources. These mechanisms represent key technologies for enabling flexible and dynamic networking. The term "Traffic Engineered network" refers to a network that uses any connection-oriented technology under the control of a distributed or centralized control plane to support dynamic provisioning of end-to- end connectivity.</t>
              <t>Abstraction of network resources is a technique that can be applied to a single network domain or across multiple domains to create a single virtualized network that is under the control of a network operator or the customer of the operator that actually owns the network resources.</t>
              <t>This document provides a framework for Abstraction and Control of TE Networks (ACTN) to support virtual network services and connectivity services.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8453"/>
          <seriesInfo name="DOI" value="10.17487/RFC8453"/>
        </reference>
        <reference anchor="RFC8466">
          <front>
            <title>A YANG Data Model for Layer 2 Virtual Private Network (L2VPN) Service Delivery</title>
            <author fullname="B. Wen" initials="B." surname="Wen"/>
            <author fullname="G. Fioccola" initials="G." role="editor" surname="Fioccola"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Jalil" initials="L." surname="Jalil"/>
            <date month="October" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model that can be used to configure a Layer 2 provider-provisioned VPN service. It is up to a management system to take this as an input and generate specific configuration models to configure the different network elements to deliver the service. How this configuration of network elements is done is out of scope for this document.</t>
              <t>The YANG data model defined in this document includes support for point-to-point Virtual Private Wire Services (VPWSs) and multipoint Virtual Private LAN Services (VPLSs) that use Pseudowires signaled using the Label Distribution Protocol (LDP) and the Border Gateway Protocol (BGP) as described in RFCs 4761 and 6624.</t>
              <t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture defined in RFC 8342.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8466"/>
          <seriesInfo name="DOI" value="10.17487/RFC8466"/>
        </reference>
        <reference anchor="RFC8299">
          <front>
            <title>YANG Data Model for L3VPN Service Delivery</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="L. Tomotaki" initials="L." surname="Tomotaki"/>
            <author fullname="K. Ogaki" initials="K." surname="Ogaki"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model that can be used for communication between customers and network operators and to deliver a Layer 3 provider-provisioned VPN service. This document is limited to BGP PE-based VPNs as described in RFCs 4026, 4110, and 4364. This model is intended to be instantiated at the management system to deliver the overall service. It is not a configuration model to be used directly on network elements. This model provides an abstracted view of the Layer 3 IP VPN service configuration components. It will be up to the management system to take this model as input and use specific configuration models to configure the different network elements to deliver the service. How the configuration of network elements is done is out of scope for this document.</t>
              <t>This document obsoletes RFC 8049; it replaces the unimplementable module in that RFC with a new module with the same name that is not backward compatible. The changes are a series of small fixes to the YANG module and some clarifications to the text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8299"/>
          <seriesInfo name="DOI" value="10.17487/RFC8299"/>
        </reference>
        <reference anchor="RFC8309">
          <front>
            <title>Service Models Explained</title>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="W. Liu" initials="W." surname="Liu"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>The IETF has produced many modules in the YANG modeling language. The majority of these modules are used to construct data models to model devices or monolithic functions.</t>
              <t>A small number of YANG modules have been defined to model services (for example, the Layer 3 Virtual Private Network Service Model (L3SM) produced by the L3SM working group and documented in RFC 8049).</t>
              <t>This document describes service models as used within the IETF and also shows where a service model might fit into a software-defined networking architecture. Note that service models do not make any assumption of how a service is actually engineered and delivered for a customer; details of how network protocols and devices are engineered to deliver a service are captured in other modules that are not exposed through the interface between the customer and the provider.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8309"/>
          <seriesInfo name="DOI" value="10.17487/RFC8309"/>
        </reference>
        <reference anchor="RFC2697">
          <front>
            <title>A Single Rate Three Color Marker</title>
            <author fullname="J. Heinanen" initials="J." surname="Heinanen"/>
            <author fullname="R. Guerin" initials="R." surname="Guerin"/>
            <date month="September" year="1999"/>
            <abstract>
              <t>This document defines a Single Rate Three Color Marker (srTCM), which can be used as component in a Diffserv traffic conditioner. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2697"/>
          <seriesInfo name="DOI" value="10.17487/RFC2697"/>
        </reference>
        <reference anchor="RFC2698">
          <front>
            <title>A Two Rate Three Color Marker</title>
            <author fullname="J. Heinanen" initials="J." surname="Heinanen"/>
            <author fullname="R. Guerin" initials="R." surname="Guerin"/>
            <date month="September" year="1999"/>
            <abstract>
              <t>This document defines a Two Rate Three Color Marker (trTCM), which can be used as a component in a Diffserv traffic conditioner. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2698"/>
          <seriesInfo name="DOI" value="10.17487/RFC2698"/>
        </reference>
        <reference anchor="RFC4115">
          <front>
            <title>A Differentiated Service Two-Rate, Three-Color Marker with Efficient Handling of in-Profile Traffic</title>
            <author fullname="O. Aboul-Magd" initials="O." surname="Aboul-Magd"/>
            <author fullname="S. Rabie" initials="S." surname="Rabie"/>
            <date month="July" year="2005"/>
            <abstract>
              <t>This document describes a two-rate, three-color marker that has been in use for data services including Frame Relay services. This marker can be used for metering per-flow traffic in the emerging IP and L2 VPN services. The marker defined here is different from previously defined markers in the handling of the in-profile traffic. Furthermore, this marker doesn't impose peak-rate shaping requirements on customer edge (CE) devices. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4115"/>
          <seriesInfo name="DOI" value="10.17487/RFC4115"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </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>
      </references>
    </references>
    <?line 2964?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We would like to acknowledge the contribution from Francesco Lazzeri to the initial versions of this document, before it has been adopted by CCAMP WG.</t>
      <t>We would like to thank Igor Bryskin and Daniel King for their comments and discussions.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="Y." surname="Xu" fullname="Yunbin Xu">
        <organization>CAICT</organization>
        <address>
          <email>xuyunbin@caict.ac.cn</email>
        </address>
      </contact>
      <contact initials="Y." surname="Zhao" fullname="Yang Zhao">
        <organization>China Mobile</organization>
        <address>
          <email>zhaoyangyjy@chinamobile.com</email>
        </address>
      </contact>
      <contact initials="X." surname="Liu" fullname="Xufeng Liu">
        <organization>Alef Edge</organization>
        <address>
          <email>xufeng.liu.ietf@gmail.com</email>
        </address>
      </contact>
      <contact initials="" surname="To-Be-Added" fullname="To-Be-Added">
        <organization>To-Be-Added</organization>
        <address>
          <email>To-Be-Added</email>
        </address>
      </contact>
      <contact initials="G." surname="Fioccola" fullname="Giuseppe Fioccola">
        <organization>Huawei Technologies</organization>
        <address>
          <email>giuseppe.fioccola@huawei.com</email>
        </address>
      </contact>
      <contact initials="Z." surname="Liu" fullname="Zhe Liu">
        <organization>Huawei Technologies</organization>
        <address>
          <email>liuzhe123@huawei.com</email>
        </address>
      </contact>
      <contact initials="S." surname="Belotti" fullname="Sergio Belotti">
        <organization>Nokia</organization>
        <address>
          <email>sergio.belotti@nokia.com</email>
        </address>
      </contact>
      <contact initials="Y." surname="Yao" fullname="Yingxi Yao">
        <organization>Shanghai Bell</organization>
        <address>
          <email>yingxi.yao@nokia-sbell.com</email>
        </address>
      </contact>
      <contact initials="H." surname="Yu" fullname="Henry Yu">
        <organization>Huawei Technologies</organization>
        <address>
          <email>henry.yu1@huawei.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
7KCk4oUWlAOiOAtb6Zw5O1mqtV0rzNPUVPXf4um8xmcXZ91ramJWxeCtXcva
hSBu9T2X3ueBLZNnHWtDuNoW12dtWA7RXZgVEmaxA/QZ26qB1b2XR0RbHERF
NGmqYeCXecD4AgTQKxWZVcR2JBzQLa+Hrs1ogCS2Yr4eav7QvkF8U2n4iCV8
c/XwQPWGLKtcl0Yd8L/K1Aotv5KpIVWAX4KOut59yl0t4OwHc6pXQnUAWmUE
0jY3wgWtPe3YbrXh1cnlyEQaoeYHr+RLq+ylrdcGT/Px0PqzJNYa3ttraYYx
breYOF/eykoMPK0rGVi9rVdB9Ft/Ge1rKPBRoLkciGgk4RzQnSL8xbGQDWRY
Z9gmwi3OsNXd4+/qR6FnFgjPq9fJdHRbnSo7pLcisY2lN/ezpHfdMKgykbst
Ax12uSjjIlrG8o1iCulSUSsqj5f4/cTWrJWF7GQzW0jni03+0M0rshNJbznq
Z6KAjpZZJAu827cnrzru8iV0RjJgFuXTMs+dMqDKwU+UgZdPVta0cxBeyWvS
vHq5z0j3YOzSoCin+JVVE6mRT2USZlHqUfDU9A0+3KLPV3nP9j0dXaRV6c7b
r+XFxWl9LU/MjLNbXIdKVrYgtWTWqp+CfZbLcpauosy9PHce10hfw4DPz56d
DyvxbkG9XA1zOccAirWA8/8qOv0MX45L+KGksVBfCbKMVmSA40u7WHoavZ8F
XZyRXKL7L9JOFktzNjl51b58aklSdLkXB2N3sp0Tre+EXI9TqOGYrwjliFWh
M7zvpvOFpYupi6mLi7M9j47Ukh/5gaCd4dNvCq7NQXa5asVWl1bug6sxeRjr
kXawRBhQZrFih/T0vefZ80pBqt2rNUpcNy/YvrzfibPvsVOlf4FkXWIkYKGH
FhnHlohXk2Xu2bt6veyNAXgGfW4wv6f09u3hwAy+IRS3iYf1MHSQJKpLXQLe
Q2rYhd767CK1Ik1bUP35vc5VHqUl3gbxJU5krkcK5yKXUo8cE8slBtDlJhza
JOk90Apva+gTwfbuzX8G6omMaZOliO3NXktO/2ls10luE3x7QP8PYrwJ+Xqc
tx0fnfl7u9y8dqrc5402FXj29YalrHsYlPsu0sYToYF80nBcdU9ZJSxvPN1h
HIX5hgujgTae6XH15Ybz6TTpjac80h033LiuQDH7VajujcSOMLEdV7W7vLcc
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
/w+CwtoWenQBAA==

-->

</rfc>
