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";
26 import ietf-yang-types {
44 "Update model to support projects.";
49 "Initial revision. This YANG file defines
50 the Network Service Descriptor (NSD)";
52 "Derived from earlier versions of base YANG files";
55 grouping nsd-constituent-vnfd {
56 list constituent-vnfd {
58 "List of VNFDs that are part of this
61 key "member-vnf-index";
63 leaf member-vnf-index {
65 "Identifier/index for the VNFD. This separate id
66 is required to ensure that multiple VNFs can be
73 "Identifier for the VNFD.";
75 path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
79 leaf start-by-default {
81 "VNFD is started as part of the NS instantiation";
93 uses nsd-base:nsd-vld-common;
95 list vnfd-connection-point-ref {
97 "A list of references to connection points.";
98 key "member-vnf-index-ref vnfd-connection-point-ref";
100 leaf member-vnf-index-ref {
101 description "Reference to member-vnf within constituent-vnfds";
103 path "../../../constituent-vnfd/member-vnf-index";
109 "A reference to a vnfd. This is a
111 ../../constituent-vnfd
112 + [id = current()/../id-ref]
114 NOTE: An issue with confd is preventing the
115 use of xpath. Seems to be an issue with leafref
116 to leafref, whose target is in a different module.
117 Once that is resovled this will switched to use
122 leaf vnfd-connection-point-ref {
123 description "A reference to a connection point name";
125 path "/vnfd:vnfd-catalog/vnfd:vnfd" +
126 "[vnfd:id = current()/../vnfd-id-ref]/" +
127 "vnfd:connection-point/vnfd:name";
134 grouping nsd-vnf-dependency {
135 list vnf-dependency {
137 "List of VNF dependencies.";
139 leaf vnf-source-ref {
141 path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
144 leaf vnf-depends-on-ref {
146 "Reference to VNF that sorce VNF depends.";
148 path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
154 grouping nsd-placement-groups {
155 list placement-groups {
156 description "List of placement groups at NS level";
159 uses manotypes:placement-group-info;
163 "List of VNFDs that are part of this placement group";
165 key "member-vnf-index-ref";
167 leaf member-vnf-index-ref {
168 description "member VNF index of this member VNF";
170 path "../../../constituent-vnfd/member-vnf-index";
176 "Identifier for the VNFD.";
178 path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
185 grouping nsd-monitoring-param {
187 list monitoring-param {
190 uses nsd-base:monitoring-param-common;
192 list vnfd-monitoring-param {
193 description "A list of VNFD monitoring params";
194 key "vnfd-id-ref vnfd-monitoring-param-ref";
198 "A reference to a vnfd. This is a
200 ../../../../nsd:constituent-vnfd
201 + [nsd:id = current()/../nsd:id-ref]
203 NOTE: An issue with confd is preventing the
204 use of xpath. Seems to be an issue with leafref
205 to leafref, whose target is in a different module.
206 Once that is resolved this will switched to use
212 leaf vnfd-monitoring-param-ref {
213 description "A reference to the VNFD monitoring param";
215 path "/vnfd:vnfd-catalog/vnfd:vnfd"
216 + "[vnfd:id = current()/../vnfd-id-ref]"
217 + "/vnfd:monitoring-param/vnfd:id";
221 leaf-list member-vnf-index-ref {
223 "Optional reference to member-vnf within constituent-vnfds";
230 container nsd-catalog {
235 uses nsd-base:nsd-descriptor-common;
239 uses nsd-constituent-vnfd;
241 uses nsd-placement-groups;
243 uses nsd-vnf-dependency;
245 uses nsd-monitoring-param;