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 "http://riftio.com/ns/riftware-1.0/rw-vnfr";
30 import rw-pb-ext { prefix "rwpb"; }
48 import ietf-yang-types {
52 import ietf-inet-types {
62 "Update model to support projects.";
67 "Initial revision. This YANG file augments
70 "Derived from earlier versions of base YANG files";
73 grouping vnfr-operational-events {
74 list operational-events {
77 "Recent operational events for VNFR
78 Though the model does not impose any restrictions on the numbe of events,
79 the max operational events will be limited to the most recent 10";
82 description "The id of the instance";
88 "The timestamp of this event expressed as seconds since
89 unix epoch - 1970-01-01T00:00:00Z";
93 description "The event";
95 rwpb:enum-type "VnfrOperationalEvent";
96 enum instantiate-rcvd;
108 "The description of this event";
114 grouping vdur-operational-events {
115 list operational-events {
118 "Recent operational events for VDUR
119 Though the model does not impose any restrictions on the numbe of events,
120 the max operational events will be limited to the most recent 10";
123 description "The id of the instance";
129 "The timestamp of this event expressed as seconds since
130 unix epoch - 1970-01-01T00:00:00Z";
134 description "The event";
136 rwpb:enum-type "VdurOperationalEvent";
137 enum instantiate-rcvd;
138 enum vm-allocation-requested;
141 enum vm-terminate-requested;
147 "The description of this event";
153 augment /rw-project:project/vnfr:vnfr-catalog/vnfr:vnfr {
154 uses manotypes:action-param;
155 uses manotypes:control-param;
159 "The cloud account to use when requesting resources for
162 path "../../../rw-cloud:cloud/rw-cloud:account/rw-cloud:name";
168 "Openmano datacenter name to use when instantiating
169 the network service. This is only used when openmano
170 is selected as the cloud account. This should be superceded
171 by multiple cloud accounts when that becomes available.";
175 container nfvi-metrics {
179 "Label to show in UI";
186 "The number of active VMs.";
192 "The number of inactive VMs.";
197 uses manotypes:nfvi-metrics;
202 "This section defines the RIFT.ware
204 key "component-name";
205 rwpb:msg-new VcsComponentOp;
206 rwpb:application-request-point;
208 leaf component-name {
213 leaf component-type {
215 type rwvcstypes:component_type;
220 case rwvcs-rwcollection {
221 uses rwvcstypes:rwvcs-rwcollection;
224 uses rwvcstypes:rwvcs-rwvm;
227 uses rwvcstypes:rwvcs-rwproc;
230 uses rwvcstypes:native-proc;
232 case rwvcs-rwtasklet {
233 uses rwvcstypes:rwvcs-rwtasklet;
238 uses vnfr-operational-events;
240 leaf operational-status-details {
242 "The error message in case of a failed VNFR operational status";
247 augment /rw-project:project/vnfr:vnfr-catalog/vnfr:vnfr/vnfr:vdur {
250 "The pool from which this vm was allocated from";
254 container nfvi-metrics {
255 uses manotypes:nfvi-metrics;
258 leaf vcs-component-ref {
260 "This defines the software components using the
261 RIFT.ware Virtual Component System (VCS). This
262 also allows specifying a state machine during
264 NOTE: This is an significant addition to MANO,
265 since MANO doesn't clearly specify a method to
266 identify various software components in a VM.
267 Also using a state machine is not something that
268 is well described in MANO.";
270 path "../../rw-vnfr:component/rw-vnfr:component-name";
274 uses vdur-operational-events;
276 leaf operational-status-details {
278 "The error message in case of a failed VDU operational status";
283 grouping vnfd-ref-count {
284 list vnfd-ref-count {
286 description "This table maintains the number of VNFRs used by each VNFD";
289 description "Reference to VNFD";
291 path "../../../vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
294 leaf instance-ref-count {
296 "Reference count for the number of VNFRs refering this VNFD.
297 Every VNF Record instantiated using this descriptor takes
298 a reference on the VNFD and releases the reference when the
299 virtual network service is terminated. This desciptor cannot
300 be deleted when this counter is non zero";
306 augment /rw-project:project/vnfr:vnfr-catalog {
310 augment /rw-project:project {
311 container vnfr-console {
316 description "Identifier for the VNFR.";
320 description "List of Virtual Deployment Units";
323 description "Unique id for the VDU";
327 description "Console URL for this VDU, if available";