blob: 25f33d847abda5cce448488ba9dea012372eba44 [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>";
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 }
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080038 revision 2018-03-07 {
hirokid8fd7862018-10-09 15:24:24 +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>";
hirokid8fd7862018-10-09 15:24:24 +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 {
hirokid8fd7862018-10-09 15:24:24 +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>";
hirokid8fd7862018-10-09 15:24:24 +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 {
hirokid8fd7862018-10-09 15:24:24 +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>";
hirokid8fd7862018-10-09 15:24:24 +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 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070066 /*************************
67 * definitions of refrences
68 *************************/
69 grouping virtual-nw-service-ref {
hirokid8fd7862018-10-09 15:24:24 +090070 leaf virtual-nw-service-uuid {
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070071 type leafref {
hirokid8fd7862018-10-09 15:24:24 +090072 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 -070073 }
74 description "none";
75 }
76 description "none";
77 }
78
Toru Furusawa28988892017-10-30 17:28:40 -070079 /***********************
80 * package object-classes
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070081 **********************/
Toru Furusawa28988892017-10-30 17:28:40 -070082 grouping virtual-network-constraint {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080083 container src-service-end-point {
84 uses tapi-common:service-interface-point-ref;
Toru Furusawa28988892017-10-30 17:28:40 -070085 config false;
86 description "none";
87 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070088 container sink-service-end-point {
89 uses tapi-common:service-interface-point-ref;
Toru Furusawa28988892017-10-30 17:28:40 -070090 config false;
91 description "none";
92 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070093 list diversity-exclusion {
94 uses virtual-nw-service-ref;
hirokid8fd7862018-10-09 15:24:24 +090095 key 'virtual-nw-service-uuid';
Toru Furusawa28988892017-10-30 17:28:40 -070096 config false;
97 description "none";
98 }
99 container requested-capacity {
100 uses tapi-common:capacity;
101 description "none";
102 }
103 leaf service-level {
104 type string;
105 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
106 }
107 leaf-list service-layer {
108 type tapi-common:layer-protocol-name;
109 description "none";
110 }
111 list cost-characteristic {
112 key 'cost-name';
113 uses tapi-topology:cost-characteristic;
114 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
115 }
116 list latency-characteristic {
117 key 'traffic-property-name';
118 uses tapi-topology:latency-characteristic;
119 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
120 }
121 uses tapi-common:local-class;
122 description "none";
123 }
124 grouping virtual-network-service {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800125 container topology {
126 uses tapi-topology:topology-ref;
Toru Furusawa28988892017-10-30 17:28:40 -0700127 config false;
128 description "none";
129 }
130 list end-point {
131 key 'local-id';
132 min-elements 2;
133 uses virtual-network-service-end-point;
134 description "none";
135 }
136 list vnw-constraint {
137 key 'local-id';
138 min-elements 1;
139 uses virtual-network-constraint;
140 description "none";
141 }
142 leaf schedule {
143 type string;
144 description "none";
145 }
146 container state {
147 uses tapi-common:admin-state-pac;
148 description "none";
149 }
150 leaf-list layer-protocol-name {
151 type tapi-common:layer-protocol-name;
152 min-elements 1;
153 description "none";
154 }
155 uses tapi-common:service-spec;
156 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.
157 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
158 }
159 grouping virtual-network-service-end-point {
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700160 container service-interface-point {
161 uses tapi-common:service-interface-point-ref;
Toru Furusawa28988892017-10-30 17:28:40 -0700162 config false;
163 description "none";
164 }
165 leaf role {
166 type tapi-common:port-role;
167 config false;
168 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. ";
169 }
170 leaf direction {
171 type tapi-common:port-direction;
172 config false;
173 description "The orientation of defined flow at the EndPoint.";
174 }
175 leaf service-layer {
176 type tapi-common:layer-protocol-name;
177 config false;
178 description "none";
179 }
180 uses tapi-common:local-class;
181 description "The association of the FC to LTPs is made via EndPoints.
182 The EndPoint (EP) object class models the access to the FC function.
183 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
184 In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
185 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
186 The EP replaces the Protection Unit of a traditional protection model.
187 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
188 }
189 grouping virtual-network-context {
190 list virtual-nw-service {
191 key 'uuid';
192 uses virtual-network-service;
193 description "none";
194 }
195 description "none";
196 }
197
198 /***********************
199 * package interfaces
200 **********************/
201 rpc create-virtual-network-service {
202 description "none";
203 input {
204 list sep {
205 min-elements 2;
206 uses virtual-network-service-end-point;
207 description "none";
208 }
209 container vnw-constraint {
210 uses virtual-network-constraint;
211 description "none";
212 }
213 leaf conn-schedule {
214 type string;
215 description "none";
216 }
217 }
218 output {
219 container service {
220 uses virtual-network-service;
221 description "none";
222 }
223 }
224 }
225 rpc delete-virtual-network-service {
226 description "none";
227 input {
228 leaf service-id-or-name {
229 type string;
230 description "none";
231 }
232 }
233 output {
234 container service {
235 uses virtual-network-service;
236 description "none";
237 }
238 }
239 }
240 rpc get-virtual-network-service-details {
241 description "none";
242 input {
243 leaf service-id-or-name {
244 type string;
245 description "none";
246 }
247 }
248 output {
249 container service {
250 uses virtual-network-service;
251 description "none";
252 }
253 }
254 }
255 rpc get-virtual-network-service-list {
256 description "none";
257 output {
258 list service {
259 uses virtual-network-service;
260 description "none";
261 }
262 }
263 }
264
265}