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/ |