<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ccamp-client-signal-yang-17" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.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-17"/>
    <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="2026" month="February" day="04"/>
    <area>Routing</area>
    <workgroup>CCAMP Working Group</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 125?>

<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 141?>

<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-\
                                                                 type
        |  |        |        +--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="1" month="December" 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-24"/>
        </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="23" month="January" year="2026"/>
            <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-21"/>
        </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="20" month="January" year="2026"/>
            <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-41"/>
        </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 2963?>

<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="Y." surname="Zheng" fullname="Yanlei Zheng">
        <organization>China Unicom</organization>
        <address>
          <email>zhengyanlei@chinaunicom.cn</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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
fiKGHZRU/dCCckAUZ2ErnTNnJ0u1tmuFeduang2weDqv8dnFWfeamphVMXhr
17J2IYhbfc+l93lgy+RZx9oQrrbF9Vkb1lN0F2aFhFnsAH3Gtmpgde/lEdEW
B1ERTZpqGPhpHzC+AAH0zEVmVcEdCQd0y+uhizsaIImtmK+Hmj+0bxDfVBo+
YgnfXL1cUD1CyyrXpVEH/M86tULLz2xqSBXgl6CjrnefclcLOPvFneqZUR2A
VhmBtM2NcEFrTzu2W214dXI5MpFGqPnBK/nSKntp67XB03x9tP6uibWG9/Za
mmGM2y0mzpe3shIDT+tKBlZv61kR/VhgRvsaCnxVaC4HIhpJOAd0pwh/cSxk
AxnWGbaJcIszbHX3+Lv6UeiZBcLz6nkzHd1Wp8oO6a1IbGPpzf0s6V03DKpU
5m7LQIddLsq4iJaxfKOYQrpU1IrK4yV+P7E1a2UhO+nQFtL5YpM/dPOK7ETS
Y5D6nSmgo2UWyQLv9u3Jq467fAmdkQyYRfm0zHOnjqhy8BNl4OWTlXbtHIRX
8po0r17uM9I9GLs0KMopfqbVRGrkU5mEWZR6FDw1fYMPt+jzVeK0fU9HF2lV
vvT2a3lxcVpfyxMz4+wW16GynS1ILZm16qdgn+WynKWrKHMvz53XOdLXMODz
s2fnw0q8W1AvV8NczjGAYi3g/L+KTj/Dp+cSfmlpLNRXgiyjFRng+FQv1q5G
72dBF2ckl+j+i7STxdKcTc5+tS+fWpIUXe7FwdidbOdE6zshF/QUajjmK0I5
YlXoDO+76Xxh6WLqYuri4mzPoyO15Ed+IGhn+HacgmtzkF2uWrHVpZX74GpM
HsZ6pB0sEQaUWazYIT1973n2vFKQavdqjRrZzQu2L+934ux77FTpXyBZlxgJ
WOihRcaxJeLVZJl79q5ecHtjAJ5BnxvM76ndfXs4MINvCMVt4mE9DB0kiepS
l4D3kBp2ocdCu0itSNMWVH9+r3OVR2mJt0F8iROZ65HCucil1CPHxHKJAXS5
CYc2SXpQtMLbGvpEsL1785+BeiJj2mQpYnuz15LTfxrbdZLbBN8e0P+DGG9C
vh7nbcdHZ/7eLjevnSr3faRNBZ59vWEp6x4G5T6stPFEaCCfNBxX3VNWCcsb
T3cYR2G+4cJooI1nelx9ueF8Ok164ymPdMcNN64rUMx+Vqp7I7EjTGzHVe0u
7y0HoE/eA5USKDZbLPcqTXf/M3E4m5l4I9gWaK11TR+c5oWqVmDrb1h1i0Uz
nDH9PQjzwUnnN45BaXbBZWvD9pU2E9a/rlpWqe41DV8bgPUXfcy60XBqebFn
vTczndONC3RTjkxt6turr3wW1ZWiO5kLct1dVsvZ7bbbq2bO/WAF2L1j1yvj
Alebaw1kumTa+lgrkhPYUjkobEuOpMc0zLJr5UsyXftgseEpaTp3rfoBvT1D
dWdfNYh7fis/L5N0V79y6aEox4HDsGLuA7sWqF8fLdKIQdsT6JGC5/TzZtKv
3Wu6KRI3R18H4ioCsxHYcKh6uHWH67T3ivxu006vvw2mDUIrnE7WuQtiM3e8
m1lFi4ZA0aN7Jm7krN/65DiDyotoWzglp1f49whuv8+I+I379DZomGpIjPRY
XaUL2xetLrpD/ch2SjcUl5fi5LGRXGpjm9i5RRAtnNwKnDrB/zcDsAmXc2NV
u7TwAwK2LuXJIf2A6KqzqsrXpy+8+FDW3HyN6auaHV4AxE7tHXK8y7DlaW3e
ajjfzC7TbsDYzq1b7hN2z57vKUWrCohTECkKpSIeXfZcifmRYhFNs5TjETuP
sB6QL/60Sty+H56bjSaGOjwehHxbR2gJR6jKqzTXevClV9ryxmIXjxpfL8DS
02wQOzMJhBVrekEM0VhtU5iyLVswVtTxVDIZRTwhd+VFwRG9CpdLCce+dR/a
FLz2zTjEHpbTy71bqtOcR0+9MfWF1uyteqymwE+r6GIF0ki84Cw9KVw6lm+m
kkKVo7yaoWJowM0IWwK+L2FqYG1AAPO5zKxgqCaGPaZIO3J1hh+tq+pZC+7T
um/Fv6ymrWNf2BG8imZCvHZLpBVTYO2nXrpK1YnRRW/f0uG1xkAn1ACzn0Uz
lwep/lEyjcuZHGCGrMyKgfjp4uVAfK8egRWoD2QDfNrdVekLOXYe/K0enF1S
YHoRybyVvbQbVT2RT5Faxo7zB1e6NnTteddtvDWJ5RpqGpM1K1p4uInvodit
IGkGPK2Fpxc42zl8OHmq4fTZBkXOO7bbBAY4A/RS9GuREcZKNiVRcKSKz3DA
z1U5GeTL9JXE7IdrfLUY/tMWQdM4/m0BCdbp7eIwA5XYjSfb9M6LclaPsXO8
Kc7zvY5DpfZGr8YamsIyptoDudg5sNxCZlK6cD2hC1dLszyhG9ZlmucYboBX
rXG0iPimcBG+qQalm1dcy/Le0urv3sHqj9Nzp8pmM/EDLb4uzmfVbh6w1TkB
vRFCyaFtujRlxe3skLPGofVr6a1BOI81KMaD4Jt8p063rg+lESvaOEUdL8tu
c6Y6hut1wnR0Si1tm1Kj3COj0kO883WfnUNGpD8znN675WgJOyi+yiivhcR4
3sd1wmJEkmLObaQ8F7bqa6ixmczdOmB3ImKVBtWaGch5Wk4kRWuAxpGCAkW4
KplU5ibArTG2Jz7Ds5iqjS9k25N3iJ9GOl6v/ENdn2DIiYg7duohDcJ69prO
U9XZ6vrWGaY9D7GZnKdyEYEC6HGBtTmIQJKNEbbPQtw2D7GWidhOMr4F98xH
tFHSGOPGmYi3kYvoz0as4eZ962Fszw68tTPpncLpf4Nj+huEUW0dlLQuGMkR
JYSCtvyvijX50/RbL9DtOxqdHe/m53PT1ryuVtXAzu2qDduZ2NWS2tWZ3OXw
Zt97bjVeWJFTBVRv1nFuA16hqn4Mj9/gwerKJBoIsFrr3SgkH+3W3LpMoHO+
BALhoHOV0aNOVsvBfu8iriVFy7no64M6h3wPcy8uamy4ka1VG7LPftTPjRqo
dc73LRDIWwLgeIP5m3vSlj3VTJjo4T0w1Ypa3LVHDV9OxbtgQpmEk7plql4a
bbeRq9MN1MgDqBJsvkSMNQFXm4fj8Z3uEqabpCVrF3YY1a1HIKrb9lX/+W4c
cehZohu39AECDD3LbJ+zRrnNEOeNSPcnj8vRItPVtn6lEzuzqzJqMHLSxHX7
3DbqsartvWrts3l8RM7bVu6cnienugFQYwkeywYD5NDZT77FOi9g3Wz6lzzU
JrM3n8naxqRvjtLLkr8gt6vVleYcALWv8IITFVEPyNazXB8gGGGjjDRvBhdV
pfpJqBPZmgi3PnnaO21VyuBMNb9MzWD1QBmLMfTLMrY8ffrpJ8e3p5536kTM
oUpWwXNMHfJ6Kp5+JKrm9qJiU2u9Xk2HtWcaky2HkFRPTFkzNnNmOmp50B3w
xZnOm9FOXUvtoHX5i3fUvXlrimGsn2utItN/1ztu/v5Q1WD4bP3vLgezbTWY
LYrBbFgL5n9QIRg+W3Rt0ERTI8Gs7YTWM+nWHkNCDHcyXK7JclqIQxGGehpV
js3rqPqf+K/apikPmoktdAWiR6pjoPYS1HK6YleBntaYrspBz61uLrwx7k73
tgvRtwD07PysmoyKxOnm7iMRnz+8/4XHaHFed90c2Ko/KDjsx4x6AGy6bQDx
e7tuMNVIxooIVuFgywRXx7ad4uyU4oq1mgEUD+nmr09VIxMh5MYjUyyCGbLS
DVBYt3Ggmuj2c521wlzf37WIJFVaoJJK+GmPkDW00pdxb6gKbMQOb1C0qn63
a64tHd3PSYRZqxobHfDe0gn+NGNXSHTvI2tJPUbetlSQ8GvsrQRgNlPfItJo
uZ/lN4OrfYz9vf/dRYznUnm3GHA2XITZK5nl3+wUGagR9i8djzJ+V1VTH+GA
O9Y7jOZFJbqIhh13H0cyHAPrKlzKlZjpOvIqRodY8NtvgZ3c+/LhV/wikvrr
Ab+WhH/dPzj4gv/CC5p/0gVNOKt/8+/37+mu5O3b58dPDu72eTuJaJS28dZe
TqIhaSc9L5YEH5/q+PhUx4ZPdUzTOFZXLhQEXD0ZpTWAAQkzGsPcrRqtjgaK
+NbFfeXD88IHjeG+8pF/fILj4xMcH5/g+M2e4GD/NartlSqtDz4VlnFKUHer
1G7ohEKIdVZhxKl3vMrb6v7cqYGpOAqTyIqzG4PBnTW/9Vm1akVL3v1LlPxl
z567mnltXJkvic0b/eVHaFfgFS2vRyiaP7QSCb7taRIXhq5YrRvB0Pk8iguD
s4s6aKnbgjPk2jmDTbxuLJTnsqAJwlpt/UjD6qNnuh+wWr/AiJGjoXlfI+Jg
zGVhMiI64c4/INyeE+GF/vwG0GMuzIdYgoocA15fxX+ZYewVHLMXWEdGeYE3
gDct5u5j37z2uDDKfp3cF/JyeHB3OFkt3ZPmn7PzkIE1Iw7uisbsLQctu5wO
0Zi6lblRvuFgm87+4DZnf7DR7Ggs3trsOFj37A1J0k1DprJCzaHTIjzuLS1H
WY1Zr12AmYNjvIuUg72rig7HZ88G4vjHs2d7bVw7W9wKAFmaYq4qldMr6kAM
L14eHwMcZ/SPVlCo8sRtAMNF/TRKPDCZPgAbRWACaPBfFzIDV71ORfveV0Uq
zqmlf8+rghTOOjcqh3Gix2hDJiZhJTea4oxHaJ1Ah9ugbmsFnG0xkYqzeckj
+TfBl2TTEt6iy902smLGViKM4EwY1a/Kh7G2rDoj61LhurJgagESVYYcz11l
xahsGOEBoFk8uAGBlRG0su4dVa4GlT31Fvyl3tzKT614soGlRgu0w51N9tQk
bqutgwaartukx8KBxQ+nJ+qFNOAS+PC7OqFsr5sxFrCLYOFRmX57LOyulqh3
HU70yekxdafDbcZoJJV51jkJp6/K5a0sUw3Vuco2WNDdr1JmbgUWuj7oBYR1
vOu1btcSvd3FovpBk8Y9JN4aItRF6VeqpJdx++fWOPg6GxjxZz/tUcVrHfBD
g1RBP81bLVL56G8yxRGUmbwU9ht8CrTWW7ouq/Z9G+sycWw5hYpTasVUdFn1
ddBqRtcG4LkK+4YgdlpxDqD8lKANHqfRG8iql9/u3314f2cNOMjsD+4NJxHn
FwxPHjuvIhBcFwDXlQyBRn3wOG9N2nDxHZqBaxkW6MIXO7t/Pxg+/Mff78L/
vL07+Pz97rD2xd63O7XkHgB0d7C+295ne+vWW8U88WOLs3yAzDxBl99rFHX8
nBj9SMvCVBXDFUIsujtjATDD9Gj9+OEBMUtEuDG0yJ2oLURTCB0TY5B/UH/4
zgeNHgE9qdG8TEFdYlDshiPxYxgDIei/Tf4P75weg6nhAOdG6FgmqNRvs8um
VLKLhZZVj8ydKmYDyTfhYhnLsTgYgCl3cPfu4Av8P/rn3Sa5dJqT3aetyzrZ
8Lg1jdQWtuCxV7qBbGrafUCjwv3rjR4NVYs23Q2ZX5/sC11c18vFqMn7u15C
brnj7uNI8L6lxBURnOLpLTf8zagQ6+p9C5P3wtqs1gt/Kz7l6OSlO32PCrZH
6UJdwJxYuu9LVbX2z5Nl7pnn0fkN5nlUZsAEzqNfaQac5NF1VbDGmua4ezn7
n4lTycwuqh7QCAvqp15+VVXkOZJLe080V2k8TTlZuVv5jdipHEc7yL2dZyj9
PWyXyyZ9tKNk59Pe8P2pmu4r1ZUbd2esH78hXbVtvyt5eJJwJJ26hsJVDcQZ
YPcbIrU7iGnPtm1BHQoklzSYLmx/oh8gmO8bosk7OHcToCnYk9kwXGGWmwPY
2rQaYb8GuZKhsdR4yAU9/lMhzJ6Iigrhn5MYqNNX1AzYFT1MfhmH8064Wgn9
SA0hnsTsYdWhqbrsQYU69lpuSfn9yMqBZl1myrpwyXZu3QzOndt1W6ww+4/c
+iO3/sit/zDculHBqWIP7dzg8HUYxZTvyI2hLXIB/daMU5LMN6Sz6OqWrHre
HY0L9bHurfi/XLZsxzp2bfkvTSh1yTErKflVFKcTHHFpSlp0oodyuqgwVhbZ
SeA+Xzelf720mrZiqXHrX2eNtm/Fs2rrorgyddxcvixKM3QjNbbggXc83b5d
phhsrMNA66odZ0dzzfzz12ZHW25IzcqjWQ9gwTySyybEGlb61anHa4VsGIK2
xvB7aWp+mi8aVKxr7R50krAFU/0tWlOHCaz9TJVPspUPdGLaS3DLSdTji1Dn
MnU/wtmYI7HQbfkoi2ZzWXtFwxNqS1t2w2BbGqMl1PYFqYEc1KTCmarwWzfi
NlqgQMu1Pc1vrPJvgKMsXYi3b/8EzPHLhw8PONz2TyfDxxQ9NqQA0GH1wBOp
mzGH2VatChnmQxArD7766ktVhbYj1JZCC4ccSqgDiolSOgNuCd3rg259g9Ne
qdDbaZxQADWpZYwZhoomr4J/TQf8nvfazXUQiK6xOLKCLytnsOWutqbQORju
BPpb3yQ/w2eMwWxULcUOBrbntadsjWXDobaPZaMwtmHbZge3E99m4yoOr2V2
4MNXfNCOr7/Bpy0k8BmOKA76YQsHuhVs8QGyV/MBkKXDcx08JSsfhh58fv+L
NgzpUMkLvv2M2uhYTWeeP6jNW3yoed2zrV62qFEHnW8ffWgZDLBsEziqbxb/
mJGjHzMMPmYY7GySYUBHgyIPFuZoVGkC1NNkCNSyA6p8NB1oLvUgJb6tin5t
DM7XVK/P2fMwCdklQ93wXGK1XSkOs+lVhMEHeB28e/r88eHexwSEjwkIHxMQ
frMEhK6bL0s8N0q4dkRhtTITRpQpIeuvuV97TN4xRe0Hm1SDtS7UZuVpNX9C
3na+R744NnFi7c+3mzfgHZiS1fhWQVFIawcjLpadiKGf18ICK46j5BVxHv3a
qSrqa5dUsjEzqEKyVFTAnGPNiKpr+4Z+WV38sFqpGeAZzu15afWZ/3FYa+nN
DSjG/Zbca72aZs2i+64Z4Vq36Iszz72NOmRs9zsr66gBoC2nsdO96Yrx3UDZ
ELpvHHB+YZ6n04hCqBS7Qu4N57n9CuZ/0pMj3lcf2p1vt/juiFnsx2dHPj47
8ps+O9JEsG2p11/Eu4EqoKq4tKgCaqbtCvUdV28BqvoyOE7HY3fWEjd/9bV2
mmlD6zaUszZrtq3W13yIFctgtBtyjHBf3IC1s1s9C2uXEdkShtt6JfbmKKA5
NgbiscXHFCg3A+PW3pXdDIy+L4Co8G/hT3q4LBMySEOuR+TM0P/d1T/E25pH
NctmzfOaTo2ZzHrhJLMeOPHu67lySujXN9iWDt3drD141GW++WGa5cUGMAHV
F1qV/sCANZ7zW1NDs/GwX8ebtC2P+tVB8DzptxaIvq/8dT/yV4fk9/ZgL53U
ZuX4dce0cu+PTecOA0bs/JBEQ2iJUTWP+F96EV5is8pOVWqLW2/KUjC6L6ut
N3lAsbhQQ6n4Il1PsifJd7wo3EMj2eYBXo8iYvbtP/H67tpz4rDR38kbuxsC
/eFe3F0LCAUKRpUS5hoQE6kfp73Nl3hvBtSnOdksG77R69GBNiql3P/R3h5P
4bYh8UPC2/1A7mZAN17vvXVoaYb1YLrQbVBnsuKOfQzQVmMMWbuH0bqComat
9XA1VqUJixYYnDqF3LcuKloKFbY2swoIeqOZppNs+8KBvnCcDSKaKFajLa5J
31bqdCKWWykN03RR5j3jkZywgtuPSNLDN2KSVMxC4Lms/3hbXxvl4239pvUA
Fa9rrft3lCI3KEBHLjiye/fo0cu9j1UAP17Cf7yE/51ewndWAaxb1h4cPzZN
as/SOCLYX+JjEpkJ6oVcGma53+XoiHlY3oSMcz1kW5mLMrn1icukZWaPGnSD
oG6/FuBVhcQJppjjieYt4QzkIPjl76dpIW0CY0oVQ4dQcrWrE3mJ0VPLchIb
NhfmwUrCAQ3zqotVkhnHxnG5xPJXD+/fe/9+9A+ldelxAVVpNmO1SzlZgWhe
JaC6Y7SmBbnm6QEWj0lBSAnr2QqGVaWoK5LnNzG1BbhMc+Jzii0FWgkaPsbT
NNDPYqoXbxN8GD5LoVMYa8nGKS3OaoKL5jPedagpqMJacZTTy5/JjO7yAzzv
eVFxa0xJKzDvccoMDqBA/6SkgeAPegKH6u4i3Bj3FgA8OQi5M7Cq8LmOVOeh
6fIEatn42jYmqr2OZshzXDgD0HNhKankvDX8EYuizECWUiNGMsMIcz0pM9SM
F0ATA3zZV16iGAqugBQmWNMBtoIkHkoDfdHv3DpzogWggOYlcFdAT+jPojcI
YTpCB8pCks4AyEhJGJVbZ7AY5rx9VMUBfgkm+s3NktPzJljPB8w+1NAYFSZ7
qUFj5M6LsuASDPMSoByhjMT6HfymZDhjSQyjVohmK6E+1CK8DuhFU2C0h1Mk
cyVnbRIaoH8UFrSK8CDF+KAayja5oglhUbpqEvnk8gC6s4QQs5JXiYkk6l2p
1Cp/ToBdhepQTmQChwUFb5CVCXmIkKcMVOYL1jcitQjPssTcFDy/gCi8zyU8
yTeg0UQVuSBol1LOsMyQNdcCMMWbrZGBGpA6sKhrZtgGETsKTugV23KpeZBF
m+6isQEqZYQoR6oBPq4kgi4FrG5nRKbfDzpSoFDvl+vClCTUWZ5D5xenh2cB
HWB343TPo6Mfz05Bc83SPAetCLRrFqP8Bcf/Q4u9AEAbclYgDwrKAu4j87TD
o4tTteEP7n/xOVaQtwJQR5RSiEyNC0uRwMR5BzwSHpNyoaxS+PcS95tfC9Zg
Pn98fkTkD6iIMooigB+1cj1juOkUoVqf8VBnp8QxjmA4+e8SVh5fk6IZNNDF
sba6CkvI3Z+fnZjqLQSn1st5usCaDrZkKF5YNijaL6BOwz7AOoAAvycrRVzI
6VWi4vUHQhZT6ujKrjFPxhvD13i+HWaQGdSA8A/w4mjWHakzVCbDOPpVD2fX
78J6gcZZglTPtf2GCq06UE6IRynaBM479cwvCBiWKERwio36ga6eYlZoN56g
Xa4c99/nL06DlMyHfI/fuCXe3L4X9tYTKwPhHKgDx3RKBhvhYRW9ikjTpWNq
HbRxoM0AbDICzWZJNgCYTqDUXu8//mk/oCH+z70HdDzu8Hm5A7Dc4S/ovNyh
Jg/v/HB+fOfo8PwYN+U5cgOk52fytYwpN65IUZ3BH4+wog6cZvgayBp0eP6S
XBFjEB1Jdj26Lg8sUxc1Ho79Vq9qE5EbHgmKz8Wjx9gIrCWet/E7BwGFFnqq
HdEqhxbqmt9S6a83YHgnc1DdX0chVx1TBX4Gir+BxnGJNoDeL6plNL2SdF0L
zXHrQk1VQWMDRwycbVC1wqN9nHS5CQ0AJDoPL4/PL45enD4RDS2KdBvM3Htw
9/5dFExICOE1DKL6itNj6lopYCrT7979A0rQuyBZTlJSWzNwJGbGhepC6y6E
5RD0DVawKyhy9sk3Tv/CI0T/ErvRSMI5UG5hFPBahEW54qN0k75HuoLMpT09
SrlJJTQBEDg9eUQX5bDY12Wc4GPssQzI/F+YSFhQhF5HWZqQZIWRfwIQpf3a
tDqeZy/OL/aUOAML3Zpa+wmW9OC7Vf+QNopEJ278nG/tQZuCX5HhaADsV6BR
pz88PWwQLstT1lr1q/DUUIVZKb0hkSvxw8sTlayJ+7BDmtZfnz8LXso5ekOu
d5TI+vzLBw9QZOVapo2V2zPMp1E0DDPrcWkYcyz6P2NSL4Uq1NzoKTEn/II0
zvOnVSuAcixO9w+/ViIRpFeOOgbMrl61hxaVV7Wqt9UXQJ+P+XcHpJvU+7sD
z2+efnAwycJm89LwwYym4mtozc4tvpM7vOg5fRfwA5WZOguay929Z73449A/
gjA2YLeSuYGU2m51UtjFr+fCbH7ALv5gjG76rbcny/Ugu59axqJybwXrFmy2
etvlmgGai61++83X28YmNlx12zDu2vFK5/ey0e1n+0ZLtwfyLv632HtmKMPh
kKrpouA9nKJrChT6OfvI345Z0ZGzb3bokhp9bj+BOkMSN45ekRcsNL2kupVI
qisHEsNPMtLzpykYlr/+KjmRg5VG9l0rr3pu3Oqaww20ay5CE1y5X8JZulQ3
9PoWb+SBC1SE5JU4mWM4U3adv1IW7mMw1gB7f9YFqMghQhdB5FnAJqD5T8s8
Z4Xk/wMRqM9ywnQBAA==

-->

</rfc>
