4 * Copyright 2016-2017 RIFT.IO Inc
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
23 namespace "urn:ietf:params:xml:ns:yang:nfvo:nsd";
40 "Update model to support projects.";
45 "Initial revision. This YANG file defines
46 the Network Service Descriptor (NSD)";
48 "Derived from earlier versions of base YANG files";
51 grouping nsd-constituent-vnfd {
52 list constituent-vnfd {
54 "List of VNFDs that are part of this
57 key "member-vnf-index";
59 leaf member-vnf-index {
61 "Identifier/index for the VNFD. This separate id
62 is required to ensure that multiple VNFs can be
69 "Identifier for the VNFD.";
71 path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
75 leaf start-by-default {
77 "VNFD is started as part of the NS instantiation";
89 uses nsd-base:nsd-vld-common;
91 list vnfd-connection-point-ref {
93 "A list of references to connection points.";
94 key "member-vnf-index-ref vnfd-connection-point-ref";
96 leaf member-vnf-index-ref {
97 description "Reference to member-vnf within constituent-vnfds";
99 path "../../../constituent-vnfd/member-vnf-index";
105 "A reference to a VNFD";
107 path "../../../constituent-vnfd" +
108 "[member-vnf-index = current()/../member-vnf-index-ref]" +
113 leaf vnfd-connection-point-ref {
114 description "A reference to a connection point name";
116 path "/vnfd:vnfd-catalog/vnfd:vnfd" +
117 "[vnfd:id = current()/../vnfd-id-ref]/" +
118 "vnfd:connection-point/vnfd:name";
125 grouping nsd-vnf-dependency {
126 list vnf-dependency {
128 "List of VNF dependencies.";
130 leaf vnf-source-ref {
132 path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
135 leaf vnf-depends-on-ref {
137 "Reference to VNF that sorce VNF depends.";
139 path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
145 grouping nsd-placement-groups {
146 list placement-groups {
147 description "List of placement groups at NS level";
150 uses manotypes:placement-group-info;
154 "List of VNFDs that are part of this placement group";
156 key "member-vnf-index-ref";
158 leaf member-vnf-index-ref {
159 description "Member VNF index of this member VNF";
161 path "../../../constituent-vnfd/member-vnf-index";
167 "Identifier for the VNFD.";
169 path "../../../constituent-vnfd" +
170 "[member-vnf-index = current()/../member-vnf-index-ref]" +
178 grouping nsd-monitoring-param {
180 list monitoring-param {
183 uses nsd-base:monitoring-param-common;
185 list vnfd-monitoring-param {
186 description "A list of VNFD monitoring params";
187 key "member-vnf-index-ref vnfd-monitoring-param-ref";
191 "A reference to a VNFD. This is a leafref";
194 path "../../../constituent-vnfd" +
195 "[member-vnf-index = current()/../member-vnf-index-ref]" +
200 leaf vnfd-monitoring-param-ref {
201 description "A reference to the VNFD monitoring param";
203 path "/vnfd:vnfd-catalog/vnfd:vnfd"
204 + "[vnfd:id = current()/../vnfd-id-ref]"
205 + "/vnfd:monitoring-param/vnfd:id";
209 leaf member-vnf-index-ref {
211 "Mandatory reference to member-vnf within constituent-vnfds";
213 path "../../../constituent-vnfd/member-vnf-index";
220 grouping nsd-service-primitive {
221 list service-primitive {
223 "Network service level service primitives.";
229 "Name of the service primitive.";
235 "List of parameters for the service primitive.";
238 uses manotypes:primitive-parameter;
241 uses manotypes:ui-primitive-group;
243 list vnf-primitive-group {
245 "List of service primitives grouped by VNF.";
247 key "member-vnf-index-ref";
248 leaf member-vnf-index-ref {
250 "Reference to member-vnf within constituent-vnfds";
252 path "../../../constituent-vnfd/member-vnf-index";
258 "A reference to a VNFD. This is a leafref";
261 path "../../../constituent-vnfd" +
262 "[member-vnf-index = current()/../member-vnf-index-ref]" + "/vnfd-id-ref";
270 path "/vnfd:vnfd-catalog/vnfd:vnfd"
271 + "[vnfd:id = current()/../vnfd-id-ref]"
280 description "Index of this primitive";
285 description "Name of the primitive in the VNF primitive ";
291 leaf user-defined-script {
293 "A user defined script.";
299 container nsd-catalog {
304 uses nsd-base:nsd-descriptor-common;
308 uses nsd-constituent-vnfd;
310 uses nsd-placement-groups;
312 uses nsd-vnf-dependency;
314 uses nsd-monitoring-param;
316 uses nsd-service-primitive;