blob: e6ed2446b5df5361f3320ba09b364bcfe1701481 [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";
hirokid8fd7862018-10-09 15:24:24 +090011 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>";
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080016 description "
17 This module contains TAPI Virtual Network Model definitions.
18 Source: TapiVirtualNetwork.uml
hiroki96ab3c22018-12-11 14:10:52 -080019 - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.
20 - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]
21 <https://github.com/OpenNetworkingFoundation/EagleUmlYang>
22 and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]
23 <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>
24 - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.
25 As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.
26 - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.
27 The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.
28 YANG models included in this release may not be backward compatible with previous TAPI releases.
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080029 Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
30 License: This module is distributed under the Apache License 2.0";
hiroki96ab3c22018-12-11 14:10:52 -080031 revision 2018-12-10 {
32 description "ONF Transport API version 2.1.1.
33 Changes included in this TAPI release (v2.1.1) are listed in
34 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md>";
35 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
36 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
37 }
hirokid8fd7862018-10-09 15:24:24 +090038 revision 2018-10-16 {
39 description "ONF Transport API version 2.1.0.
hiroki96ab3c22018-12-11 14:10:52 -080040 Changes included in this TAPI release (v2.1.0) are listed in
41 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";
Ai Hamano06163902018-12-06 09:18:20 +090042 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
hirokid8fd7862018-10-09 15:24:24 +090043 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
44 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080045 revision 2018-03-07 {
Ai Hamano06163902018-12-06 09:18:20 +090046 description "ONF Transport API version 2.0.2
47 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070048 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
Ai Hamano06163902018-12-06 09:18:20 +090049 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070050 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
51 }
52 revision 2018-02-16 {
Ai Hamano06163902018-12-06 09:18:20 +090053 description "ONF Transport API version 2.0.1
54 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070055 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
Ai Hamano06163902018-12-06 09:18:20 +090056 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070057 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
58 }
59 revision 2018-01-02 {
Ai Hamano06163902018-12-06 09:18:20 +090060 description "ONF Transport API version 2.0.0
61 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070062 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
Ai Hamano06163902018-12-06 09:18:20 +090063 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070064 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070065 }
66 augment "/tapi-common:context" {
hirokid8fd7862018-10-09 15:24:24 +090067 container virtual-network-context {
68 uses virtual-network-context;
69 description "Augments the base TAPI Context with VirtualNetworkService information";
70 }
Toru Furusawa28988892017-10-30 17:28:40 -070071 description "Augments the base TAPI Context with VirtualNetworkService information";
72 }
Ai Hamano06163902018-12-06 09:18:20 +090073
74 /**************************
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070075 * definitions of refrences
Ai Hamano06163902018-12-06 09:18:20 +090076 **************************/
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070077 grouping virtual-nw-service-ref {
hirokid8fd7862018-10-09 15:24:24 +090078 leaf virtual-nw-service-uuid {
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070079 type leafref {
hirokid8fd7862018-10-09 15:24:24 +090080 path '/tapi-common:context/tapi-virtual-network:virtual-network-context/tapi-virtual-network:virtual-nw-service/tapi-virtual-network:uuid';
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070081 }
82 description "none";
83 }
84 description "none";
85 }
Toru Furusawa28988892017-10-30 17:28:40 -070086
Ai Hamano06163902018-12-06 09:18:20 +090087 /**************************
88 * package object-classes
89 **************************/
90 grouping virtual-network-constraint {
91 container src-service-end-point {
92 uses tapi-common:service-interface-point-ref;
93 config false;
94 description "none";
95 }
96 container sink-service-end-point {
97 uses tapi-common:service-interface-point-ref;
98 config false;
99 description "none";
100 }
101 list diversity-exclusion {
102 uses virtual-nw-service-ref;
103 key 'virtual-nw-service-uuid';
104 config false;
105 description "none";
106 }
107 container requested-capacity {
108 uses tapi-common:capacity;
109 description "none";
110 }
111 leaf service-level {
112 type string;
113 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
114 }
115 leaf-list service-layer {
116 type tapi-common:layer-protocol-name;
117 description "none";
118 }
119 list cost-characteristic {
120 key 'cost-name';
121 uses tapi-topology:cost-characteristic;
122 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
123 }
124 list latency-characteristic {
125 key 'traffic-property-name';
126 uses tapi-topology:latency-characteristic;
127 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
128 }
129 uses tapi-common:local-class;
130 description "none";
131 }
132 grouping virtual-network-service {
133 container topology {
134 uses tapi-topology:topology-ref;
135 config false;
136 description "none";
137 }
138 list end-point {
139 key 'local-id';
140 min-elements 2;
141 uses virtual-network-service-end-point;
142 description "none";
143 }
144 list vnw-constraint {
145 key 'local-id';
146 min-elements 1;
147 uses virtual-network-constraint;
148 description "none";
149 }
150 leaf schedule {
151 type string;
152 description "none";
153 }
154 container state {
155 uses tapi-common:admin-state-pac;
156 description "none";
157 }
158 leaf-list layer-protocol-name {
159 type tapi-common:layer-protocol-name;
160 min-elements 1;
161 description "none";
162 }
163 uses tapi-common:service-spec;
164 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.
165 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
166 }
167 grouping virtual-network-service-end-point {
168 container service-interface-point {
169 uses tapi-common:service-interface-point-ref;
170 config false;
171 description "none";
172 }
173 leaf role {
174 type tapi-common:port-role;
175 config false;
176 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. ";
177 }
178 leaf direction {
179 type tapi-common:port-direction;
180 config false;
181 description "The orientation of defined flow at the EndPoint.";
182 }
183 leaf service-layer {
184 type tapi-common:layer-protocol-name;
185 config false;
186 description "none";
187 }
188 uses tapi-common:local-class;
189 description "The association of the FC to LTPs is made via EndPoints.
190 The EndPoint (EP) object class models the access to the FC function.
191 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
192 In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
193 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
194 The EP replaces the Protection Unit of a traditional protection model.
195 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
196 }
197 grouping virtual-network-context {
198 list virtual-nw-service {
199 key 'uuid';
200 uses virtual-network-service;
201 description "none";
202 }
203 description "none";
204 }
Toru Furusawa28988892017-10-30 17:28:40 -0700205
Ai Hamano06163902018-12-06 09:18:20 +0900206 /**************************
207 * package interfaces
208 **************************/
209 rpc create-virtual-network-service {
210 description "none";
211 input {
212 list sep {
213 key 'local-id';
214 min-elements 2;
215 uses virtual-network-service-end-point;
216 description "none";
217 }
218 container vnw-constraint {
219 uses virtual-network-constraint;
220 description "none";
221 }
222 leaf conn-schedule {
223 type string;
224 description "none";
225 }
226 }
227 output {
228 container service {
229 uses virtual-network-service;
230 description "none";
231 }
232 }
233 }
234 rpc delete-virtual-network-service {
235 description "none";
236 input {
237 leaf service-id-or-name {
238 type string;
239 description "none";
240 }
241 }
242 output {
243 container service {
244 uses virtual-network-service;
245 description "none";
246 }
247 }
248 }
249 rpc get-virtual-network-service-details {
250 description "none";
251 input {
252 leaf service-id-or-name {
253 type string;
254 description "none";
255 }
256 }
257 output {
258 container service {
259 uses virtual-network-service;
260 description "none";
261 }
262 }
263 }
264 rpc get-virtual-network-service-list {
265 description "none";
266 output {
267 list service {
268 key 'uuid';
269 uses virtual-network-service;
270 description "none";
271 }
272 }
273 }
Toru Furusawa28988892017-10-30 17:28:40 -0700274}