blob: 25f33d847abda5cce448488ba9dea012372eba44 [file] [log] [blame]
module tapi-virtual-network {
namespace "urn:onf:otcc:yang:tapi-virtual-network";
prefix tapi-virtual-network;
import tapi-topology {
prefix tapi-topology;
}
import tapi-common {
prefix tapi-common;
}
organization "ONF OTCC (Open Transport Configuration & Control) Project";
contact "
Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
Project List: <mailto:transport-api@opennetworking.org>
Editor: Karthik Sethuraman
<mailto:karthik.sethuraman@necam.com>";
description "
This module contains TAPI Virtual Network Model definitions.
Source: TapiVirtualNetwork.uml
Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
License: This module is distributed under the Apache License 2.0";
revision 2018-10-16 {
description "ONF Transport API version 2.1.0.
- The TAPI YANG models included in this TAPI release (v2.1.0) are a *normative* part of the TAPI SDK.
- The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]
<https://github.com/OpenNetworkingFoundation/EagleUmlYang>
and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]
<https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>
- Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.
As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.
- The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.
The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.
YANG models included in this release are not backward compatible with previous TAPI releases.
- Changes included in this TAPI release (v2.1.0) are listed in
<https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";
reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
<https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
}
revision 2018-03-07 {
description "ONF Transport API version 2.0.2
This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
<https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
}
revision 2018-02-16 {
description "ONF Transport API version 2.0.1
This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
<https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
}
revision 2018-01-02 {
description "ONF Transport API version 2.0.0
This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
<https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
}
augment "/tapi-common:context" {
container virtual-network-context {
uses virtual-network-context;
description "Augments the base TAPI Context with VirtualNetworkService information";
}
description "Augments the base TAPI Context with VirtualNetworkService information";
}
/*************************
* definitions of refrences
*************************/
grouping virtual-nw-service-ref {
leaf virtual-nw-service-uuid {
type leafref {
path '/tapi-common:context/tapi-virtual-network:virtual-network-context/tapi-virtual-network:virtual-nw-service/tapi-virtual-network:uuid';
}
description "none";
}
description "none";
}
/***********************
* package object-classes
**********************/
grouping virtual-network-constraint {
container src-service-end-point {
uses tapi-common:service-interface-point-ref;
config false;
description "none";
}
container sink-service-end-point {
uses tapi-common:service-interface-point-ref;
config false;
description "none";
}
list diversity-exclusion {
uses virtual-nw-service-ref;
key 'virtual-nw-service-uuid';
config false;
description "none";
}
container requested-capacity {
uses tapi-common:capacity;
description "none";
}
leaf service-level {
type string;
description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
}
leaf-list service-layer {
type tapi-common:layer-protocol-name;
description "none";
}
list cost-characteristic {
key 'cost-name';
uses tapi-topology:cost-characteristic;
description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
}
list latency-characteristic {
key 'traffic-property-name';
uses tapi-topology:latency-characteristic;
description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
}
uses tapi-common:local-class;
description "none";
}
grouping virtual-network-service {
container topology {
uses tapi-topology:topology-ref;
config false;
description "none";
}
list end-point {
key 'local-id';
min-elements 2;
uses virtual-network-service-end-point;
description "none";
}
list vnw-constraint {
key 'local-id';
min-elements 1;
uses virtual-network-constraint;
description "none";
}
leaf schedule {
type string;
description "none";
}
container state {
uses tapi-common:admin-state-pac;
description "none";
}
leaf-list layer-protocol-name {
type tapi-common:layer-protocol-name;
min-elements 1;
description "none";
}
uses tapi-common:service-spec;
description "The ForwardingConstruct (FC) object class models enabled potential for forwarding between two or more LTPs and like the LTP supports any transport protocol including all circuit and packet forms.
At the lowest level of recursion, a FC represents a cross-connection within an NE.";
}
grouping virtual-network-service-end-point {
container service-interface-point {
uses tapi-common:service-interface-point-ref;
config false;
description "none";
}
leaf role {
type tapi-common:port-role;
config false;
description "Each EP of the FC has a role (e.g., working, protection, protected, symmetric, hub, spoke, leaf, root) in the context of the FC with respect to the FC function. ";
}
leaf direction {
type tapi-common:port-direction;
config false;
description "The orientation of defined flow at the EndPoint.";
}
leaf service-layer {
type tapi-common:layer-protocol-name;
config false;
description "none";
}
uses tapi-common:local-class;
description "The association of the FC to LTPs is made via EndPoints.
The EndPoint (EP) object class models the access to the FC function.
The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
The EP replaces the Protection Unit of a traditional protection model.
The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
}
grouping virtual-network-context {
list virtual-nw-service {
key 'uuid';
uses virtual-network-service;
description "none";
}
description "none";
}
/***********************
* package interfaces
**********************/
rpc create-virtual-network-service {
description "none";
input {
list sep {
min-elements 2;
uses virtual-network-service-end-point;
description "none";
}
container vnw-constraint {
uses virtual-network-constraint;
description "none";
}
leaf conn-schedule {
type string;
description "none";
}
}
output {
container service {
uses virtual-network-service;
description "none";
}
}
}
rpc delete-virtual-network-service {
description "none";
input {
leaf service-id-or-name {
type string;
description "none";
}
}
output {
container service {
uses virtual-network-service;
description "none";
}
}
}
rpc get-virtual-network-service-details {
description "none";
input {
leaf service-id-or-name {
type string;
description "none";
}
}
output {
container service {
uses virtual-network-service;
description "none";
}
}
}
rpc get-virtual-network-service-list {
description "none";
output {
list service {
uses virtual-network-service;
description "none";
}
}
}
}