A Yang Data Model for IETF Network Slice NBI
draft-wd-teas-ietf-network-slice-nbi-yang-01

Network Working Group                                              B. Wu
Internet-Draft                                                  D. Dhody
Intended status: Standards Track                     Huawei Technologies
Expires: May 19, 2021                                             L. Han
                                                            China Mobile
                                                                R. Rokui
                                                            Nokia Canada
                                                       November 15, 2020


              A Yang Data Model for IETF Network Slice NBI
              draft-wd-teas-ietf-network-slice-nbi-yang-01

Abstract

   This document provides a YANG data model for the IETF Network Slice
   NBI (Northbound Interface).  The model can be used by a higher level
   system which is the IETF Network Slice consumer of an IETF Network
   Slice Controller (NSC) to request, configure, and manage the
   components of an IETF Network Slice.

   The YANG modules in this document conforms to the Network Management
   Datastore Architecture (NMDA) defined in RFC 8342.

Status of This Memo

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

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

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

   This Internet-Draft will expire on May 19, 2021.

Copyright Notice

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

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents



Wu, et al.                Expires May 19, 2021                  [Page 1]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


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

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Conventions used in this document . . . . . . . . . . . . . .   3
     2.1.  Tree Diagrams . . . . . . . . . . . . . . . . . . . . . .   4
   3.  IETF Network Slice NBI Model Usage  . . . . . . . . . . . . .   4
   4.  IETF Network Slice NBI Model Overview . . . . . . . . . . . .   5
   5.  IETF Network Slice NBI Model Description  . . . . . . . . . .   8
     5.1.  IETF Network Slice Connection Types . . . . . . . . . . .   8
     5.2.  IETF Network Slice Endpoint (NSE) . . . . . . . . . . . .   9
     5.3.  IETF Network Slice SLO  . . . . . . . . . . . . . . . . .   9
   6.  IETF Network Slice Monitoring . . . . . . . . . . . . . . . .  11
   7.  IETF Network Slice NBI Module . . . . . . . . . . . . . . . .  11
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .  28
   9.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  28
   10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  29
   11. References  . . . . . . . . . . . . . . . . . . . . . . . . .  29
     11.1.  Normative References . . . . . . . . . . . . . . . . . .  29
     11.2.  Informative References . . . . . . . . . . . . . . . . .  30
   Appendix A.  IETF Network Slice NBI Model Usage Example . . . . .  31
   Appendix B.  Comparison with Other Possible Design choices for
                IETF Network Slice NBI . . . . . . . . . . . . . . .  33
     B.1.  ACTN VN Model Augmentation  . . . . . . . . . . . . . . .  34
     B.2.  RFC8345 Augmentation Model  . . . . . . . . . . . . . . .  34
   Appendix C.  Appendix B IETF Network Slice Match Criteria . . . .  35
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  36

1.  Introduction

   This document provides a YANG [RFC7950] data model for the IETF
   Network Slice NBI.

   The YANG model discussed in this document is defined based on the
   description of the IETF Network Slice in
   [I-D.nsdt-teas-ietf-network-slice-definition] and
   [I-D.nsdt-teas-ns-framework], which is used to operate IETF Network
   Slice during the IETF Network Slice instantiation, and the operations
   includes modification, deletion, and monitoring.





Wu, et al.                Expires May 19, 2021                  [Page 2]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


   The YANG model discussed in this document describes the requirements
   of an IETF Network Slice that interconnects a set of IETF Network
   Slice Endpoints from the point of view of the consumer, which is
   classified as Customer Service Model in [RFC8309].

   It will be up to the management system or NSC (IETF Network Slice
   controller) to take this model as an input and use other management
   system or specific configuration models to configure the different
   network elements to deliver an IETF Network Slice.  The YANG models
   can be used with network management protocols such as NETCONF
   [RFC6241] or RESTCONF [RFC8040].  How the configuration of network
   elements is done is out of scope for this document.

   The IETF Network Slice operational state is included in the same tree
   as the configuration consistent with Network Management Datastore
   Architecture [RFC8342].

