blob: 0965cc58de00d6e8440bee62207abb01a3d9a97a [file] [log] [blame]
Toru Furusawa28988892017-10-30 17:28:40 -07001module tapi-virtual-network {
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -08002 namespace "urn:onf:otcc:yang:tapi-virtual-network";
Toru Furusawa28988892017-10-30 17:28:40 -07003 prefix tapi-virtual-network;
4 import tapi-topology {
5 prefix tapi-topology;
6 }
7 import tapi-common {
8 prefix tapi-common;
9 }
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080010 organization "ONF OTCC (Open Transport Configuration & Control) Project";
11 contact "
12 Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
13 Project List: <mailto:transport-api@opennetworking.org>
14 Editor: Karthik Sethuraman
15 <mailto:karthik.sethuraman@necam.com>";
16 description "
17 This module contains TAPI Virtual Network Model definitions.
18 Source: TapiVirtualNetwork.uml
19 Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
20 License: This module is distributed under the Apache License 2.0";
21 revision 2018-02-16 {
22 description "ONF Transport API version 2.0.1
23 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
24 <https://wiki.opennetworking.org/display/OIMT/IISOMI>
25 Changes in this revision: <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/blob/develop/change-log.md>";
26 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
27 <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/tree/develop/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070028 }
29 augment "/tapi-common:context" {
30 uses virtual-network-context;
31 description "Augments the base TAPI Context with VirtualNetworkService information";
32 }
33 /***********************
34 * package object-classes
35 **********************/
36 grouping virtual-network-constraint {
37 leaf src-service-end-point {
38 type leafref {
39 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
40 }
41 config false;
42 description "none";
43 }
44 leaf sink-service-end-point {
45 type leafref {
46 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
47 }
48 config false;
49 description "none";
50 }
51 leaf-list diversity-exclusion {
52 type leafref {
53 path '/tapi-common:context/tapi-virtual-network:virtual-nw-service/tapi-virtual-network:vnw-constraint/tapi-virtual-network:local-id';
54 }
55 config false;
56 description "none";
57 }
58 container requested-capacity {
59 uses tapi-common:capacity;
60 description "none";
61 }
62 leaf service-level {
63 type string;
64 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
65 }
66 leaf-list service-layer {
67 type tapi-common:layer-protocol-name;
68 description "none";
69 }
70 list cost-characteristic {
71 key 'cost-name';
72 uses tapi-topology:cost-characteristic;
73 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
74 }
75 list latency-characteristic {
76 key 'traffic-property-name';
77 uses tapi-topology:latency-characteristic;
78 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
79 }
80 uses tapi-common:local-class;
81 description "none";
82 }
83 grouping virtual-network-service {
84 leaf topology {
85 type leafref {
86 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
87 }
88 config false;
89 description "none";
90 }
91 list end-point {
92 key 'local-id';
93 min-elements 2;
94 uses virtual-network-service-end-point;
95 description "none";
96 }
97 list vnw-constraint {
98 key 'local-id';
99 min-elements 1;
100 uses virtual-network-constraint;
101 description "none";
102 }
103 leaf schedule {
104 type string;
105 description "none";
106 }
107 container state {
108 uses tapi-common:admin-state-pac;
109 description "none";
110 }
111 leaf-list layer-protocol-name {
112 type tapi-common:layer-protocol-name;
113 min-elements 1;
114 description "none";
115 }
116 uses tapi-common:service-spec;
117 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.
118 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
119 }
120 grouping virtual-network-service-end-point {
121 leaf service-interface-point {
122 type leafref {
123 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
124 }
125 config false;
126 description "none";
127 }
128 leaf role {
129 type tapi-common:port-role;
130 config false;
131 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. ";
132 }
133 leaf direction {
134 type tapi-common:port-direction;
135 config false;
136 description "The orientation of defined flow at the EndPoint.";
137 }
138 leaf service-layer {
139 type tapi-common:layer-protocol-name;
140 config false;
141 description "none";
142 }
143 uses tapi-common:local-class;
144 description "The association of the FC to LTPs is made via EndPoints.
145 The EndPoint (EP) object class models the access to the FC function.
146 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
147 In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
148 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
149 The EP replaces the Protection Unit of a traditional protection model.
150 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
151 }
152 grouping virtual-network-context {
153 list virtual-nw-service {
154 key 'uuid';
155 uses virtual-network-service;
156 description "none";
157 }
158 description "none";
159 }
160
161 /***********************
162 * package interfaces
163 **********************/
164 rpc create-virtual-network-service {
165 description "none";
166 input {
167 list sep {
168 min-elements 2;
169 uses virtual-network-service-end-point;
170 description "none";
171 }
172 container vnw-constraint {
173 uses virtual-network-constraint;
174 description "none";
175 }
176 leaf conn-schedule {
177 type string;
178 description "none";
179 }
180 }
181 output {
182 container service {
183 uses virtual-network-service;
184 description "none";
185 }
186 }
187 }
188 rpc delete-virtual-network-service {
189 description "none";
190 input {
191 leaf service-id-or-name {
192 type string;
193 description "none";
194 }
195 }
196 output {
197 container service {
198 uses virtual-network-service;
199 description "none";
200 }
201 }
202 }
203 rpc get-virtual-network-service-details {
204 description "none";
205 input {
206 leaf service-id-or-name {
207 type string;
208 description "none";
209 }
210 }
211 output {
212 container service {
213 uses virtual-network-service;
214 description "none";
215 }
216 }
217 }
218 rpc get-virtual-network-service-list {
219 description "none";
220 output {
221 list service {
222 uses virtual-network-service;
223 description "none";
224 }
225 }
226 }
227
228}