<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.4.19 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-liu-teas-transport-network-slice-yang-07" category="std">

  <front>
    <title abbrev="Network Slice Topology Data Model">IETF Network Slice Topology YANG Data Model</title>

    <author initials="X." surname="Liu" fullname="Xufeng Liu">
      <organization>Alef Edge</organization>
      <address>
        <email>xufeng.liu.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="J." surname="Tantsura" fullname="Jeff Tantsura">
      <organization>Microsoft</organization>
      <address>
        <email>jefftant.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="I." surname="Bryskin" fullname="Igor Bryskin">
      <organization>Individual</organization>
      <address>
        <email>i_bryskin@yahoo.com</email>
      </address>
    </author>
    <author initials="L.M." surname="Contreras" fullname="Luis M. Contreras">
      <organization>Telefonica</organization>
      <address>
        <email>luismiguel.contrerasmurillo@telefonica.com</email>
      </address>
    </author>
    <author initials="Q." surname="Wu" fullname="Qin Wu">
      <organization>Huawei</organization>
      <address>
        <email>bill.wu@huawei.com</email>
      </address>
    </author>
    <author initials="S." surname="Belotti" fullname="Sergio Belotti">
      <organization>Nokia</organization>
      <address>
        <email>Sergio.belotti@nokia.com</email>
      </address>
    </author>
    <author initials="R." surname="Rokui" fullname="Reza Rokui">
      <organization>Ciena</organization>
      <address>
        <email>rrokui@ciena.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</organization>
      <address>
        <email>italo.busi@huawei.com</email>
      </address>
    </author>

    <date year="2023" month="July" day="08"/>

    
    <workgroup>TEAS Working Group</workgroup>
    

    <abstract>


<t>An IETF network slice may use a customized topology to describe intended
   resource reservation for connectivities between slice endpoints. Customized
   topologies enable customers to request shared resources among connections activated
   on demand and to customize the service paths in a network slice with 
   an extensive level of control.</t>

<t>This document describes a YANG data model for managing and
   controlling customized topologies for IETF network slices defined in
   RFC YYYY.</t>

