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.
21 module rw-project-vnfd
23 namespace "http://riftio.com/ns/riftware-1.0/rw-project-vnfd";
24 prefix "rw-project-vnfd";
27 prefix "project-vnfd";
30 import ietf-inet-types {
35 prefix "rw-vnfd-base";
50 import mano-rift-groupings {
60 "Initial revision. This YANG file augments
63 "Derived from earlier versions of base YANG files";
66 grouping vnfd-config-parameter {
67 container config-parameter {
69 "List of VNF config parameter requests and sources";
70 list config-parameter-source {
71 description "The list of parameters exposed by this VNF";
75 description "Name of the source";
82 description " Description of the source";
90 "Location of this source as an xpath.
92 ../../../mgmt-interface/port";
100 "Location of this source as runtime attribute.
101 The value is <xpath>, <attribute_name>
103 ../../../mgmt-interface, ip-address
104 which retruns the ip-address assigned to the
105 mgmt-interface after VNF instantiation.";
111 leaf config-primitive-name-ref {
113 "A leafref to configuration primitive.
114 This refers to a config parameter whose
115 output parameter is referred in out-parameter.";
117 path "../../../project-vnfd:vnf-configuration/project-vnfd:config-primitive/project-vnfd:name";
123 "Name of the output parameter in the config primitiive";
126 "../../../project-vnfd:vnf-configuration/project-vnfd:config-primitive[project-vnfd:name=current()/../config-primitive-name-ref]/project-vnfd:parameter/project-vnfd:name";
134 "Pre-defined value to be used for this source";
141 key "config-primitive-name-ref";
143 leaf config-primitive-name-ref {
145 "Name of the configuration primitive where this
148 path "../../../../project-vnfd:vnf-configuration/project-vnfd:config-primitive/project-vnfd:name";
152 leaf config-primitive-parameter-ref {
154 "Parameter name of the config primitive";
156 path "../../../../project-vnfd:vnf-configuration/project-vnfd:config-primitive[project-vnfd:name=current()/../config-primitive-name-ref]/project-vnfd:parameter/project-vnfd:name";
162 list config-parameter-request {
163 description "The list of requests for this VNF";
167 description "Name of this parameter request";
174 description "Description of this request";
179 key "config-primitive-name-ref";
181 leaf config-primitive-name-ref {
183 "Name of the configuration primitive where this
186 path "../../../../project-vnfd:vnf-configuration/project-vnfd:config-primitive/project-vnfd:name";
190 leaf config-primitive-parameter-ref {
192 "Parameter name of the config primitive";
194 path "../../../../project-vnfd:vnf-configuration/project-vnfd:config-primitive[project-vnfd:name=current()/../config-primitive-name-ref]/project-vnfd:parameter/project-vnfd:name";
202 augment /rw-project:project/project-vnfd:vnfd-catalog/project-vnfd:vnfd {
203 uses rw-vnfd-base:rw-vnfd-ext;
204 uses vnfd-config-parameter;
207 augment /rw-project:project/project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:mgmt-interface {
208 uses rw-vnfd-base:ssh-key;
211 augment /rw-project:project/project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:http-endpoint {
212 uses mano-rift:http-end-point-additions;
215 augment /rw-project:project/project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:vdu/project-vnfd:supplemental-boot-data {
216 uses mano-rift:custom-meta-data;
219 augment /rw-project:project/project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:vdu/project-vnfd:volumes {
220 uses mano-rift:volume-info-additions;
221 uses mano-rift:custom-meta-data;
224 augment /rw-project:project/project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:vdu/project-vnfd:interface {
225 leaf static-ip-address {
226 description "Static IP address for the connection point";
227 type inet:ip-address;
230 leaf floating-ip-needed{
234 "Sole purpose of this field is to facilitate translation of VNFD
239 augment /rw-project:project/project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:vdu/project-vnfd:volumes/project-vnfd:volume-source {
242 description "Reference for pre-existing volume in VIM";
248 augment /rw-project:project/project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:vnf-configuration/project-vnfd:initial-config-primitive/project-vnfd:primitive-type {
250 leaf config-primitive-ref {
252 "Reference to a config primitive name.
253 NOTE: The config primitive referred should have
254 all the input parameters predefined either
255 with default values or dependency references.";
257 path "../../project-vnfd:config-primitive/project-vnfd:name";
263 augment /rw-project:project/project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:internal-vld {
264 list virtual-connection-points {
266 "A list of virtual-connection points associated with Virtual Link.
267 These connection points are not directly associated with any VDUs";
269 uses vnfd-base:common-connection-point;
271 leaf-list associated-cps {
273 "A List of connection points associated with virtual connection point";
275 path "../../project-vnfd:internal-connection-point/project-vnfd:id-ref";
281 augment /rw-project:project/project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:vdu/project-vnfd:vm-flavor {
282 uses manotypes:vm-flavor-name;
285 augment /rw-project:project/project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:vnf-configuration/project-vnfd:config-primitive/project-vnfd:parameter {
287 description "If this is an output of the primitive execution";