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