<t>[RFC EDITOR NOTE: Please replace RFC YYYY with the RFC number of
   draft-ietf-teas-ietf-network-slices once it has been published.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t><xref target="I-D.ietf-teas-ietf-network-slices"/> describes that an IETF network
   slice service customer might ask for some level of control, e.g., 
   to customize the service paths while requesting network slice services.
   These customized controls may well be expressed by customer-defined 
   topologies, i.e. customized topologies.</t>

<t>Furthermore, by using customized topologies, customers can request advanced
   resource reservation for all potential network slices that can be activated 
   on demand in the future. This capability provides customers with full control
   over when and how resources are allocated by the slices. The resources can be
   shared by network slices created at different times as well as by connections
   between different edge pairs within the same network slice. This could significantly
   reduce the overall bandwidth requirements of a network slice and provide economic
   advantages to the customer.</t>

<t>For example, in a hub-and-spoke network slice scenario, multiple customer's 
   spoke sites are expected to be dynamically connected to the hub site and the 
   bandwidth is shared between the spoke sites. To create a customized topology with 
   two virtual nodes, one representing all the spoke sites and the other representing 
   the hub site, connected by a shared link between the two, can ensure that resources 
   for the shared connection are reserved in advance and hence are readily 
   available whenever needed by the customer. On the other hand, to achieve the same level
   of bandwidth assurance with connections, it would be necessary to create separate, 
   dedicated connections between every spoke and the hub. However, this would result 
   in significant waste of bandwidth.</t>

<t>This document defines a YANG <xref target="RFC7950"/> data model for representing,
   managing, and controlling IETF network slices over customized
   network topologies, where the network slices are defined
   in <xref target="I-D.ietf-teas-ietf-network-slices"/>. The YANG model augments
   the data model defined in <xref target="RFC8345"/> to enable a customer to 
   express desired service-level objectives (SLOs) and service-level expectations (SLEs)
   over various constructs within the customized topology.</t>

<t>The defined data model is an interface between customers and
   providers for configurations and state retrievals, so as to support
   network slicing as a service.  Through this model, a customer can request or 
   negotiate with a network slicing provider to create an instance. The customer can 
   incrementally update its requirements on individual topology elements in the slice
   instance, e.g., adding or removing a node or link, updating desired bandwidth of 
   a link, and retrieve the operational states of these elements. With the help of 
   other mechanisms and data models defined in IETF, the telemetry information can 
   be published to the customer, too.</t>

<t>The YANG model defines constructs that are technology-agnostic to network slicing
   built on network layers with different technologies such as IP/MPLS, MPLS-TP, 
   OTN and WDM optical. Therefore, this model can serve as a common and base model
   on which technology-specific models for network slicing, such as 
   <xref target="I-D.ietf-ccamp-yang-otn-slicing"/>, may be built.</t>

<t>As described in Section 3 of
   <xref target="I-D.contreras-teas-slice-controller-models"/>, using customized topologies and 
   control of resource reservation is optional for network slicing and complements
   the data model defined in <xref target="I-D.ietf-teas-ietf-network-slice-nbi-yang"/>.</t>

<t>The YANG data model in this document conforms to the Network
   Management Datastore Architecture (NMDA) <xref target="RFC8342"/>.</t>

<section anchor="terminologies-and-notations"><name>Terminologies and Notations</name>

<t>The following terminologies for describing network slices are defined in 
   <xref target="I-D.ietf-teas-ietf-network-slices"/> and are not redefined herein.</t>

<t><list style="symbols">
  <t>Network Slice (NS)</t>
  <t>Network Slice Customer</t>
  <t>Network Slice Service Provider</t>
  <t>Network Slice Controller (NSC)</t>
  <t>Network Resource Partition (NRP)</t>
</list></t>

<t>The following terms are defined and used in this document.</t>

<t><list style="symbols">
  <t>Customized Topology:
  A topology defined by the customer and served as an input to the network slice 
  service provider, i.e. to the Network Slice Controller (NSC).</t>
  <t>Abstract Topology:
  A topology exposed to the customer by the network slice service provider prior to
  the creation of network slices. The provider uses an abstract topology to expose
  useful information, such as available resources to the customer, which can facilitate
      the build-up of customized topologies by the customer.</t>
  <t>NRP Topology:
  A topology internal to the NSC to facilitate the mapping of network slices to
  underlying network resources.</t>
</list></t>

</section>
<section anchor="tree-diagram"><name>Tree Diagram</name>

<t>Tree diagrams used in this document follow the notation defined in
   <xref target="RFC8340"/>.</t>

</section>
<section anchor="prefixes-in-data-node-names"><name>Prefixes in Data Node 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, as shown in <xref target="tab-prefixes"/>.</t>

<texttable title="Prefixes and Corresponding YANG Modules" anchor="tab-prefixes">
      <ttcol align='left'>Prefix</ttcol>
      <ttcol align='left'>YANG Module</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>yang</c>
      <c>ietf-yang-types</c>
      <c><xref target="RFC6991"/></c>
      <c>inet</c>
      <c>ietf-inet-types</c>
      <c><xref target="RFC6991"/></c>
      <c>nt</c>
      <c>ietf-network-topology</c>
      <c><xref target="RFC8345"/></c>
      <c>nw</c>
      <c>ietf-network-topology</c>
      <c><xref target="RFC8345"/></c>
      <c>tet</c>
      <c>ietf-te-topology</c>
      <c><xref target="RFC8795"/></c>
      <c>ns-topo</c>
      <c>ietf-ns-topo</c>
      <c>[RFCXXXX]</c>
      <c>te-types</c>
      <c>ietf-te-types</c>
      <c>[RFCYYYY]</c>
      <c>ietf-nss</c>
      <c>ietf-network-slice-service</c>
      <c>[RFCZZZZ]</c>
</texttable>

<t>RFC Editor Note:
Please replace XXXX with the RFC number assigned to this document.
Please replace YYYY with the RFC number assigned to <xref target="I-D.ietf-teas-rfc8776-update"/>.
Please replace ZZZZ with the RFC number assigned to <xref target="I-D.ietf-teas-ietf-network-slice-nbi-yang"/>.
Please remove this note.</t>

</section>
</section>
<section anchor="modeling-considerations"><name>Modeling Considerations</name>

<t>An IETF network slice topology is a customized topology 
   modeled as network topology defined in <xref target="RFC8345"/>, with augmentations. 
   A new network type "network-slice" is defined in this document.<br />
   When a network topology data instance contains the network-slice 
   network type, it represents an instance of an IETF network slice 
   topology.</t>

<section anchor="relationships-to-related-topology-models"><name>Relationships to Related Topology Models</name>

<t>There are several related YANG data models that have been defined in
   IETF.  Some of these are:</t>

<t>Network Topology Model:
      Defined in <xref target="RFC8345"/>.</t>

<t>Network Slicing Model:
      Defined in <xref target="I-D.ietf-teas-ietf-network-slice-nbi-yang"/>.</t>

<t>OTN Slicing:
      Defined in <xref target="I-D.ietf-ccamp-yang-otn-slicing"/>.</t>

<t><xref target="fig-model-relationship"/> shows the relationships among these models.  The box of
   dotted lines denotes the model defined in this document.</t>

<figure title="Model Relationships" anchor="fig-model-relationship"><artwork><![CDATA[
     +----------+                 +----------+
     | Network  |                 | Network  |
     | Slice    |                 | Topology +
     | NBI YANG +------+          | Model    |
     | Model    |      |          | RFC 8345 |
     +----+-----+      |          +-----+----+
          |            |                |
          |augments    |augments        |augments
          |            |                |
     +----^-----+      |          ......^.....
     | OTN      |      +----------< Network  :
     | Slicing  | augments        : Slice    :
     | Model    >-----------------: Topology :
     |          |                 : Model    :
     +----------+                 ''''''''''''
]]></artwork></figure>

</section>
</section>
<section anchor="model-applicability"><name>Model Applicability</name>

<t>There are many technologies to achieve network slicing.  The data
   model defined in this document can be used to configure resource-based
   network slices, where the resources for network slices are reserved
   and represented in the form of a customized topology, which can then be mapped
   to a network resource partition (NRP) according to the scenarios defined
   in <xref target="I-D.ietf-teas-ietf-network-slices"/>.</t>

<t>Network slices may be abstracted differently depending on the requirement of 
   the network slice customer. A customer may request a network slice with
   direct connectivity between pairs of service demarcation points (SDPs).
   Each connection within the network slice may be further supported by an 
   end-to-end tunnel that traverse a specific path in a given customized topology
   supplied by the customer. The resources associated with a link are immediately
   commissioned by the realization at the time of network slice configuration.</t>

<t>Alternatively, a customer can request resources to be reserved for
   potential network slices through a customized topology, and use the resources
   to build network slices in the future. The customized topology represents resources that
   are reserved but not commissioned at the time of request. By doing so, customers can share 
   resources between multiple endpoints and use them on demand.</t>

<t>In the example shown in <xref target="fig-ns-topo-example"/>, two customized topology intents named as
   Network Slice Blue and Network Slice Red, are created
   by separate customers and delivered to the network slice service provider.
   The provider maps the two intents to corresponding network resource partitions (NRPs)
   internally. In realizing the network resource partitions, node virtualization
   is used to separate and allocate resources in physical devices.  Two virtual
   routers VR1 and VR2 are created over physical router R1, and two virtual
   routers VR3 and VR4 are created over physical router R2, respectively.  Each of the
   virtual routers,as a partition of the physical router, takes a portion 
   of the resources such as ports and memory in the physical router.<br />
   Depending on the requirements and the implementations, they may share 
   certain resources such as processors, ASICs, and switch fabric.</t>

<t>A network slice customer can configure customized topologies without any prior knowledge
   of the provider's network and resource availability. However, this could potentially make 
   it difficult for the provider to understand and realize the topology. Alternatively, the 
   provider may choose to describe the available resources and capabilities as an abstract 
   topology and expose it to the customer prior to network slice requests. This can facilitate 
   the customer with building customized topologies and avoid unnecessary negotiations between 
   the customer and provider.</t>

<t>The process and the data models for the provider to expose abstract topologies are outside
   the scope of this document.</t>

<t>The provider reports the operational state of the topology, which represents the allocated
   resources agreed upon through negotiations between the customer and the provider.
   Customers can subquently process the requested topology and integrate it into their own topology.
   It's important to note that this relationship between the customer and provider can be recursive.
   For example, a customer for network slices can be a provider of its own to offer
   network slice services using customized topologies to its own customers further up
   the hierarchy.</t>

<t>As an example, Appendix B. shows the JSON encoded data instances of
   the customer topology intent for Network Slice Blue.</t>

<figure title="Network Slicing Topologies for Virtualization" anchor="fig-ns-topo-example"><artwork><![CDATA[
       Customer Topology (Merged)          Customer Topology (Merged)
       Network Slice Blue                  Network Slice Red
                            +---+         +---+      +---+
                       -----|R3 |---   ---|R2 |------|R3 |
                      /     +---+         +---+      +---+                  
      +---+      +---+        ^             ^          ^  \     +---+
   ---|R1 |------|R2 |        |             |          |   -----|R4 |---
      +---+      +---+        |             |          |        +---+
        ^          ^          v             v          v          ^
        |          |        +---+         +---+      +---+        |
        |          |   -----|VR5|---   ---|VR2|------|VR4|        |
        v          v  /     +---+         +---+      +---+        v         
      +---+      +---+                                    \     +---+
   ---|VR1|------|VR3|                                     -----|VR6|---
      +---+      +---+                                          +---+
       Customer Topology (Intended)        Customer Topology (Intended)
       Network Slice Blue                  Network Slice Red

                                 Customers
   ---------------------------------------------------------------------
                                 Provider

        Customized Topology (Network Resouce Partition)
        Provider Network with Virtual Devices

        Network Slice Blue: VR1, VR3, VR5         +---+             
                                        ----------|VR5|------
                                       /          +---+
                    +---+         +---+
              ------|VR1|---------|VR3|                              
                    +---+         +---+
              ------|VR2|---------|VR4|
                    +---+         +---+
                                       \          +---+
                                        ----------|VR6|------
        Network Slice Red: VR2, VR4, VR6          +---+

                                 Virtual Devices 
   ---------------------------------------------------------------------
                                 Physical Devices

        Native Topology
        Provider Network with Physical Devices
                                                  +---+
                                        ----------|R3 |------
                                       /          +---+
                    +---+         +---+
              ======|R1 |=========|R2 |                             
                    +---+         +---+
                                       \          +---+
                                        ----------|R4 |------
                                                  +---+
]]></artwork></figure>

</section>
<section anchor="yang-model-overview"><name>YANG Model Overview</name>
<t>The following constructs and attributes are defined within the YANG model:</t>

<t><list style="symbols">
  <t>Network topology, which represent set of shared, reserved resources organized as a virtual 
 topology between all of the endpoints. A customer could use such network topology
 to define detailed connectivity path traversing the topology, and allow sharing of 
 resources between its multiple endpoint pairs.</t>
  <t>Service-level objectives (SLOs) associated with different objects, including node, link, 
termination point of the topology.</t>
</list></t>

</section>
<section anchor="model-tree-structure"><name>Model Tree Structure</name>

<figure title="Tree diagram for network slice topology" anchor="fig-ietf-ns-topo-tree"><artwork><![CDATA[
module: ietf-ns-topo

  augment /nw:networks/nw:network/nw:network-types:
    +--rw network-slice!
  augment /nw:networks/nw:network:
    +--rw (slo-sle-policy)?
       +--:(standard)
       |  +--rw slo-sle-template?         leafref
       +--:(custom)
          +--rw service-slo-sle-policy
             +--rw description?   string
             +--rw slo-policy
             |  +--rw metric-bound* [metric-type]
             |  |  +--rw metric-type          identityref
             |  |  +--rw metric-unit          string
             |  |  +--rw value-description?   string
             |  |  +--rw percentile-value?    percentile
             |  |  +--rw bound?               uint64
             |  +--rw availability?   identityref
             |  +--rw mtu?            uint16
             +--rw sle-policy
                +--rw security*               identityref
                +--rw isolation*              identityref
                +--rw max-occupancy-level?    uint8
                +--rw steering-constraints
                   +--rw path-constraints
                   +--rw service-function
                   +--rw disjointness?
                           te-types:te-path-disjointness
  augment /nw:networks/nw:network/nw:node:
    +--rw (slo-sle-policy)?
       +--:(standard)
       |  +--rw slo-sle-template?         leafref
       +--:(custom)
          +--rw service-slo-sle-policy
             +--rw description?   string
             +--rw slo-policy
             |  +--rw metric-bound* [metric-type]
             |  |  +--rw metric-type          identityref
             |  |  +--rw metric-unit          string
             |  |  +--rw value-description?   string
             |  |  +--rw percentile-value?    percentile
             |  |  +--rw bound?               uint64
             |  +--rw availability?   identityref
             |  +--rw mtu?            uint16
             +--rw sle-policy
                +--rw security*               identityref
                +--rw isolation*              identityref
                +--rw max-occupancy-level?    uint8
                +--rw steering-constraints
                   +--rw path-constraints
                   +--rw service-function
                   +--rw disjointness?
                           te-types:te-path-disjointness
  augment /nw:networks/nw:network/nw:node/nt:termination-point:
    +--rw (slo-sle-policy)?
       +--:(standard)
       |  +--rw slo-sle-template?         leafref
       +--:(custom)
          +--rw service-slo-sle-policy
             +--rw description?   string
             +--rw slo-policy
             |  +--rw metric-bound* [metric-type]
             |  |  +--rw metric-type          identityref
             |  |  +--rw metric-unit          string
             |  |  +--rw value-description?   string
             |  |  +--rw percentile-value?    percentile
             |  |  +--rw bound?               uint64
             |  +--rw availability?   identityref
             |  +--rw mtu?            uint16
             +--rw sle-policy
                +--rw security*               identityref
                +--rw isolation*              identityref
                +--rw max-occupancy-level?    uint8
                +--rw steering-constraints
                   +--rw path-constraints
                   +--rw service-function
  augment /nw:networks/nw:network/nt:link:
    +--rw (slo-sle-policy)?
       +--:(standard)
       |  +--rw slo-sle-template?         leafref
       +--:(custom)
          +--rw service-slo-sle-policy
             +--rw description?   string
             +--rw slo-policy
             |  +--rw metric-bound* [metric-type]
             |  |  +--rw metric-type          identityref
             |  |  +--rw metric-unit          string
             |  |  +--rw value-description?   string
             |  |  +--rw percentile-value?    percentile
             |  |  +--rw bound?               uint64
             |  +--rw availability?   identityref
             |  +--rw mtu?            uint16
             +--rw sle-policy
                +--rw security*               identityref
                +--rw isolation*              identityref
                +--rw max-occupancy-level?    uint8
                +--rw steering-constraints
                   +--rw path-constraints
                   +--rw service-function
                   +--rw disjointness?
                           te-types:te-path-disjointness
  augment /ietf-nss:network-slice-services/ietf-nss:slo-sle-templates
            /ietf-nss:slo-sle-template/ietf-nss:sle-policy
            /ietf-nss:steering-constraints:
    +--rw disjointness?   te-types:te-path-disjointness
  augment /ietf-nss:network-slice-services/ietf-nss:slice-service
            /ietf-nss:slo-sle-policy/ietf-nss:custom
            /ietf-nss:service-slo-sle-policy/ietf-nss:sle-policy
            /ietf-nss:steering-constraints:
    +--rw disjointness?   te-types:te-path-disjointness
  augment /ietf-nss:network-slice-services/ietf-nss:slice-service
            /ietf-nss:connection-groups/ietf-nss:connection-group
            /ietf-nss:slo-sle-policy/ietf-nss:custom
            /ietf-nss:service-slo-sle-policy/ietf-nss:sle-policy
            /ietf-nss:steering-constraints:
    +--rw disjointness?   te-types:te-path-disjointness
  augment /ietf-nss:network-slice-services/ietf-nss:slice-service
            /ietf-nss:connection-groups/ietf-nss:connection-group
            /ietf-nss:slo-sle-policy/ietf-nss:custom
            /ietf-nss:service-slo-sle-policy/ietf-nss:sle-policy
            /ietf-nss:steering-constraints/ietf-nss:path-constraints:
    +--rw topology-id?     -> /nw:networks/network/network-id
    +--rw explicit-path* [tp-id]
       +--rw tp-id
               -> /nw:networks/network/node/nt:termination-point/tp-id
  augment /ietf-nss:network-slice-services/ietf-nss:slice-service
            /ietf-nss:connection-groups/ietf-nss:connection-group
            /ietf-nss:connectivity-construct/ietf-nss:slo-sle-policy
            /ietf-nss:custom/ietf-nss:service-slo-sle-policy
            /ietf-nss:sle-policy/ietf-nss:steering-constraints:
    +--rw disjointness?   te-types:te-path-disjointness
  augment /ietf-nss:network-slice-services/ietf-nss:slice-service
            /ietf-nss:connection-groups/ietf-nss:connection-group
            /ietf-nss:connectivity-construct/ietf-nss:slo-sle-policy
            /ietf-nss:custom/ietf-nss:service-slo-sle-policy
            /ietf-nss:sle-policy/ietf-nss:steering-constraints
            /ietf-nss:path-constraints:
    +--rw topology-id?     -> /nw:networks/network/network-id
    +--rw explicit-path* [tp-id]
       +--rw tp-id
               -> /nw:networks/network/node/nt:termination-point/tp-id
  augment /ietf-nss:network-slice-services/ietf-nss:slice-service
            /ietf-nss:connection-groups/ietf-nss:connection-group
            /ietf-nss:connectivity-construct/ietf-nss:type
            /ietf-nss:a2a/ietf-nss:a2a-sdp/ietf-nss:slo-sle-policy
            /ietf-nss:custom/ietf-nss:service-slo-sle-policy
            /ietf-nss:sle-policy/ietf-nss:steering-constraints:
    +--rw disjointness?   te-types:te-path-disjointness
  augment /ietf-nss:network-slice-services/ietf-nss:slice-service
            /ietf-nss:connection-groups/ietf-nss:connection-group
            /ietf-nss:connectivity-construct/ietf-nss:type
            /ietf-nss:a2a/ietf-nss:a2a-sdp/ietf-nss:slo-sle-policy
            /ietf-nss:custom/ietf-nss:service-slo-sle-policy
            /ietf-nss:sle-policy/ietf-nss:steering-constraints
            /ietf-nss:path-constraints:
    +--rw topology-id?     -> /nw:networks/network/network-id
    +--rw explicit-path* [tp-id]
       +--rw tp-id
               -> /nw:networks/network/node/nt:termination-point/tp-id
]]></artwork></figure>

</section>
<section anchor="yang-modules"><name>YANG Modules</name>

<figure title="YANG model for network slice topology" anchor="fig-ietf-ns-topo-yang"><artwork><![CDATA[
   <CODE BEGINS> file "ietf-ns-topo@2023-07-07.yang"
   module ietf-ns-topo {
     yang-version 1.1;
     namespace
       "urn:ietf:params:xml:ns:yang:ietf-ns-topo";
     prefix "ns-topo";

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

     import ietf-te-types {
       prefix "te-types";
       reference
         "draft-ietf-teas-rfc8776-update-04: 
          Common YANG Data Types for Traffic Engineering";
     }

     import ietf-network-slice-service {
       prefix "ietf-nss";
       reference
         "draft-ietf-teas-ietf-network-slice-nbi-yang-05:
          IETF Network Slice Service YANG Model";
     }
 
     organization
       "IETF CCAMP Working Group";
     contact
       "WG Web: <http://tools.ietf.org/wg/ccamp/>
        WG List: <mailto:ccamp@ietf.org>

        Editor: Xufeng Liu
                <mailto:xufeng.liu.ietf@gmail.com>

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

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

        Editor: Sergio Belotti
                <mailto:sergio.belotti@nokia.com>

        Editor: Luis M. Contreras
                <mailto:luismiguel.contrerasmurillo@telefonica.com>";

     description
       "This module defines a base YANG data model for configuring
        generic network slices in optical transport networks, e.g.,
        Optical Transport Network (OTN).

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

        Copyright (c) 2023 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 2023-07-07 {
       description "Initial revision";
       reference
         "RFC XXXX: IETF Network Slice Topology YANG Data Model";
     }

     /*
      * Groupings
      */   
     grouping ns-topo-steering-constraints {
       description
         "Policy grouping for specifying steering constraints for
          Transport Network Slices.";

       leaf disjointness {
         type te-types:te-path-disjointness;
         description
           "Indicate the level of disjointness for slice
            resources.";
       }
     }

     grouping topology-ref {
       description
         "Grouping for network topology reference.";
       leaf topology-id {
         type leafref {
           path "/nw:networks/nw:network/nw:network-id";
         }
         description
           "Relative reference to network slice topology id.";
       }
       uses explicit-path;
     }

     grouping explicit-path {
       description
         "Explicit path for a connectivity matrix entry";

       list explicit-path {
         key "tp-id";
         description
           "List of TPs within a network topology that form a
            path.";
         leaf tp-id {
           type leafref {
             path "/nw:networks/nw:network/nw:node"+
                  "/nt:termination-point/nt:tp-id";
           }
           description
             "Relative reference to TP id.";
         }
       }
     }

     /*
      * Augmented data nodes
      */
     /* network type augments */
     augment "/nw:networks/nw:network/nw:network-types" {
       description
         "Defines the Network Slice topology type.";
       container network-slice {
         presence "Indicates Network Slice topology";
         description
           "Its presence identifies the Network Slice type.";
       }
     }
     
     /* network topology augments */
     augment "/nw:networks/nw:network" {
       when "./nw:network-types/ns-topo:network-slice" {
         description "Augment only for Network Slice topology.";
       }
       description "Augment topology configuration and state.";
       uses ietf-nss:service-slo-sle-policy;
     }

     augment "/nw:networks/nw:network" +
             "/ns-topo:slo-sle-policy" +
             "/ns-topo:custom" +
             "/ns-topo:service-slo-sle-policy" +
             "/ns-topo:sle-policy" +
             "/ns-topo:steering-constraints" {
       when "../../../nw:network-types/ns-topo:network-slice" {
         description "Augment only for Network Slice topology.";
       }
       description "Augment topology configuration and state.";
       uses ns-topo-steering-constraints;
     }

     /* network node augments */
     augment "/nw:networks/nw:network/nw:node" {
       when "../nw:network-types/ns-topo:network-slice" {
         description "Augment only for Network Slice topology.";
       }
       description "Augment node configuration and state.";
       uses ietf-nss:service-slo-sle-policy;
     }

     augment "/nw:networks/nw:network/nw:node" +
             "/ns-topo:slo-sle-policy" + 
             "/ns-topo:custom" + 
             "/ns-topo:service-slo-sle-policy" +
             "/ns-topo:sle-policy" +
             "/ns-topo:steering-constraints" {
       when "../../../../nw:network-types/ns-topo:network-slice" {
         description "Augment only for Network Slice topology.";
       }
       description
       "Augment IETF network slice services to include steering
          constraints for nodes.";
       uses ns-topo-steering-constraints;
     }

     /* network node's termination point augments */
     augment "/nw:networks/nw:network/nw:node" +
             "/nt:termination-point" {
       when "../../nw:network-types/ns-topo:network-slice" {
         description "Augment only for Network Slice topology.";
       }
       description "Augment node configuration and state.";
     
     uses ietf-nss:service-slo-sle-policy;
     }
   
     /* network link augments */
     augment "/nw:networks/nw:network/nt:link" {
       when "../nw:network-types/ns-topo:network-slice" {
         description "Augment only for Network Slice topology.";
       }
       description "Augment link configuration and state.";
       uses ietf-nss:service-slo-sle-policy;
     }

     augment "/nw:networks/nw:network/nt:link" +
             "/ns-topo:slo-sle-policy" + 
             "/ns-topo:custom" + 
             "/ns-topo:service-slo-sle-policy" + 
             "/ns-topo:sle-policy" +
             "/ns-topo:steering-constraints" {
       when "../../../../nw:network-types/ns-topo:network-slice" {
         description "Augment only for Network Slice topology.";
       }
       description
       "Augment IETF network slice services to include steering
          constraints for links within a resource-based transport
          network slice.";
       uses ns-topo-steering-constraints;
     }

     augment "/ietf-nss:network-slice-services" +
             "/ietf-nss:slo-sle-templates" +
             "/ietf-nss:slo-sle-template" + 
             "/ietf-nss:sle-policy" +
             "/ietf-nss:steering-constraints" {
       description
          "Augment IETF network slice service templates with
                   technology-specific steering constraints.";
  
       uses ns-topo-steering-constraints;
     }

     augment "/ietf-nss:network-slice-services" +
             "/ietf-nss:slice-service" +
             "/ietf-nss:slo-sle-policy" + 
             "/ietf-nss:custom" + 
             "/ietf-nss:service-slo-sle-policy" + 
             "/ietf-nss:sle-policy" + 
             "/ietf-nss:steering-constraints" {
       description
         "Augment IETF network slice services to include steering
         constraints for connectivity-based transport network
         slices.";
          
       uses ns-topo-steering-constraints;
     }

     /* connectivity construct augments */
     augment "/ietf-nss:network-slice-services" +
             "/ietf-nss:slice-service" +
             "/ietf-nss:connection-groups" +
             "/ietf-nss:connection-group" +
             "/ietf-nss:slo-sle-policy" + 
             "/ietf-nss:custom" + 
             "/ietf-nss:service-slo-sle-policy" + 
             "/ietf-nss:sle-policy" +
             "/ietf-nss:steering-constraints" {
       description
         "Augment IETF network slice services to include steering
         constraints for connectivity-constructs within a
         connectivity-based transport network slice.";
       uses ns-topo-steering-constraints;
     }

     augment "/ietf-nss:network-slice-services" +
             "/ietf-nss:slice-service" +
             "/ietf-nss:connection-groups" +
             "/ietf-nss:connection-group" +
             "/ietf-nss:slo-sle-policy" + 
             "/ietf-nss:custom" + 
             "/ietf-nss:service-slo-sle-policy" + 
             "/ietf-nss:sle-policy" +
             "/ietf-nss:steering-constraints" +
             "/ietf-nss:path-constraints" {
       description
         "Add toplogy id and explicit path to the connection group";

       uses topology-ref;
     }

     augment "/ietf-nss:network-slice-services" +
             "/ietf-nss:slice-service" +
             "/ietf-nss:connection-groups" +
             "/ietf-nss:connection-group" +
             "/ietf-nss:connectivity-construct" +
             "/ietf-nss:slo-sle-policy" + 
             "/ietf-nss:custom" + 
             "/ietf-nss:service-slo-sle-policy" + 
             "/ietf-nss:sle-policy" +
             "/ietf-nss:steering-constraints" {
       description
         "Augment IETF network slice services to include steering
         constraints for connectivity-constructs within a
         connectivity-based transport network slice.";
       uses ns-topo-steering-constraints;
     }

     augment "/ietf-nss:network-slice-services" +
             "/ietf-nss:slice-service" +
             "/ietf-nss:connection-groups" +
             "/ietf-nss:connection-group" +
             "/ietf-nss:connectivity-construct" +
             "/ietf-nss:slo-sle-policy" + 
             "/ietf-nss:custom" + 
             "/ietf-nss:service-slo-sle-policy" + 
             "/ietf-nss:sle-policy" +
             "/ietf-nss:steering-constraints" +
             "/ietf-nss:path-constraints" {
       description
         "Add toplogy id and explicit path to the connectivity
                  construct";

       uses topology-ref;
     }

     augment "/ietf-nss:network-slice-services" +
             "/ietf-nss:slice-service" +
             "/ietf-nss:connection-groups" +
             "/ietf-nss:connection-group" +
             "/ietf-nss:connectivity-construct" +
             "/ietf-nss:type" +
             "/ietf-nss:a2a" +
             "/ietf-nss:a2a-sdp" +
             "/ietf-nss:slo-sle-policy" + 
             "/ietf-nss:custom" + 
             "/ietf-nss:service-slo-sle-policy" + 
             "/ietf-nss:sle-policy" +
             "/ietf-nss:steering-constraints" {
       description
         "Augment IETF network slice services to include steering
         constraints for a2a connectivity-constructs within a
         connectivity-based transport network slice.";
       uses ns-topo-steering-constraints;
     }

     augment "/ietf-nss:network-slice-services" +
             "/ietf-nss:slice-service" +
             "/ietf-nss:connection-groups" +
             "/ietf-nss:connection-group" +
             "/ietf-nss:connectivity-construct" +
             "/ietf-nss:type" +
             "/ietf-nss:a2a" +
             "/ietf-nss:a2a-sdp" +
             "/ietf-nss:slo-sle-policy" + 
             "/ietf-nss:custom" + 
             "/ietf-nss:service-slo-sle-policy" + 
             "/ietf-nss:sle-policy" +
             "/ietf-nss:steering-constraints" +
             "/ietf-nss:path-constraints" {
       description
         "Add toplogy id and explicit path to a2a connectivity
                  construct";

       uses topology-ref;
     }
   }
   <CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="manageability-considerations"><name>Manageability Considerations</name>

<t>To ensure the security and controllability of physical resource
   isolation, slice-based independent operation and management are
   required to achieve management isolation.
   Each network slice typically requires dedicated accounts,
   permissions, and resources for independent access and O&amp;M. This
   mechanism is to guarantee the information isolation among slice
   tenants and to avoid resource conflicts. The access to slice
   management functions will only be permitted after successful security
   checks.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The YANG module specified in this document defines a schema for data
   that is designed to be accessed via network management protocols such
   as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.  The lowest NETCONF layer
   is the secure transport layer, and the mandatory-to-implement secure
   transport is Secure Shell (SSH) <xref target="RFC6242"/>.  The lowest RESTCONF layer
   is HTTPS, and the mandatory-to-implement secure transport is TLS
   <xref target="RFC8446"/>.</t>

<t>The NETCONF access control model <xref target="RFC8341"/> provides the means to
   restrict access for particular NETCONF or RESTCONF users to a
   preconfigured subset of all available NETCONF or RESTCONF protocol
   operations and content.</t>

<t>There are a number of data nodes defined in this YANG module that are
   writable/creatable/deletable (i.e., config true, which is the
   default).  These data nodes may be considered sensitive or vulnerable
   in some network environments.  Write operations (e.g., edit-config)
   to these data nodes without proper protection can have a negative
   effect on network operations.  Considerations in Section 8 of
   <xref target="RFC8795"/> are also applicable to their subtrees in the module defined
   in this document.</t>

<t>Some of the readable data nodes in this YANG module may be considered
   sensitive or vulnerable in some network environments.  It is thus
   important to control read access (e.g., via get, get-config, or
   notification) to these data nodes.  Considerations in Section 8 of
   <xref target="RFC8795"/> are also applicable to their subtrees in the module defined
   in this document.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>It is proposed to IANA to assign new URIs from the "IETF XML
   Registry" <xref target="RFC3688"/> as follows:</t>

<figure><artwork><![CDATA[
   URI: urn:ietf:params:xml:ns:yang:ietf-ns-topo
   Registrant Contact: The IESG
   XML: N/A; the requested URI is an XML namespace.
]]></artwork></figure>

<t>This document registers a YANG module in the YANG Module Names
   registry <xref target="RFC6020"/>.</t>

<figure><artwork><![CDATA[
   name: ietf-ns-topo
   namespace: urn:ietf:params:xml:ns:yang:ietf-ns-topo
   prefix: ns-topo
   reference: RFC XXXX
]]></artwork></figure>

</section>


  </middle>

  <back>

    <references title='Normative References'>



<reference anchor='RFC7950' target='https://www.rfc-editor.org/info/rfc7950'>
  <front>
    <title>The YANG 1.1 Data Modeling Language</title>
    <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'/>
    <date month='August' year='2016'/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7950'/>
  <seriesInfo name='DOI' value='10.17487/RFC7950'/>
</reference>

<reference anchor='RFC8345' target='https://www.rfc-editor.org/info/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='RFC8342' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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='RFC6991' target='https://www.rfc-editor.org/info/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='RFC8795' target='https://www.rfc-editor.org/info/rfc8795'>
  <front>
    <title>YANG Data Model for Traffic Engineering (TE) Topologies</title>
    <author fullname='X. Liu' initials='X.' surname='Liu'/>
    <author fullname='I. Bryskin' initials='I.' surname='Bryskin'/>
    <author fullname='V. Beeram' initials='V.' surname='Beeram'/>
    <author fullname='T. Saad' initials='T.' surname='Saad'/>
    <author fullname='H. Shah' initials='H.' surname='Shah'/>
    <author fullname='O. Gonzalez de Dios' initials='O.' surname='Gonzalez de Dios'/>
    <date month='August' year='2020'/>
    <abstract>
      <t>This document defines a YANG data model for representing, retrieving, and manipulating Traffic Engineering (TE) Topologies. The model serves as a base model that other technology-specific TE topology models can augment.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8795'/>
  <seriesInfo name='DOI' value='10.17487/RFC8795'/>
</reference>

<reference anchor='RFC6241' target='https://www.rfc-editor.org/info/rfc6241'>
  <front>
    <title>Network Configuration Protocol (NETCONF)</title>
    <author fullname='R. Enns' initials='R.' role='editor' surname='Enns'/>
    <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'/>
    <author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'/>
    <author fullname='A. Bierman' initials='A.' role='editor' surname='Bierman'/>
    <date month='June' year='2011'/>
    <abstract>
      <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6241'/>
  <seriesInfo name='DOI' value='10.17487/RFC6241'/>
</reference>

<reference anchor='RFC8040' target='https://www.rfc-editor.org/info/rfc8040'>
  <front>
    <title>RESTCONF Protocol</title>
    <author fullname='A. Bierman' initials='A.' surname='Bierman'/>
    <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'/>
    <author fullname='K. Watsen' initials='K.' surname='Watsen'/>
    <date month='January' year='2017'/>
    <abstract>
      <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8040'/>
  <seriesInfo name='DOI' value='10.17487/RFC8040'/>
</reference>

<reference anchor='RFC6242' target='https://www.rfc-editor.org/info/rfc6242'>
  <front>
    <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
    <author fullname='M. Wasserman' initials='M.' surname='Wasserman'/>
    <date month='June' year='2011'/>
    <abstract>
      <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6242'/>
  <seriesInfo name='DOI' value='10.17487/RFC6242'/>
</reference>

<reference anchor='RFC8446' target='https://www.rfc-editor.org/info/rfc8446'>
  <front>
    <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
    <author fullname='E. Rescorla' initials='E.' surname='Rescorla'/>
    <date month='August' year='2018'/>
    <abstract>
      <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
      <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8446'/>
  <seriesInfo name='DOI' value='10.17487/RFC8446'/>
</reference>

<reference anchor='RFC8341' target='https://www.rfc-editor.org/info/rfc8341'>
  <front>
    <title>Network Configuration Access Control Model</title>
    <author fullname='A. Bierman' initials='A.' surname='Bierman'/>
    <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'/>
    <date month='March' year='2018'/>
    <abstract>
      <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
      <t>This document obsoletes RFC 6536.</t>
    </abstract>
  </front>
  <seriesInfo name='STD' value='91'/>
  <seriesInfo name='RFC' value='8341'/>
  <seriesInfo name='DOI' value='10.17487/RFC8341'/>
</reference>

<reference anchor='RFC3688' target='https://www.rfc-editor.org/info/rfc3688'>
  <front>
    <title>The IETF XML Registry</title>
    <author fullname='M. Mealling' initials='M.' surname='Mealling'/>
    <date month='January' year='2004'/>
    <abstract>
      <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='81'/>
  <seriesInfo name='RFC' value='3688'/>
  <seriesInfo name='DOI' value='10.17487/RFC3688'/>
</reference>

<reference anchor='RFC6020' target='https://www.rfc-editor.org/info/rfc6020'>
  <front>
    <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
    <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'/>
    <date month='October' year='2010'/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6020'/>
  <seriesInfo name='DOI' value='10.17487/RFC6020'/>
</reference>

<reference anchor='RFC7951' target='https://www.rfc-editor.org/info/rfc7951'>
  <front>
    <title>JSON Encoding of Data Modeled with YANG</title>
    <author fullname='L. Lhotka' initials='L.' surname='Lhotka'/>
    <date month='August' year='2016'/>
    <abstract>
      <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7951'/>
  <seriesInfo name='DOI' value='10.17487/RFC7951'/>
</reference>




    </references>

    <references title='Informative References'>




<reference anchor='I-D.ietf-teas-ietf-network-slices' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-ietf-network-slices-21'>
   <front>
      <title>A Framework for IETF Network Slices</title>
      <author fullname='Adrian Farrel' initials='A.' surname='Farrel'>
         <organization>Old Dog Consulting</organization>
      </author>
      <author fullname='John Drake' initials='J.' surname='Drake'>
         <organization>Juniper Networks</organization>
      </author>
      <author fullname='Reza Rokui' initials='R.' surname='Rokui'>
         <organization>Ciena</organization>
      </author>
      <author fullname='Shunsuke Homma' initials='S.' surname='Homma'>
         <organization>NTT</organization>
      </author>
      <author fullname='Kiran Makhijani' initials='K.' surname='Makhijani'>
         <organization>Futurewei</organization>
      </author>
      <author fullname='Luis M. Contreras' initials='L. M.' surname='Contreras'>
         <organization>Telefonica</organization>
      </author>
      <author fullname='Jeff Tantsura' initials='J.' surname='Tantsura'>
         <organization>Nvidia</organization>
      </author>
      <date day='15' month='June' year='2023'/>
      <abstract>
	 <t>   This document describes network slicing in the context of networks
   built from IETF technologies.  It defines the term &quot;IETF Network
   Slice&quot; and establishes the general principles of network slicing in
   the IETF context.

   The document discusses the general framework for requesting and
   operating IETF Network Slices, the characteristics of an IETF Network
   Slice, the necessary system components and interfaces, and how
   abstract requests can be mapped to more specific technologies.  The
   document also discusses related considerations with monitoring and
   security.

   This document also provides definitions of related terms to enable
   consistent usage in other IETF documents that describe or use aspects
   of IETF Network Slices.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-teas-ietf-network-slices-21'/>
   
</reference>


<reference anchor='I-D.ietf-ccamp-yang-otn-slicing' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-yang-otn-slicing-04'>
   <front>
      <title>Framework and Data Model for OTN Network Slicing</title>
      <author fullname='Aihua Guo' initials='A.' surname='Guo'>
         <organization>Futurewei Technologies</organization>
      </author>
      <author fullname='Luis M. Contreras' initials='L. M.' surname='Contreras'>
         <organization>Telefonica</organization>
      </author>
      <author fullname='Sergio Belotti' initials='S.' surname='Belotti'>
         <organization>Nokia</organization>
      </author>
      <author fullname='Reza Rokui' initials='R.' surname='Rokui'>
         <organization>Ciena</organization>
      </author>
      <author fullname='Yunbin Xu' initials='Y.' surname='Xu'>
         <organization>CAICT</organization>
      </author>
      <author fullname='Yang Zhao' initials='Y.' surname='Zhao'>
         <organization>China Mobile</organization>
      </author>
      <author fullname='Xufeng Liu' initials='X.' surname='Liu'>
         <organization>IBM Corporation</organization>
      </author>
      <date day='13' month='March' year='2023'/>
      <abstract>
	 <t>   The requirement of slicing network resources with desired quality of
   service is emerging at every network technology, including the
   Optical Transport Networks (OTN).  As a part of the transport
   network, OTN can provide hard pipes with guaranteed data isolation
   and deterministic low latency, which are highly demanded in the
   Service Level Agreement (SLA).

   This document describes a framework for OTN network slicing and
   defines YANG data models with OTN technology-specific augments
   deployed at both the north and south bound of the OTN network slice
   controller.  Additional YANG data model augmentations will be defined
   in a future version of this draft.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-ccamp-yang-otn-slicing-04'/>
   
</reference>


<reference anchor='I-D.contreras-teas-slice-controller-models' target='https://datatracker.ietf.org/doc/html/draft-contreras-teas-slice-controller-models-05'>
   <front>
      <title>IETF Network Slice Controller and its associated data models</title>
      <author fullname='Luis M. Contreras' initials='L. M.' surname='Contreras'>
         <organization>Telefonica</organization>
      </author>
      <author fullname='Reza Rokui' initials='R.' surname='Rokui'>
         <organization>Ciena</organization>
      </author>
      <author fullname='Jeff Tantsura' initials='J.' surname='Tantsura'>
         <organization>Microsoft</organization>
      </author>
      <author fullname='Bo Wu' initials='B.' surname='Wu'>
         <organization>Huawei</organization>
      </author>
      <author fullname='Xufeng Liu' initials='X.' surname='Liu'>
         <organization>IBM Corporation</organization>
      </author>
      <author fullname='Dhruv Dhody' initials='D.' surname='Dhody'>
         <organization>Huawei</organization>
      </author>
      <author fullname='Sergio Belotti' initials='S.' surname='Belotti'>
         <organization>Nokia</organization>
      </author>
      <date day='13' month='March' year='2023'/>
      <abstract>
	 <t>   This document describes a potential division in major functional
   components of an IETF Network Slice Controller (NSC) as well as
   references the data models required for supporting the requests of
   IETF network slice services and their realization.

   This document describes a potential way of structuring the IETF
   Network Slice Controller as well as how to use different data models
   being defined for IETF Network Slice Service provision (and how they
   are related).  It is not the purpose of this document to standardize
   or constrain the implementation the IETF Network Slice Controller.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-contreras-teas-slice-controller-models-05'/>
   
</reference>


<reference anchor='I-D.ietf-teas-ietf-network-slice-nbi-yang' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-ietf-network-slice-nbi-yang-05'>
   <front>
      <title>A YANG Data Model for the IETF Network Slice Service</title>
      <author fullname='Bo Wu' initials='B.' surname='Wu'>
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname='Dhruv Dhody' initials='D.' surname='Dhody'>
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname='Reza Rokui' initials='R.' surname='Rokui'>
         <organization>Ciena</organization>
      </author>
      <author fullname='Tarek Saad' initials='T.' surname='Saad'>
         <organization>Cisco Systems, Inc</organization>
      </author>
      <author fullname='Liuyan Han' initials='L.' surname='Han'>
         <organization>China Mobile</organization>
      </author>
      <author fullname='John Mullooly' initials='J.' surname='Mullooly'>
         <organization>Cisco Systems, Inc</organization>
      </author>
      <date day='7' month='July' year='2023'/>
      <abstract>
	 <t>   This document defines a YANG data model for the IETF Network Slice
   Service.  The model can be used in the IETF Network Slice Service
   interface between a customer and a provider that offers IETF Network
   Slices.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-teas-ietf-network-slice-nbi-yang-05'/>
   
</reference>


<reference anchor='I-D.ietf-teas-rfc8776-update' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-rfc8776-update-04'>
   <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='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='27' month='June' year='2023'/>
      <abstract>
	 <t>   This document defines a collection of common data types and groupings
   in YANG data modeling language.  These derived common types and
   groupings are intended to be imported by modules that model 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-04'/>
   
</reference>




    </references>


<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors would like to thank Danielle Ceccarelli, Bo Wu,
   Mohamed Boucadair, and Vishnu Beeram for providing valuable
   insights.</t>

</section>
<section anchor="data-tree-for-the-example-in-section-31"><name>Data Tree for the Example in Section 3.1</name>

<section anchor="native-topology"><name>Native Topology</name>
<t>This section contains an example of an instance data tree in the JSON
   encoding <xref target="RFC7951"/>.  The example instantiates "ietf-network" for the
   topology of Network Slice Blue depicted in <xref target="fig-ns-topo-example"/>.</t>

<figure><artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-network:networks": {
    "network": [
      {
        "network-id": "example-customized-blue-topology",
        "network-types": {
          "ietf-ns-topo:network-slice": {
          }
        },
        "node": [
          {
            "node-id": "VR1",
            "ietf-ns-topo:service-slo-sle-policy": {
              "sle-policy": {
                "isolation": [
                  {
                    "ietf-network-slice-service:service-traffic-iso\
lation"
                  }
                ]
              } 
            },
            "ietf-network-topology:termination-point": [
              {
                "tp-id": "1-0-1"
              },
              {
                "tp-id": "1-3-1"
              }
            ]
          },
          {
            "node-id": "VR3",
            "ietf-ns-topo:service-slo-sle-policy": {
              "sle-policy": {
                "isolation": [
                  {
                    "ietf-network-slice-service:service-traffic-iso\
lation"
                  }
                ]
              } 
            },
            "ietf-network-topology:termination-point": [
              {
                "tp-id": "3-1-1"
              },
              {
                "tp-id": "3-5-1"
              }
            ]
          },
          {
            "node-id": "VR5",
            "ietf-ns-topo:service-slo-sle-policy": {
              "sle-policy": {
                "isolation": [
                  {
                    "ietf-network-slice-service:service-traffic-iso\
lation"
                  }
                ]
              } 
            },
            "ietf-network-topology:termination-point": [
              {
                "tp-id": "5-3-1"
              },
              {
                "tp-id": "5-0-1"
              }
            ]
          }
        ],
        "ietf-network-topology:link": [
          {
            "link-id": "VR1,1-0-1,,",
            "source": {
              "source-node": "VR1",
              "source-tp": "1-0-1"
            },
            "ietf-ns-topo:service-slo-sle-policy": {
              "slo-policy": {
                "metric-bounds": {
                  "metric-bound": [
                    {
                      "metric-type": "ietf-network-slice-service:se\
rvice-slo-two-way-delay",
                      "metric-unit": "ms",
                      "bound": 60
                    }
                  ]
                }
              }, 
              "sle-policy": {
                "isolation": [
                  {
                    "ietf-network-slice-service:service-traffic-iso\
lation"
                  }
                ]
              } 
            }
          },
          {
            "link-id": ",,VR1,1-0-1",
            "destination": {
              "dest-node": "VR1",
              "dest-tp": "1-0-1"
            },
            "ietf-ns-topo:service-slo-sle-policy": {
              "slo-policy": {
                "metric-bounds": {
                  "metric-bound": [
                    {
                      "metric-type": "ietf-network-slice-service:se\
rvice-slo-two-way-delay",
                      "metric-unit": "ms",
                      "bound": 30
                    }
                  ]
                }
              }, 
              "sle-policy": {
                "isolation": [
                  {
                    "ietf-network-slice-service:service-traffic-iso\
lation"
                  }
                ]
              } 
            }
          },
          {
            "link-id": "VR1,1-3-1,VR3,3-1-1",
            "source": {
              "source-node": "VR1",
              "source-tp": "1-3-1"
            },
            "destination": {
              "dest-node": "VR3",
              "dest-tp": "3-1-1"
            },
            "ietf-ns-topo:service-slo-sle-policy": {
              "slo-policy": {
                "metric-bounds": {
                  "metric-bound": [
                    {
                      "metric-type": "ietf-network-slice-service:se\
rvice-slo-two-way-delay",
                      "metric-unit": "ms",
                      "bound": 30
                    }
                  ]
                }
              }, 
              "sle-policy": {
                "isolation": [
                  {
                    "ietf-network-slice-service:service-traffic-iso\
lation"
                  }
                ]
              } 
            }
          },
          {
            "link-id": "VR3,3-1-1,VR1,1-3-1",
            "source": {
              "source-node": "VR3",
              "source-tp": "3-1-1"
            },
            "destination": {
              "dest-node": "R1",
              "dest-tp": "1-3-1"
            },
            "ietf-ns-topo:service-slo-sle-policy": {
              "slo-policy": {
                "metric-bounds": {
                  "metric-bound": [
                    {
                      "metric-type": "ietf-network-slice-service:se\
rvice-slo-two-way-delay",
                      "metric-unit": "ms",
                      "bound": 30
                    }
                  ]
                }
              }, 
              "sle-policy": {
                "isolation": [
                  {
                    "ietf-network-slice-service:service-traffic-iso\
lation"
                  }
                ]
              } 
            }
          },
          {
            "link-id": "VR3,3-5-1,VR5,5-3-1",
            "source": {
              "source-node": "VR3",
              "source-tp": "3-5-1"
            },
            "destination": {
              "dest-node": "VR5",
              "dest-tp": "5-3-1"
            },
            "ietf-ns-topo:service-slo-sle-policy": {
              "slo-policy": {
                "metric-bounds": {
                  "metric-bound": [
                    {
                      "metric-type": "ietf-network-slice-service:se\
rvice-slo-two-way-delay",
                      "metric-unit": "ms",
                      "bound": 35
                    }
                  ]
                }
              }, 
              "sle-policy": {
                "isolation": [
                  {
                    "ietf-network-slice-service:service-traffic-iso\
lation"
                  }
                ]
              } 
            }
          },
          {
            "link-id": "VR5,5-3-1,VR3,3-5-1",
            "source": {
              "source-node": "VR5",
              "source-tp": "5-3-1"
            },
            "destination": {
              "dest-node": "VR3",
              "dest-tp": "3-5-1"
            },
            "ietf-ns-topo:service-slo-sle-policy": {
              "slo-policy": {
                "metric-bounds": {
                  "metric-bound": [
                    {
                      "metric-type": "ietf-network-slice-service:se\
rvice-slo-two-way-delay",
                      "metric-unit": "ms",
                      "bound": 35
                    }
                  ]
                }
              }, 
              "sle-policy": {
                "isolation": [
                  {
                    "ietf-network-slice-service:service-traffic-iso\
lation"
                  }
                ]
              } 
            }
          },
          {
            "link-id": "VR5,5-0-1,,",
            "source": {
              "source-node": "VR5",
              "source-tp": "5-0-1"
            },
            "ietf-ns-topo:service-slo-sle-policy": {
              "slo-policy": {
                "metric-bounds": {
                  "metric-bound": [
                    {
                      "metric-type": "ietf-network-slice-service:se\
rvice-slo-two-way-delay",
                      "metric-unit": "ms",
                      "bound": 25
                    }
                  ]
                }
              }, 
              "sle-policy": {
                "isolation": [
                  {
                    "ietf-network-slice-service:service-traffic-iso\
lation"
                  }
                ]
              }
                        }
          },
          {
            "link-id": ",,VR5,5-0-1",
            "destination": {
              "dest-node": "VR5",
              "dest-tp": "5-0-1"
            },
            "ietf-ns-topo:service-slo-sle-policy": {
              "slo-policy": {
                "metric-bounds": {
                  "metric-bound": [
                    {
                      "metric-type": "ietf-network-slice-service:se\
rvice-slo-two-way-delay",
                      "metric-unit": "ms",
                      "bound": 25
                    }
                  ]
                }
              }, 
              "sle-policy": {
                "isolation": [
                  {
                    "ietf-network-slice-service:service-traffic-iso\
lation"
                  }
                ]
              } 
            }
          }
        ],
        "ietf-ns-topo:service-slo-sle-policy": {
          "sle-policy": {
            "isolation": [
              {
                "ietf-network-slice-service:service-traffic-isolati\
on"
              }
            ]
          } 
        }
      }
    ]
  }
}
]]></artwork></figure>

