blob: 087ff01274500f8549a3b0539453d19138712421 [file] [log] [blame]
Toru Furusawa28988892017-10-30 17:28:40 -07001module tapi-virtual-network {
2 namespace "urn:onf:params:xml:ns:yang:tapi-virtual-network";
3 prefix tapi-virtual-network;
4 import tapi-topology {
5 prefix tapi-topology;
6 }
7 import tapi-common {
8 prefix tapi-common;
9 }
10 organization "Open Networking Foundation (ONF) / Open Transport Working Group(OTWG) / Transport API (TAPI) Project";
11 contact "
12 WG Web: TAPI SDK Project <http://opensourcesdn.org/projects/project-snowmass/>
13 WG List: TAPI Discussion list <mailto: transport-api@login.opennetworking.org>,
14 WG Chair: Karthik Sethuraman <mailto:karthik.sethuraman@necam.com>,
15 Editor: Ricard Vilalta <mailto:ricard.vilalta@cttc.es>";
16 description "none";
17 revision 2017-05-31 {
18 description "TAPI SDK 2.0-alpha";
19 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020 and RFC 6087";
20 }
21 augment "/tapi-common:context" {
22 uses virtual-network-context;
23 description "Augments the base TAPI Context with VirtualNetworkService information";
24 }
25 /***********************
26 * package object-classes
27 **********************/
28 grouping virtual-network-constraint {
29 leaf src-service-end-point {
30 type leafref {
31 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
32 }
33 config false;
34 description "none";
35 }
36 leaf sink-service-end-point {
37 type leafref {
38 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
39 }
40 config false;
41 description "none";
42 }
43 leaf-list diversity-exclusion {
44 type leafref {
45 path '/tapi-common:context/tapi-virtual-network:virtual-nw-service/tapi-virtual-network:vnw-constraint/tapi-virtual-network:local-id';
46 }
47 config false;
48 description "none";
49 }
50 container requested-capacity {
51 uses tapi-common:capacity;
52 description "none";
53 }
54 leaf service-level {
55 type string;
56 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
57 }
58 leaf-list service-layer {
59 type tapi-common:layer-protocol-name;
60 description "none";
61 }
62 list cost-characteristic {
63 key 'cost-name';
64 uses tapi-topology:cost-characteristic;
65 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
66 }
67 list latency-characteristic {
68 key 'traffic-property-name';
69 uses tapi-topology:latency-characteristic;
70 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
71 }
72 uses tapi-common:local-class;
73 description "none";
74 }
75 grouping virtual-network-service {
76 leaf topology {
77 type leafref {
78 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
79 }
80 config false;
81 description "none";
82 }
83 list end-point {
84 key 'local-id';
85 min-elements 2;
86 uses virtual-network-service-end-point;
87 description "none";
88 }
89 list vnw-constraint {
90 key 'local-id';
91 min-elements 1;
92 uses virtual-network-constraint;
93 description "none";
94 }
95 leaf schedule {
96 type string;
97 description "none";
98 }
99 container state {
100 uses tapi-common:admin-state-pac;
101 description "none";
102 }
103 leaf-list layer-protocol-name {
104 type tapi-common:layer-protocol-name;
105 min-elements 1;
106 description "none";
107 }
108 uses tapi-common:service-spec;
109 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.
110 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
111 }
112 grouping virtual-network-service-end-point {
113 leaf service-interface-point {
114 type leafref {
115 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
116 }
117 config false;
118 description "none";
119 }
120 leaf role {
121 type tapi-common:port-role;
122 config false;
123 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. ";
124 }
125 leaf direction {
126 type tapi-common:port-direction;
127 config false;
128 description "The orientation of defined flow at the EndPoint.";
129 }
130 leaf service-layer {
131 type tapi-common:layer-protocol-name;
132 config false;
133 description "none";
134 }
135 uses tapi-common:local-class;
136 description "The association of the FC to LTPs is made via EndPoints.
137 The EndPoint (EP) object class models the access to the FC function.
138 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
139 In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
140 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
141 The EP replaces the Protection Unit of a traditional protection model.
142 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
143 }
144 grouping virtual-network-context {
145 list virtual-nw-service {
146 key 'uuid';
147 uses virtual-network-service;
148 description "none";
149 }
150 description "none";
151 }
152
153 /***********************
154 * package interfaces
155 **********************/
156 rpc create-virtual-network-service {
157 description "none";
158 input {
159 list sep {
160 min-elements 2;
161 uses virtual-network-service-end-point;
162 description "none";
163 }
164 container vnw-constraint {
165 uses virtual-network-constraint;
166 description "none";
167 }
168 leaf conn-schedule {
169 type string;
170 description "none";
171 }
172 }
173 output {
174 container service {
175 uses virtual-network-service;
176 description "none";
177 }
178 }
179 }
180 rpc delete-virtual-network-service {
181 description "none";
182 input {
183 leaf service-id-or-name {
184 type string;
185 description "none";
186 }
187 }
188 output {
189 container service {
190 uses virtual-network-service;
191 description "none";
192 }
193 }
194 }
195 rpc get-virtual-network-service-details {
196 description "none";
197 input {
198 leaf service-id-or-name {
199 type string;
200 description "none";
201 }
202 }
203 output {
204 container service {
205 uses virtual-network-service;
206 description "none";
207 }
208 }
209 }
210 rpc get-virtual-network-service-list {
211 description "none";
212 output {
213 list service {
214 uses virtual-network-service;
215 description "none";
216 }
217 }
218 }
219
220}