draft-ietf-teas-ietf-network-slice-nbi-yang-00.txt   draft-ietf-teas-ietf-network-slice-nbi-yang-01.txt 
Network Working Group B. Wu TEAS B. Wu
Internet-Draft D. Dhody Internet-Draft D. Dhody
Intended status: Standards Track Huawei Technologies Intended status: Standards Track Huawei Technologies
Expires: 1 April 2022 R. Rokui Expires: 5 September 2022 R. Rokui
Nokia Ciena
T. Saad T. Saad
Juniper Networks Juniper Networks
L. Han L. Han
China Mobile China Mobile
28 September 2021 4 March 2022
IETF Network Slice Service YANG Model IETF Network Slice Service YANG Model
draft-ietf-teas-ietf-network-slice-nbi-yang-00 draft-ietf-teas-ietf-network-slice-nbi-yang-01
Abstract Abstract
This document provides a YANG data model for the IETF Network Slice This document defines a YANG model for the IETF Network Slice service
service model. The model can be used by a IETF Network Slice model. The model can be used by a IETF Network Slice customer to
customer to manage IETF Network Slice from an IETF Network Slice manage IETF Network Slice from an IETF Network Slice Controller
Controller (NSC). (NSC).
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 1 April 2022. This Internet-Draft will expire on 5 September 2022.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components and restrictions with respect to this document. Code Components
extracted from this document must include Simplified BSD License text extracted from this document must include Revised BSD License text as
as described in Section 4.e of the Trust Legal Provisions and are described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Simplified BSD License. provided without warranty as described in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Conventions used in this document . . . . . . . . . . . . . . 3 2. Conventions used in this document . . . . . . . . . . . . . . 3
2.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 2.1. Acronyms . . . . . . . . . . . . . . . . . . . . . . . . 4
3. IETF Network Slice Service Model Usage . . . . . . . . . . . 4 3. IETF Network Slice Service Model Usage . . . . . . . . . . . 4
4. IETF Network Slice Service Model Overview . . . . . . . . . . 5 4. IETF Network Slice Service Model Overview . . . . . . . . . . 5
5. IETF Network Slice Templates . . . . . . . . . . . . . . . . 9 5. IETF Network Slice Templates . . . . . . . . . . . . . . . . 11
6. IETF Network Slice Modeling Description . . . . . . . . . . . 9 6. IETF Network Slice Modeling Description . . . . . . . . . . . 12
6.1. IETF Network Slice Connectivity Type . . . . . . . . . . 10 6.1. IETF Network Slice Connectivity . . . . . . . . . . . . . 13
6.2. IETF Network Slice SLO and SLE Policy . . . . . . . . . . 11 6.2. IETF Network Slice SLO and SLE Policy . . . . . . . . . . 13
6.3. IETF Network Slice Endpoint (NSE) . . . . . . . . . . . . 13 6.3. IETF Network Slice Endpoint (NSE) . . . . . . . . . . . . 15
7. IETF Network Slice Monitoring . . . . . . . . . . . . . . . . 16 7. IETF Network Slice Monitoring . . . . . . . . . . . . . . . . 19
8. IETF Network Slice Service Module . . . . . . . . . . . . . . 17 8. IETF Network Slice Service Module . . . . . . . . . . . . . . 20
9. Security Considerations . . . . . . . . . . . . . . . . . . . 37 9. Security Considerations . . . . . . . . . . . . . . . . . . . 44
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 38 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 38 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 45
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 38 12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 45
12.1. Normative References . . . . . . . . . . . . . . . . . . 38 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 45
12.2. Informative References . . . . . . . . . . . . . . . . . 40 13.1. Normative References . . . . . . . . . . . . . . . . . . 45
Appendix A. IETF Network Slice NBI Model Usage Example . . . . . 41 13.2. Informative References . . . . . . . . . . . . . . . . . 47
Appendix A. IETF Network Slice Service Model Usage Example . . . 48
Appendix B. Comparison with Other Possible Design choices for IETF Appendix B. Comparison with Other Possible Design choices for IETF
Network Slice NBI . . . . . . . . . . . . . . . . . . . . 44 Network Slice Service Interface . . . . . . . . . . . . . 57
B.1. ACTN VN Model Augmentation . . . . . . . . . . . . . . . 44 B.1. ACTN VN Model Augmentation . . . . . . . . . . . . . . . 58
B.2. RFC8345 Augmentation Model . . . . . . . . . . . . . . . 45 B.2. RFC8345 Augmentation Model . . . . . . . . . . . . . . . 59
Appendix C. Appendix B IETF Network Slice Match Criteria . . . . 45 Appendix C. Appendix B IETF Network Slice Match Criteria . . . . 59
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 47 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 60
1. Introduction 1. Introduction
This document provides a YANG [RFC7950] data model for the IETF This document defines a YANG [RFC7950] data model for the IETF
Network Slice service model. Network Slice service model.
The YANG model discussed in this document is defined based on the The YANG model discussed in this document is defined based on the
description of the IETF Network Slice in description of the IETF Network Slice in
[I-D.ietf-teas-ietf-network-slices], which is used to operate IETF [I-D.ietf-teas-ietf-network-slices], which is used to operate IETF
Network Slices during the IETF Network Slice instantiation. This Network Slices during the IETF Network Slice instantiation. This
YANG model supports various operations on IETF Network Slices such as YANG model supports various operations on IETF Network Slices such as
creation, modification, deletion, and monitoring. creation, modification, deletion, and monitoring.
The IETF Network Slice Controller (NSC) is a logical entity that The IETF Network Slice Controller (NSC) is a logical entity that
skipping to change at page 3, line 22 skipping to change at page 3, line 26
and also monitoring and reporting requirements. These requirements and also monitoring and reporting requirements. These requirements
are then translated into technology-specific actions that are are then translated into technology-specific actions that are
implemented in the underlying network using a network-facing implemented in the underlying network using a network-facing
interface. The details of how the IETF network slices are put into interface. The details of how the IETF network slices are put into
effect are out of scope for this document. effect are out of scope for this document.
The YANG model discussed in this document describes the requirements The YANG model discussed in this document describes the requirements
of an IETF Network Slice from the point of view of the customer. It of an IETF Network Slice from the point of view of the customer. It
is thus classified as customer service model in [RFC8309]. is thus classified as customer service model in [RFC8309].
Editorial Note: (To be removed by RFC Editor)
This draft contains several placeholder values that need to be
replaced with finalized values at the time of publication. Please
apply the following replacements:
* "XXXX" --> the assigned RFC value for this draft both in this
draft and in the YANG models under the revision statement.
* The "revision" date in model, in the format XXXX-XX-XX, needs to
be updated with the date the draft gets approved.
The IETF Network Slice operational state is included in the same tree The IETF Network Slice operational state is included in the same tree
as the configuration consistent with Network Management Datastore as the configuration consistent with Network Management Datastore
Architecture [RFC8342]. Architecture [RFC8342].
2. Conventions used in this document 2. Conventions used in this document
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP14, [RFC2119], [RFC8174] when, and only when, they appear in all BCP14, [RFC2119], [RFC8174] when, and only when, they appear in all
skipping to change at page 3, line 45 skipping to change at page 4, line 13
specification: specification:
* client * client
* configuration data * configuration data
* state data * state data
This document makes use of the terms defined in [RFC7950]. This document makes use of the terms defined in [RFC7950].
The tree diagram used in this document follow the notation defined in
[RFC8340].
This document also makes use of the terms introduced in the Framework This document also makes use of the terms introduced in the Framework
for IETF Network Slices [I-D.ietf-teas-ietf-network-slices]: for IETF Network Slices [I-D.ietf-teas-ietf-network-slices].
This document defines the following term: This document defines the following terms:
* IETF Network Slice Connection (NS-Connection): In the context of * IETF Network Slice Connection (NS-Connection): Refers to
an IETF Network Slice, an IETF NS-Connection is an abstract entity connectivity construct defined
which represents a particular connection between a pair of NSEs. in[I-D.ietf-teas-ietf-network-slices]. An IETF Network Slice can
An IETF Network Slice can has one or multiple NS-Connections. have one or multiple NS-Connections.
2.1. Tree Diagrams * IETF Network Slice Connection (NS-Connection-group): When an IETF
Network Slice has multiple NS-connections. The connections with
similar SLO or SLE are treated as one NS-connection group. An
IETF Network Slice can have one or multiple NS-Connection-groups.
The tree diagram used in this document follow the notation defined in 2.1. Acronyms
[RFC8340].
The following acronyms are used in the document:
CE Customer Edge
NSC Network Slice Controller
NSE Network Slice Endpoint
MTU Maximum Transmission Unit
PE Provider Edge
SLE Service Level Expectation
SLO Service Level Objective
3. IETF Network Slice Service Model Usage 3. IETF Network Slice Service Model Usage
The intention of the IETF Network Slice service model is to allow the The intention of the IETF Network Slice service model is to allow the
customer to manage IETF Network Slices. In particular, the model customer to manage IETF Network Slices. In particular, the model
allows customers to operate in an abstract and technology-agnostic allows customers to operate in an abstract and technology-agnostic
manner, with details of the IETF Network Slices realization hidden. manner, with details of the IETF Network Slices realization hidden.
According to the [I-D.ietf-teas-ietf-network-slices] description, According to the [I-D.ietf-teas-ietf-network-slices] description,
IETF Network Slices are applicable to use cases such as (but not IETF Network Slices are applicable to use cases such as (but not
limited to) network wholesale services, network infrastructure limited to) network wholesale services, network infrastructure
sharing among operators, NFV connectivity, Data Center Interconnect, sharing among operators, NFV (Network Function Virtualization)
and 5G E2E network slice. connectivity, Data Center Interconnect, and 5G E2E network slice.
As shown in Figure 1, in all these use-cases, the model is used by As shown in Figure 1, in all these use-cases, the model is used by
the higher management system to communicate with NSC for life cycle the higher management system to communicate with NSC for life cycle
manage of IETF Network Slices including both enablement and manage of IETF Network Slices including both enablement and
monitoring. For example, in 5G E2E network slicing use-case the E2E monitoring. For example, in 5G E2E (End-to-end) network slicing use-
network slice orchestrator acts as the higher layer system to request case the E2E network slice orchestrator acts as the higher layer
the IETF Network Slices. The interface is used to support dynamic system to request the IETF Network Slices. The interface is used to
IETF Network Slice creation and its lifecycle management to support dynamic IETF Network Slice creation and its lifecycle
facilitate end-to-end network slice services. management to facilitate end-to-end network slice services.
+----------------------------------------+ +----------------------------------------+
| IETF Network Slice Customer | | IETF Network Slice Customer |
| | | |
+----------------+-----------------------+ +----------------+-----------------------+
| |
| |
|IETF Network Slice service model YANG |IETF Network Slice service model YANG
| |
+---------------------+--------------------------+ +---------------------+--------------------------+
| IETF Network Slice Controller (NSC) | | IETF Network Slice Controller (NSC) |
+------------------------------------------------+ +------------------------------------------------+
Figure 1: IETF Network Slice Service Reference Architecture Figure 1: IETF Network Slice Service Reference Architecture
4. IETF Network Slice Service Model Overview 4. IETF Network Slice Service Model Overview
As defined in [I-D.ietf-teas-ietf-network-slices], an IETF Network As defined in [I-D.ietf-teas-ietf-network-slices], an IETF Network
Slice is a logical network topology connecting a number of endpoints Slice service is specified in terms of a set of endpoints, a set of
using a set of shared or dedicated network resources that are used to one or more connectivity constructs (point-to-point (P2P), point-to-
satisfy specific service requirements. The logical topology types multipoint (P2MP), or multipoint-to-multipoint (MP2MP) between
are: point-to-point, point-to-multipoint, multipoint-to-point, or subsets of these endpoints, and a set of SLOs and SLEs for each
multipoint-to-multipoint. The endpoints are conceptual points that endpoints sending to each connectivity construct. A connection
could map to a device, application or a network function. And the construct is the basic connectivity unit of a network slice, and a
specific service requirements, typically expressed as bandwidth, slice service may consist of one or more connection constructs. The
latency, latency variation, and other desired or required endpoints are conceptual points that could map to a device,
characteristics, such as security, MTU, traffic-type (e.g., IPv4, application or a network function. And the specific service
IPv6, Ethernet or unstructured) or a higher-level behavior to process requirements, typically expressed as bandwidth, latency, latency
traffic according to user-application (which may be realized using variation, and other desired or required characteristics, such as
network function). An example of an IETF network slice is shown in security, MTU, traffic-type (e.g., IPv4, IPv6, Ethernet or
Figure 2 . unstructured) or a higher-level behavior to process traffic according
to user-application (which may be realized using network function).
An example of an IETF network slice containing multiple connectivity
constructs is shown in Figure 2 .
+----------------------------------------------+ +----------------------------------------------+
| | | |
NSE1 O------------------+ | NSE1 O------------------+ |
. +---------------------------O NSE2 | +---------------------------O NSE6
. | . | MP2MP Blue | |
. | multipoint-to-multipoint . | +---------------------------O NSE7
. | . NSE2 O------------------+ |
. +---------------------------O NSEn | |
NSEm O------------------+ | | P2P Red |
NSE3 O---------------------------/------------------O NSE8
| / |
NSE4 O-------------------------/--------------------O NSE9
| |
| |
| P2MP Green +---------------------------O NSE10
NSE5 O------------------+ |
| +---------------------------O NSE11
| |
| P2P Yellow |
NSE12 O--------------------------/-------------------O NSE13
| / |
NSE14 O------------------------/---------------------O NSE15
| | | |
+----------------------------------------------+ +----------------------------------------------+
| |
|<-----------An IETF Network Slice ---------->| |<-----------An IETF Network Slice ---------->|
| between endpoints NSE1 to NSEn | | between endpoints NSE1 to NSE15 |
Legend: NSE: IETF Network Slice Endpoint
NSE: IETF Network Slice Endpoint O: Represents IETF Network Slice Endpoints
O: Represents IETF Network Slice Endpoints
Figure 2: An IETF Network Slice Example Figure 2: An IETF Network Slice Example
As shown in the example, an IETF network slice may have multiple As shown in the example, an IETF network slice may have multiple
NSEs. The NSEs are the ingress/egress points where traffic enters/ NSEs. The NSEs are the ingress/egress points where traffic enters/
exits the IETF network slice. As the edge of the IETF network slice, exits the IETF network slice. As the edge of the IETF network slice,
the NSEs also delimit a topological network portion within which the the NSEs also delimit a topological network portion within which the
committed SLOs apply. committed SLOs apply.
When an NSC receives a message via its customer-facing interface for When an NSC receives a message via its customer-facing interface for
creation/modification of an IETF network slice, it uses the provided creation/modification of an IETF network slice, it uses the provided
NSEs to retrieve the corresponding border link or "Provider Node" NSEs to retrieve the corresponding service demarcation link or slice
(e.g., PE). The NSC further maps them to the appropriate provider edge node" (e.g., PE). The NSC further maps them to the
service/tunnel/path endpoints in the underlying network. It then appropriate service/tunnel/path endpoints in the underlying network.
uses services/tunnels/paths to realize the IETF network slice. It then uses services/tunnels/paths to realize the IETF network
slice.
The 'ietf-network-slice' module uses two main data nodes: list 'ietf- The 'ietf-network-slice' module uses two main data nodes: list 'ietf-
network-slice' and container 'ns-templates' (see Figure 3). network-slice' and container 'ns-templates' (see Figure 3).
The 'ietf-network-slice' list includes the set of IETF Network slices The 'ietf-network-slice' list includes the set of IETF Network slices
managed within a provider network. 'ietf-network-slice' is the data managed within a provider network. 'ietf-network-slice' is the data
structure that abstracts an IETF Network Slice. Under the "ietf- structure that abstracts an IETF Network Slice. Under the "ietf-
network-slice", list "ns-endpoint" is used to abstract the NSEs, e.g. network-slice", list "ns-endpoint" is used to abstract the NSEs, e.g.
NSEs in the example above. And list "ns-connection" is used to NSEs in the example above. And list "ns-connection" is used to
abstract connections between NSEs. abstract connections or connectivity constructs between NSEs.
The 'ns-templates' container is used by the NSC to maintain a set of The 'ns-templates' container is used by the NSC to maintain a set of
common network slice templates that apply to one or several IETF common network slice templates that apply to one or several IETF
Network Slices. Network Slices.
The figure below describes the overall structure of the YANG module: The figure below describes the overall structure of the YANG module:
module: ietf-network-slice module: ietf-network-slice
+--rw network-slices +--rw network-slices
+--rw ns-slo-sle-templates +--rw ns-slo-sle-templates
| +--rw ns-slo-sle-template* [id] | +--rw ns-slo-sle-template* [id]
| +--rw id string | +--rw id string
| +--rw template-description? string | +--rw template-description? string
+--rw network-slice* [ns-id] +--rw network-slice* [ns-id]
+--rw ns-id string +--rw ns-id string
+--rw ns-description? string +--rw ns-description? string
+--rw customer-name* string +--rw ns-tags
+--rw ns-connectivity-type? identityref | +--rw ns-tag* [index]
+--rw (ns-slo-sle-policy)? | +--rw index uint32
| +--:(standard) | +--rw ns-tag-type? identityref
| | +--rw slo-sle-template? leafref | +--rw ns-tag-value? string
| +--:(custom) +--rw (ns-slo-sle-policy)?
| +--rw slo-sle-policy | +--:(standard)
| +--rw policy-description? string | | +--rw slo-sle-template? leafref
| +--rw ns-metric-bounds | +--:(custom)
| | +--rw ns-metric-bound* [metric-type] | +--rw slo-sle-policy
| | +--rw metric-type identityref | +--rw policy-description? string
| | +--rw metric-unit string | +--rw ns-metric-bounds
| | +--rw value-description? string | | +--rw ns-metric-bound* [metric-type]
| | +--rw bound? uint64 | | +--rw metric-type identityref
| +--rw security* identityref | | +--rw metric-unit string
| +--rw isolation? identityref | | +--rw value-description? string
| +--rw max-occupancy-level? uint8 | | +--rw bound? uint64
| +--rw mtu uint16 | +--rw security* identityref
| +--rw steering-constraints | +--rw isolation? identityref
| +--rw path-constraints | +--rw max-occupancy-level? uint8
| +--rw service-function | +--rw mtu uint16
+--rw status | +--rw steering-constraints
| +--rw admin-enabled? boolean | +--rw path-constraints
| +--ro oper-status? operational-type | +--rw service-function
+--rw ns-endpoints +--rw status
| +--rw ns-endpoint* [ep-id] | +--rw admin-enabled? boolean
| +--rw ep-id string | +--ro oper-status? operational-type
| +--rw ep-description? string +--rw ns-endpoints
| +--rw ep-role? identityref | +--rw ns-endpoint* [ep-id]
| +--rw location | +--rw ep-id string
| | +--rw altitude? int64 | +--rw ep-description? string
| | +--rw latitude? decimal64 | +--rw location
| | +--rw longitude? decimal64 | | +--rw altitude? int64
| +--rw node-id? string | | +--rw latitude? decimal64
| +--rw ep-ip? inet:host | | +--rw longitude? decimal64
| +--rw ns-match-criteria | +--rw node-id? string
| | +--rw ns-match-criterion* [match-type] | +--rw ep-ip? inet:ip-address
| | +--rw match-type identityref | +--rw ns-match-criteria
| | +--rw values* [index] | | +--rw ns-match-criterion* [index]
| | +--rw index uint8 | | +--rw index uint32
| | +--rw value? string | | +--rw match-type?
| +--rw ep-peering | | | identityref
| | +--rw protocol* [protocol-type] | | +--rw values* [index]
| | +--rw protocol-type identityref | | | +--rw index uint8
| | +--rw attribute* [index] | | | +--rw value? string
| | +--rw index uint8 | | +--rw target-ns-connection-group-id? leafref
| | +--rw attribute-description? string | +--rw ep-peering
| | +--rw value? string | | +--rw protocol* [protocol-type]
| +--rw ep-network-access-points | | +--rw protocol-type identityref
| | +--rw ep-network-access-point* [network-access-id] | | +--rw attribute* [index]
| | +--rw network-access-id string | | +--rw index uint8
| | +--rw network-access-description? string | | +--rw attribute-description? string
| | +--rw network-access-node-id? string | | +--rw value? string
| | +--rw network-access-tp-id? string | +--rw ep-network-access-points
| | +--rw network-access-tp-ip? inet:host | | +--rw ep-network-access-point* [network-access-id]
| | +--rw mtu uint16 | | +--rw network-access-id
| | +--rw ep-rate-limit | | | string
| | +--rw incoming-rate-limit? | | +--rw network-access-description?
| | | te-types:te-bandwidth | | | string
| | +--rw outgoing-rate-limit? | | +--rw network-access-node-id?
| | te-types:te-bandwidth | | | string
| +--rw ep-rate-limit | | +--rw network-access-tp-id?
| | +--rw incoming-rate-limit? te-types:te-bandwidth | | | string
| | +--rw outgoing-rate-limit? te-types:te-bandwidth | | +--rw network-access-tp-ip-address?
| +--rw status | | | inet:ip-address
| | +--rw admin-enabled? boolean | | +--rw network-access-tp-ip-prefix-length? uint8
| | +--ro oper-status? operational-type | | +--rw network-access-qos-policy-name?
| +--ro ep-monitoring | | | string
| +--ro incoming-utilized-bandwidth? | | +--rw mtu
| | te-types:te-bandwidth | | | uint16
| +--ro incoming-bw-utilization decimal64 | | +--rw network-access-tags
| +--ro outgoing-utilized-bandwidth? | | | +--rw network-access-tag* [index]
| | te-types:te-bandwidth | | | +--rw index uint32
| +--ro outgoing-bw-utilization decimal64 | | | +--rw network-access-tag-type?
+--rw ns-connections | | | | identityref
| | | +--rw network-access-tag-value? string
| | +--rw ns-match-criteria
| | | +--rw ns-match-criterion* [index]
| | | +--rw index
| | | | uint32
| | | +--rw match-type?
| | | | identityref
| | | +--rw values* [index]
| | | | +--rw index uint8
| | | | +--rw value? string
| | | +--rw target-ns-connection-group-id? leafref
| | +--rw ep-peering
| | | +--rw protocol* [protocol-type]
| | | +--rw protocol-type identityref
| | | +--rw attribute* [index]
| | | +--rw index uint8
| | | +--rw attribute-description? string
| | | +--rw value? string
| | +--rw incoming-rate-limits
| | | +--rw cir? uint64
| | | +--rw cbs? uint64
| | | +--rw eir? uint64
| | | +--rw ebs? uint64
| | | +--rw pir? uint64
| | | +--rw pbs? uint64
| | +--rw outgoing-rate-limits
| | +--rw cir? uint64
| | +--rw cbs? uint64
| | +--rw eir? uint64
| | +--rw ebs? uint64
| | +--rw pir? uint64
| | +--rw pbs? uint64
| +--rw incoming-rate-limits
| | +--rw cir? uint64
| | +--rw cbs? uint64
| | +--rw eir? uint64
| | +--rw ebs? uint64
| | +--rw pir? uint64
| | +--rw pbs? uint64
| +--rw outgoing-rate-limits
| | +--rw cir? uint64
| | +--rw cbs? uint64
| | +--rw eir? uint64
| | +--rw ebs? uint64
| | +--rw pir? uint64
| | +--rw pbs? uint64
| +--rw status
| | +--rw admin-enabled? boolean
| | +--ro oper-status? operational-type
| +--ro ep-monitoring
| +--ro incoming-utilized-bandwidth?
| | te-types:te-bandwidth
| +--ro incoming-bw-utilization decimal64
| +--ro outgoing-utilized-bandwidth?
| | te-types:te-bandwidth
| +--ro outgoing-bw-utilization decimal64
+--rw ns-connection-groups
+--rw ns-connection-group* [ns-connection-group-id]
+--rw ns-connection-group-id string
+--rw (ns-slo-sle-policy)?
| +--:(standard)
| | +--rw slo-sle-template? leafref
| +--:(custom)
| +--rw slo-sle-policy
| +--rw policy-description? string
| +--rw ns-metric-bounds
| | +--rw ns-metric-bound* [metric-type]
| | +--rw metric-type identityref
| | +--rw metric-unit string
| | +--rw value-description? string
| | +--rw bound? uint64
| +--rw security* identityref
| +--rw isolation? identityref
| +--rw max-occupancy-level? uint8
| +--rw mtu uint16
| +--rw steering-constraints
| +--rw path-constraints
| +--rw service-function
+--rw ns-connection* [ns-connection-id] +--rw ns-connection* [ns-connection-id]
+--rw ns-connection-id uint32 | +--rw ns-connection-id uint32
+--rw ns-connection-description? string | +--rw ns-connectivity-type? identityref
+--rw src | +--rw src-nse* leafref
| +--rw src-ep-id? leafref | +--rw dest-nse* leafref
+--rw dest | +--rw (ns-slo-sle-policy)?
| +--rw dest-ep-id? leafref | | +--:(standard)
+--rw (ns-slo-sle-policy)? | | | +--rw slo-sle-template? leafref
| +--:(standard) | | +--:(custom)
| | +--rw slo-sle-template? leafref | | +--rw slo-sle-policy
| +--:(custom) | | +--rw policy-description? string
| +--rw slo-sle-policy | | +--rw ns-metric-bounds
| +--rw policy-description? string | | | +--rw ns-metric-bound* [metric-type]
| +--rw ns-metric-bounds | | | +--rw metric-type
| | +--rw ns-metric-bound* [metric-type] | | | | identityref
| | +--rw metric-type identityref | | | +--rw metric-unit string
| | +--rw metric-unit string | | | +--rw value-description? string
| | +--rw value-description? string | | | +--rw bound? uint64
| | +--rw bound? uint64 | | +--rw security* identityref
| +--rw security* identityref | | +--rw isolation? identityref
| +--rw isolation? identityref | | +--rw max-occupancy-level? uint8
| +--rw max-occupancy-level? uint8 | | +--rw mtu uint16
| +--rw mtu uint16 | | +--rw steering-constraints
| +--rw steering-constraints | | +--rw path-constraints
| +--rw path-constraints | | +--rw service-function
| +--rw service-function | +--ro ns-connection-monitoring
+--rw monitoring-type? ns-monitoring-type | +--ro one-way-min-delay? uint32
+--ro ns-connection-monitoring | +--ro one-way-max-delay? uint32
+--ro latency? yang:gauge64 | +--ro one-way-delay-variation? uint32
+--ro jitter? yang:gauge32 | +--ro one-way-packet-loss? decimal64
+--ro loss-ratio? decimal64 | +--ro two-way-min-delay? uint32
| +--ro two-way-max-delay? uint32
| +--ro two-way-delay-variation? uint32
| +--ro two-way-packet-loss? decimal64
+--ro ns-connection-group-monitoring
+--ro one-way-min-delay? uint32
+--ro one-way-max-delay? uint32
+--ro one-way-delay-variation? uint32
+--ro one-way-packet-loss? decimal64
+--ro two-way-min-delay? uint32
+--ro two-way-max-delay? uint32
+--ro two-way-delay-variation? uint32
+--ro two-way-packet-loss? decimal64
Figure 3 Figure 3
5. IETF Network Slice Templates 5. IETF Network Slice Templates
The 'ns-templates' container (Figure 3) is used by service provider The 'ns-templates' container (Figure 3) is used by service provider
of the NSC to define and maintain a set of common IETF Network Slice of the NSC to define and maintain a set of common IETF Network Slice
templates that apply to one or several IETF Network Slices. The templates that apply to one or several IETF Network Slices. The
exact definition of the templates is deployment specific to each exact definition of the templates is deployment specific to each
network provider. network provider.
The model includes only the identifiers of SLO and SLE templates. The model includes only the identifiers of SLO and SLE templates.
skipping to change at page 10, line 8 skipping to change at page 12, line 40
uniquely identified by an identifier: 'ns-id'. uniquely identified by an identifier: 'ns-id'.
An IETF Network Slice has the following main parameters: An IETF Network Slice has the following main parameters:
* "ns-id": Is an identifier that is used to uniquely identify the * "ns-id": Is an identifier that is used to uniquely identify the
IETF Network Slice within NSC. IETF Network Slice within NSC.
* "ns-description": Gives some description of an IETF Network Slice * "ns-description": Gives some description of an IETF Network Slice
service. service.
* "ns-connectivity-type": Indicates the network connectivity type
for the IETF Network Slice: Hub-and-Spoke, any-to-any, or custom
type.
* "status": Is used to show the operative and administrative status * "status": Is used to show the operative and administrative status
of the IETF Network Slice, and can be used as indicator to detect of the IETF Network Slice, and can be used as indicator to detect
network slice anomalies. network slice anomalies.
* "customer-name": Is used to show the correlation between actual * "ns-tags": It is a mean to correlate the higher level "Customer
slice customers and IETF network slices. It can be used by the higher level operation system" and IETF network slices. It might
NSC for monitoring and assurance of the IETF network slices where be used by IETF network slice operator to provide additional
NSC can notify the higher system by issuing the notifications. information to the IETF Network Slice Controller (NSC) during the
For example, multiple actual customers use a same network slice. automation of the IETF network slices. E.g. adding tag with
"customer-name" when multiple actual customers use a same network
slice. Another use-case for "ns-tag" might be for Operator to
provide additional attributes to NSC which might be used during
the realization of IETF network slices such as type of services
(e.g., L2 or L3). These additional attributes can also be used by
the NSC for various use-cases such as monitoring and assurance of
the IETF network slices where NSC can notify the higher system by
issuing the notifications. Note that all these attributes are
OPTIONAL but might be useful for some use-cases.
* "ns-slo-sle-policy": Defines SLO and SLE policies for the "ietf- * "ns-slo-sle-policy": Defines SLO and SLE policies for the "ietf-
network-slice". More description are provided in Section 6.2 network-slice". More description are provided in Section 6.2
The "ns-endpoint" is an abstrac entity that represents a set of * "ns-endpoint": Represents a set of matching rules applied to an
matching rules applied to an IETF network edge device or a customer IETF network edge device or a customer network edge device
network edge device involved in the IETF Network Slice and each 'ns- involved in the IETF Network Slice and each 'ns-endpoint' belongs
endpoint' belongs to a single 'ietf-network-slice'. More description to a single 'ietf-network-slice'. More description are provided
are provided in Section 6.3 inSection 6.3.
6.1. IETF Network Slice Connectivity Type * "ns-connection-groups": Abstracts the connections between NSEs.
Based on the customer's traffic pattern requirements, an IETF Network 6.1. IETF Network Slice Connectivity
Slice connection type could be point-to-point (P2P), point-to-
multipoint (P2MP), multipoint-to-point (MP2P), or multipoint-to-
multipoint (MP2MP). The "ns-connectivity-type" under the node "ietf-
network-slice" is used for this.
According to the network services defined in Based on the customer's traffic requirements, an IETF Network Slice
[I-D.ietf-opsawg-vpn-common], some well-known connectivity types are connectivity type could be point-to-point (P2P), point-to-multipoint
proposed for IETF network slices. The type could be any-to-any, Hub- (P2MP), multipoint-to-point (MP2P), multipoint-to-multipoint (MP2MP)
and-Spoke (where Hubs can exchange traffic), and the custom. By or a combination of these types.
default, the any-to-any is used. New connectivity type could be
added via augmentation or by list of 'ns-connection' specified.
In addition, "ep-role" under the node "ns-endpoint" also needs to be [I-D.ietf-teas-ietf-network-slices] defines the basic connectivity
defined, which specifies the role of the NSE in a particular Network construct for a network slice, and the connectivity construct may
Slice connectivity type. In the any-to-any, all NSEs MUST have the have different SLO and SLE requirements. "ns-connection" represents
same role, which will be "any-to-any-role". In the Hub-and-Spoke, this connectivity construct, and "ns-slo-sle-policy" under it
NSEs MUST have a Hub role or a Spoke role. represents the per-connection SLO and SLE requirements.
Apart from the per-connection SLO and SLE,slice traffic is usually
managed by combining similar types of traffic. For example, some
connections for video services require high bandwidth, and some
connections for voice over IP request low latency and reliability.
"ns-connect-group" is thus defined to treat each type as a class with
per-connection-group SLO and SLE.
6.2. IETF Network Slice SLO and SLE Policy 6.2. IETF Network Slice SLO and SLE Policy
As defined in [I-D.ietf-teas-ietf-network-slices], the SLO and SLE As defined in [I-D.ietf-teas-ietf-network-slices], the SLO and SLE
policy of an IETF Network Slice defines the minimum IETF Network policy of an IETF Network Slice defines some common attributes.
Slice SLO attributes, and additional attributes can be added as
needed.
"ns-slo-sle-policy" is used to represent specific SLO and SLE "ns-slo-sle-policy" is used to represent specific SLO and SLE
policies. During the creation of an IETF Network Slice, the policy policies. During the creation of an IETF Network Slice, the policy
can be specified either by a standard SLO and SLO template or a can be specified either by a standard SLO and SLO template or a
customized SLO and SLE policy. customized SLO and SLE policy.
The policy could both apply one per Network Slice or per connection The policy can apply to per-network slice, per-connection group "ns-
'ns-connection'. connection group", or per-connection "ns-connection".
The model allows multiple SLO and SLE attributes to be combined to
meet different SLO and SLE requirements. For example, some NSs are
used for video services and require high bandwidth, some NSs are used
for key business services and request low latency and reliability,
and some NSs need to provide connections for a large number of NSEs.
That is, not all SLO or SLE attributes must be specified to meet the
particular requirements of a slice.
"ns-metric-bounds" contains all these variations, which includes a The container "ns-metric-bounds" supports all the variations and
list of "ns-metric-bound" and each "ns-metric-bound" could specify a combinations of NS SLOs, which includes a list of "ns-metric-bound"
particular "metric-type". "metric-type" is defined with YANG identity and each "ns-metric-bound" could specify a particular "metric-type".
and the YANG module supports the following options: "metric-type" is defined with YANG identity and supports the
following options:
"ns-slo-one-way-bandwidth": Indicates the guaranteed minimum "ns-slo-one-way-bandwidth": Indicates the guaranteed minimum
bandwidth between any two NSE. And the bandwidth is bandwidth between any two NSE. And the bandwidth is
unidirectional. unidirectional.
"ns-slo-two-way-bandwidth": Indicates the guaranteed minimum "ns-slo-two-way-bandwidth": Indicates the guaranteed minimum
bandwidth between any two NSE. And the bandwidth is bandwidth between any two NSE. And the bandwidth is
bidirectional. bidirectional.
"network-slice-slo-one-way-latency": Indicates the maximum one-way "network-slice-slo-one-way-latency": Indicates the maximum one-way
skipping to change at page 12, line 21 skipping to change at page 14, line 51
"ns-slo-two-way-packet-loss": Indicates maximum permissible packet "ns-slo-two-way-packet-loss": Indicates maximum permissible packet
loss rate, which is defined by the ratio of packets dropped to loss rate, which is defined by the ratio of packets dropped to
packets transmitted between two endpoints. packets transmitted between two endpoints.
"ns-slo-availability": Is defined as the ratio of up-time to "ns-slo-availability": Is defined as the ratio of up-time to
total_time(up-time+down-time), where up-time is the time the IETF total_time(up-time+down-time), where up-time is the time the IETF
Network Slice is available in accordance with the SLOs associated Network Slice is available in accordance with the SLOs associated
with it. with it.
Some other Network Slice SLOs or SLEs could be extended when needed. The following common SLEs are defined:
Note: The definition of "slo-sle-policy" and "steering-constraints" "mtu": Refers to the service MTU, which is the maximum PDU size
will be updated when WG converge on the terms. that the customer may use.
Note: RFC7297 shaping/policing for out of profile traffic. "security": Includes the request for encryption or other security
techniques to traffic flowing between the two NS endpoints.
"isolation": Specifies the isolation level that a customer
expects, including dedicated, shared, or other level.
max-occupancy-level: Specifies the number of flows to be admitted
and optionally a maximum number of countable resource units (e.g.,
IP or MAC addresses) an IETF Network Slice service can consume.
"steering-constraints": Specifies the constraints how the provider
routes traffic for the IETF Network Slice service.
The following shows an example where a network slice policy can be The following shows an example where a network slice policy can be
configured: configured:
{ {
"ietf-network-slices": { "ietf-network-slices": {
"ietf-network-slice": { "ietf-network-slice": {
"slo-policy": { "slo-policy": {
"policy-description":"video-service-policy", "policy-description":"video-service-policy",
"ns-metric-bounds": { "ns-metric-bounds": {
skipping to change at page 13, line 30 skipping to change at page 15, line 49
}, },
], ],
} }
} }
} }
} }
} }
6.3. IETF Network Slice Endpoint (NSE) 6.3. IETF Network Slice Endpoint (NSE)
An NSE belong to a single IETF Network Slice. An IETF Network Slice
involves two or more NSEs. An IETF Network Slice can be modified by
adding new "ns-endpoint" or removing existing "ns-endpoint".
An IETF Network Slice Endpoint has several characteristics: An IETF Network Slice Endpoint has several characteristics:
* "ep-id": Uniquely identifies the NSE within Network Slice * "ep-id": Uniquely identifies the NSE within Network Slice
Controller (NSC). The identifier is a string that allows any Controller (NSC). The identifier is a string that allows any
encoding for the local administration of the IETF Network Slice. encoding for the local administration of the IETF Network Slice.
* "location": Indicates NSE location information that facilities NSC * "location": Indicates NSE location information that facilities NSC
easy identification of a NSE. easy identification of a NSE.
* "ep-role": Represents a connectivity type role of a NSE belonging
to an IETF network slice, as described in Section 6.1. The "ep-
role" leaf defines the role of the endpoint in a particular NS
connectivity type. In the any-to-any, all NSEs MUST have the same
role, which will be "any-to-any-role".
* "node-id": The NSE node information facilities NSC with easy * "node-id": The NSE node information facilities NSC with easy
identification of a NSE. identification of a NSE.
* "ep-ip": The NSE IP information facilities NSC with easy * "ep-ip": The NSE IP information facilities NSC with easy
identification of a NSE. identification of a NSE.
* "ns-match-criteria": A matching policies to apply on a given NSE. * "ns-match-criteria": Defines matching policies for network slice
traffic to apply on a given NSE.
* "ep-network-access-points": The list of the interfaces attached to * "ep-network-access-points": Specifies the list of the interfaces
an edge device of the IETF Network Slice by which the customer attached to an edge device of the IETF Network Slice by which the
traffic is received. customer traffic is received. This is an optional NSE attribute.
When a NSE has multiple interfaces attached and the NSC needs NSE
interface-specific attributes, each "ep-network-access-point" can
specify attributes such as interface specific IP address, MTU,
etc.
* "ep-rate-limit": Set the rate-limiting policies to apply on a * "incoming-rate-limits" and "outgoing-rate-limits": Set the rate-
given NSE, including ingress and egress traffic to ensure access limiting policies to apply on a given NSE, including ingress and
security. When applied in the incoming direction, the rate-limit egress traffic to ensure access security. When applied in the
is applicable to the traffic from the NSE to the IETF scope incoming direction, the rate-limit is applicable to the traffic
Network that passes through the external interface. When from the NSE to the IETF scope Network that passes through the
Bandwidth is applied to the outgoing direction, it is applied to external interface. When Bandwidth is applied to the outgoing
the traffic from the IETF Network to the NSE of that particular direction, it is applied to the traffic from the IETF Network to
NS. the NSE of that particular NS. If an NSE has multiple AC, the
"rate limit" of "ep-network-access-point" can be set to an AC
specific value, but the rate cannot exceed the "rate limit" of the
NSE. If a NSE only contains a single AC, then the "rate-limit" of
"ep-network-access-point" is the same with the NSE "rate-limit".
The definition refers to [RFC7640].
* "ep-protocol": Specify the protocol for a NSE for exchanging * "ep-peering": Specifies the protocol for a NSE for exchanging
control-plane information, e.g. L1 signaling protocol or L3 control-plane information, e.g. L1 signaling protocol or L3
routing protocols,etc. routing protocols,etc.
* "status": Enable the control of the operative and administrative * "status": Enables the control of the operative and administrative
status of the NSE, can be used as indicator to detect NSE status of the NSE, can be used as indicator to detect NSE
anomalies. anomalies.
An NSE belong to a single IETF Network Slice. An IETF Network Slice NSE defines the matching rule on the customer traffic that can be
involves two or more NSEs. An IETF Network Slice can be modified by injected to an IETF Network Slice. "network-slice-match-criteria" is
adding new "ns-endpoint" or removing existing "ns-endpoint". defined to support different options. Classification can be based on
many criteria, such as:
A NSE is used to define the matching rule on the customer traffic
that can be injected to an IETF Network Slice. "network-slice-match-
criteria" is defined to support different options. Classification
can be based on many criteria, such as:
* Physical interface: Indicates all the traffic received from the * Physical interface: Indicates all the traffic received from the
interface belongs to the IETF Network Slice. interface belongs to the IETF Network Slice.
* Logical interface: For example, a given VLAN ID is used to * Logical interface: For example, a given VLAN ID is used to
identify an IETF Network Slice. identify an IETF Network Slice.
* Encapsulation in the traffic header: For example, a source IP * Encapsulation in the traffic header: For example, a source IP
address is used to identify an IETF Network Slice. address is used to identify an IETF Network Slice.
skipping to change at page 15, line 33 skipping to change at page 18, line 25
| |----------X | | | | | | | |----------X | | | | | |
| | | | | | X----------| | | | | | | | X----------| |
| |----------X | | | | | | | |----------X | | | | | |
+-----+ | | |==================| | | +-----+ +-----+ | | |==================| | | +-----+
AC +----+ +----+ AC AC +----+ +----+ AC
Customer Provider Provider Customer Customer Provider Provider Customer
Edge 1 Edge 1 Edge 2 Edge 2 Edge 1 Edge 1 Edge 2 Edge 2
Legend: Legend:
O: Representation of the IETF network slice endpoints (NSE) O: Representation of the IETF network slice endpoints (NSE)
+: Mapping of NES to PE or CE nodes on IETF network +: Mapping of NES to PE or CE-PE interfaces
X: Physical interfaces used for realization of IETF network slice X: Physical interfaces used for realization of IETF network slice
S1: L0/L1/L2/L3 services used for realization of IETF network slice S1: L0/L1/L2/L3 services used for realization of IETF network slice
T1: Tunnels used for realization of IETF network slice T1: Tunnels used for realization of IETF network slice
Figure 4 Figure 4
* NSE with CE parameters example: As shown in Figure 5 , customer of * NSE with CE parameters example: As shown in Figure 5 , customer of
the IETF network slice would like to connect two NSEs to provide the IETF network slice would like to connect two NSEs to provide
connectivity between transport portion of 5G RAN to 5G Core connectivity between transport portion of 5G RAN to 5G Core
network functions. In this scenario, the IETF network slice network functions. In this scenario, the IETF network slice
controller (NSC) uses 'node-id' (CE device ID) , 'ep-ip' (CE controller (NSC) uses 'node-id' (CE device ID) , 'ep-ip' (CE
tunnel endpoint IP), 'network-slice-match-criteria' (VLAN tunnel endpoint IP), 'network-slice-match-criteria' (VLAN
interface), 'ep-network-access-points' (Two nexthop interfaces ) interface), 'ep-network-access-points' (Two nexthop interfaces )
to retrieve the corresponding border link or PE, and further map to retrieve the corresponding CEs, ACs, or PEs, and further map to
to services/tunnels/paths. services/tunnels/paths.
NSE3 NSE4 NSE3 NSE4
(With CE1 parameters) (with CE2 parameters) (With CE1 parameters) (with CE2 parameters)
o<--------- IETF Network Slice 2 ------->o o<-------------- IETF Network Slice 2 ------------>o
+ | | + + +
+ |<----------- S2 ----------->| + |<+-- ------------------- S2 ----------------- --+>|
+ | | + | + + |
+ | |<------ T2 ------>| | + | + |<------ T2 ------>| + |
+ v v v v + | + v v + |
+ +----+ +----+ + v + +----+ +----+ + v
+-----+ | + | PE1|==================| PE2| + | +-----+ +-----++ | | PE1|==================| PE2| | + +-----+
| |----------X | | | | | | | X----------X | | | | +| |
| | | | | | X----------| | | | | | | | X----------X |
| |----------X | | | | | | | X----------X | | | | | |
+-----+ | | |==================| | | +-----+ +-----+ | | |==================| | | +-----+
AC +----+ +----+ AC AC +----+ +----+ AC
Customer Provider Provider Customer Customer Provider Provider Customer
Edge 1 Edge 1 Edge 2 Edge 2 Edge 1 Edge 1 Edge 2 Edge 2
Legend: Legend:
O: Representation of the IETF network slice endpoints (NSE) O: Representation of the IETF network slice endpoints (NSE)
+: Mapping of NSE to PE or CE-PE interfaces on IETF network +: Mapping of NSE to CE or CE-PE interfaces
X: Physical interfaces used for realization of IETF network slice X: Physical interfaces used for realization of IETF network slice
S2: L0/L1/L2/L3 services used for realization of IETF network slice S2: L0/L1/L2/L3 services used for realization of IETF network slice
T2: Tunnels used for realization of IETF network slice T2: Tunnels used for realization of IETF network slice
Figure 5 Figure 5
Note: The model needs to be optimized for better extension of other Note: The model needs to be optimized for better extension of other
protocols or AC technologies. protocols or AC technologies.
7. IETF Network Slice Monitoring 7. IETF Network Slice Monitoring
An IETF Network Slice is a connectivity with specific SLO An IETF Network Slice is a connectivity with specific SLO
characteristics, including bandwidth, latency, etc. The connectivity characteristics, including bandwidth, latency, etc. The connectivity
is a combination of logical unidirectional connections, represented is a combination of logical unidirectional connections, represented
by 'ns-connection'. by 'ns-connection'.
This model also describes performance status of an IETF Network This model also describes performance status of an IETF Network
Slice. The statistics are described in the following granularity: Slice. The statistics are described in the following granularity:
* Per NS connection: specified in 'ns-connection-monitoring' under * Per NS connection: specified in 'ns-connection-monitoring' under
the "ns-connection" the "ns-connection".
* Per NS Endpoint: specified in 'ep-monitoring' under the "ns- * Per NS Endpoint: specified in 'ep-monitoring' under the "ns-
endpoint" endpoint".
* Per NS connection group: specified in 'ns-connection-monitoring'
under the "ns-connection-group".
This model does not define monitoring enabling methods. The This model does not define monitoring enabling methods. The
mechanism defined in [RFC8640] and [RFC8641] can be used for either mechanism defined in [RFC8640] and [RFC8641] can be used for either
periodic or on-demand subscription. periodic or on-demand subscription.
By specifying subtree filters or xpath filters to 'ns-connection' or By specifying subtree filters or xpath filters to 'ns-connection',
'ns-endpoint' ,so that only interested contents will be sent. These 'ns-endpoint' or "ns-connection-group", so that only interested
mechanisms can be used for monitoring the IETF Network Slice contents will be sent. These mechanisms can be used for monitoring
performance status so that the customer management system could the IETF Network Slice performance status so that the customer
initiate modification based on the IETF Network Slice running status. management system could initiate modification based on the IETF
Network Slice running status.
Note: More critical events affecting service delivery need to be Note: More critical events affecting service delivery need to be
added. added.
8. IETF Network Slice Service Module 8. IETF Network Slice Service Module
The "ietf-network-slice" module uses types defined in [RFC6991], The "ietf-network-slice" module uses types defined in [RFC6991] and
[RFC8776]. [RFC8776], and [RFC7640].
<CODE BEGINS> file "ietf-network-slice@2021-07-20.yang" <CODE BEGINS> file "ietf-network-slice@2022-03-04.yang"
module ietf-network-slice { module ietf-network-slice {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-network-slice"; namespace "urn:ietf:params:xml:ns:yang:ietf-network-slice";
prefix ietf-ns; prefix ietf-ns;
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference reference
"RFC 6991: Common YANG Types."; "RFC 6991: Common YANG Types.";
} }
import ietf-yang-types {
prefix yang;
reference
"RFC 6991: Common YANG Types.";
}
import ietf-te-types { import ietf-te-types {
prefix te-types; prefix te-types;
reference reference
"RFC 8776: Common YANG Data Types for Traffic Engineering."; "RFC 8776: Common YANG Data Types for Traffic Engineering.";
} }
import ietf-te-packet-types {
prefix te-packet-types;
reference
"RFC 8776: Common YANG Data Types for Traffic Engineering.";
}
organization organization
"IETF Traffic Engineering Architecture and Signaling (TEAS) "IETF Traffic Engineering Architecture and Signaling (TEAS)
Working Group"; Working Group";
contact contact
"WG Web: <https://tools.ietf.org/wg/teas/> "WG Web: <https://tools.ietf.org/wg/teas/>
WG List: <mailto:teas@ietf.org> WG List: <mailto:teas@ietf.org>
Editor: Bo Wu <lana.wubo@huawei.com>
: Dhruv Dhody <dhruv.ietf@gmail.com> Editor: Bo Wu
: Reza Rokui <reza.rokui@nokia.com> <lana.wubo@huawei.com>
: Tarek Saad <tsaad@juniper.net>"; Editor: Dhruv Dhody
<dhruv.ietf@gmail.com>
Editor: Reza Rokui
<reza.rokui@nokia.com>
Editor: Tarek Saad
<tsaad@juniper.net>
Author: Liuyan Han
<hanliuyan@chinamobile.com>";
description description
"This module contains a YANG module for the IETF Network Slice. "This module contains a YANG module for the IETF Network Slice.
Copyright (c) 2021 IETF Trust and the persons identified as Copyright (c) 2022 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject to without modification, is permitted pursuant to, and subject
the license terms contained in, the Simplified BSD License set to the license terms contained in, the Revised BSD License
forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the This version of this YANG module is part of RFC XXXX; see the
RFC itself for full legal notices."; RFC itself for full legal notices.";
revision 2021-07-20 { revision 2022-03-04 {
description description
"initial version."; "initial version.";
reference reference
"RFC XXXX: A Yang Data Model for IETF Network Slice Operation"; "RFC XXXX: A Yang Data Model for IETF Network Slice Operation";
} }
/* Features */ /* Features */
/* Identities */ /* Identities */
identity ns-tag-type {
description
"Base identity for IETF Network Slice tag type.";
}
identity ns-tag-customer {
base ns-tag-type;
description
"The IETF Network Slice customer ID tag type.";
}
identity ns-tag-service {
base ns-tag-type;
description
"The IETF Network Slice service tag type.";
}
identity ns-tag-opaque {
base ns-tag-type;
description
"The IETF Network Slice opaque tag type.";
}
identity network-access-tag-type {
description
"Base identity for the network access tag type.";
}
identity network-access-tag-vlan-id {
base network-access-tag-type;
description
"The network access interface VLAN ID tag type.";
}
identity network-access-tag-ip-mask {
base network-access-tag-type;
description
"The network access tag IP mask.";
}
identity network-access-tag-opaque {
base network-access-tag-type;
description
"The network access opaque tag type.";
}
identity ns-isolation-type { identity ns-isolation-type {
description description
"Base identity for IETF Network slice isolation level."; "Base identity for IETF Network slice isolation level.";
} }
identity ns-isolation-shared { identity ns-isolation-shared {
base ns-isolation-type; base ns-isolation-type;
description description
"Shared resources (e.g. queues) are associated with the Network "Shared resources (e.g. queues) are associated with the Network
Slice traffic. Hence, the IETF network slice traffic can be Slice traffic. Hence, the IETF network slice traffic can be
skipping to change at page 19, line 32 skipping to change at page 23, line 41
} }
identity ns-security-encryption { identity ns-security-encryption {
base ns-security-type; base ns-security-type;
description description
"IETF Network Slice requires data encryption."; "IETF Network Slice requires data encryption.";
} }
identity ns-connectivity-type { identity ns-connectivity-type {
description description
"Base identity for IETF Network Slice topology."; "Base identity for IETF Network Slice connectivity.";
}
identity point-to-point {
base ns-connectivity-type;
description
"Identity for point-to-point IETF Network Slice connectivity.";
}
identity point-to-multipoint {
base ns-connectivity-type;
description
"Identity for point-to-multipoint IETF Network Slice
connectivity.";
}
identity multipoint-to-multipoint {
base ns-connectivity-type;
description
"Identity for multipoint-to-multipoint IETF Network Slice
connectivity.";
} }
identity any-to-any { identity any-to-any {
base ns-connectivity-type; base ns-connectivity-type;
description description
"Identity for any-to-any IETF Network Slice topology."; "Identity for any-to-any IETF Network Slice connectivity.";
} }
identity hub-spoke { identity hub-spoke {
base ns-connectivity-type; base ns-connectivity-type;
description description
"Identity for Hub-and-Spoke IETF Network Slice topology."; "Identity for Hub-and-Spoke IETF Network Slice connectivity.";
} }
identity custom { identity custom {
base ns-connectivity-type; base ns-connectivity-type;
description description
"Identity of a custom NS topology where Hubs can act as "Identity of a custom NS topology where Hubs can act as
Spoke for certain parts of the network or Spokes as Hubs."; Spoke for certain parts of the network or Spokes as Hubs.";
} }
identity endpoint-role { identity endpoint-role {
description description
"Base identity of a NSE role in an IETF Network Slice topology."; "Base identity of a NSE role in an IETF Network Slice topology.";
} }
identity any-to-any-role { identity any-to-any-role {
base endpoint-role; base endpoint-role;
description description
skipping to change at page 20, line 39 skipping to change at page 25, line 19
identity ns-slo-metric-type { identity ns-slo-metric-type {
description description
"Base identity for IETF Network Slice SLO metric type."; "Base identity for IETF Network Slice SLO metric type.";
} }
identity ns-slo-one-way-bandwidth { identity ns-slo-one-way-bandwidth {
base ns-slo-metric-type; base ns-slo-metric-type;
description description
"SLO bandwidth metric. Minimum guaranteed bandwidth between "SLO bandwidth metric. Minimum guaranteed bandwidth between
two endpoints at any time and is measured unidirectionally"; two endpoints at any time and is measured unidirectionally.";
} }
identity ns-slo-two-way-bandwidth { identity ns-slo-two-way-bandwidth {
base ns-slo-metric-type; base ns-slo-metric-type;
description description
"SLO bandwidth metric. Minimum guaranteed bandwidth between "SLO bandwidth metric. Minimum guaranteed bandwidth between
two endpoints at any time"; two endpoints at any time.";
} }
identity ns-slo-one-way-latency { identity ns-slo-shared-bandwidth {
base ns-slo-metric-type; base ns-slo-metric-type;
description description
"SLO one-way latency is upper bound of network latency when "The shared SLO bandwidth bound. It is the limit on the
transmitting between two endpoints. The metric is defined in bandwidth that can be shared amongst a group of connections
RFC7679"; of an IETF Network Slice.";
} }
identity ns-slo-two-way-latency { identity ns-slo-one-way-delay {
base ns-slo-metric-type; base ns-slo-metric-type;
description description
"SLO two-way latency is upper bound of network latency when "SLO one-way-delay is the upper bound of network delay when
transmitting between two endpoints. The metric is defined in transmitting between two endpoints. The metric is defined in
RFC2681"; RFC7679.";
} }
identity ns-slo-two-way-delay {
base ns-slo-metric-type;
description
"SLO two-way delay is the upper bound of network delay when
transmitting between two endpoints. The metric is defined in
RFC2681.";
}
identity ns-slo-one-way-delay-variation { identity ns-slo-one-way-delay-variation {
base ns-slo-metric-type; base ns-slo-metric-type;
description description
"SLO one-way delay variation is defined by RFC3393, is the "SLO one-way delay variation is defined by RFC3393, is the
difference in the one-way delay between sequential packets difference in the one-way delay between sequential packets
between two endpoints."; between two endpoints.";
} }
identity ns-slo-two-way-delay-variation { identity ns-slo-two-way-delay-variation {
base ns-slo-metric-type; base ns-slo-metric-type;
skipping to change at page 21, line 37 skipping to change at page 26, line 25
"SLO two-way delay variation is defined by RFC5481, is the "SLO two-way delay variation is defined by RFC5481, is the
difference in the round-trip delay between sequential packets difference in the round-trip delay between sequential packets
between two endpoints."; between two endpoints.";
} }
identity ns-slo-one-way-packet-loss { identity ns-slo-one-way-packet-loss {
base ns-slo-metric-type; base ns-slo-metric-type;
description description
"SLO loss metric. The ratio of packets dropped to packets "SLO loss metric. The ratio of packets dropped to packets
transmitted between two endpoints in one-way transmitted between two endpoints in one-way
over a period of time as specified in RFC7680"; over a period of time as specified in RFC7680.";
} }
identity ns-slo-two-way-packet-loss { identity ns-slo-two-way-packet-loss {
base ns-slo-metric-type; base ns-slo-metric-type;
description description
"SLO loss metric. The ratio of packets dropped to packets "SLO loss metric. The ratio of packets dropped to packets
transmitted between two endpoints in two-way transmitted between two endpoints in two-way
over a period of time as specified in RFC7680"; over a period of time as specified in RFC7680.";
} }
identity ns-slo-availability { identity ns-slo-availability {
base ns-slo-metric-type; base ns-slo-metric-type;
description description
"SLO availability level."; "SLO availability level.";
} }
identity ns-match-type { identity ns-match-type {
description description
"Base identity for IETF Network Slice traffic match type."; "Base identity for IETF Network Slice traffic match type.";
} }
identity ns-phy-interface-match { identity ns-phy-interface-match {
base ns-match-type; base ns-match-type;
description description
skipping to change at page 25, line 15 skipping to change at page 29, line 49
} }
} }
grouping ns-match-criteria { grouping ns-match-criteria {
description description
"A grouping for the IETF Network Slice match definition."; "A grouping for the IETF Network Slice match definition.";
container ns-match-criteria { container ns-match-criteria {
description description
"Describes the IETF Network Slice match criteria."; "Describes the IETF Network Slice match criteria.";
list ns-match-criterion { list ns-match-criterion {
key "match-type"; key "index";
description description
"List of the IETF Network Slice traffic match criteria."; "List of the IETF Network Slice traffic match criteria.";
leaf index {
type uint32;
description
"The entry index.";
}
leaf match-type { leaf match-type {
type identityref { type identityref {
base ns-match-type; base ns-match-type;
} }
description description
"Identifies an entry in the list of the IETF Network Slice "Identifies an entry in the list of the IETF Network Slice
match criteria."; match criteria.";
} }
list values { list values {
key "index"; key "index";
skipping to change at page 25, line 42 skipping to change at page 30, line 34
description description
"Index of an entry in the list."; "Index of an entry in the list.";
} }
leaf value { leaf value {
type string; type string;
description description
"Describes the IETF Network Slice match criteria, e.g. "Describes the IETF Network Slice match criteria, e.g.
IP address, VLAN, etc."; IP address, VLAN, etc.";
} }
} }
leaf target-ns-connection-group-id {
type leafref {
path "/network-slices/network-slice"
+ "/ns-connection-groups/ns-connection-group"
+ "/ns-connection-group-id";
}
description
"reference to a Network Slice connection group.";
}
} }
} }
} }
grouping ns-connection-group-metric-bounds {
description
"Grouping of Network Slice metric bounds that
are shared amongst multiple connections of a Network
Slice.";
leaf ns-slo-shared-bandwidth {
type te-types:te-bandwidth;
description
"A limit on the bandwidth that is shared amongst
multiple connections of an IETF Network Slice.";
}
}
grouping ns-sles { grouping ns-sles {
description description
"Indirectly Measurable Objectives of a IETF Network "Indirectly Measurable Objectives of a IETF Network
Slice."; Slice.";
leaf-list security { leaf-list security {
type identityref { type identityref {
base ns-security-type; base ns-security-type;
} }
description description
"The IETF Network Slice security SLE(s)"; "The IETF Network Slice security SLE(s)";
skipping to change at page 26, line 45 skipping to change at page 31, line 33
be admitted."; be admitted.";
} }
leaf mtu { leaf mtu {
type uint16; type uint16;
units "bytes"; units "bytes";
mandatory true; mandatory true;
description description
"The MTU specifies the maximum length in octets of data "The MTU specifies the maximum length in octets of data
packets that can be transmitted by the NS. The value needs packets that can be transmitted by the NS. The value needs
to be less than or equal to the minimum MTU value of to be less than or equal to the minimum MTU value of
all 'ep-network-access-points' in the NSEs of the NS. "; all 'ep-network-access-points' in the NSEs of the NS.";
} }
container steering-constraints { container steering-constraints {
description description
"Container for the policy of steering constraints "Container for the policy of steering constraints
applicable to IETF Network Slice."; applicable to IETF Network Slice.";
container path-constraints { container path-constraints {
description description
"Container for the policy of path constraints "Container for the policy of path constraints
applicable to IETF Network Slice."; applicable to IETF Network Slice.";
} }
skipping to change at page 27, line 44 skipping to change at page 32, line 32
leaf metric-unit { leaf metric-unit {
type string; type string;
mandatory true; mandatory true;
description description
"The metric unit of the parameter. For example, "The metric unit of the parameter. For example,
s, ms, ns, and so on."; s, ms, ns, and so on.";
} }
leaf value-description { leaf value-description {
type string; type string;
description description
"The description of previous value. "; "The description of previous value.";
} }
leaf bound { leaf bound {
type uint64; type uint64;
default "0"; default "0";
description description
"The Bound on the Network Slice connection metric. A "The Bound on the Network Slice connection metric. A
zero indicate an unbounded upper limit for the zero indicate an unbounded upper limit for the
specific metric-type."; specific metric-type.";
} }
} }
skipping to change at page 28, line 40 skipping to change at page 33, line 29
description description
"List of protocol attribute."; "List of protocol attribute.";
leaf index { leaf index {
type uint8; type uint8;
description description
"Index of an entry in the list."; "Index of an entry in the list.";
} }
leaf attribute-description { leaf attribute-description {
type string; type string;
description description
"The description of the attribute. "; "The description of the attribute.";
} }
leaf value { leaf value {
type string; type string;
description description
"Describes the value of protocol attribute, e.g. "Describes the value of protocol attribute, e.g.
nexthop address, peer address, etc."; nexthop address, peer address, etc.";
} }
} }
} }
} }
skipping to change at page 29, line 37 skipping to change at page 34, line 27
description description
"The network access point node ID in the case of "The network access point node ID in the case of
multi-homing."; multi-homing.";
} }
leaf network-access-tp-id { leaf network-access-tp-id {
type string; type string;
description description
"The termination port ID of the EP network access "The termination port ID of the EP network access
point."; point.";
} }
leaf network-access-tp-ip { leaf network-access-tp-ip-address {
type inet:host; type inet:ip-address;
description description
"The IP address of the EP network access point."; "The IP address of the EP network access point.";
} }
leaf network-access-tp-ip-prefix-length {
type uint8;
description
"The subnet prefix length expressed in bits.";
}
leaf network-access-qos-policy-name {
type string;
description
"The name of the QoS policy that is applied to the
network access point. The name can reference a QoS
profile that is pre-provisioned on the device.";
}
leaf mtu { leaf mtu {
type uint16; type uint16;
units "bytes"; units "bytes";
mandatory true; mandatory true;
description description
"Maximum size in octets of a data packet that "Maximum size in octets of a data packet that
can traverse a NSE network access point. "; can traverse a NSE network access point.";
}
container network-access-tags {
description
"Container for the network access tags.";
list network-access-tag {
key "index";
description
"The network access point tags list.";
leaf index {
type uint32;
description
"The entry index.";
}
leaf network-access-tag-type {
type identityref {
base network-access-tag-type;
}
description
"The network access point tag type.";
}
leaf network-access-tag-value {
type string;
description
"The network access point tag value.";
}
}
} }
/* Per ep-network-access-point rate limits */ /* Per ep-network-access-point rate limits */
uses ns-match-criteria;
uses ep-peering;
uses ns-rate-limit; uses ns-rate-limit;
} }
} }
} }
grouping endpoint-monitoring-parameters { grouping ep-monitoring-metrics {
description description
"Grouping for the endpoint monitoring parameters."; "Grouping for the NS endpoint monitoring metrics.";
container ep-monitoring { container ep-monitoring {
config false; config false;
description description
"Container for endpoint monitoring parameters."; "Container for NS endpoint monitoring metrics.";
leaf incoming-utilized-bandwidth { leaf incoming-utilized-bandwidth {
type te-types:te-bandwidth; type te-types:te-bandwidth;
description description
"Incoming bandwidth utilization at an endpoint."; "Incoming bandwidth utilization at an endpoint.";
} }
leaf incoming-bw-utilization { leaf incoming-bw-utilization {
type decimal64 { type decimal64 {
fraction-digits 5; fraction-digits 5;
range "0..100"; range "0..100";
} }
skipping to change at page 30, line 51 skipping to change at page 36, line 31
} }
units "percent"; units "percent";
mandatory true; mandatory true;
description description
"To be used to define the bandwidth utilization "To be used to define the bandwidth utilization
as a percentage of the available bandwidth."; as a percentage of the available bandwidth.";
} }
} }
} }
grouping common-monitoring-parameters { grouping ns-connection-monitoring-metrics {
description description
"Grouping for link-monitoring-parameters."; "Grouping for NS connection monitoring metrics.";
leaf latency { uses te-packet-types:one-way-performance-metrics-packet;
type yang:gauge64; uses te-packet-types:two-way-performance-metrics-packet;
units "usec";
description
"The latency statistics per Network Slice connection.
RFC2681 and RFC7679 discuss round trip times and one-way
metrics, respectively";
}
leaf jitter {
type yang:gauge32;
description
"The jitter statistics per Network Slice member
as defined by RFC3393.";
}
leaf loss-ratio {
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 { grouping geolocation-container {
description description
"A grouping containing a GPS location."; "A grouping containing a GPS location.";
container location { container location {
description description
"A container containing a GPS location."; "A container containing a GPS location.";
leaf altitude { leaf altitude {
type int64; type int64;
skipping to change at page 32, line 20 skipping to change at page 37, line 24
} }
description description
"Angular distance east or west on the Earth's surface."; "Angular distance east or west on the Earth's surface.";
} }
} }
// gps-location // gps-location
} }
// geolocation-container // geolocation-container
grouping bw-rate-limits {
description
"Bandwidth rate limits grouping.";
reference
"RFC 7640: Traffic Management Benchmarking";
leaf cir {
type uint64;
units "bps";
description
"Committed Information Rate. The maximum number of bits
that a port can receive or send during one-second over an
interface.";
}
leaf cbs {
type uint64;
units "bytes";
description
"Committed Burst Size. CBS controls the bursty nature
of the traffic. Traffic that does not use the configured
CIR accumulates credits until the credits reach the
configured CBS.";
}
leaf eir {
type uint64;
units "bps";
description
"Excess Information Rate, i.e., excess frame delivery
allowed not subject to SLA. The traffic rate can be
limited by EIR.";
}
leaf ebs {
type uint64;
units "bytes";
description
"Excess Burst Size. The bandwidth available for burst
traffic from the EBS is subject to the amount of
bandwidth that is accumulated during periods when
traffic allocated by the EIR policy is not used.";
}
leaf pir {
type uint64;
units "bps";
description
"Peak Information Rate, i.e., maximum frame delivery
allowed. It is equal to or less than sum of CIR and EIR.";
}
leaf pbs {
type uint64;
units "bytes";
description
"Peak Burst Size.";
}
}
grouping ns-rate-limit { grouping ns-rate-limit {
description description
"The Network Slice rate limit grouping."; "The rate limits grouping.";
container ep-rate-limit { container incoming-rate-limits {
description description
"Container for the asymmetric traffic control"; "Container for the asymmetric traffic control.";
leaf incoming-rate-limit { uses bw-rate-limits;
type te-types:te-bandwidth; }
description container outgoing-rate-limits {
"The rate-limit imposed on incoming traffic."; description
} "The rate-limit imposed on outgoing traffic.";
leaf outgoing-rate-limit { uses bw-rate-limits;
type te-types:te-bandwidth;
description
"The rate-limit imposed on outgoing traffic.";
}
} }
} }
grouping endpoint { grouping endpoint {
description description
"IETF Network Slice endpoint related information"; "IETF Network Slice endpoint related information";
leaf ep-id { leaf ep-id {
type string; type string;
description description
"unique identifier for the referred IETF Network "Unique identifier for the referred IETF Network
Slice endpoint"; Slice endpoint.";
} }
leaf ep-description { leaf ep-description {
type string; type string;
description description
"endpoint name"; "Give more description of the Network Slice endpoint.";
}
leaf ep-role {
type identityref {
base endpoint-role;
}
default "any-to-any-role";
description
"Role of the endpoint in the IETF Network Slice.";
} }
uses geolocation-container; uses geolocation-container;
leaf node-id { leaf node-id {
type string; type string;
description description
"Uniquely identifies an edge node within the IETF slice "Uniquely identifies an edge node within the IETF slice
network."; network.";
} }
leaf ep-ip { leaf ep-ip {
type inet:host; type inet:ip-address;
description description
"The address of the endpoint IP address."; "The IP address of the endpoint.";
} }
uses ns-match-criteria; uses ns-match-criteria;
uses ep-peering; uses ep-peering;
uses ep-network-access-points; uses ep-network-access-points;
uses ns-rate-limit; uses ns-rate-limit;
/* Per NSE rate limits */ /* Per NSE rate limits */
uses status-params; uses status-params;
uses endpoint-monitoring-parameters; uses ep-monitoring-metrics;
} }
//ns-endpoint //ns-endpoint
grouping ns-connection { grouping ns-connection {
description description
"The Network Slice connection is described in this container."; "The network slice connection grouping.";
leaf ns-connection-id { list ns-connection {
type uint32; key "ns-connection-id";
description
"The Network Slice connection identifier";
}
leaf ns-connection-description {
type string;
description
"The Network Slice connection description";
}
container src {
description description
"the source of Network Slice link"; "List of Network Slice connections.";
leaf src-ep-id { leaf ns-connection-id {
type uint32;
description
"The Network Slice connection identifier.";
}
leaf ns-connectivity-type {
type identityref {
base ns-connectivity-type;
}
default "point-to-point";
description
"Network Slice connection construct type.";
}
leaf-list src-nse {
type leafref { type leafref {
path "/network-slices/network-slice" path "/network-slices/network-slice"
+ "/ns-endpoints/ns-endpoint/ep-id"; + "/ns-endpoints/ns-endpoint/ep-id";
} }
description description
"reference to source Network Slice endpoint"; "reference to source Network Slice endpoint.";
} }
} leaf-list dest-nse {
container dest {
description
"the destination of Network Slice link ";
leaf dest-ep-id {
type leafref { type leafref {
path "/network-slices/network-slice" path "/network-slices/network-slice"
+ "/ns-endpoints/ns-endpoint/ep-id"; + "/ns-endpoints/ns-endpoint/ep-id";
} }
description description
"reference to dest Network Slice endpoint"; "reference to source Network Slice endpoint.";
}
uses ns-slo-sle-policy;
/* Per connection ns-slo-sle-policy overrides
* the per network slice ns-slo-sle-policy.
*/
container ns-connection-monitoring {
config false;
description
"SLO status Per NS connection.";
uses ns-connection-monitoring-metrics;
} }
} }
}
//ns-connection
grouping ns-connection-group {
description
"The Network Slice connection group is described in this
container.";
leaf ns-connection-group-id {
type string;
description
"The Network Slice connection group identifier.";
}
uses ns-slo-sle-policy; uses ns-slo-sle-policy;
uses ns-connection;
/* Per connection ns-slo-sle-policy overrides /* Per connection ns-slo-sle-policy overrides
* the per network slice ns-slo-sle-policy. * the per network slice ns-slo-sle-policy.
*/ */
leaf monitoring-type { container ns-connection-group-monitoring {
type ns-monitoring-type;
description
"One way or two way monitoring type.";
}
container ns-connection-monitoring {
config false; config false;
description description
"SLO status Per network-slice endpoint to endpoint "; "SLO status Per NS connection.";
uses common-monitoring-parameters; uses ns-connection-monitoring-metrics;
} }
} }
//ns-connection //ns-connection-group
grouping slice-template { grouping slice-template {
description description
"Grouping for slice-templates."; "Grouping for slice-templates.";
container ns-slo-sle-templates { container ns-slo-sle-templates {
description description
"Contains a set of network slice templates to "Contains a set of network slice templates to
reference in the IETF network slice."; reference in the IETF network slice.";
list ns-slo-sle-template { list ns-slo-sle-template {
key "id"; key "id";
skipping to change at page 36, line 15 skipping to change at page 42, line 34
} }
uses ns-metric-bounds; uses ns-metric-bounds;
uses ns-sles; uses ns-sles;
} }
} }
} }
} }
container network-slices { container network-slices {
description description
"IETF network-slice configurations"; "Containes a list of IETF network slice";
uses slice-template; uses slice-template;
list network-slice { list network-slice {
key "ns-id"; key "ns-id";
description description
"a network-slice is identified by a ns-id"; "A network-slice is identified by a ns-id.";
leaf ns-id { leaf ns-id {
type string; type string;
description description
"A unique network-slice identifier across an IETF NSC "; "A unique network-slice identifier across an IETF NSC.";
} }
leaf ns-description { leaf ns-description {
type string; type string;
description description
"Give more description of the network slice"; "Give more description of the network slice.";
} }
leaf-list customer-name { container ns-tags {
type string;
description description
"List of the customer that actually uses the slice. "Container for the list of IETF Network Slice tags.";
In the case that multiple customers sharing
same slice service, e.g., 5G, customer name may list ns-tag {
help with operational management"; key "index";
} description
leaf ns-connectivity-type { "IETF Network Slice tag list.";
type identityref { leaf index {
base ns-connectivity-type; type uint32;
description
"The entry index.";
}
leaf ns-tag-type {
type identityref {
base ns-tag-type;
}
description
"The IETF Network Slice tag type.";
}
leaf ns-tag-value {
type string;
description
"The IETF Network Slice tag value.";
}
} }
default "any-to-any";
description
"Network Slice topology.";
} }
uses ns-slo-sle-policy; uses ns-slo-sle-policy;
uses status-params; uses status-params;
container ns-endpoints { container ns-endpoints {
description description
"Endpoints"; "NS Endpoints.";
list ns-endpoint { list ns-endpoint {
key "ep-id"; key "ep-id";
uses endpoint; uses endpoint;
description description
"List of endpoints in this slice"; "List of endpoints in this slice.";
} }
} }
container ns-connections { container ns-connection-groups {
description description
"Connections container"; "Contains NS connections group.";
list ns-connection { list ns-connection-group {
key "ns-connection-id"; key "ns-connection-group-id";
description description
"List of Network Slice connections."; "List of Network Slice connections.";
uses ns-connection; uses ns-connection-group;
} }
} }
} }
//ietf-network-slice list //ietf-network-slice list
} }
} }
<CODE ENDS> <CODE ENDS>
9. Security Considerations 9. Security Considerations
The YANG module defined in this document is designed to be accessed The YANG module defined in this document is designed to be accessed
via network management protocols such as NETCONF [RFC6241] or via network management protocols such as NETCONF [RFC6241] or
RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport
layer, and the mandatory-to-implement secure transport is Secure layer, and the mandatory-to-implement secure transport is Secure
Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the
skipping to change at page 38, line 30 skipping to change at page 45, line 12
This document requests to register a YANG module in the YANG Module This document requests to register a YANG module in the YANG Module
Names registry [RFC7950]. Names registry [RFC7950].
Name: ietf-network-slice Name: ietf-network-slice
Namespace: urn:ietf:params:xml:ns:yang:ietf-network-slice Namespace: urn:ietf:params:xml:ns:yang:ietf-network-slice
Prefix: ietf-ns Prefix: ietf-ns
Reference: RFC XXXX Reference: RFC XXXX
11. Acknowledgments 11. Acknowledgments
The authors wish to thank Mohamed Boucadair, Kenichi Ogaki, Sergio The authors wish to thank Mohamed Boucadair, John Mullooly, Kenichi
Belotti, Qin Wu, Susan Hares, Eric Grey, and many others for their Ogaki, Sergio Belotti, Qin Wu, Susan Hares, Eric Grey, and many
helpful comments and suggestions. others for their helpful comments and suggestions.
12. References 12. Contributors
12.1. Normative References The following authors contributed significantly to this document:
Luis M. Contreras
Telefonica
Spain
Email: luismiguel.contrerasmurillo@telefonica.com
13. References
13.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004, DOI 10.17487/RFC3688, January 2004,
<https://www.rfc-editor.org/info/rfc3688>. <https://www.rfc-editor.org/info/rfc3688>.
skipping to change at page 39, line 13 skipping to change at page 46, line 5
<https://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
<https://www.rfc-editor.org/info/rfc6242>. <https://www.rfc-editor.org/info/rfc6242>.
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
RFC 6991, DOI 10.17487/RFC6991, July 2013, RFC 6991, DOI 10.17487/RFC6991, July 2013,
<https://www.rfc-editor.org/info/rfc6991>. <https://www.rfc-editor.org/info/rfc6991>.
[RFC7640] Constantine, B. and R. Krishnan, "Traffic Management
Benchmarking", RFC 7640, DOI 10.17487/RFC7640, September
2015, <https://www.rfc-editor.org/info/rfc7640>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016, RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>. <https://www.rfc-editor.org/info/rfc7950>.
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
<https://www.rfc-editor.org/info/rfc8040>. <https://www.rfc-editor.org/info/rfc8040>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
skipping to change at page 40, line 10 skipping to change at page 47, line 5
[RFC8641] Clemm, A. and E. Voit, "Subscription to YANG Notifications [RFC8641] Clemm, A. and E. Voit, "Subscription to YANG Notifications
for Datastore Updates", RFC 8641, DOI 10.17487/RFC8641, for Datastore Updates", RFC 8641, DOI 10.17487/RFC8641,
September 2019, <https://www.rfc-editor.org/info/rfc8641>. September 2019, <https://www.rfc-editor.org/info/rfc8641>.
[RFC8776] Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, [RFC8776] Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin,
"Common YANG Data Types for Traffic Engineering", "Common YANG Data Types for Traffic Engineering",
RFC 8776, DOI 10.17487/RFC8776, June 2020, RFC 8776, DOI 10.17487/RFC8776, June 2020,
<https://www.rfc-editor.org/info/rfc8776>. <https://www.rfc-editor.org/info/rfc8776>.
12.2. Informative References 13.2. Informative References
[I-D.geng-teas-network-slice-mapping] [I-D.geng-teas-network-slice-mapping]
Geng, X., Dong, J., Pang, R., Han, L., Niwa, T., Jin, J., Geng, X., Dong, J., Pang, R., Han, L., Rokui, R., Niwa,
Liu, C., and N. Nageshar, "5G End-to-end Network Slice T., Jin, J., Liu, C., and N. Nageshar, "5G End-to-end
Mapping from the view of Transport Network", Work in Network Slice Mapping from the view of Transport Network",
Progress, Internet-Draft, draft-geng-teas-network-slice- Work in Progress, Internet-Draft, draft-geng-teas-network-
mapping-03, 22 February 2021, slice-mapping-04, 25 October 2021,
<https://www.ietf.org/archive/id/draft-geng-teas-network- <https://www.ietf.org/archive/id/draft-geng-teas-network-
slice-mapping-03.txt>. slice-mapping-04.txt>.
[I-D.ietf-opsawg-vpn-common] [I-D.ietf-opsawg-vpn-common]
Barguil, S., Dios, O. G. D., Boucadair, M., and Q. Wu, "A Barguil, S., Dios, O. G. D., Boucadair, M., and Q. Wu, "A
Layer 2/3 VPN Common YANG Model", Work in Progress, Common YANG Data Model for Layer 2 and Layer 3 VPNs", Work
Internet-Draft, draft-ietf-opsawg-vpn-common-11, 23 in Progress, Internet-Draft, draft-ietf-opsawg-vpn-common-
September 2021, <https://www.ietf.org/archive/id/draft- 12, 29 September 2021, <https://www.ietf.org/archive/id/
ietf-opsawg-vpn-common-11.txt>. draft-ietf-opsawg-vpn-common-12.txt>.
[I-D.ietf-teas-actn-vn-yang] [I-D.ietf-teas-actn-vn-yang]
Lee, Y., Dhody, D., Ceccarelli, D., Bryskin, I., and B. Y. Lee, Y., Dhody, D., Ceccarelli, D., Bryskin, I., and B. Y.
Yoon, "A YANG Data Model for VN Operation", Work in Yoon, "A YANG Data Model for VN Operation", Work in
Progress, Internet-Draft, draft-ietf-teas-actn-vn-yang-12, Progress, Internet-Draft, draft-ietf-teas-actn-vn-yang-13,
25 August 2021, <https://www.ietf.org/archive/id/draft- 23 October 2021, <https://www.ietf.org/archive/id/draft-
ietf-teas-actn-vn-yang-12.txt>. ietf-teas-actn-vn-yang-13.txt>.
[I-D.ietf-teas-ietf-network-slices] [I-D.ietf-teas-ietf-network-slices]
Farrel, A., Gray, E., Drake, J., Rokui, R., Homma, S., Farrel, A., Gray, E., Drake, J., Rokui, R., Homma, S.,
Makhijani, K., Contreras, L. M., and J. Tantsura, Makhijani, K., Contreras, L. M., and J. Tantsura,
"Framework for IETF Network Slices", Work in Progress, "Framework for IETF Network Slices", Work in Progress,
Internet-Draft, draft-ietf-teas-ietf-network-slices-04, 23 Internet-Draft, draft-ietf-teas-ietf-network-slices-05, 25
August 2021, <https://www.ietf.org/archive/id/draft-ietf- October 2021, <https://www.ietf.org/archive/id/draft-ietf-
teas-ietf-network-slices-04.txt>. teas-ietf-network-slices-05.txt>.
[I-D.liu-teas-transport-network-slice-yang] [I-D.liu-teas-transport-network-slice-yang]
Liu, X., Tantsura, J., Bryskin, I., Contreras, L. M., Wu, Liu, X., Tantsura, J., Bryskin, I., Contreras, L. M., Wu,
Q., Belotti, S., and R. Rokui, "IETF Network Slice YANG Q., Belotti, S., and R. Rokui, "IETF Network Slice YANG
Data Model", Work in Progress, Internet-Draft, draft-liu- Data Model", Work in Progress, Internet-Draft, draft-liu-
teas-transport-network-slice-yang-04, 9 July 2021, teas-transport-network-slice-yang-04, 9 July 2021,
<https://www.ietf.org/archive/id/draft-liu-teas-transport- <https://www.ietf.org/archive/id/draft-liu-teas-transport-
network-slice-yang-04.txt>. network-slice-yang-04.txt>.
[RFC8309] Wu, Q., Liu, W., and A. Farrel, "Service Models [RFC8309] Wu, Q., Liu, W., and A. Farrel, "Service Models
Explained", RFC 8309, DOI 10.17487/RFC8309, January 2018, Explained", RFC 8309, DOI 10.17487/RFC8309, January 2018,
<https://www.rfc-editor.org/info/rfc8309>. <https://www.rfc-editor.org/info/rfc8309>.
Appendix A. IETF Network Slice NBI Model Usage Example Appendix A. IETF Network Slice Service Model Usage Example
The following example describes a simplified service configuration of The following example describes a simplified service configuration of
two IETF Network slice instances: two IETF Network slice instances:
* IETF Network Slice 1 on Device1, Device3, and Device4, with any- * IETF Network Slice 1 on PE1, PE2, and PE3, with two NS-connection-
to-any connectivity type groups
* IETF Network Slice 2 on Device2, Device3, with any-to-any
connectivity type
192.0.2.2 VLAN1 +----+ VLAN100
+--------+ | o------/
|Device1 o------/ | | | +------+
+--------+ | +------+ | DU1| +------o| PE1 +---------------+
+--------+ +------o| A +---------------+ | o-------/-----o| | |
|Device2 o-------/-----o| | | +----+ VLAN200 +---+--+ |
+--------+ +---+--+ | VLAN300 | | +-----+
198.51.100.2 | | | +---+--+ | |
VLAN2 | +---+--+ 192.0.2.4 VLAN1 | | o-----/-----o |
| | | +--------+ | | PE3o-----/-----o CU1 |
192.0.2.3 VLAN1 | | C o-----/-----oDevice4 | +----+ | +---+--+ | |
+--------+ | +---+--+ +--------+ | o------/ | | +-----+
| o------/ | | | | | +---+--+ |
| | | +---+--+ | | DU2| +------o| PE2 +---------------+
| Device3| +------o| B +---------------+ | o-------/-----o| |
| o-------/-----o| | +----+ +------+
+--------+ +------+
198.51.100.3
VLAN2
POST: /restconf/data/ietf-network-slice:ietf-network-slices POST: /restconf/data/ietf-network-slice:ietf-network-slices
Host: example.com Host: example.com
Content-Type: application/yang-data+json Content-Type: application/yang-data+json
{ {
"network-slices":{ "ietf-network-slice:network-slices": {
"network-slice":[ "network-slice": [
{ {
"ns-id":"1", "ns-id": "NS1",
"ns-description":"slice1", "ns-description": "URLLC",
"ns-connectivity-type":"any-to-any", "ns-tags": {
"ns-endpoints":{ "ns-tag": [
"ns-endpoint":[ {
{ "index": 1,
"ep-id":"11", "ns-tag-type": "ns-tag-customer",
"ep-description":"slice1 ep1 connected to device 1", "ns-tag-value": "FOO"
"ep-role":"any-to-any-role", },
"ns-match-criteria":[ {
"index": 2,
"ns-tag-type": "ns-tag-customer",
"ns-tag-value": "BAR"
},
{
"index": 3,
"ns-tag-type": "ns-tag-service",
"ns-tag-value": "L2"
}
]
},
"status": {
"admin-enabled": true,
"oper-status": "up"
},
"ns-endpoints": {
"ns-endpoint": [
{
"ep-id": "DU1",
"ep-description": "DU1 at location X",
"ep-ip": "1.1.1.1",
"ns-match-criteria": {
"ns-match-criterion": [
{
"index": 0,
"match-type": "ns-vlan-match",
"values": [
{ {
"match-type":"ns-vlan-match", "index": 1,
"value":[ "value": "VLAN-100"
{
"index":"1",
"value":"1"
}
]
} }
] ],
}, "target-ns-connection-group-id": "Matrix1"
{ },
"ep-id":"12", {
"ep-description":"slice1 ep2 connected to device 3", "index": 1,
"ep-role":"any-to-any-role", "match-type": "ns-vlan-match",
"ns-match-criteria":[ "values": [
{ {
"match-type":"ns-vlan-match", "index": 1,
"value":[ "value": "VLAN-200"
{ },
"index":"1", {
"value":"20" "index": 2,
} "value": "VLAN-300"
]
} }
] ],
}, "target-ns-connection-group-id": "Matrix2"
{ }
"ep-id":"13", ]
"ep-description":"slice1 ep3 connected to device 4", },
"ep-role":"any-to-any-role", "ep-network-access-points": {
"ns-match-criteria":[ "ep-network-access-point": [
{
"network-access-id": "AC1-VRF100",
"network-access-description": "VRF100 to PE1",
"network-access-node-id": "PE1",
"network-access-tp-id": "1",
"network-access-tp-ip-address": "192.0.1.2",
"network-access-tp-ip-prefix-length": 24,
"network-access-qos-policy-name": "QoS-Gold",
"network-access-tags": {
"network-access-tag": [
{ {
"match-type":"ns-vlan-match", "index": 1,
"value":[ "network-access-tag-type": "network-access-tag-vlan-id",
{ "network-access-tag-value": "100"
"index":"1", },
"value":"1" {
} "index": 2,
] "network-access-tag-type": "network-access-tag-vrf-id",
"network-access-tag-value": "FOO"
} }
] ]
},
"ep-peering": {
"protocol": [
{
"protocol-type": "peering-protocol-bgp",
"attribute": [
{
"index": 1,
"value": "COLOR:10"
},
{
"index": 2,
"value": "RT:20"
},
{
"index": 3,
"value": "RT:30"
}
]
}
]
},
"incoming-rate-limits": {
"cir": "1000000",
"cbs": "1000",
"pir": "5000000",
"pbs": "1000"
}
},
{
"network-access-id": "AC2-VRF200",
"network-access-description": "VRF200 to PE1",
"network-access-node-id": "PE1",
"network-access-tp-id": "2",
"network-access-tp-ip-address": "192.0.2.2",
"network-access-tp-ip-prefix-length": 24,
"network-access-qos-policy-name": "QoS-Gold",
"network-access-tags": {
"network-access-tag": [
{
"index": 1,
"network-access-tag-type": "network-access-tag-vlan-id",
"network-access-tag-value": "100"
},
{
"index": 2,
"network-access-tag-type": "network-access-tag-vrf-id",
"network-access-tag-value": "FOO"
}
]
},
"ep-peering": {
"protocol": [
{
"protocol-type": "peering-protocol-bgp",
"attribute": [
{
"index": 1,
"value": "COLOR:10"
},
{
"index": 2,
"value": "RT:20"
},
{
"index": 3,
"value": "RT:30"
}
]
}
]
},
"incoming-rate-limits": {
"cir": "1000000",
"cbs": "1000",
"pir": "5000000",
"pbs": "1000"
}
} }
]
}
},
{
"ep-id": "DU2",
"ep-description": "DU2 at location Y",
"ep-ip": "2.2.2.2",
"ep-network-access-points": {
"ep-network-access-point": [
{
"network-access-id": "AC1-VRF100",
"network-access-description": "VRF100 to PE2",
"network-access-node-id": "PE2",
"network-access-tp-id": "1",
"network-access-tp-ip-address": "192.1.1.2",
"network-access-tp-ip-prefix-length": 24,
"network-access-qos-policy-name": "QoS-Gold",
"ep-peering": {
"protocol": [
{
"protocol-type": "peering-protocol-bgp",
"attribute": [
{
"index": 1,
"value": "COLOR:10"
},
{
"index": 2,
"value": "RT:20"
},
{
"index": 3,
"value": "RT:30"
}
]
}
]
},
"incoming-rate-limits": {
"cir": "1000000",
"cbs": "1000",
"pir": "5000000",
"pbs": "1000"
}
] },
} {
"network-access-id": "AC2-VRF200",
"network-access-description": "VRF200 to PE1",
"network-access-node-id": "PE2",
"network-access-tp-id": "2",
"network-access-tp-ip-address": "192.1.2.2",
"network-access-tp-ip-prefix-length": 24,
"network-access-qos-policy-name": "QoS-Gold",
"ep-peering": {
"protocol": [
{
"protocol-type": "peering-protocol-bgp",
"attribute": [
{
"index": 1,
"value": "COLOR:10"
},
{
"index": 2,
"value": "RT:20"
},
{
"index": 3,
"value": "RT:30"
}
]
}
]
},
"incoming-rate-limits": {
"cir": "1000000",
"cbs": "1000",
"pir": "5000000",
"pbs": "1000"
}
}
]
}
},
{
"ep-id": "CU1",
"ep-description": "CU1 at location Z",
"ep-ip": "3.3.3.3",
"ep-network-access-points": {
"ep-network-access-point": [
{
"network-access-id": "AC1-VRF100",
"network-access-description": "VRF100 to PE2",
"network-access-node-id": "PE3",
"network-access-tp-id": "1",
"network-access-tp-ip-address": "192.2.1.2",
"network-access-tp-ip-prefix-length": 24,
"network-access-qos-policy-name": "QoS-Gold",
"ep-peering": {
"protocol": [
{
"protocol-type": "peering-protocol-bgp",
"attribute": [
{
"index": 1,
"value": "COLOR:10"
},
{
"index": 2,
"value": "RT:20"
},
{
"index": 3,
"value": "RT:30"
}
]
}
]
},
"incoming-rate-limits": {
"cir": "1000000",
"cbs": "1000",
"pir": "5000000",
"pbs": "1000"
}
},
{
"network-access-id": "AC2-VRF200",
"network-access-description": "VRF200 to PE1",
"network-access-node-id": "PE3",
"network-access-tp-id": "2",
"network-access-tp-ip-address": "192.2.2.2",
"network-access-tp-ip-prefix-length": 24,
"network-access-qos-policy-name": "QoS-Gold",
"ep-peering": {
"protocol": [
{
"protocol-type": "peering-protocol-bgp",
"attribute": [
{
"index": 1,
"value": "COLOR:10"
},
{
"index": 2,
"value": "RT:20"
},
{
"index": 3,
"value": "RT:30"
}
]
}
]
},
"incoming-rate-limits": {
"cir": "1000000",
"cbs": "1000",
"pir": "5000000",
"pbs": "1000"
}
}
]
}
}
]
}, },
{ "ns-connection-groups": {
"ns-id":"ns2", "ns-connection-group": [
"ns-description":"slice2", {
"ns-connectivity-type":"any-to-any", "ns-connection-group-id": "Matrix1",
"ns-endpoints":{ "slo-sle-policy": {
"ns-endpoint":[ "policy-description": "URLLC-SLAs-Template1",
"ns-metric-bounds": {
"ns-metric-bound": [
{
"metric-type": "ns-slo-shared-bandwidth",
"metric-unit": "Gbps",
"value-description": "Shared banwidth for Matrix1 connections",
"bound": "15"
},
{
"metric-type": "ns-slo-one-way-bandwidth",
"metric-unit": "Gbps",
"value-description": "One-way banwidth for Matrix3 connections",
"bound": "10"
},
{
"metric-type": "ns-slo-one-way-delay",
"metric-unit": "msec",
"value-description": "One-way delay for Matrix3 connections"
},
{
"metric-type": "ns-slo-one-way-delay-variation",
"metric-unit": "msec",
"value-description": "One-way delay variation for Matrix3 connections"
}
]
}
},
"ns-connection": [
{ {
"ep-id":"21", "ns-connection-id": 1,
"ep-description":"slice2 ep1 connected to device 2", "src-nse": [
"ep-role":"any-to-any-role", "DU1"
"ns-match-criteria":[ ],
{ "dest-nse": [
"match-type":"ns-vlan-match", "CU1"
"value":[ ],
{ "slo-sle-policy": {
"index":"1", "ns-metric-bounds": {
"value":"2" "ns-metric-bound": [
} {
] "metric-type": "ns-slo-one-way-delay",
} "metric-unit": "msec",
] "bound": "20"
}, }
{ ]
"ep-id":"22", }
"ep-description":"slice2 ep2 connected to device 3", }
"ep-role":"any-to-any-role", },
"ns-match-criteria":[ {
{ "ns-connection-id": 2,
"match-type":"ns-vlan-match", "src-nse": [
"value":[ "DU2"
{ ],
"index":"1", "dest-nse": [
"value":"2" "CU1"
}
]
}
]
}
] ]
} }
]
},
{
"ns-connection-group-id": "Matrix2",
"slo-sle-template": "URLLC-SLAs-Template2",
"ns-connection": [
{
"ns-connection-id": 1,
"src-nse": [
"DU1"
],
"dest-nse": [
"CU1"
]
},
{
"ns-connection-id": 2,
"src-nse": [
"DU2"
],
"dest-nse": [
"CU1"
]
}
]
} }
] ]
} }
} },
{
"ns-id": "NS2",
"status": {
"admin-enabled": true,
"oper-status": "up"
}
}
]
}
}
Appendix B. Comparison with Other Possible Design choices for IETF Appendix B. Comparison with Other Possible Design choices for IETF
Network Slice NBI Network Slice Service Interface
According to the 5.3.2 Northbound Inteface (NBI) According to the 5.3.1 IETF Network Slice Service Interface
[I-D.ietf-teas-ietf-network-slices], the IETF Network Slice NBI is a [I-D.ietf-teas-ietf-network-slices], the Network Slice service
technology-agnostic interface, which is used for a customer to Interface is a technology-agnostic interface, which is used for a
express requirements for a particular IETF Network Slice. Customers customer to express requirements for a particular IETF Network Slice.
operate on abstract IETF Network Slices, with details related to Customers operate on abstract IETF Network Slices, with details
their realization hidden. As classified by [RFC8309], the IETF related to their realization hidden. As classified by [RFC8309], the
Network Slice NBI is classified as Customer Service Model. Network Slice service Interface is classified as Customer Service
Model.
This draft analyzes the following existing IETF models to identify This draft analyzes the following existing IETF models to identify
the gap between the IETF Network Slice NBI requirements. the gap between the IETF Network Slice service Interface
requirements.
B.1. ACTN VN Model Augmentation B.1. ACTN VN Model Augmentation
The difference between the ACTN VN model and the IETF Network Slice The difference between the ACTN VN model and the IETF Network Slice
NBI requirements is that the IETF Network Slice NBI is a technology- service requirements is that the IETF Network Slice service interface
agnostic interface, whereas the VN model is bound to the IETF TE is a technology-agnostic interface, whereas the VN model is bound to
Topologies. The realization of the IETF Network Slice does not the IETF TE Topologies. The realization of the IETF Network Slice
necessarily require the slice network to support the TE technology. does not necessarily require the slice network to support the TE
technology.
The ACTN VN (Virtual Network) model introduced The ACTN VN (Virtual Network) model introduced
in[I-D.ietf-teas-actn-vn-yang] is the abstract customer view of the in[I-D.ietf-teas-actn-vn-yang] is the abstract customer view of the
TE network. Its YANG structure includes four components: TE network. Its YANG structure includes four components:
* VN: A Virtual Network (VN) is a network provided by a service * 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. 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. 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 Each link is an abstraction of the underlying network which can
encompass edge points of the customer's network, access links, encompass edge points of the customer's network, access links,
skipping to change at page 45, line 16 skipping to change at page 59, line 7
requirements. However, the Network Slice SLO and Network Slice requirements. However, the Network Slice SLO and Network Slice
Endpoint are not clearly defined and there's no direct equivalent. Endpoint are not clearly defined and there's no direct equivalent.
For example, the SLO requirement of the VN is defined through the For example, the SLO requirement of the VN is defined through the
IETF TE Topologies YANG model, but the TE Topologies model is related IETF TE Topologies YANG model, but the TE Topologies model is related
to a specific implementation technology. Also, VN-AP does not define to a specific implementation technology. Also, VN-AP does not define
"network-slice-match-criteria" to specify a specific NSE belonging to "network-slice-match-criteria" to specify a specific NSE belonging to
an IETF Network Slice. an IETF Network Slice.
B.2. RFC8345 Augmentation Model B.2. RFC8345 Augmentation Model
The difference between the IETF Network Slice NBI requirements and The difference between the IETF Network Slice service requirements
the IETF basic network model is that the IETF Network Slice NBI and the IETF basic network model is that the IETF Network Slice
requests abstract customer IETF Network Slices, with details related service requests abstract customer IETF Network Slices, with details
to the slice Network hidden. But the IETF network model is used to related to the slice Network hidden. But the IETF network model is
describe the interconnection details of a Network. The customer used to describe the interconnection details of a Network. The
service model does not need to provide details on the Network. customer service model does not need to provide details on the
Network.
For example, IETF Network Topologies YANG data model extension For example, IETF Network Topologies YANG data model extension
introduced in Transport Network Slice YANG Data Model introduced in Transport Network Slice YANG Data Model
[I-D.liu-teas-transport-network-slice-yang] includes three major [I-D.liu-teas-transport-network-slice-yang] includes three major
parts: parts:
* Network: a transport network list and an list of nodes contained * Network: a transport network list and an list of nodes contained
in the network in the network
* Link: "links" list and "termination points" list describe how * Link: "links" list and "termination points" list describe how
skipping to change at page 46, line 13 skipping to change at page 60, line 9
Network Slice Interworking Identifier). TNSII is a field in the Network Slice Interworking Identifier). TNSII is a field in the
packet header when different 5G wireless network slices are packet header when different 5G wireless network slices are
transported through a single physical interfaces of the IETF scoped transported through a single physical interfaces of the IETF scoped
Network. In the 5G scenario, "network-slice-match-criteria" refers Network. In the 5G scenario, "network-slice-match-criteria" refers
to TNSII. to TNSII.
+------------------------------------------------------------+ +------------------------------------------------------------+
| 5G E2E network slice orchestrator | | 5G E2E network slice orchestrator |
++-----------------------------------------------------+-----+ ++-----------------------------------------------------+-----+
| | | | | |
| IETF Network Slice NBI | | IETF Network Slice service model |
+---+-------+ | +-----+-----+ +---+-------+ | +-----+-----+
| | +------------------+ | | | | +------------------+ | |
|RAN Slice | |IETF Network Slice| |Core Slice | |RAN Slice | |IETF Network Slice| |Core Slice |
|controller | | controller | | controller| |controller | | controller | | controller|
+----+------+ +-------+----------+ +-----+-----+ +----+------+ +-------+----------+ +-----+-----+
| | | | | |
| | | | | |
+---+--+ +------------+----------------+ ++-----+ +---+--+ +------------+----------------+ ++-----+
| | | | | | | | | | | |
| | | | | | | | | | | |
skipping to change at page 47, line 6 skipping to change at page 61, line 4
traffic of NS1 and NS2 on gNodeB 1 and gNodeB 2 is transmitted 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 through the same access links to the IETF slice network. The IETF
slice network need to to distinguish different IETF Network Slice slice network need to to distinguish different IETF Network Slice
traffic of same gNB. Therefore, in addition to using "node-id" and traffic of same gNB. Therefore, in addition to using "node-id" and
"ep-ip" to identify a Network Slice Endpont, other information is "ep-ip" to identify a Network Slice Endpont, other information is
needed along with these parameters to uniquely distinguish a NSE. needed along with these parameters to uniquely distinguish a NSE.
For example, VLAN IDs in the user traffic can be used to distinguish For example, VLAN IDs in the user traffic can be used to distinguish
the NSEs of gNBs and UPFs. the NSEs of gNBs and UPFs.
Authors' Addresses Authors' Addresses
Bo Wu Bo Wu
Huawei Technologies Huawei Technologies
101 Software Avenue, Yuhua District 101 Software Avenue, Yuhua District
Nanjing Nanjing
Jiangsu, 210012 Jiangsu, 210012
China China
Email: lana.wubo@huawei.com Email: lana.wubo@huawei.com
Dhruv Dhody Dhruv Dhody
Huawei Technologies Huawei Technologies
Divyashree Techno Park Divyashree Techno Park
Bangalore 560066 Bangalore 560066
Karnataka Karnataka
India India
Email: dhruv.ietf@gmail.com Email: dhruv.ietf@gmail.com
Reza Rokui Reza Rokui
Nokia Ciena
Email: rrokui@ciena.com
Email: reza.rokui@nokia.com
Tarek Saad Tarek Saad
Juniper Networks Juniper Networks
Email: tsaad@juniper.net Email: tsaad@juniper.net
Liuyan Han Liuyan Han
China Mobile China Mobile
Email: hanliuyan@chinamobile.com Email: hanliuyan@chinamobile.com
 End of changes. 168 change blocks. 
636 lines changed or deleted 1292 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/