blob: 3bea4fb723f4eeb159b4fb0745927dadc4ea48cc [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";
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070011 contact "
12 Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
13 Project List: <mailto:transport-api@opennetworking.org>
14 Editor: Karthik Sethuraman
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080015 <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";
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080021 revision 2018-03-07 {
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070022 description "ONF Transport API version 2.0.2
23 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
24 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
25 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
26 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
27 }
28 revision 2018-02-16 {
29 description "ONF Transport API version 2.0.1
30 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
31 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
32 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
33 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
34 }
35 revision 2018-01-02 {
36 description "ONF Transport API version 2.0.0
37 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
38 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
39 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
40 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070041 }
42 augment "/tapi-common:context" {
43 uses virtual-network-context;
44 description "Augments the base TAPI Context with VirtualNetworkService information";
45 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070046 /*************************
47 * definitions of refrences
48 *************************/
49 grouping virtual-nw-service-ref {
50 leaf virtual-nw-service-id {
51 type leafref {
52 path '/tapi-common:context/tapi-virtual-network:virtual-nw-service/tapi-virtual-network:uuid';
53 }
54 description "none";
55 }
56 description "none";
57 }
58
Toru Furusawa28988892017-10-30 17:28:40 -070059 /***********************
60 * package object-classes
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070061 **********************/
Toru Furusawa28988892017-10-30 17:28:40 -070062 grouping virtual-network-constraint {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080063 container src-service-end-point {
64 uses tapi-common:service-interface-point-ref;
Toru Furusawa28988892017-10-30 17:28:40 -070065 config false;
66 description "none";
67 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070068 container sink-service-end-point {
69 uses tapi-common:service-interface-point-ref;
Toru Furusawa28988892017-10-30 17:28:40 -070070 config false;
71 description "none";
72 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070073 list diversity-exclusion {
74 uses virtual-nw-service-ref;
75 key 'virtual-nw-service-id';
Toru Furusawa28988892017-10-30 17:28:40 -070076 config false;
77 description "none";
78 }
79 container requested-capacity {
80 uses tapi-common:capacity;
81 description "none";
82 }
83 leaf service-level {
84 type string;
85 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
86 }
87 leaf-list service-layer {
88 type tapi-common:layer-protocol-name;
89 description "none";
90 }
91 list cost-characteristic {
92 key 'cost-name';
93 uses tapi-topology:cost-characteristic;
94 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
95 }
96 list latency-characteristic {
97 key 'traffic-property-name';
98 uses tapi-topology:latency-characteristic;
99 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
100 }
101 uses tapi-common:local-class;
102 description "none";
103 }
104 grouping virtual-network-service {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -0800105 container topology {
106 uses tapi-topology:topology-ref;
Toru Furusawa28988892017-10-30 17:28:40 -0700107 config false;
108 description "none";
109 }
110 list end-point {
111 key 'local-id';
112 min-elements 2;
113 uses virtual-network-service-end-point;
114 description "none";
115 }
116 list vnw-constraint {
117 key 'local-id';
118 min-elements 1;
119 uses virtual-network-constraint;
120 description "none";
121 }
122 leaf schedule {
123 type string;
124 description "none";
125 }
126 container state {
127 uses tapi-common:admin-state-pac;
128 description "none";
129 }
130 leaf-list layer-protocol-name {
131 type tapi-common:layer-protocol-name;
132 min-elements 1;
133 description "none";
134 }
135 uses tapi-common:service-spec;
136 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.
137 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
138 }
139 grouping virtual-network-service-end-point {
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700140 container service-interface-point {
141 uses tapi-common:service-interface-point-ref;
Toru Furusawa28988892017-10-30 17:28:40 -0700142 config false;
143 description "none";
144 }
145 leaf role {
146 type tapi-common:port-role;
147 config false;
148 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. ";
149 }
150 leaf direction {
151 type tapi-common:port-direction;
152 config false;
153 description "The orientation of defined flow at the EndPoint.";
154 }
155 leaf service-layer {
156 type tapi-common:layer-protocol-name;
157 config false;
158 description "none";
159 }
160 uses tapi-common:local-class;
161 description "The association of the FC to LTPs is made via EndPoints.
162 The EndPoint (EP) object class models the access to the FC function.
163 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
164 In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
165 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
166 The EP replaces the Protection Unit of a traditional protection model.
167 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
168 }
169 grouping virtual-network-context {
170 list virtual-nw-service {
171 key 'uuid';
172 uses virtual-network-service;
173 description "none";
174 }
175 description "none";
176 }
177
178 /***********************
179 * package interfaces
180 **********************/
181 rpc create-virtual-network-service {
182 description "none";
183 input {
184 list sep {
185 min-elements 2;
186 uses virtual-network-service-end-point;
187 description "none";
188 }
189 container vnw-constraint {
190 uses virtual-network-constraint;
191 description "none";
192 }
193 leaf conn-schedule {
194 type string;
195 description "none";
196 }
197 }
198 output {
199 container service {
200 uses virtual-network-service;
201 description "none";
202 }
203 }
204 }
205 rpc delete-virtual-network-service {
206 description "none";
207 input {
208 leaf service-id-or-name {
209 type string;
210 description "none";
211 }
212 }
213 output {
214 container service {
215 uses virtual-network-service;
216 description "none";
217 }
218 }
219 }
220 rpc get-virtual-network-service-details {
221 description "none";
222 input {
223 leaf service-id-or-name {
224 type string;
225 description "none";
226 }
227 }
228 output {
229 container service {
230 uses virtual-network-service;
231 description "none";
232 }
233 }
234 }
235 rpc get-virtual-network-service-list {
236 description "none";
237 output {
238 list service {
239 uses virtual-network-service;
240 description "none";
241 }
242 }
243 }
244
245}