none L. Qiang Internet-Draft Huawei Intended status: Informational A. Galis Expires: July 30, 2018 University College London L. Geng China Mobile K. Makhijani Huawei P. Martinez-Julia NICT H. Flinck Nokia X. de Foy InterDigital Inc. January 26, 2018 Technology Independent Information Model for Network Slicing draft-qiang-coms-netslicing-information-model-02 Abstract This document provides a technology independent information model for transport network slicing. 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 July 30, 2018. Copyright Notice Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved. Qiang, et al. Expires July 30, 2018 [Page 1] Internet-Draft Network slicing January 2018 This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (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. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Network Slice Tree Structure . . . . . . . . . . . . . . . . 4 3.1. resources . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1.1. nodes . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.2. links . . . . . . . . . . . . . . . . . . . . . . . . 7 3.1.3. storage-units . . . . . . . . . . . . . . . . . . . . 8 3.1.4. compute-units . . . . . . . . . . . . . . . . . . . . 9 3.2. generalized-function-block . . . . . . . . . . . . . . . 9 3.3. slice-level-attributes . . . . . . . . . . . . . . . . . 10 4. Operations . . . . . . . . . . . . . . . . . . . . . . . . . 13 5. Yang Module . . . . . . . . . . . . . . . . . . . . . . . . . 14 6. Security Considerations . . . . . . . . . . . . . . . . . . . 27 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 27 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 27 9.1. Normative References . . . . . . . . . . . . . . . . . . 27 9.2. Informative References . . . . . . . . . . . . . . . . . 27 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 1. Introduction Network slicing is a tool to share network resources and to offer customized network architectures for diverse use cases that share the same underlying infrastructure [NGMN-NS-Framework]. Customers may not be familiar with underlying networking technologies, and therefore may prefer to interface with network slices in a technology-agnostic way. On the other hand, service providers may have multiple candidate technologies for supporting network slicing. As shown in Figure 1, there is a gap between technology-agnostic network slicing service requirements and specific implementation technologies, that needs to be filled by a technology independent information model. Such a technology independent information model describes the entities that compose a network slice, their properties, attributes and operations, and the way they relate to each other of an end to end network slice that may span across Qiang, et al. Expires July 30, 2018 [Page 2] Internet-Draft Network slicing January 2018 multiple technology domains. It is independent of any specific repository, software usage, protocol, or platform, hence supports common operations and management of network slices. +-----------+ +-----------+ |NS Tenant/ +---------------+NS Provider| |Customer | Service | | +-----------+ Model +------+----+ | |Service Delivery |Model | +------------------+---------------+ | NS Management System | | | | **************************** +----------+ | *Technology Independent NS * | | | * Information Model * | Device | **************************** |Configuration | | Model +--------+-------------------+-----+ | | | | Network Configuration Model | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~|~~~ Available NS Activation |Technologies | | | | | +-----------------------+-+ +------------+------------+ | |Controller/Orchestrator/ | |Controller/Orchestrator/ | | |Manager of Implementation| |Manager of Implementation| | |Technology A | |Technology B | .|... +---------------+---------+ +-------------+-----------+ | | | | | Device Configuration Model | | | | | +---------------+----------------------------+---------------+-+ | | | Underlying Network Resources/Functions | | | +--------------------------------------------------------------+ Figure 1: Technology Independent NS Information Model mapping to specific technology is out of scope. Qiang, et al. Expires July 30, 2018 [Page 3] Internet-Draft Network slicing January 2018 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. Other network slicing related terminology used in this document are interpreted as description in [COMS-PS]. 3. Network Slice Tree Structure The YANG data modeling language [RFC7950] will be used to represent the transport network slicedata model. Moreover,the data model for network topologies developed in [draft-ietf-i2rs-yang-network-topo] will be used as a base. The proposed NS information model includes the following elements: connectivity resources, storage resources, compute resources, service instance based on predefined function blocks, network slice level attributes, etc. It is presented as a tree structure of attributes. The Yang language is used to represent the network slice information model. The following tree shows an overview of the tree structure. New attributes proposed in this draft are in the "netslice:" namespace, while other attributes are defined in [draft-ietf-i2rs-yang-network-topo]. Qiang, et al. Expires July 30, 2018 [Page 4] Internet-Draft Network slicing January 2018 module: ietf-network +--rw networks +--rw network* [network-id] +--rw network-id network-id +--rw network-types +--rw supporting-network* [network-ref] | +--rw network-ref +--rw node* [node-id] | +--... | +--rw netslice:compute-unit* [compute-unit-ref] | | +--rw netslice:compute-unit-ref compute-unit-ref | +--rw netslice:storage-unit* [storage-unit-ref] | | +--rw netslice:storage-unit-ref storage-unit-ref | +--rw netslice:service-instance* [service-instance-ref] | +--rw netslice:service-instance-ref service-instance-ref +--rw nt:link* [link-id] | +--... | +--rw netslice:link-qos | +--... +--rw netslice:compute-unit* [compute-unit-id] | +--... +--rw netslice:storage-unit* [storage-unit-id] | +--... +--rw netslice:service-instance* [service-instance-id] | +--... +--rw netslice:slice-level-attributes +--... 3.1. resources Basic resources are used to construct a network slice. Resources comprise: nodes, links, compute units and storage units. Different resources can exist independently, they can also be bound together when necessary. For example, bind a storage unit to a connectivity node. A whole network attribute can represent a network slice instance. The network slice instance "supporting network" list can include underlying networks which are used to implement the network slice. In this model, nodes and links will represent virtual nodes and links exposed to the slice user. The network-id attribute will represent a network slice instance ID. Qiang, et al. Expires July 30, 2018 [Page 5] Internet-Draft Network slicing January 2018 3.1.1. nodes +--rw node* [node-id] | +--rw node-id node-id | +--rw supporting-node* [network-ref node-ref] | | +--rw network-ref | | +--rw node-ref | +--rw nt:termination-point* [tp-id] | | +--rw nt:tp-id tp-id | | +--rw nt:supporting-termination-point* [network-ref node-ref tp-ref] | | | +--rw nt:network-ref | | | +--rw nt:node-ref | | | +--rw nt:tp-ref | | +--rw netslice:packet-rate? int64 | | +--rw netslice:packet-loss-probability? int64 | | +--rw netslice:packet-loss-threshold? int64 | | +--rw netslice:received-packets? int64 | | +--rw netslice:sent-packets? int64 | +--rw netslice:compute-unit* [compute-unit-ref] | | +--rw netslice:compute-unit-ref compute-unit-ref | +--rw netslice:storage-unit* [storage-unit-ref] | | +--rw netslice:storage-unit-ref storage-unit-ref | +--rw netslice:service-instance* [service-instance-ref] | +--rw netslice:service-instance-ref service-instance-ref Nodes are defined in [draft-ietf-i2rs-yang-network-topo]. Nodes are augmented with the following attributes, that used to represent requirements, configuration and statistics associated with a termination point: packet-rate: the packet forwarding capability of a port for this node in the unit of pps (packet per second). packet-loss-probability: a statistical value which reflects the probability of packet loss. packet-loss-threshold: a threshold of the packet loss probability. If the value of packet-loss-probability is larger than packet-loss- threshold, should actively notify the management system. received-packets: a statistical value which reflects the number of received packets in a period of time. sent-packets: a statistical value which reflects the number of sent packets in a period of time. Qiang, et al. Expires July 30, 2018 [Page 6] Internet-Draft Network slicing January 2018 3.1.2. links +--rw nt:link* [link-id] | +--rw nt:link-id link-id | +--rw nt:source | | +--rw nt:source-node? | | +--rw nt:source-tp? | +--rw nt:destination | | +--rw nt:dest-node? | | +--rw nt:dest-tp? | +--rw nt:supporting-link* [network-ref link-ref] | | +--rw nt:network-ref | | +--rw nt:link-ref | +--rw netslice:link-qos | +--rw netslice:link-bandwidth-agreement? int64 | +--rw netslice:link-throughput? int64 | +--rw netslice:link-throughput-threshold? int64 | +--rw netslice:link-latency-agreement? int64 | +--rw netslice:link-latency? int64 | +--rw netslice:link-jitter-agreement? int64 | +--rw netslice:link-jitter? int64 | +--rw netslice:link-jitter-threshold? int64 | +--rw netslice:mandatory-node* [node-ref] | | +--rw netslice:node-ref node-ref | +--rw netslice:mandatory-link* [link-ref] | | +--rw netslice:link-ref link-ref | +--rw netslice:excluded-node* [node-ref] | | +--rw netslice:node-ref node-ref | +--rw netslice:excluded-link* [link-ref] | +--rw netslice:link-ref link-ref Links are defined in [draft-ietf-i2rs-yang-network-topo]. Links are associated with nodes through termination points placed under nodes. Links are augmented with QoS information as follows: link-bandwidth-agreement: specify the bandwidth requirement for this link. If this parameter does not be set specifically, then the link will be constructed according to the default bandwidth value provided by management plane. link-throughput: the current throughput of this link. link-throughput-threshold: a threshold for link throughput. If the value of link-throughput is smaller than link-throughput-threshold, should actively notify the management system. Qiang, et al. Expires July 30, 2018 [Page 7] Internet-Draft Network slicing January 2018 link-latency-agreement: specify the latency requirement for this link. If this parameter does not be set specifically, then the link will be constructed according to the default latency agreement provided by management plane. link-latency: the current latency of this link. link-jitter-agreement: specify the jitter requirement for this link. If this parameter does not be set specifically, then the link will be constructed according to the default jitter agreement provided by management plane. link-jitter: the current jitter of this link. link-jitter-threshold: a threshold for link jitter. If the value of link-jitter is larger than link-jitter-threshold, should actively notify the management system. mandatory-node/link: a list of underlying nodes/links that must be passed by the mapped physical path of this link. exclusive-node/link: a list of underlying nodes/links that cannot be traversed by the mapped physical path of this link. 3.1.3. storage-units +--rw netslice:storage-unit* [storage-unit-id] | +--rw netslice:storage-unit-id inet:uri | +--rw netslice:size? int64 | +--rw netslice:access-rate int32 | +--rw netslice:access-mode? access-qualifier | +--rw netslice:read-write-mode-type? read-write-mode-type | +--rw netslice:redundancy-type? redundancy-type | +--rw netslice:location? string size: size of the storage unit in MB. access-rate: the minimum rate to write/read 8KB files into/from the storage unit. access-mode: there are two options include public or dedicated. read-write-mode: there are two options include read only, and read & write. redundancy-type: there are four options include best efforts (i.e, no redundancy), n+1 (n storage units with one extra backup), 2n (each Qiang, et al. Expires July 30, 2018 [Page 8] Internet-Draft Network slicing January 2018 storage unit has one backup), 2n+1 (n storage units with n+1 extra backup). location: a string describing the location of the storage unit. 3.1.4. compute-units +--rw netslice:compute-unit* [compute-unit-id] | +--rw netslice:compute-unit-id inet:uri | +--rw netslice:num-cores? int8 | +--rw netslice:ram? int64 | +--rw netslice:access-mode? access-mode-type | +--rw netslice:location? string | +--rw netslice:unit-type compute-unit-type num-cores: the number of arithmetic logic unit. ram: RAM in bytes. access-mode: there are two options include shared or dedicated. location: a string describing the location of the compute unit. unit-type: two types of compute unit include GPU or CPU 3.2. generalized-function-block Qiang, et al. Expires July 30, 2018 [Page 9] Internet-Draft Network slicing January 2018 +--rw netslice:service-instance* [service-instance-id] | +--rw netslice:service-instance-id inet:uri | +--rw netslice:domain-agent | | +--rw netslice:agent-name? string | | +--rw netslice:sb-ip-address? string | | +--rw netslice:sb-port? string | | +--rw netslice:nb-ip-address string | | +--rw netslice:nb-port? string | +--rw netslice:load-balancer [element-id] | | +--rw element-id inet:uri | | +--rw nt:termination-point* [tp-id] | | | +--rw nt:tp-id tp-id | | | +--rw nt:supporting-termination-point* [network-ref node-ref tp-ref] | | | | +--rw nt:network-ref | | | | +--rw nt:node-ref | | | | +--rw nt:tp-ref | | | +--rw netslice:packet-rate? int64 | | | +--rw netslice:packet-loss-probability? int64 | | | +--rw netslice:packet-loss-threshold? int64 | | | +--rw netslice:received-packets? int64 | | | +--rw netslice:sent-packets? int64 | | +--rw netslice:lb-name? string | | +--rw netslice:ip-address? string | | +--rw netslice:port? string Some general features could be packaged into function blocks in advance, such as agent, firewall, load balancer, etc. 3.3. slice-level-attributes +--rw netslice:slice-level-attributes +--rw netslice:service-time-start? yang:date-and-time +--rw netslice:service-time-end? yang:date-and-time +--rw netslice:lifecycle-status? lifecycle-status-type +--rw netslice:access-control | +--rw netslice:match? string | +--rw netslice:action? string | +--rw netslice:priority? string | +--rw netslice:counter? int64 +--rw netslice:reliability-level? reliability-level-type +--rw netslice:resource-reservation-level? resource-reservation-level-type +--rw netslice:availability? int64 +--rw netslice:availability-threshold? string Qiang, et al. Expires July 30, 2018 [Page 10] Internet-Draft Network slicing January 2018 The slice-level-attributes refers to a set of attributes applicable to a network slice. Some explanations are provided as follows for easy going: service-time-start/end: specify the time during which the network slice service exists (e.g., three months, one year). lifecycle-status: specify the status of the network slice, there are four enumeration values: construction, modification, activation and deletion. access-control: illustrates each role can take what kind of operations on the network slice. reliability-level: the ability of a network slice to be in a stable state. In this document, the main method to achieve reliability is "backup". If necessary, other methods also can be extended based on the current definition. The detailed definition of Reliability_Level is provided in Table 1. resource-reservation-level: classify different resource reservation levels of a network slice. This attribute is related to the slice isolation but is not strictly bound. The detailed definition is provided in Table 2. availability: a statistical value which reflects the probability for a network slice instance to work with expected SLA in a period of time (e.g., 99.999% of time). availability-threshold: a threshold of the availability. If the value of Availability is smaller than Availability_Threshold, should actively notify the management system. Qiang, et al. Expires July 30, 2018 [Page 11] Internet-Draft Network slicing January 2018 +=================================================+===================+ | | | | | Value | Explanation | Note | | | | | +=================================================+===================+ | | | | | none | No specific reliability requirement | The lowest | | | | reliability level | +-----------+-------------------------------------+-------------------+ | | | | |path-backup| Each path has a backup path | Path reliability | | | | | +-----------+-------------------------------------+-------------------+ | | | | | logical- | Each node/link has a backup node/ | Logical resource | | backup | link | reliability | +-----------+-------------------------------------+-------------------+ | | | | | | Each node/link has a backup node/ | Physical resource | | | link, and the primary and backup | reliability | | physical-| nodes/links must be mapped to | | | backup | different physical devices/paths | | | | (the mapped two physical paths | | | | couldn't have any shared device) | | | | | | ==================================================+===================+ Table 1: Explanation of reliability-level Qiang, et al. Expires July 30, 2018 [Page 12] Internet-Draft Network slicing January 2018 +=======+=====================================+=======================+ | | | | | Value | Explanation | Note | | | | | +=======+=====================================+=======================+ | | | | | none | No specific resource reservation |The lowest resource | | | requirement |reservation level, the | | | |network slice instance | | | |will share and compete | | | |for resource with other| | | |network slice instances| | | | | +-------+-------------------------------------+-----------------------+ | | | | |shared-| A certain of resource reservation, |Shared and | |non- | the free reserved resources could be|non-preemptive | |preemp | used by other slice instances, and | | |tive | uable to be retrieved if other slice| | | | instances are usring them | | | | | | +-------+-------------------------------------+-----------------------+ | | | | |shared-| More stringent resouce reservation, |Shared and preemptive | |preemp | the free reserved resources could be| | |tive | used by other slice instances, and | | | | will be retrieved if the network | | | | slice needs them | | | | | | +-------+-------------------------------------+-----------------------+ | | | | |exclus | The reserved resources couldn't be |The highest resource | |ive | used by other slice instances, even |reservartion level, | | | if these resources are free |exclusive | | | | | +=======+=====================================+=======================+ Table 2: Explanation of resource-reservation-level 4. Operations The defined information model should be able to support the following operations on network slices. Except for support the operations on a complete network slice, each element insides a network slice also should be able to be operated specifically. o construct: construct a network slice Qiang, et al. Expires July 30, 2018 [Page 13] Internet-Draft Network slicing January 2018 o delete: delete a network slice o modify: modify a constructed network slice o set_element_value: set the value of an indicated element in a network slice o get_element_value: get the value of an indicated element in a network slice o monitor: monitor the status of a network slice o enable_report: enable the active report to the subscribes/ management system when the monitored status changes beyond expectation 5. Yang Module module ietf-coms-core { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-coms-core"; prefix netslice; import ietf-yang-types { prefix "yang"; } import ietf-inet-types { prefix inet; } import ietf-network { prefix nd; } import ietf-network-topology { prefix lnk; } organization "IETF"; contact "Editors: X. de Foy, Cristina QIANG "; description "This module contains a collection of YANG definitions for COMS. Copyright (c) 2016 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). Qiang, et al. Expires July 30, 2018 [Page 14] Internet-Draft Network slicing January 2018 This version of this YANG module is part of draft-...; see the RFC itself for full legal notices."; revision "2018-01-26" { description "Initial revision of COMS topology."; reference "draft-qiang-coms-netslicing-information-model-02"; } /* Types */ typedef read-write-mode-type { type enumeration { enum read-write { description "R/W"; } enum read-only { description "R/O"; } } description "Indicates if entity is read-write, read-only, etc."; } typedef access-mode { type enumeration { enum access-mode-public { description "Underlying storage can be shared with other instances"; } enum access-mode-dedicated { description "Underlying storage is not shared with other instances"; } } description "access-mode"; } typedef compute-unit-type { type enumeration { enum compute-unit-cpu { description "Underlying compute unit is CPU based"; } enum compute-unit-gpu { Qiang, et al. Expires July 30, 2018 [Page 15] Internet-Draft Network slicing January 2018 description "Underlying compute unit is GPU based"; } } description "compute-unit-type"; } typedef lifecycle-status-type { type enumeration { enum construction { description "construction"; } enum modification { description "modification"; } enum activation { description "activation"; } enum deletion { description "deletion"; } } description "Lifecycle status"; } typedef resource-reservation-level-type { type enumeration { enum none { description "No specific reliability requirement"; } enum shared-non-preemptive { description "Each path has a backup path"; } enum shared-preemptive { description "Each node/link has a backup node/link"; } enum exclusive { description "Each node/link has a backup node/link, mapped to different physical devices/paths"; } } description "Resource reservation level"; } typedef reliability-level-type { type enumeration { enum none { description "No specific reliability requirement"; } Qiang, et al. Expires July 30, 2018 [Page 16] Internet-Draft Network slicing January 2018 enum path-backup { description "Each path has a backup path"; } enum logical-backup { description "Each node/link has a backup node/link"; } enum physical-backup { description "Each node/link has a backup node/link, mapped to different physical devices/paths"; } } description "Reliability level"; } typedef redundancy-type { type enumeration { enum none { description "no redundancy"; } enum n+1 { description "n storage units with one extra backup"; } enum 2n { description "each storage unit has one backup"; } enum 2n+1 { description "n storage units with n+1 extra backup"; } } description "Redundancy type"; } typedef node-ref { type instance-identifier; description "A reference to a node"; } typedef link-ref { type instance-identifier; description "A reference to a link"; } typedef compute-unit-ref { type instance-identifier; description "A reference to a compute unit"; } typedef storage-unit-ref { Qiang, et al. Expires July 30, 2018 [Page 17] Internet-Draft Network slicing January 2018 type instance-identifier; description "A reference to a storage unit"; } typedef service-instance-ref { type instance-identifier; description "A reference to a service instance"; } grouping rule { description "Access Control Rule"; leaf match{ type string; description "Match"; } leaf action{ type string; description "Action"; } leaf priority{ type string; description "Priority"; } leaf counter{ type int64; description "Counter"; } } grouping port-config { description "Configuration of a port/connection point"; leaf packet-rate { type int64; description "Data rate in packets per seconds"; } leaf packet-loss-probability { type int64; description "Packet loss probability (actual type is TBD)"; } leaf packet-loss-threshold { type int64; description "Packet loss probability threshold to alert management system (actual type is TBD)"; } } grouping port-stats { description "Statistics of a port/connection point"; Qiang, et al. Expires July 30, 2018 [Page 18] Internet-Draft Network slicing January 2018 leaf received-packets { type int64; description "Total number of packets received"; } leaf sent-packets { type int64; description "Total number of packets sent"; } } grouping storage-unit-specs { description "Storage unit specs"; leaf size { type int64; description "storage size in MB"; } leaf access-rate { type int32; description "lower limit of storage access rate"; } leaf access-mode { type access-mode; description "access-mode"; } leaf read-write-mode-type { type read-write-mode-type; description "Read and write mode"; } leaf redundancy-type { type redundancy-type; description "Redundancy type"; } } grouping storage-unit-desc { description "Storage unit description"; leaf storage-unit-id { type inet:uri; description "storage-unit ID"; } uses storage-unit-specs; leaf location { type string; description "Location hint"; } } grouping compute-unit-specs { Qiang, et al. Expires July 30, 2018 [Page 19] Internet-Draft Network slicing January 2018 description "Compute unit specs"; leaf num-cores { type int8; description "Number of CPU Cores"; } leaf ram { type int64; description "RAM in bytes"; } leaf access-mode { type access-mode-type; description "access mode"; } } grouping compute-unit-desc { description "Compute unit description"; leaf compute-unit-id { type inet:uri; description "storage-unit ID"; } uses compute-unit-specs; leaf location { type string; description "Location hint"; } leaf unit-type { type compute-unit-type; description "specify the category of compute unit"; } } grouping path-restrictions { description "Physical path restriction type: nodes and links of underlying networks that must or must not be traversed by a link"; list mandatory-node { key "node-ref"; description "List of mandatory nodes"; leaf node-ref { type node-ref; description "Node"; } } list mandatory-link { key "link-ref"; description "List of mandatory links"; leaf link-ref { Qiang, et al. Expires July 30, 2018 [Page 20] Internet-Draft Network slicing January 2018 type link-ref; description "Link"; } } list excluded-node { key "node-ref"; description "List of excluded nodes"; leaf node-ref { type node-ref; description "Node"; } } list excluded-link { key "link-ref"; description "List of excluded links"; leaf link-ref { type link-ref; description "Link"; } } } grouping link-qos-desc { description "QoS associated with a link"; leaf link-bandwidth-agreement { type int64; description "Link bandwidth agreement"; } leaf link-throughput { type int64; description "Link throughput"; } leaf link-throughput-threshold { type int64; description "Link throughput threshold"; } leaf link-latency-agreement { type int64; description "Link latency agreement"; } leaf link-latency { type int64; description "Link latency"; } leaf link-jitter-agreement { type int64; description "Link jitter agreement"; } Qiang, et al. Expires July 30, 2018 [Page 21] Internet-Draft Network slicing January 2018 leaf link-jitter { type int64; description "Link jitter"; } leaf link-jitter-threshold { type int64; description "Link jitter threshold"; } uses path-restrictions; } grouping slice-level-attributes { description "network slice level attributes"; leaf service-time-start { type yang:date-and-time; description "Start of service"; } leaf service-time-end { type yang:date-and-time; description "End of service"; } leaf lifecycle-status { type lifecycle-status-type; description "Step in the slice lifecycle"; } container access-control { uses rule; description "Control of access to operations per role"; } leaf reliability-level { type reliability-level-type; description "Reliability level"; } leaf resource-reservation-level { type resource-reservation-level-type; description "Resource reservation level"; } leaf availability { type int64; description "Measure of probability to work with expected SLA (TBD: type should be expanded)"; } leaf availability-threshold { type string; description "Availability threshold to actively notify the management system"; } } Qiang, et al. Expires July 30, 2018 [Page 22] Internet-Draft Network slicing January 2018 grouping generalized-function-block { description "generalized function blocks that can be used to create an instance (more funcution blocks TBD)"; container domain-agent { description "a network slice agent to receive manager request"; leaf agent-name { type string; description "agent name"; } leaf sb-ip-address { type string; description "IP Address of the server which for southbound protocols"; } leaf sb-port { type string; description "Port of the server which for southbound protocols"; } leaf nb-ip-address { type string; description "IP Address of the server which for northbound protocols"; } leaf nb-port { type string; description "Port of the server which for northbound protocols"; } } container load-balancer { description "load balancer (type TBD)"; leaf element-id { type inet:uri; description "load balancer element id"; } list termination-point { use termination-point-desc; } leaf LB-name { type string; description "load balancer name"; } leaf ip-address { type string; description "IP Address of the load balancer (type TBD)"; } leaf port { type string; Qiang, et al. Expires July 30, 2018 [Page 23] Internet-Draft Network slicing January 2018 description "Port of the load balancer (type TBD)"; } } } grouping termination-point-desc { description "Augment network nodes termination points with port information."; leaf tp-id { type tp-id; description "Termination point identifier."; } list supporting-termination-point { key "network-ref node-ref tp-ref"; description "This list identifies any termination points that the termination point is dependent on, or maps onto. Those termination points will themselves be contained in a supporting node. This dependency information can be inferred from the dependencies between links. For this reason, this item is not separately configurable. Hence no corresponding constraint needs to be articulated. The corresponding information is simply provided by the implementing system."; leaf network-ref { type leafref { path "../../../nw:supporting-node/nw:network-ref"; } description "This leaf identifies in which topology the supporting termination point is present."; } leaf node-ref { type leafref { path "../../../nw:supporting-node/nw:node-ref"; } description "This leaf identifies in which node the supporting termination point is present."; } Qiang, et al. Expires July 30, 2018 [Page 24] Internet-Draft Network slicing January 2018 leaf tp-ref { type leafref { path "/nw:networks/nw:network[nw:network-id=current()/" + "../network-ref]/nw:node[nw:node-id=current()/../" + "node-ref]/termination-point/tp-id"; } description "Reference to the underlay node, must be in a different topology"; } } // list supporting-termination-point uses port-config; uses port-stats; } grouping service-instance-desc { description "Service instance description. An instance is based on a predefined function block"; leaf service-instance-id { type inet:uri; description "service instance ID"; } uses generalized-function-block; } /* Model */ augment "/nd:networks/nd:network" { description "Augment network nodes with slice information."; list compute-unit { key "compute-unit-id"; description "Compute units"; uses compute-unit-desc; } list storage-unit { key "storage-unit-id"; description "Storage units"; uses storage-unit-desc; } list service-instance { key "service-instance-id"; description "Service instance"; uses service-instance-desc; } container slice-level-attributes { Qiang, et al. Expires July 30, 2018 [Page 25] Internet-Draft Network slicing January 2018 description "Attributes that apply to a whole network slice"; uses slice-level-attributes; } } augment "/nd:networks/nd:network/nd:node" { description "Augment network nodes with slice information."; list compute-unit { key "compute-unit-ref"; description "List of compute units present in node"; leaf compute-unit-ref { type compute-unit-ref; description "Compute unit present in node"; } } list storage-unit { key "storage-unit-ref"; description "List of storage units present in node"; leaf storage-unit-ref { type storage-unit-ref; description "Storage unit present in node"; } } list service-instance { key "service-instance-ref"; description "an instance of a service provided by the node"; leaf service-instance-ref { type service-instance-ref; description "Service instance present in node"; } } } augment "/nd:networks/nd:network/nd:node/lnk:termination-point" { description "Augment network nodes termination points with port information."; uses port-config; uses port-stats; } augment "/nd:networks/nd:network/lnk:link" { description "Augment network links with slice information."; container link-qos { description "QoS specifications for this link"; uses link-qos-desc; } } } Qiang, et al. Expires July 30, 2018 [Page 26] Internet-Draft Network slicing January 2018 6. Security Considerations Each component of the network slice has its own security requirements. 7. IANA Considerations There is no IANA action required by this document. 8. Acknowledgements Authors would like to acknowledge Guangpeng Li for help coding. 9. References 9.1. Normative References [draft-ietf-i2rs-yang-network-topo] "i2rs-yang-network-topo", . [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, August 2016, . 9.2. Informative References [COMS-PS] "COMS Problem Statement", . [NGMN-NS-Framework] "NGMN Network Slicing Framework", . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . Authors' Addresses Li Qiang Huawei Email: qiangli3@huawei.com Qiang, et al. Expires July 30, 2018 [Page 27] Internet-Draft Network slicing January 2018 Alex Galis University College London Email: a.galis@ucl.ac.uk Liang Geng China Mobile Email: gengliang@chinamobile.com Kiran Makhijani Huawei Email: Kiran.Makhijani@huawei.com Pedro Martinez-Julia NICT Email: pedro@nict.go.jp Hannu Flinck Nokia Email: hannu.flinck@nokia.com Xavier de Foy InterDigital Inc. Email: Xavier.DeFoy@InterDigital.com Qiang, et al. Expires July 30, 2018 [Page 28]