blob: 162df495908086c26e9b44aecd95f42142f4da3f [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 HIGUCHI7f165b12018-03-25 19:05:29 -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 version .
24 <https://wiki.opennetworking.org/display/OIMT/IISOMI>
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080025 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070026 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080027 <https://github.com/OpenNetworkingFoundation/TAPI/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 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070033 /*************************
34 * definitions of refrences
35 *************************/
36 grouping virtual-nw-service-ref {
37 leaf virtual-nw-service-id {
38 type leafref {
39 path '/tapi-common:context/tapi-virtual-network:virtual-nw-service/tapi-virtual-network:uuid';
40 }
41 description "none";
42 }
43 description "none";
44 }
45
Toru Furusawa28988892017-10-30 17:28:40 -070046 /***********************
47 * package object-classes
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070048 **********************/
Toru Furusawa28988892017-10-30 17:28:40 -070049 grouping virtual-network-constraint {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080050 container src-service-end-point {
51 uses tapi-common:service-interface-point-ref;
Toru Furusawa28988892017-10-30 17:28:40 -070052 config false;
53 description "none";
54 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070055 container sink-service-end-point {
56 uses tapi-common:service-interface-point-ref;
Toru Furusawa28988892017-10-30 17:28:40 -070057 config false;
58 description "none";
59 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070060 list diversity-exclusion {
61 uses virtual-nw-service-ref;
62 key 'virtual-nw-service-id';
Toru Furusawa28988892017-10-30 17:28:40 -070063 config false;
64 description "none";
65 }
66 container requested-capacity {
67 uses tapi-common:capacity;
68 description "none";
69 }
70 leaf service-level {
71 type string;
72 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
73 }
74 leaf-list service-layer {
75 type tapi-common:layer-protocol-name;
76 description "none";
77 }
78 list cost-characteristic {
79 key 'cost-name';
80 uses tapi-topology:cost-characteristic;
81 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
82 }
83 list latency-characteristic {
84 key 'traffic-property-name';
85 uses tapi-topology:latency-characteristic;
86 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
87 }
88 uses tapi-common:local-class;
89 description "none";
90 }
91 grouping virtual-network-service {
Yuta HIGUCHI348bba72018-03-08 13:46:48 -080092 container topology {
93 uses tapi-topology:topology-ref;
Toru Furusawa28988892017-10-30 17:28:40 -070094 config false;
95 description "none";
96 }
97 list end-point {
98 key 'local-id';
99 min-elements 2;
100 uses virtual-network-service-end-point;
101 description "none";
102 }
103 list vnw-constraint {
104 key 'local-id';
105 min-elements 1;
106 uses virtual-network-constraint;
107 description "none";
108 }
109 leaf schedule {
110 type string;
111 description "none";
112 }
113 container state {
114 uses tapi-common:admin-state-pac;
115 description "none";
116 }
117 leaf-list layer-protocol-name {
118 type tapi-common:layer-protocol-name;
119 min-elements 1;
120 description "none";
121 }
122 uses tapi-common:service-spec;
123 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.
124 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
125 }
126 grouping virtual-network-service-end-point {
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -0700127 container service-interface-point {
128 uses tapi-common:service-interface-point-ref;
Toru Furusawa28988892017-10-30 17:28:40 -0700129 config false;
130 description "none";
131 }
132 leaf role {
133 type tapi-common:port-role;
134 config false;
135 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. ";
136 }
137 leaf direction {
138 type tapi-common:port-direction;
139 config false;
140 description "The orientation of defined flow at the EndPoint.";
141 }
142 leaf service-layer {
143 type tapi-common:layer-protocol-name;
144 config false;
145 description "none";
146 }
147 uses tapi-common:local-class;
148 description "The association of the FC to LTPs is made via EndPoints.
149 The EndPoint (EP) object class models the access to the FC function.
150 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
151 In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
152 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
153 The EP replaces the Protection Unit of a traditional protection model.
154 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
155 }
156 grouping virtual-network-context {
157 list virtual-nw-service {
158 key 'uuid';
159 uses virtual-network-service;
160 description "none";
161 }
162 description "none";
163 }
164
165 /***********************
166 * package interfaces
167 **********************/
168 rpc create-virtual-network-service {
169 description "none";
170 input {
171 list sep {
172 min-elements 2;
173 uses virtual-network-service-end-point;
174 description "none";
175 }
176 container vnw-constraint {
177 uses virtual-network-constraint;
178 description "none";
179 }
180 leaf conn-schedule {
181 type string;
182 description "none";
183 }
184 }
185 output {
186 container service {
187 uses virtual-network-service;
188 description "none";
189 }
190 }
191 }
192 rpc delete-virtual-network-service {
193 description "none";
194 input {
195 leaf service-id-or-name {
196 type string;
197 description "none";
198 }
199 }
200 output {
201 container service {
202 uses virtual-network-service;
203 description "none";
204 }
205 }
206 }
207 rpc get-virtual-network-service-details {
208 description "none";
209 input {
210 leaf service-id-or-name {
211 type string;
212 description "none";
213 }
214 }
215 output {
216 container service {
217 uses virtual-network-service;
218 description "none";
219 }
220 }
221 }
222 rpc get-virtual-network-service-list {
223 description "none";
224 output {
225 list service {
226 uses virtual-network-service;
227 description "none";
228 }
229 }
230 }
231
232}