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