<?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-08" 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="2024" month="January" day="25"/>

    
    <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-25'>
   <front>
      <title>A Framework for Network Slices in Networks Built from IETF Technologies</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='14' month='September' 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; to describe this type of network slice, 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-25'/>
   
</reference>


<reference anchor='I-D.ietf-ccamp-yang-otn-slicing' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-yang-otn-slicing-05'>
   <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>Alef Edge</organization>
      </author>
      <date day='7' month='July' 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-05'/>
   
</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-08'>
   <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='John Mullooly' initials='J.' surname='Mullooly'>
         <organization>Cisco Systems, Inc</organization>
      </author>
      <date day='23' month='October' 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
   Slice Services.

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


<reference anchor='I-D.ietf-teas-rfc8776-update' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-rfc8776-update-07'>
   <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='15' month='September' 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-07'/>
   
</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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

-->

</rfc>