</section>
</section>


  </back>

<!-- ##markdown-source:
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
FKc4S87RAAFlynqOs3ZvoHFISDMhyykK9BFPmKpPz5nFCceeS2bXNQA0FMRp
Dna/UoIZt5rQqDsCSZ3GuT7bNOm3oJhqxNaKVHw9H2O9BAjuGzIEpCfHVjvD
LJW/a1OKDKjAcrPa3YvHGF0RJFYzwBNJQmocX6F67XHb+EEzlVVKIN2sBVVR
HAg1BMoOzyUPEmBHI0S2tyKXUCPZF6+1A34u07kByopyJkegK2FGzsNsmced
BJCc99gCENgKVFiSAavM2EszZAUNadzzpj1HfZx7sxtPWLWKcpif/XDUEoBl
RrSP4mmWg1c8QugNVmAM6gQ0JuCkP6bxwjh0jielIeI0qKxHaAHE0audF6+e
n/YE/hudvVIK/eXZMRHn9cELoHiFbgGxVSEn5PtabiZCkIFjzscAUs7O4hDn
RjOOgLFvCm4+NOt0rQTVgOpdDwCKYqOLPYNra2YzGoF7xMGyvMoiVeHqqkcT
ARgYoozWGHulme/QCJ8qG/1QT80UaBOiYb3LETltAmAKwahiK0vcfyKAOyVF
Jgy6+0BIpDAxdKD7ygChG7ieYl9pNqJsmBDR0Hw42rQ5wSZJdy0q6kjgf+O1
HjvTxBdoMAlDCnwCRYCH9wpwRWC0cQoi7h6/ONi7Zy3PLjRP89cPxBlMqZLM
pdxxrgyGg98EyJ9fIkkqrzwSTQ1sa+bomVbs0XVmxxT3gOpZjh6fBoJCkGSO
UEeNCPDd49N73V/3lWroLnGqZsavlJZfAsswJTa6H2z1RPPcq7ioEuK4u8cn
r+75SsmnrU81JENdynGLITwa2IiUCYEPtHcm9qwh0VAbzqzxG7BBZcPndaVZ
zZ/sGLgmiKBIpabxPn92EKuvEN9Tcb7laIMTk5dtBa+7EQxXWDs9BycHrbWB
TDDQcuN4gGbwmZYtuKkNxCeK6IikF2BkxAxgKAtTeNdSWf1pZxZ2/tIyWKyi
UamD/4SxAjCxBrpGHfXqOKrJsobVX3Ouorny5NVyOpPnlpHnwWN4uo8/LS70
dhbP5+RkNCnn0rjOgHjpwtUJpt9G8xRSioMknhbxTKsafDXmV2WY8ZW48Mgr
TdUMIBo9d5/0HAkKNPgKLGjyVpIfRStEx+gZHcM0Tau6o0ZjPQpqk5dDyplm
xCQu7M44Gpu9cTYRKMFzbmysDBX5bbgcFBdj9Q0ngfkooambDloqq1UAseZ5
Rs4cmYZkhj4vFITG6hTnMzHO+vPLjA1PFQ8j1WKpdDsAeqe6TD8JzguqLlrP
O9BV5KqM7Md3DCMyj/Mz9IQ+KxgCTZ5qiPQ9+Q3VYg7UbODBY/fks88egBVw
8YCOysqFgX9fF0ZWmUKe3TEy0IChZmk+jMubw6hUVzSMSraq+zBg8tzCo6Q6
Fg/9d2tsf8Do+d/h+bExtgLbJQo6eLQpamBggL0FQzVeNunBDo/WxwbGf8Pj
wvh5ID5w2VfQivAX20ZaUdz22yLBrFxuXyGz0+rAOAHPB90XCeqtsTyAvQ8u
DYAQJtNMWxffwjZgdC4vuDBa/k0xGX36ySdPIp70kXA24CJFrg93uXPpNAIT
QcldA30pWfvy4jjSEkxziZbOc/nCC27WUJQdcUSO3yBodiUagZhFVxikp2bb
HEBhVFQ8dg+AXFpAwJxi2+v1NqLjwPUHUflIrymIHsAHFbieRdN0IYa/XLci
ctweFwuK05ngVekGASggHaSgu/Kx0HbwRKbc4/NkTk4BvXB8OR4sxx0vOHRZ
SoqLAxZcvjGJUBPa8/hC8kpWw0oifkCfU1w/MtN4gDtQDWkXzkfDeA4H4aHs
N2qfqqnUksrXZGwzSVagVwHtmqn2zXrdJJnyzDIqnLEAfYsWlrmh8AaJ126Z
YkzrPvvyw/ytWWzMq4qD2rTCibLHoFrzxrZjf2fr/+BR/frYmtOPW8rd/ajK
vzO0h59tRW4/mvLspItweTP8DvxnR8xsH7fQescDbe2D/0oXcsqjvkPWMeUJ
6McuYKe8eu/2t1kk0I13XlEdp2394b24PnTC6qcOxPv0/ET/GsIgF7sFndH8
qx2ogTdQKEzws4n3wI7ioE34L1ue2cAOrC3f3UeAb4AN1mHMD51HszOa+rCs
aaPPbXgaEQ08OfAKgb35HDqq1lJbOnEWZws/2uasyjTCO0pmUWNaw9UpmHrV
t1ZTUR21tjO6CINu/goEz4zc1Qc7/WsGnFTARC9Z8UyCQrDKyEi7sgwTTF72
DFhhdx5Zod0b8qTN5Ks4htBExeZ+hAJIBrMQcrbUZFAvcpa/cLHExiuO/T6r
cKGeYOOSgg6bpugwzCU7fXmm6GcC5ia23I4C2HW6PSdvAloyqQCBbBlW2wB8
VLnJQAuzkMGL2tCqdmpxvb8Y8RyU04PE3dODV6UKcBzGI3dtz11daacyDTFh
gFIc9BKHWh5VgTMgA/j3kcRFvBpApmzegWjgBVAalAnoYl4HL1tPkwuzAOMx
Ca9K1yhLodVNP4GgOVHlBQLi1mQ2k2P8pFbtMQSdgNuaO3GmQsZp8i+mEmKM
cf2EnY7GqLkLQQ7H7KUUmMC1rnTRuYTjBVaGztovSAuvOnUndfA6UYc4qSCc
L75aligc0wTYSgAJLqe57qODPIyqiSKYPgzrimKhHn0bxFSE6ItnIDc5ykyZ
N1NhaJmcqWqb1Pxt0hdMtpvb95nNcOm78RKpUyXcgASqeTUhjdRndPMxvSBE
CcrQg+Yw3IIzh5YLKcWztOYlbP/1iRz3iFQqg4VXZRZmldxffRQ46wF5sdHE
5dFDk/RkI4KgSkudnWDwJnvgTlG7FWxJGlatw+qQW7roIzFZUnS8aAmMHq/q
qUwNJVwMsTQWypCAgukqV8gZdhio+fmixAUmoAsneUFnbQYIs0leV0i9704e
EKDvTnZdevNSsoHDpcXJAxabqhPYQwXs0RrAdnuI9ZxXu5FUrFl50kJwdcqK
gt+j5TBr07hkEzCwY/yGshRQ22I5XiubNAy1juFiKeaiGUyqaU0yBFbPOQ+W
mC6bMJPo1aVYDSy8XJBBcER1JAucmIZwKnLMEMmhz2Lv9Gi/ZLqXoKehwCQe
FsnILMJ1GElSDNadCQeVUfFD9wT6VxxSf5Pll6nUSeeaxEpMPrSTf/ZhFAur
ODg5b80kFM4EM1o6RTK8URRIOC8tGWGCis75cdfiKeJMEVbVIIoF62wz4W4a
EpNM5Qj3QozO8xw1npNAjAVDEXxaH9SJfQnnyrmLBd58n0rzkgF2p7maodcp
GoOklHpp0gjdxQHr/hgwZKDJKC1fH40v8gRUe2YzjHTqg5c/1G7ASa3zcuaU
kkRohrndYERo0BQ1mosriXKFgd8wNmVwKEf5XMUq/BiPu5Rq4IN1JYENZi5o
fm06zY5JpkHXGZYNixlPC4mx/TmJNnsPQfq1SOeSgK3Lvm+g6yEMOPm+mppa
dwAbuDaTM00rOS04mQT/IJ5KCoF22IkzoamuQCR5GQHzuZDP8kql1BE5velY
J/qGumo2BM5yXWBiObfiJU46flpgrqOTaC1IGBJMiWHc4a+JWn8N5yMvzQCA
+hqUtf/avcbdO4qjYF5YgAd/vnASFShdXnUBJpuow9+KZ30nGPS305fH4CON
8rFOgNKhv1JHfzzCNdwcokbbuSEUnLiP5Qw7Vb/7QhZTOb5n59ndZQyYgB/V
elpOlbfu2Ho+9ub8zl8fNwMz3sNrQmD7ca2I/34H7oRaOaIPXXV31mi3XUtD
6yr5k1f6J+/nD40OEYYPLLK7Nkrih0sacRRV/BHVXIXQUkgNhAI46+fCA3MR
/PmTBdLZjgj85ePbCYS7/d3JY2eswXfU5APP710AiI/qdQbd1lxF42VPaNDB
87VYP2yHxkKPLv5knUFf/fiDHpD5I7XFyWiGZWVuqhmW6wav+VJT8ebPGq3a
tB1bOJAcAzMwN0PHTdCxtDHADAXItfpOzTQOeMLkttSm5gBnTT2c7eA/j/3h
9DBfo3PqsQTRwrUebfjZsT+XqOqAxDULGhQevHMRWiUeN29v12vvUYfBWANi
5/NDA8wvHJsnrbFpiRLyxy6yxiP850mr3TVabvCj+H3lTc98Q9JA0ywjc6vk
qg1qXaK3qLZucWe0lEvyXiTpC3rItfhCP553EXxuKdsrN+c6hHQe1a6/WtQI
I+qlouYC85m/z/Q7LzS2fSU470GnjshUvLzAmYS8NDNHm4jpJIXTXLmqimRY
681beoXICefbxHK9em6zQDunmDCVoTUM3rrUs8FeO8/Mi2mcke2iiJYOc2na
momFnq/h1iw1s3V2LDtrIBxjwYguRZCaCREWsOol/KeKk9TZXUQrIrTCoJYe
dLjSD5jHlKWHXVPJghp0O+yMM7VW6JkXW/qGmqer9r401ihs7r3KzMONfKO0
5ugsjFRP7XJQeHFes7OU04wQmERCxT6Uq3hKXFIX0s7dOENv4OVkbUFVtWAr
drLLgSJ76fx2fnIK1mBLSURx6eei/GU1MLfu3TLNoaKMoBvJaHHvqy0rbIO7
Oifxnn77TtfT1SoJUgd0/cpIaSrjSSEnHhxmsHuOzCsoath8JHzVwCU52EbZ
+NgUyB+MVKggggqBMZjjhpFkFA3zOht/JL5XfyJRf2zVaFaiBCPzgJnKQN0s
nN521qyzpLIFQui7lS5icA+jNfrsVppLkBtACOhI9WlI7MvuikSKr4T/1MDk
Tx510NCN0361ghKKDFXttYDgHzwJD2CYD2wBDCpBYx81vnYiYWomZc5RrI+u
W3MWv43y0aiex9lowVrmK92NT7vwrKTEEYvYXsSobUNWT40e6Mz1SmqhmdQZ
LRx3lxwn5T9RWWWyLL8KFdOPTuwcwA9CxK25pnYCtbdRLBvFslEs16q5USzr
KJadrBo4LlhELthG22y0zUbbXKvmLdc2K7VBNcBZ2UbwN4K/Efxr1bzlgt9R
8td3M/RutIEXM9Hb0Er7vakf/P50l3O/BPnAKRCgr6vavN7/Rp103q/oIHfF
vmeV2FUpqBf/dLSxydsRHQVbdn/aUPffmrr2a1NPunTXweQoUeYs+rLhC2lH
SJE3GTu15Vvc+pJUNETgGVRz+G58AtXCXNdxns5WumZeOxrMbR14dzUiMss1
XYzRBYS4ZBVjdLJegHP+TcTuj0P9juobGb0FXIKs31E13o29P6JyPL+N7PXv
KNx/gmH702uFZg6FuxgdVbhyrbIo3BN32lnapte8CVe4GRR4+IaXsfzX/ZcH
h+LZ4TdHx6dfigkeKr3ttvt09/7uw+j+J/C/Pu7G39abbvFEGu8Ek5+ZCrRl
nzIM8kw86D/4nF/TkTzz2ErAdl1kAwQwwP1Os3LwdpYOsnKA9Qcu4G0FQZ2/
s21f83tOj/dOMdG4OJUuNRjMZVCH5phh29bb2Qdir3lxhZf3bdNVNLirTiTs
2TBtbKrfDJs2OuZ0mBYa+ssyZMR28/x1/2iU6P6jgXD4f59PM7Ron1HbiPYZ
AMKNrofZNMlYvJfhHT6RptUJrQeu14klx1VE9x8PnA4F7jjR583ZtCSHG/iH
SgGK3UDKNoHa39978cq/lkTXppNMRpUp//ob8VoOB+Kv51U1H+zsVHmelrRn
uw/wdy6nO3RKxs6XBl2o8TwpK6iC9zVU+YAKPNVVvtwyJfncHfdmklYgR8Po
vJEkAM5eJNEJLniHRACUueWiE1LH7RYBWP5tHp0Ay46bPAIQW5eadAJd/y6T
L41Oc0K0hhvO1AmiqHjtUc10ZGjopge9NdCN7U5lBmI3Cmx8VkeWCnO/ji5T
qlNqDYyXquSZKamF4+7Ls+N7fUuqM3NsCp6Rv+g6DTN4EqYBEjgR02liP58v
CrpY4e7onkBTxfJ6hlf62J1bYI3APzC1OC47SVSCHt3Zow/FFbg/qI+711NB
kEuT4ee0eyLBLeT0wkSd3YrZeXj8ttoxiae5gokvFnTsQ8lnJZn6eWG2ZgKF
6LhuPnkQhniOzgGdQjOvi7LmfV+UnmeqlzVlx2lC4ihmuPmRTqJU5yHRuRO8
W/JEXiSltNWfnR6AwHMdzGYEDPnoAX3A66P+SJPDkvNDS8DncgocQCnBJW2c
47M/+NwJqnGgtvnZOndRiZWoxRCYlFaPKfQjPILR5x+ghvYk9P5BnbNJ7kdJ
u4XxG5pMPC3sc+iQZR59MldSlTKdkFjQdQ0p4Z/lFe2eRqnjKoXkDgnr9FiD
48gkqPIsoTMJdI3l1kdjd60bs5q2cecjBfEjthpAbk3djzCtmX9P1Sd90FwU
8qSDnXLwfUXeuIVFN5bQORV0OKQGKVyQUMZRgW3tcJoaYqsyuKLnzb8sWoLP
DFs6GfvcFg72Ag1uxqfss5To21a8JqlraXNmZo+9tAN75Q+HIY6ZY8DIryLs
Ny5FW+eaGdZxWiUiOdOYFo3Uuqj7XnCm7/YaSavJeNuh49VqkrKkX0iLbHv3
s905OW7TT/DprN7c6vMO0nqFVtH2UBXmztOdMH768ywGjf1WgFYqFi4bgibv
akmIN3IBjvK8Qagu6qDzhSx29sqcyh84v46279JpQLHHddh2322GB3/eGPZl
A7/O0INy2f645a4IrBSamuLLZv89VukkRye7nL3yWcMB15AyR+ntceRFb96l
U12N/tOl/TMHzXFbuoCO3qwjGjw1WsV1B8oTax+fbIcbADmd1fa5aBxW6Iwj
bzWAd0aDlR3A12HKo6q0EI3vE0TZx9SMBf2nTWKzp/26ZHaoShclbfdbhN9R
9ssPr227VPIMsuIOkWfpIrBV2+wHCOijIBzTOe94I3vNhQOI9NmK0FdDw60m
UENAtw09fLhLCnJMbhmkIKZLm16nUMDfaI93f4f/90cf9mVeVst/M5JDxwD9
MuWEyjtAzdtGR+rhexEdS6X1RUislKHOErdBiG7N+JtYhQYXOE3XnASCp33Q
3i5pJhQOORpTCzb3v570fVgG9o7dQCLbIxlwpTpG8HaM3TVld8uOwrryKwI+
BB9JeH26c8bpH0ETUg/fkybUVHq/mrC7xkYV/hJViGPqTC/9g2xtBNeB4DV7
AyVqOW7F6ndgPLtTOK9TOMROgYXkpSCXM1R4FrXGMArTIT/W6zyhe7xCwTQe
ovc8Sk7JdUaoW9wbWQLLh3BtJRIe9SXFfsGw31x4m7LrpWk0BFY3YGuXJmZq
u3QDB8iLhpkckWXm9/dgoFbuy3UK/3E484/EmO27RWOv5koWvi2WZsOCN2DB
7vLNlKvV7Dqmgx7VooA+U9UJ1+tzVe2x61OVGeFxkLvW8ufkmLAc/ml5bKPm
Nkz7h2Pa96gYkcKBmYWl+UZhruQ9jAos+x7vxis+Y4b0n5a7f2+VDPTcqOWN
aATQv3Wi8Tsr/qZk3Fjx4z9O1v/h8cHpl0s3HdANsGrTgT0tcemWA8GnXNKR
e5TYqfbzh++sPMuFzMpaXbOlt+CrK9z5+mldP584d3aomKe6PEVtv+8xMkot
JBlfQ0WxXH2TAF8EYhNO40KqSwLolo+xe/GYU8w04VwR1SDAYo6YpQsNCq/c
4tyNMd3LVQNX9PjeClwXotuA1L0f/u1iLt5QUd/M8PI/XvBtErwBQ47O4ywp
Z5gECThP6xi0YCWZjs5l1hZ1df8hocun3cssNpea5OpuCXPnBy5ZQNFK3a2t
MMELagwAh0D60ABU2XiaJcbOh9LJZY0nFd2RRWDwwm091nxVyrkcvVF3TGMW
KnNBmGOcgzsxCVQFUkN3v9ks6RIamMV88b2+OI6ysOgWUntf61B3FP68SGzq
ltPTeZFX+ShP+TYXvvOpFMeHZ/svj7/WlxjvPsJLjKG1k8NT98On9+l2a+5F
ml/iDVi6ahov1NUJSWmlQTrmjUr0TFoz3ukUV3mxwBvGzI00qhp30VQFkKcM
7vRcwgDdPT399p7FdreJlMHbw+rbs7NXp2si4Dd+9vyUgCgyPHr0xF7lic1q
Iig2U7Kv1I25qRSJqi6eULdyyjgzV5gD6+KZKEZqcLTpNqFRncaFacIdFVCV
BV82qG6UkeZGnTFmWauzXvGAVnuTTAiQ5gq+VUdrm9IoMr4jVHdXXXsY6yuD
/ZvKm3cZutxOTKuV1iVICWK0Qxcx0S+8xJd+ibtJX/Z7auURBqOW+ihbZi++
N09O4jqt7vHgl9JFQ11vN1JCiAQBVZ1QNh90/aJOM+gmNKXuxBIl3kmrJUZm
F0mRZxRYBuivAVXpEuYu7SoQoCKriHG8py9nq5qY6FR5IPKc7tzJKxUkwutI
6KpcFNUpZRrytXuTCebHQwmNj226LxqKxc18/1RfBeLd4E2DlZbAJuoay1QK
c2sLsAnuzTP3x3lbNMyFi83rYum9c4sv3n00JsBOx0Mc0BoWgtQxNKuG5ahi
bqjZqng3zWgZRMS0SKlRQ9U4lVUP/1Gj1xPqvj7Mqtf7Ge6FhvO20P8DcbR3
vBc2MkwX5LdcXctGZVFR0O3edL31f50cgZIp8hk1y7u7/v7iOQE4kVPcIAI+
Jnfk4ZNPP8WOlOq86nLg7cIEUAOx7oZItwEcq33eNjYgRXp0ePoNFQBMBuJ4
Z+/zxk1E0BRdBZ5hCbsts6+xUTrKtaMFtUWX8fn7L5xjtHlvqThGeEobMwW0
kbm/e1+pfNNrbNw/ctm8JpyuSRLeETgQ7juTdjwwW0RsR6MoEsN49Ia5YW+k
70ZTNwkb46R3CF3SMdxp8kZxX5y9EQfghYFBlWJfjkbAp2ma9MSzXLyu2dl7
kZ/T7YjP8noEAp4o+/1dUp5ntXgGswy1hZftGi4E4ylbjl4taRcSUQ7R5E2V
uAFY3811qI5Yd8ToYf+Buqc8dKA/jW6pVai+Pt3eoKSuQjc3o5Ps0v5jNeJ4
lRLrWbxOCXHmQQZpfWA8CWnQQjB4xxbI6La78XJbd8G/cQ1a91Mu6IoTcIqT
UaUvCg/eVKkP++bx/cJ/xPHLs8OB+PCHD+l2bzCeoEwQdTQptOP2k892RaPS
F1tbOI/zsDapNtsDNcnTV9vDi+/VJMwml5h775MxfN9WyEb2BqxoiIeymQlU
r12TM9EHbsaKv0m7kdril7SZ+lcubExbs/j6OJsSCunvTh44eLWb75iGDxog
odrSrwhWz1YauIVxbGATCtEY3CrefRxBCz9sqTYCwK5a7xrH94krP7ZwFSRM
Ywt4IBew3b8AOXjjBYzAg+h+9KCJb6PpVRAeBiB4f7s99WAv44yHG84wJd4H
Z8Co3pAzHkaPfxPOeLzhDFPifXDG46DEX4czHge1TjdnmN8/OpYm3DlKTF1q
f7CEtT890oC9XpOnOFoVZBvOilSGLmDDbJlq3qFjwwP1Czg4X8rB7tmxTUMf
LNTB6V28bmtTgH+wgvl/2LIdgxLRZbyIxjKNFy0CNsHjcbQIflZ2F9UdeHI/
WKItTG1xape66ok20f90amNNLexITq9nZKcpOTAVr5R6CfEsfl4uPFRiIzrv
QXQebkRnVT9vLjosOGBCe3gTJLtZv6XxaRnrpgRdT2CbfrkvsAGvcSOwG4Ft
VvuDCawS054R3RsIbEB+PIFdQ4KuI7ArDexK9bCR1+XgN/J6K+X1Mcnr497j
31xeW1GOmxnYZnjDF9jA5HsjsL+hwD7eCOyKfv4aAqvEtGdE9wYCG5AfT2DX
kKBf1yNeqR82Arsc/EZgb6XA3jRuulpQN8Gf31FydjeSs6qfIVq0v1wjhKrE
6GYh1FUO40aKNlJkntsgRUvsj/ndXum7Dn8uI9NSEoUoei3SIOQfttqkWbK6
acmhC/F/sdDV1pVJbKO9FJzZK8dfbE/itJR4FcP/A8X+wQVLwwAA

-->

</rfc>