2.  Conventions used in this document

   The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   BCP14, [RFC2119], [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

   The following terms are defined in [RFC6241] and are used in this
   specification:

   o  client

   o  configuration data

   o  state data

   This document also makes use of the following terminology introduced
   in the YANG 1.1 Data Modeling Language [RFC7950]:

   o  augment

   o  data model

   o  data node

   This document also makes use of the following terminology introduced
   in the IETF Network Slice definition draft
   [I-D.nsdt-teas-ietf-network-slice-definition]:





Wu, et al.                Expires May 19, 2021                  [Page 3]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


   o  IETF Network Slice (NS): An IETF Network Slice is a logical
      network topology connecting a number of endpoints and a set of
      shared or dedicated network resources, which are used to satisfy
      specific Service Level Objectives (SLO).  The definition is from
      Section 3 of [I-D.nsdt-teas-ietf-network-slice-definition].

   o  IETF Network Slice Endpoint (NSE): An IETF Network Slice Endpoint
      is a logical identifier at DAN (Device,Application,Network
      Function) of the customer network to identify the logical access
      to which, a particular subset of traffic traversing the external
      interface, is mapped to a specific IETF Network Slice and it
      follows the definition of NSE (IETF Network Slice Endpoint) in
      Section 4.2 of [I-D.nsdt-teas-ietf-network-slice-definition].

   o  SLO: An SLO is a service level objective

   o  DAN: Device,Application,Network Function

   o  NSC: IETF Network Slice Controller

   o  NBI: Northbound Interface

   In addition, this document defines the following terminology:

   o  IETF Network Slice Member (Network-Slice-Member): A IETF Network-
      Slice-Member is an abstract entity which represents the network
      resources mapped to a particular connection between a pair of NSEs
      belonging to an IETF Network Slice.  Note that different SLO
      requirement per Network-Slice-Member could be applied.

   o  Network Slice Connection Group: Represents a set of Network Slice
      Members with same SLO attributes in one IETF Network Slice.

2.1.  Tree Diagrams

   Tree diagrams used in this document follow the notation defined in
   [RFC8340].

3.  IETF Network Slice NBI Model Usage

   The intention of the IETF Network Slice NBI model is to allow the
   consumer, e.g.  A higher level management system, to request and
   monitor IETF Network Slices.  In particular, the model allows
   consumers to operate in an abstract, technology-agnostic manner, with
   implementation details hidden.

   In the use case of 5G transport application, the E2E network slice
   orchestrator acts as the higher layer system to request the IETF



Wu, et al.                Expires May 19, 2021                  [Page 4]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


   Network Slices.  The interface is used to support dynamic IETF
   Network Slice creation and its lifecycle management to facilitate
   end-to-end network slice services.

             +----------------------------------------+
             |   IETF Network Slice Consumer          |
             |(e.g 5G E2E network slice orchestrator) |
             +----------------+-----------------------+
                              |
                              |
                              |IETF Network Slice NBI YANG
                              |
        +---------------------+--------------------------+
        |      IETF Network Slice Controller (NSC)       |
        +------------------------------------------------+

               Figure 1 IETF Network Slice NBI Model Context

4.  IETF Network Slice NBI Model Overview

   From a consumer perspective, an example of an IETF Network Slice is
   shown in figure 2.

                       IETF scoped Network
  DAN1         +---------------------------------+       DAN3
+--------+    +------+                           |     +--------+
|     o  +---o|  A   |                     +------+    |        |
|   NSE1 |    +------+                     |  C   |o---+        |
+--------+     |                           +------+    |        |
               |                                 |     |  o     |
+--------+     |                           +------+    |  NSE3  |
|        |    +------+                     |  D   |o---+        |
|     o  +---o|  B   |                     +------+    |        |
|   NSE2 |    +------+                           |     |        |
+--------+     |                                 |     +--------+
  DAN2         +---------------------------------+
      |                                                       |
      |                                                       |
      |<----------------IETF Network Slice 1----------------->|

Legend:DAN (Device,Application,Network Function)

Network-Slice-Connection-Group Red    Network-Slice-Connection-Group Blue
Network-Slice-Member 1  NSE1-NSE3     Network-Slice-Member 3  NSE1-NSE2
Network-Slice-Member 2  NSE2-NSE3

 Figure 2: An example of an IETF Network Slice




Wu, et al.                Expires May 19, 2021                  [Page 5]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


   As shown in figure 2, an IETF Network Slice (NS) links together NSEs
   at the DANs, which are customer endpoints that request an IETF
   Network Slice.  At each customer DAN, one or multiple NSEs could be
   connected to the IETF Network Slice.

   An IETF Network Slice is a connectivity with specific SLO
   characteristics, including bandwidth, QoS metric, etc.  The
   connectivity is a combination of logical connections, represented by
   Network-Slice-Members.  When some parts of a network slice have
   different SLO requirements, a set of Network-Slice-Members with the
   same SLO is described by Network Slice Connection Group.

   Based on this design, the IETF Network Slice YANG module consists of
   the main containers: "network-slice", "network-slice-endpoint",
   "network-slice-member",and "network-slice-connection-group".

   The figure below describes the overall structure of the YANG module:

   module: ietf-network-slice
     +--rw ietf-network-slices
        +--rw slice-templates
        |  +--rw slo-template* [id]
        |     +--rw id                      string
        |     +--rw template-description?   string
        +--rw ietf-network-slice* [network-slice-id]
           +--rw network-slice-id                  uint32
           +--rw network-slice-name?               string
           +--rw network-slice-tag*                string
           +--rw network-slice-topology*           identityref
           +--rw network-slice-connection-group* [connection-group-name]
           |  +--rw connection-group-name             string
           |  +--rw default-connection-group?         boolean
           |  +--rw (slo-template)?
           |  |  +--:(standard)
           |  |  |  +--rw template?                   leafref
           |  |  +--:(custom)
           |  |     +--rw network-slice-slo-policy
           |  |        +--rw latency
           |  |        |  +--rw one-way-latency?   uint32
           |  |        |  +--rw two-way-latency?   uint32
           |  |        +--rw jitter
           |  |        |  +--rw one-way-jitter?   uint32
           |  |        |  +--rw two-way-jitter?   uint32
           |  |        +--rw loss
           |  |        |  +--rw one-way-loss?   decimal64
           |  |        |  +--rw two-way-loss?   decimal64
           |  |        +--rw availability-type?             identityref
           |  |        +--rw isolation-type?                identityref



Wu, et al.                Expires May 19, 2021                  [Page 6]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


           |  |        +--rw network-slice-metric-bounds
           |  |           +--rw network-slice-metric-bound*
           |  |                   [metric-type]
           |  |              +--rw metric-type    identityref
           |  |              +--rw upper-bound?   uint64
           |  +--rw network-slice-member-group*
           |  |       [network-slice-member-id]
           |  |  +--rw network-slice-member-id    leafref
           |  +--ro connection-group-monitoring
           |     +--ro latency?   uint32
           |     +--ro jitter?    uint32
           |     +--ro loss?      decimal64
           +--rw status
           |  +--rw admin-enabled?   boolean
           |  +--ro oper-status?     operational-type
           +--rw network-slice-endpoint* [endpoint-id]
           |  +--rw endpoint-id                     uint32
           |  +--rw endpoint-name?                  string
           |  +--rw endpoint-role*                  identityref
           |  +--rw geolocation
           |  |  +--rw altitude?    int64
           |  |  +--rw latitude?    decimal64
           |  |  +--rw longitude?   decimal64
           |  +--rw node-id?                        string
           |  +--rw port-id?                        string
           |  +--rw network-slice-match-criteria
           |  |  +--rw network-slice-match-criteria* [match-type]
           |  |     +--rw match-type    identityref
           |  |     +--rw value?        string
           |  +--rw endpoint-ip?                    inet:host
           |  +--rw bandwidth
           |  |  +--rw incoming-bandwidth
           |  |  |  +--rw guaranteed-bandwidth?   te-types:te-bandwidth
           |  |  +--rw outgoing-bandwidth
           |  |     +--rw guaranteed-bandwidth?   te-types:te-bandwidth
           |  +--rw mtu                             uint16
           |  +--rw routing
           |  |  +--rw bgp
           |  |  |  +--rw bgp-peer-ipv4*   inet:ipv4-prefix
           |  |  |  +--rw bgp-peer-ipv6*   inet:ipv6-prefix
           |  |  +--rw static
           |  |     +--rw static-route-ipv4*   inet:ipv4-prefix
           |  |     +--rw static-route-ipv6*   inet:ipv6-prefix
           |  +--rw status
           |  |  +--rw admin-enabled?   boolean
           |  |  +--ro oper-status?     operational-type
           |  +--ro endpoint-monitoring
           |     +--ro incoming-utilized-bandwidth?



Wu, et al.                Expires May 19, 2021                  [Page 7]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


           |     |       te-types:te-bandwidth
           |     +--ro incoming-bw-utilization        decimal64
           |     +--ro outgoing-utilized-bandwidth?
           |     |       te-types:te-bandwidth
           |     +--ro outgoing-bw-utilization        decimal64
           +--rw network-slice-member* [network-slice-member-id]
              +--rw network-slice-member-id            uint32
              +--rw src
              |  +--rw src-network-slice-endpoint-id?   leafref
              +--rw dest
              |  +--rw dest-network-slice-endpoint-id?   leafref
              +--rw monitoring-type?
              |       network-slice-monitoring-type
              +--ro network-slice-member-monitoring
                 +--ro latency?   uint32
                 +--ro jitter?    uint32
                 +--ro loss?      decimal64


5.  IETF Network Slice NBI Model Description

   An IETF Network Slice consists of a group of interconnected NSEs, and
   the connections between NSEs may have different SLO requirements,
   including symmetrical or asymmetrical traffic throughput, different
   traffic delay, etc.

5.1.  IETF Network Slice Connection Types

   An IETF Network Slice can be point-to-point (P2P), point-to-
   multipoint (P2MP), multipoint-to-point (MP2P), or multipoint-to-
   multipoint (MP2MP) based on the consumer's traffic pattern
   requirements.

   Therefore, the "network-slice-topology" under the node "network-
   slice" is required for configuration.  The model supports any-to-any,
   Hub and Spoke (where Hubs can exchange traffic), and the different
   combinations.  New topologies could be added via augmentation.  By
   default, the any-to-any topology is used.

   In addition, "endpoint-role" under the node "network-slice-endpoint"
   also needs to be defined, which specifies the role of the NSE in a
   particular Network Slice topology.  In the any-to-any topology, all
   NSEs MUST have the same role, which will be "any-to-any-role".  In
   the Hub-and-Spoke topology, NSEs MUST have a Hub role or a Spoke
   role.






Wu, et al.                Expires May 19, 2021                  [Page 8]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


5.2.  IETF Network Slice Endpoint (NSE)

   An NSE belong to a single IETF Network Slice.  An IETF Network Slice
   involves two or more NSEs.

   A NSE is used to define the limit on the user traffic that can be
   injected to a network slice.  For example, in some scenarios, the
   access traffic of a DAN is allowed only when it matches the logical
   Layer 2 connection identifier.  In some scenarios, the access traffic
   of a DAN is allowed only when the traffic matches a source IP
   address.  Sometimes, the traffic from a distinct physical connection
   of a DAN is allowed.

   Therefore, to ensure that the NSE is uniquely identified, the model
   use the following parameters including "node-id", "port-id" and
   "network-slice-match-criteria".  The "node-id" identifies a DAN node,
   the "port-id" identifies a port, and the "network-slice-match-
   criteria" identifies a possible logical L2 ID or IP address or other
   possible traffic identifier in the user traffic.

   Additionally, a number of slice interconnection parameters need to be
   agreed with a customer DAN and the IETF network, such as IP address
   (v4 or v6) etc.

5.3.  IETF Network Slice SLO

   As defined in [I-D.nsdt-teas-ietf-network-slice-definition], this
   model defines the minimum IETF Network Slice SLO attributes, and
   other SLO nodes can be augmented as needed.  NS SLO assurance is
   implemented through the following mechanisms:

   o  Network Slice SLO list: Which defines the performance objectives
      of the NS.  Performance objectives can be specified for various
      performance metrics,and different objectives are as follows:

         Latency: Indicates the maximum latency between two NSE.  The
         unit is micro seconds.  The latency could be round trip times
         or one-way metrics.

         Jitter: Indicates the jitter constraint of the slice maximum
         permissible delay variation, and is measured by the difference
         in the one- way delay between sequential packets in a flow.

         Loss: Indicates maximum permissible packet loss rate, which is
         defined by the ratio of packets dropped to packets transmitted
         between two endpoints.





Wu, et al.                Expires May 19, 2021                  [Page 9]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


         Availability: Is defined as the ratio of up-time to
         total_time(up-time+down-time), where up-time is the time the
         IETF Network Slice is available in accordance with the SLOs
         associated with it.

         Isolation: Whether the isolation needs to be explicitly
         requested is still in discussion.

   o  Bandwidth: Indicates the guaranteed minimum bandwidth between any
      two NSE.  The unit is data rate per second.  And the bandwidth is
      unidirectional.  The bandwidth is specified at each NSE and can be
      applied to incoming NS traffic or outgoing NS traffic.  When
      applied in the incoming direction, the Bandwidth is applicable to
      the traffic from the NSE to the IETF scope Network that passes
      through the external interface.  When Bandwidth is applied to the
      outgoing direction, it is applied to the traffic from the IETF
      Network to the NSE of that particular NS.

   Note: About the definition of SLO parameters, the author is
   discussing to reuse the TE-Types grouping definition as much as
   possible, to avoid duplication of definitions.

   Consumers' Network Slices can be very different, e.g. some slices has
   the same SLO requirements of connections, some slices has the
   different SLO requirements for different parts of the slice.  In some
   slices, the bandwidth of one endpoint is different from that of other
   endpoints, for example, one is central endpoint, the other endpoints
   are access endpoints.

   The list "network-slice-connection-group" defines a set of "network-
   slice-membe" with a particular SLO attributes, which are used to
   describe that different parts of a network slice have different SLOs.
   The specific SLOs of the slice connection group may use a standard
   SLO template, or may use different customized parameters.  A group of
   "network-slice-member" is used to describe which connections of the
   slice use the SLOs.

   For some simplest IETF Network Slices, only one category SLO of
   "network-slice-connection-group" needs to be defined.  For some
   complicated network slices, in addition to the configurations above,
   multiple "network-slice-connection-group" needs to be defined, and
   "network-slice-member-group" describes details of the per-connection
   SLO.

   In addition to SLO performance objectives, there are also some other
   Network Slice objectives, such as MTU and security which can be
   augmented when needed.  MTU specifies the maximum packet length that
   the network slice guarantee to be able to carry across.



Wu, et al.                Expires May 19, 2021                 [Page 10]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


   Note: In some use cases, the number of connections represented by
   "network-slice-member-group" may be huge, which may lead to
   configuration issues, for example, the scalability or error-prone.

6.  IETF Network Slice Monitoring

   This model also describes performance status of an IETF Network
   Slice.  The statistics are described in the following granularity:

   o  Per NS Connection group: specified in 'connection-group-
      monitoring' under the "network-slice-connection-group"

   o  Per NS connection: specified in 'network-slice-member-monitoring'
      under the "network-slice-member"

   o  Per NS Endpoint: specified in 'endpoint-monitoring' under the
      "network-slice-endpoint"

   This model does not define monitoring enabling methods.  The
   mechanism defined in [RFC8640] and [RFC8641] can be used for either
   periodic or on-demand subscription.

   By specifying subtree filters or xpath filters to 'network-slice-
   member' or 'network-slice-endpoint' ,so that only interested contents
   will be sent.  These mechanisms can be used for monitoring the IETF
   Network Slice performance status so that the client management system
   could initiate modification based on the IETF Network Slice running
   status.

7.  IETF Network Slice NBI Module

   <CODE BEGINS> file "ietf-network-slice@2020-11-13.yang"

module ietf-network-slice {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-network-slice";
  prefix ietf-ns;

  import ietf-inet-types {
    prefix inet;
  }
  import ietf-te-types {
    prefix te-types;
  }

  organization
    "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";



Wu, et al.                Expires May 19, 2021                 [Page 11]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


  contact
    "WG Web:  <https://tools.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>
     Editor: Bo Wu <lana.wubo@huawei.com>
           : Dhruv Dhody <dhruv.ietf@gmail.com>";
  description
    "This module contains a YANG module for the IETF Network Slice.

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

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Simplified BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (http://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 2020-11-13 {
    description
      "initial version.";
    reference
      "RFC XXXX: A Yang Data Model for IETF Network Slice Operation";
  }

  /* Features */
  /* Identities */

  identity network-slice-topology {
    description
      "Base identity for IETF Network Slice topology.";
  }

  identity any-to-any {
    base network-slice-topology;
    description
      "Identity for any-to-any IETF Network Slice topology.";
  }

  identity hub-spoke {
    base network-slice-topology;
    description
      "Identity for Hub-and-Spoke IETF Network Slice topology.";
  }




Wu, et al.                Expires May 19, 2021                 [Page 12]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


  identity endpoint-role {
    description
      "Network Slice Endpoint Role in an IETF Network Slice topology ";
  }

  identity any-to-any-role {
    base endpoint-role;
    description
      "Network Slice Endpoint as the any-to-any role in an any-to-any
       IETF Network Slice.";
  }

  identity hub {
    base endpoint-role;
    description
      "Network Slice Endpoint as the hub role in a Hub-and-Spoke
       IETF Network Slice.";
  }

  identity spoke {
    base endpoint-role;
    description
      "Network Slice Endpoint as the spoke role in a Hub-and-Spoke
       IETF Network Slice.";
  }

  identity isolation-type {
    description
      "Base identity from which specific isolation types are derived.";
  }

  identity physical-isolation {
    base isolation-type;
    description
      "physical isolation.";
  }

  identity logical-isolation {
    base isolation-type;
    description
      "logical-isolation.";
  }

  identity network-slice-slo-metric-type {
    description
      "Base identity for Network Slice SLO metric type";
  }




Wu, et al.                Expires May 19, 2021                 [Page 13]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


  identity network-slice-match-type {
    description
      "Base identity for Network Slice traffic match type";
  }

  identity network-slice-vlan-match {
    base network-slice-match-type;
    description
      "VLAN as Network Slice traffic match criteria.";
  }

  /*
   * Identity for availability-type
   */

  identity availability-type {
    description
      "Base identity from which specific availability
       types are derived.";
  }

  identity level-1 {
    base availability-type;
    description
      "level 1: 99.9999%";
  }

  identity level-2 {
    base availability-type;
    description
      "level 2: 99.999%";
  }

  identity level-3 {
    base availability-type;
    description
      "level 3: 99.99%";
  }

  identity level-4 {
    base availability-type;
    description
      "level 4: 99.9%";
  }

  identity level-5 {
    base availability-type;
    description



Wu, et al.                Expires May 19, 2021                 [Page 14]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


      "level 5: 99%";
  }

  /* typedef */

  typedef operational-type {
    type enumeration {
      enum up {
        value 0;
        description
          "Operational status UP.";
      }
      enum down {
        value 1;
        description
          "Operational status DOWN";
      }
      enum unknown {
        value 2;
        description
          "Operational status UNKNOWN";
      }
    }
    description
      "This is a read-only attribute used to determine the
       status of a particular element";
  }

  typedef network-slice-monitoring-type {
    type enumeration {
      enum one-way {
        description
          "represents one-way monitoring type";
      }
      enum two-way {
        description
          "represents two-way monitoring type";
      }
    }
    description
      "enumerated type of monitoring on a network-slice-member ";
  }

  /* Groupings */

  grouping status-params {
    description
      "Grouping used to join operational and administrative status";



Wu, et al.                Expires May 19, 2021                 [Page 15]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


    container status {
      description
        "Container for status of administration and operational";
      leaf admin-enabled {
        type boolean;
        description
          "Administrative Status UP/DOWN";
      }
      leaf oper-status {
        type operational-type;
        config false;
        description
          "Operations status";
      }
    }
  }

  grouping network-slice-match-criteria {
    description
      "Grouping for Network Slice match definition.";
    container network-slice-match-criteria {
      description
        "Describes Network Slice match criteria.";
      list network-slice-match-criteria {
        key "match-type";
        description
          "List of Network Slice traffic criteria";
        leaf match-type {
          type identityref {
            base network-slice-match-type;
          }
          description
            "Identifies an entry in the list of match-type for
             the Network Slice.";
        }
        leaf value {
          type string;
          description
            "Describes Network Slice match criteria,e.g. IP address,
             VLAN, etc.";
        }
      }
    }
  }

  grouping network-slice-metric-bounds {
    description
      "Network Slice metric bounds grouping";



Wu, et al.                Expires May 19, 2021                 [Page 16]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


    container network-slice-metric-bounds {
      description
        "Network Slice metric bounds container";
      list network-slice-metric-bound {
        key "metric-type";
        description
          "List of Network Slice metric bounds";
        leaf metric-type {
          type identityref {
            base network-slice-slo-metric-type;
          }
          description
            "Identifies an entry in the list of metric-types
             bound for the Network Slice.";
        }
        leaf upper-bound {
          type uint64;
          default "0";
          description
            "Upper bound on network-slice-member metric. A zero indicate
             an unbounded upper limit for the specific metric-type";
        }
      }
    }
  }

  grouping routing-protocols {
    description
      "Grouping for endpoint protocols definition.";
    container routing {
      description
        "Describes protocol between Network Slice Endpoint and IETF
         scoped network edge device.";
      container bgp {
        description
          "BGP-specific configuration.";
        leaf-list bgp-peer-ipv4 {
          type inet:ipv4-prefix;
          description
            "BGP peer ipv4 address.";
        }
        leaf-list bgp-peer-ipv6 {
          type inet:ipv6-prefix;
          description
            "BGP peer ipv6 address.";
        }
      }
      container static {



Wu, et al.                Expires May 19, 2021                 [Page 17]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


        description
          "Only applies when protocol is static.";
        leaf-list static-route-ipv4 {
          type inet:ipv4-prefix;
          description
            "ipv4 static route";
        }
        leaf-list static-route-ipv6 {
          type inet:ipv6-prefix;
          description
            "ipv6 static route";
        }
      }
    }
  }

  grouping endpoint-monitoring-parameters {
    description
      "Grouping for endpoint-monitoring-parameters.";
    container endpoint-monitoring {
      config false;
      description
        "Container for endpoint-monitoring-parameters.";
      leaf incoming-utilized-bandwidth {
        type te-types:te-bandwidth;
        description
          "Bandwidth utilization that represents the actual
           utilization of the incoming endpoint.";
      }
      leaf incoming-bw-utilization {
        type decimal64 {
          fraction-digits 5;
          range "0..100";
        }
        units "percent";
        mandatory true;
        description
          "To be used to define the bandwidth utilization
           as a percentage of the available bandwidth.";
      }
      leaf outgoing-utilized-bandwidth {
        type te-types:te-bandwidth;
        description
          "Bandwidth utilization that represents the actual
           utilization of the incoming endpoint.";
      }
      leaf outgoing-bw-utilization {
        type decimal64 {



Wu, et al.                Expires May 19, 2021                 [Page 18]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


          fraction-digits 5;
          range "0..100";
        }
        units "percent";
        mandatory true;
        description
          "To be used to define the bandwidth utilization
           as a percentage of the available bandwidth.";
      }
    }
  }

  grouping common-monitoring-parameters {
    description
      "Grouping for link-monitoring-parameters.";
    leaf latency {
      type uint32;
      units "usec";
      description
        "The latency statistics per Network Slice member.";
    }
    leaf jitter {
      type uint32 {
        range "0..16777215";
      }
      description
        "The jitter statistics per Network Slice member.";
    }
    leaf loss {
      type decimal64 {
        fraction-digits 6;
        range "0 .. 50.331642";
      }
      description
        "Packet loss as a percentage of the total traffic
         sent over a configurable interval. The finest precision is
         0.000003%. where the maximum 50.331642%.";
      reference
        "RFC 7810, section-4.4";
    }
  }

  grouping geolocation-container {
    description
      "A grouping containing a GPS location.";
    container geolocation {
      description
        "A container containing a GPS location.";



Wu, et al.                Expires May 19, 2021                 [Page 19]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


      leaf altitude {
        type int64;
        units "millimeter";
        description
          "Distance above the sea level.";
      }
      leaf latitude {
        type decimal64 {
          fraction-digits 8;
          range "-90..90";
        }
        description
          "Relative position north or south on the Earth's surface.";
      }
      leaf longitude {
        type decimal64 {
          fraction-digits 8;
          range "-180..180";
        }
        description
          "Angular distance east or west on the Earth's surface.";
      }
    }
    // gps-location
  }

  // geolocation-container

  grouping endpoint {
    description
      "IETF Network Slice endpoint related information";
    leaf endpoint-id {
      type uint32;
      description
        "unique identifier for the referred IETF Network
         Slice endpoint";
    }
    leaf endpoint-name {
      type string;
      description
        "endpoint name";
    }
    leaf-list endpoint-role {
      type identityref {
        base endpoint-role;
      }
      default "any-to-any-role";
      description



Wu, et al.                Expires May 19, 2021                 [Page 20]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


        "Role of the endpoint in the IETF Network Slice.";
    }
    uses geolocation-container;
    leaf node-id {
      type string;
      description
        "Uniquely identifies an edge node within the IETF slice
         network.";
    }
    leaf port-id {
      type string;
      description
        "Reference to the Port-id of the customer node.";
    }
    uses network-slice-match-criteria;
    leaf endpoint-ip {
      type inet:host;
      description
        "The address of the TACACS+ server.";
    }
    container bandwidth {
      container incoming-bandwidth {
        leaf guaranteed-bandwidth {
          type te-types:te-bandwidth;
          description
            "If guaranteed-bandwidth is 0, it means best effort, no
             minimum throughput is guaranteed.";
        }
        description
          "Container for the incoming bandwidth policy";
      }
      container outgoing-bandwidth {
        leaf guaranteed-bandwidth {
          type te-types:te-bandwidth;
          description
            "If guaranteed-bandwidth is 0, it means best effort, no
             minimum throughput is guaranteed.";
        }
        description
          "Container for the bandwidth policy";
      }
      description
        "Container for the bandwidth policy";
    }
    leaf mtu {
      type uint16;
      units "bytes";
      mandatory true;



Wu, et al.                Expires May 19, 2021                 [Page 21]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


      description
        "MTU of Network Slice traffic. If the traffic type is IP,
         it refers to the IP MTU. If the traffic type is Ethertype,
         will refer to the Ethernet MTU. ";
    }
    uses routing-protocols;
    uses status-params;
    uses endpoint-monitoring-parameters;
  }

  //network-slice-endpoint

  grouping network-slice-member {
    description
      "network-slice-member is described by this container";
    leaf network-slice-member-id {
      type uint32;
      description
        "network-slice-member identifier";
    }
    container src {
      description
        "the source of Network Slice link";
      leaf src-network-slice-endpoint-id {
        type leafref {
          path "/ietf-network-slices/ietf-network-slice/"
             + "network-slice-endpoint/endpoint-id";
        }
        description
          "reference to source Network Slice endpoint";
      }
    }
    container dest {
      description
        "the destination of Network Slice link ";
      leaf dest-network-slice-endpoint-id {
        type leafref {
          path "/ietf-network-slices/ietf-network-slice"
             + "/network-slice-endpoint/endpoint-id";
        }
        description
          "reference to dest Network Slice endpoint";
      }
    }
    leaf monitoring-type {
      type network-slice-monitoring-type;
      description
        "One way or two way monitoring type.";



Wu, et al.                Expires May 19, 2021                 [Page 22]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


    }
    container network-slice-member-monitoring {
      config false;
      description
        "SLO status Per network-slice endpoint to endpoint ";
      uses common-monitoring-parameters;
    }
  }

  //network-slice-member

  grouping network-slice-connection-group {
    description
      "Grouping for SLO definition of Network Slice";
    list network-slice-connection-group {
      key "connection-group-name";
      description
        "List of Network Slice connection groups, the connection group
         is used to support different SLO objectives between different
         network-slice-members in a same IETF Network slice.";
      leaf connection-group-name {
        type string;
        description
          "Identifies an entry in the list of connection group for the
           Network Slice.";
      }
      leaf default-connection-group {
        type boolean;
        default "false";
        description
          "Is the connection group is selected as the default connection
           group of a particular SLO";
      }
      choice slo-template {
        description
          "Choice for SLO template.
           Can be standard template or customized template.";
        case standard {
          description
            "Standard SLO template.";
          leaf template {
            type leafref {
              path "/ietf-network-slices"
                 + "/slice-templates/slo-template/id";
            }
            description
              "QoS template to be used.";
          }



Wu, et al.                Expires May 19, 2021                 [Page 23]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


        }
        case custom {
          description
            "Customized SLO template.";
          container network-slice-slo-policy {
            container latency {
              leaf one-way-latency {
                type uint32 {
                  range "0..16777215";
                }
                units "usec";
                description
                  "Lowest latency in micro seconds.";
              }
              leaf two-way-latency {
                type uint32 {
                  range "0..16777215";
                }
                description
                  "Lowest-way delay or latency in micro seconds.";
              }
              description
                "Latency constraint on the traffic class.";
            }
            container jitter {
              leaf one-way-jitter {
                type uint32 {
                  range "0..16777215";
                }
                description
                  "lowest latency in micro seconds.";
              }
              leaf two-way-jitter {
                type uint32 {
                  range "0..16777215";
                }
                description
                  "lowest-way delay or latency in micro seconds.";
              }
              description
                "Jitter constraint on the traffic class.";
            }
            container loss {
              leaf one-way-loss {
                type decimal64 {
                  fraction-digits 6;
                  range "0 .. 50.331642";
                }



Wu, et al.                Expires May 19, 2021                 [Page 24]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


                description
                  "Packet loss as a percentage of the total traffic sent
                   over a configurable interval. The finest precision is
                   0.000003%. where the maximum 50.331642%.";
                reference
                  "RFC 7810, section-4.4";
              }
              leaf two-way-loss {
                type decimal64 {
                  fraction-digits 6;
                  range "0 .. 50.331642";
                }
                description
                  "Packet loss as a percentage of the total traffic sent
                   over a configurable interval. The finest precision is
                   0.000003%. where the maximum 50.331642%.";
                reference
                  "RFC 7810, section-4.4";
              }
              description
                "Loss constraint on the traffic class.";
            }
            leaf availability-type {
              type identityref {
                base availability-type;
              }
              description
                "Availability Requirement for the Network Slice";
            }
            leaf isolation-type {
              type identityref {
                base isolation-type;
              }
              default "logical-isolation";
              description
                "Network Slice isolation-level.";
            }
            uses network-slice-metric-bounds;
            description
              "container for customized policy constraint on the slice
               traffic.";
          }
        }
      }
      list network-slice-member-group {
        key "network-slice-member-id";
        description
          "List of included Network Slice Member groups for the SLO.";



Wu, et al.                Expires May 19, 2021                 [Page 25]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


        leaf network-slice-member-id {
          type leafref {
            path "/ietf-network-slices/ietf-network-slice/"
               + "network-slice-member/network-slice-member-id";
          }
          description
            "Identifies the included list of Network Slice member.";
        }
      }
      container connection-group-monitoring {
        config false;
        description
          "SLO status per connection group ";
        uses common-monitoring-parameters;
      }
    }
  }

  grouping slice-template {
    description
      "Grouping for slice-templates.";
    container slice-templates {
      description
        "Container for slice-templates.";
      list slo-template {
        key "id";
        leaf id {
          type string;
          description
            "Identification of the SLO Template to be used.
             Local administration meaning.";
        }
        leaf template-description {
          type string;
          description
            "Description of the SLO template.";
        }
        description
          "List for SLO template identifiers.";
      }
    }
  }

  /* Configuration data nodes */

  container ietf-network-slices {
    description
      "IETF network-slice configurations";



Wu, et al.                Expires May 19, 2021                 [Page 26]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


    uses slice-template;
    list ietf-network-slice {
      key "network-slice-id";
      description
        "a network-slice is identified by a network-slice-id";
      leaf network-slice-id {
        type uint32;
        description
          "a unique network-slice identifier";
      }
      leaf network-slice-name {
        type string;
        description
          "network-slice name";
      }
      leaf-list network-slice-tag {
        type string;
        description
          "Network Slice tag for operational management";
      }
      leaf-list network-slice-topology {
        type identityref {
          base network-slice-topology;
        }
        default "any-to-any";
        description
          "Network Slice topology.";
      }
      uses network-slice-connection-group;
      uses status-params;
      list network-slice-endpoint {
        key "endpoint-id";
        uses endpoint;
        description
          "list of endpoints in this slice";
      }
      list network-slice-member {
        key "network-slice-member-id";
        description
          "List of network-slice-member in a slice";
        uses network-slice-member;
      }
    }
    //ietf-network-slice list
  }
}





Wu, et al.                Expires May 19, 2021                 [Page 27]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


   <CODE ENDS>

8.  Security Considerations

   The YANG module defined in this document is designed to be accessed
   via network management protocols such as NETCONF [RFC6241] or
   RESTCONF [RFC8040].  The lowest NETCONF layer is the secure transport
   layer, and the mandatory-to-implement secure transport is Secure
   Shell (SSH) [RFC6242].  The lowest RESTCONF layer is HTTPS, and the
   mandatory-to-implement secure transport is TLS [RFC8446].

   The NETCONF access control model [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.

   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.

   o /ietf-network-slice/ietf-network-slices/ietf-network-slice

   The entries in the list above include the whole network
   configurations corresponding with the slice which the higher
   management system requests, and indirectly create or modify the PE or
   P device configurations.  Unexpected changes to these entries could
   lead to service disruption and/or network misbehavior.

9.  IANA Considerations

   This document registers a URI in the IETF XML registry [RFC3688].
   Following the format in [RFC3688], the following registration is
   requested to be made:

      URI: urn:ietf:params:xml:ns:yang:ietf-network-slice
      Registrant Contact: The IESG.
      XML: N/A, the requested URI is an XML namespace.



   This document requests to register a YANG module in the YANG Module
   Names registry [RFC7950].






Wu, et al.                Expires May 19, 2021                 [Page 28]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


              Name: ietf-network-slice
              Namespace: urn:ietf:params:xml:ns:yang:ietf-network-slice
              Prefix: ietf-ns
              Reference: RFC XXXX

10.  Acknowledgments

   The authors wish to thank Sergio Belotti, Qin Wu, Susan Hares, Eric
   Grey, and many other NS DT members for their helpful comments and
   suggestions.

11.  References

11.1.  Normative References

   [I-D.nsdt-teas-ietf-network-slice-definition]
              Rokui, R., Homma, S., Makhijani, K., Contreras, L., and J.
              Tantsura, "Definition of IETF Network Slices", draft-nsdt-
              teas-ietf-network-slice-definition-01 (work in progress),
              November 2020.

   [I-D.nsdt-teas-ns-framework]
              Gray, E. and J. Drake, "Framework for Transport Network
              Slices", draft-nsdt-teas-ns-framework-04 (work in
              progress), July 2020.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

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

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

   [RFC6242]  Wasserman, M., "Using the NETCONF Protocol over Secure
              Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
              <https://www.rfc-editor.org/info/rfc6242>.

   [RFC6991]  Schoenwaelder, J., Ed., "Common YANG Data Types",
              RFC 6991, DOI 10.17487/RFC6991, July 2013,
              <https://www.rfc-editor.org/info/rfc6991>.




Wu, et al.                Expires May 19, 2021                 [Page 29]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


   [RFC7950]  Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
              RFC 7950, DOI 10.17487/RFC7950, August 2016,
              <https://www.rfc-editor.org/info/rfc7950>.

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

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

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

   [RFC8341]  Bierman, A. and M. Bjorklund, "Network Configuration
              Access Control Model", STD 91, RFC 8341,
              DOI 10.17487/RFC8341, March 2018,
              <https://www.rfc-editor.org/info/rfc8341>.

   [RFC8342]  Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
              and R. Wilton, "Network Management Datastore Architecture
              (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
              <https://www.rfc-editor.org/info/rfc8342>.

   [RFC8446]  Rescorla, E., "The Transport Layer Security (TLS) Protocol
              Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
              <https://www.rfc-editor.org/info/rfc8446>.

   [RFC8640]  Voit, E., Clemm, A., Gonzalez Prieto, A., Nilsen-Nygaard,
              E., and A. Tripathy, "Dynamic Subscription to YANG Events
              and Datastores over NETCONF", RFC 8640,
              DOI 10.17487/RFC8640, September 2019,
              <https://www.rfc-editor.org/info/rfc8640>.

   [RFC8641]  Clemm, A. and E. Voit, "Subscription to YANG Notifications
              for Datastore Updates", RFC 8641, DOI 10.17487/RFC8641,
              September 2019, <https://www.rfc-editor.org/info/rfc8641>.

11.2.  Informative References

   [I-D.geng-teas-network-slice-mapping]
              Geng, X., Dong, J., Pang, R., Han, L., Niwa, T., Jin, J.,
              Liu, C., and N. Nageshar, "5G End-to-end Network Slice
              Mapping from the view of Transport Network", draft-geng-
              teas-network-slice-mapping-02 (work in progress), July
              2020.



Wu, et al.                Expires May 19, 2021                 [Page 30]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


   [I-D.ietf-teas-actn-vn-yang]
              Lee, Y., Dhody, D., Ceccarelli, D., Bryskin, I., and B.
              Yoon, "A YANG Data Model for VN Operation", draft-ietf-
              teas-actn-vn-yang-10 (work in progress), November 2020.

   [I-D.liu-teas-transport-network-slice-yang]
              Liu, X., Tantsura, J., Bryskin, I., Contreras, L., WU, Q.,
              Belotti, S., and R. Rokui, "IETF Network Slice YANG Data
              Model", draft-liu-teas-transport-network-slice-yang-02
              (work in progress), November 2020.

   [RFC8309]  Wu, Q., Liu, W., and A. Farrel, "Service Models
              Explained", RFC 8309, DOI 10.17487/RFC8309, January 2018,
              <https://www.rfc-editor.org/info/rfc8309>.

Appendix A.  IETF Network Slice NBI Model Usage Example

   The following example describes a simplified service configuration of
   two IETF Network slice instances:

   o  IETF Network Slice 1 on Device1, Device3, and Device4, with any-
      to-any connection type

   o  IETF Network Slice 2 on Device2, Device3, with any-to-any
      connection type

     192.0.2.2 VLAN1
+--------+
|Device1 o------/
+--------+      |       +------+
+--------+      +------o|  A   +---------------+
|Device2 o-------/-----o|      |               |
+--------+              +---+--+               |
      198.51.100.2          |                  |
       VLAN2                |              +---+--+      192.0.2.4 VLAN1
                            |              |      |           +--------+
      192.0.2.3 VLAN1       |              |   C  o-----/-----oDevice4 |
+--------+                  |              +---+--+           +--------+
|        o------/           |                  |
|        |      |       +---+--+               |
| Device3|      +------o|  B   +---------------+
|        o-------/-----o|      |
+--------+              +------+
      198.51.100.3
       VLAN2

      POST: /restconf/data/ietf-network-slice:ietf-network-slices
      Host: example.com



Wu, et al.                Expires May 19, 2021                 [Page 31]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


      Content-Type: application/yang-data+json

   {
     "ietf-network-slices": {
       "ietf-network-slice": [
         {
           "network-slice-id": 1,
           "network-slice-name": "slice1",
           "network-slice-topology": "any-to-any",
           "network-slice-endpoint": [
             {
              "endpoint-id": 11,
              "endpoint-name": "device1-ep1",
              "endpoint-role": "any-to-any-role",
              "network-slice-match-criteria": [
               {
                 "match-type": "network-slice-vlan-match",
                 "value": "1"
               }
              ]
            },
            {
             "endpoint-id": 12,
             "endpoint-name": "device3-ep1",
             "endpoint-role": "any-to-any-role",
             "network-slice-match-criteria": [
               {
                 "match-type": "network-slice-vlan-match",
                 "value": "1"
               }
              ]
            },
            {
              "endpoint-id": 13,
              "endpoint-name": "device4-ep1",
              "endpoint-role": "any-to-any-role",
              "network-slice-match-criteria": [
                {
                  "match-type": "network-slice-vlan-match",
                  "value": "1"
                }
              ]
            }
          ]
        },
       {
         "network-slice-id": 2,
         "network-slice-name": "slice2",



Wu, et al.                Expires May 19, 2021                 [Page 32]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


         "network-slice-topology": "any-to-any",
         "network-slice-endpoint": [
           {
             "endpoint-id": 21,
             "endpoint-name": "device2-ep1",
             "endpoint-role": "any-to-any-role",
             "network-slice-match-criteria": [
               {
                 "match-type": "network-slice-vlan-match",
                 "value": "2"
               }
             ]
           },
          {
            "endpoint-id": 22,
            "endpoint-name": "device3-ep2",
            "endpoint-role": "any-to-any-role",
            "network-slice-match-criteria": [
              {
                "match-type": "network-slice-vlan-match",
                "value": "2"
              }
             ]
           }
         ]
        }
      ]
     }
   }


Appendix B.  Comparison with Other Possible Design choices for IETF
             Network Slice NBI

   According to the 3.3.1.  Northbound Inteface (NBI)
   [I-D.nsdt-teas-ns-framework], the IETF Network Slice NBI is a
   technology-agnostic interface, which is used for a consumer to
   express requirements for a particular IETF Network Slice.  Consumers
   operate on abstract IETF Network Slices, with details related to
   their realization hidden.  As classified by [RFC8309], the IETF
   Network Slice NBI is classified as Customer Service Model.

   This draft analyzes the following existing IETF models to identify
   the gap between the IETF Network Slice NBI requirements.







Wu, et al.                Expires May 19, 2021                 [Page 33]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


B.1.  ACTN VN Model Augmentation

   The difference between the ACTN VN model and the IETF Network Slice
   NBI requirements is that the IETF Network Slice NBI is a technology-
   agnostic interface, whereas the VN model is bound to the IETF TE
   Topologies.  The realization of the IETF Network Slice does not
   necessarily require the slice network to support the TE technology.

   The ACTN VN (Virtual Network) model introduced in
   [I-D.ietf-teas-actn-vn-yang] is the abstract consumer view of the TE
   network.  Its YANG structure includes four components:

   o  VN: A Virtual Network (VN) is a network provided by a service
      provider to a customer for use and two types of VN has defined.
      The Type 1 VN can be seen as a set of edge-to-edge abstract links.
      Each link is an abstraction of the underlying network which can
      encompass edge points of the customer's network, access links,
      intra-domain paths, and inter-domain links.

   o  AP: An AP is a logical identifier used to identify the access link
      which is shared between the customer and the IETF scoped Network.

   o  VN-AP: A VN-AP is a logical binding between an AP and a given VN.

   o  VN-member: A VN-member is an abstract edge-to-edge link between
      any two APs or VN-APs.  Each link is formed as an E2E tunnel
      across the underlying networks.

   The Type 1 VN can be used to describe IETF Network Slice connection
   requirements.  However, the Network Slice SLO and Network Slice
   Endpoint are not clearly defined and there's no direct equivalent.
   For example, the SLO requirement of the VN is defined through the
   IETF TE Topologies YANG model, but the TE Topologies model is related
   to a specific implementation technology.  Also, VN-AP does not define
   "network-slice-match-criteria" to specify a specific NSE belonging to
   an IETF Network Slice.

B.2.  RFC8345 Augmentation Model

   The difference between the IETF Network Slice NBI requirements and
   the IETF basic network model is that the IETF Network Slice NBI
   requests abstract consumer IETF Network Slices, with details related
   to the slice Network hidden.  But the IETF network model is used to
   describe the interconnection details of a Network.  The customer
   service model does not need to provide details on the Network.

   For example, IETF Network Topologies YANG data model extension
   introduced in Transport Network Slice YANG Data Model



Wu, et al.                Expires May 19, 2021                 [Page 34]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


   [I-D.liu-teas-transport-network-slice-yang] includes three major
   parts:

   o  Network: a transport network list and an list of nodes contained
      in the network

   o  Link: "links" list and "termination points" list describe how
      nodes in a network are connected to each other

   o  Support network: vertical layering relationships between IETF
      Network Slice networks and underlay networks

   Based on this structure, the IETF Network Slice-specific SLO
   attributes nodes are augmented on the Network Topologies model,, e.g.
   isolation etc.  However, this modeling design requires the slice
   network to expose a lot of details of the network, such as the actual
   topology including nodes interconnection and different network layers
   interconnection.

Appendix C.  Appendix B IETF Network Slice Match Criteria

   5G is a use case of the IETF Network Slice and 5G End-to-end Network
   Slice Mapping from the view of IETF Network
   [I-D.geng-teas-network-slice-mapping]

   defines two types of Network Slice interconnection and
   differentiation methods: by physical interface or by TNSII (Transport
   Network Slice Interworking Identifier).  TNSII is a field in the
   packet header when different 5G wireless network slices are
   transported through a single physical interfaces of the IETF scoped
   Network.  In the 5G scenario, "network-slice-match-criteria" refers
   to TNSII.



















Wu, et al.                Expires May 19, 2021                 [Page 35]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


       +------------------------------------------------------------+
       |          5G E2E network slice orchestrator                 |
       ++-----------------------------------------------------+-----+
        |                        |                            |
        |                IETF Network Slice NBI               |
    +---+-------+                  |                    +-----+-----+
    |           |          +------------------+         |           |
    |RAN Slice  |          |IETF Network Slice|         |Core Slice |
    |controller |          |    controller    |         | controller|
    +----+------+          +-------+----------+         +-----+-----+
         |                         |                          |
         |                         |                          |
     +---+--+         +------------+----------------+        ++-----+
     |      |         |                             |        |      |
     |      |         |                             |        |      |
     |+----+|         |                             |        |      |
     ||    ||NS1-NSE1 |         Network Slice 1     |        |+----+|
     ||gNB1|+---------+-----+-----------------------+--------+|UPF1||
     ||    |+************  /                        |NS1-NSE3|+----+|
     |+----+|NS2-NSE1 |  */                         |        |      |
     |                |  /*                         |        |      |
     |+----+|NS1-NSE2 | /  *                        |        |      |
     ||    |+----------     *   Network Slice 2     |NS2-NSE3|+----+|
     ||gNB2|+************************************************+|UPF2||
     ||    ||NS2-NSE2 |                             |        |+----+|
     |+----+|         |                             |               |
     |      |         |                             |        |      |
     |      |         |                             |        |      |
     +------+         +----------- -----------------+        +------+


   As shown in the figure, gNodeB 1 and gNodeB 2 use IP gNB1 and IP gNB2
   to communicate with the IETF network, respectively.  In addition, the
   traffic of NS1 and NS2 on gNodeB 1 and gNodeB 2 is transmitted
   through the same access links to the IETF slice network.  The IETF
   slice network need to to distinguish different IETF Network Slice
   traffic of same gNB.  Therefore, in addition to using "node-id" and
   "port-id" to identify a Network Slice Endpont, other information is
   needed along with these parameters to uniquely distinguish a NSE.
   For example, VLAN IDs in the user traffic can be used to distinguish
   the NSEs of gNBs and UPFs.

Authors' Addresses








Wu, et al.                Expires May 19, 2021                 [Page 36]


Internet-Draft      IETF Network Slice NBI YANG model      November 2020


   Bo Wu
   Huawei Technologies
   101 Software Avenue, Yuhua District
   Nanjing, Jiangsu  210012
   China

   Email: lana.wubo@huawei.com


   Dhruv Dhody
   Huawei Technologies
   Divyashree Techno Park
   Bangalore, Karnataka  560066
   India

   Email: dhruv.ietf@gmail.com


   Liuyan Han
   China Mobile

   Email: hanliuyan@chinamobile.com


   Reza Rokui
   Nokia Canada

   Email: reza.rokui@nokia.com























Wu, et al.                Expires May 19, 2021                 [Page 37]