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-nsr";
39 prefix "project-vnfd";
46 import rw-project-vnfd {
47 prefix "rw-project-vnfd";
54 import mano-rift-groupings {
62 import rw-ro-account {
63 prefix "rw-ro-account";
66 import rw-config-agent {
67 prefix "rw-config-agent";
78 import ietf-yang-types {
84 "Update model to support projects.";
89 "Initial revision. This YANG file augments
92 "Derived from earlier versions of base YANG files";
95 grouping operational-events {
96 list operational-events {
99 "Recent operational events for this network service.
100 Though the model does not impose any restrictions on the numbe of events,
101 the max operational events will be limited to the most recent 10";
104 description "The id of the instance";
110 "The timestamp of this event expressed as seconds since
111 unix epoch - 1970-01-01T00:00:00Z";
115 description "Short description of the event";
120 "The description of this event";
125 "The detailed description of this event (in case of errors)";
132 grouping rw-ns-instance-config {
134 list vnf-datacenter-map {
136 "Mapping VNF to Cloud Account where VNF will be instantiated";
138 key "member-vnf-index-ref";
139 leaf member-vnf-index-ref {
145 "datacenter name to use when instantiating
146 the network service.";
150 leaf config-agent-account {
152 "The configured config agent account to use for instantiating this VNF.
153 The configuration for this VNF will be driven using the specified config
156 path "../../../../rw-config-agent:config-agent/" +
157 "rw-config-agent:account/rw-config-agent:name";
162 list vl-datacenter-map {
164 "Mapping VL to Cloud Account where VL will be instantiated";
170 "A reference to a vld.
171 leafref path ../../nsd/vld/id";
175 leaf-list datacenters {
177 "datacenter names to use when instantiating
183 leaf resource-orchestrator {
185 "Resource Orchestrator to use when instantiating the VNF.";
187 path "../../../rw-ro-account:ro-account/rw-ro-account:account/rw-ro-account:name";
193 "datacenter name to use when instantiating
194 the network service.";
201 augment /rw-project:project/nsr:ns-instance-config/nsr:nsr {
202 uses rw-ns-instance-config;
205 augment /rw-project:project/nsr:ns-instance-opdata/nsr:nsr {
206 uses manotypes:action-param;
207 uses manotypes:control-param;
209 container orchestration-progress {
236 "The SDN account associted with the cloud account using which an
237 NS was instantiated.";
239 path "../../../rw-sdn:sdn/rw-sdn:account/rw-sdn:name";
243 leaf config-status-details {
245 "The configuration status error details of the NS instance, in case of any errors";
249 container nfvi-metrics {
253 "Label to show in UI";
260 "The number of active VMs.";
266 "The number of inactive VMs.";
271 uses manotypes:nfvi-metrics;
274 container epa-param {
275 container ovs-acceleration {
278 "Label to show in UI for the param";
280 default "OVS ACCELERATION";
285 "Number of VMs with the EPA attribute";
291 "Unit label to show in the UI";
297 container ovs-offload {
300 "Label to show in UI for the param";
302 default "OVS OFFLOAD";
307 "Number of VMs with the EPA attribute";
313 "Unit label to show in the UI";
323 "Label to show in UI for the param";
330 "Number of VMs with the EPA attribute";
336 "Unit label to show in the UI";
346 "Label to show in UI for the param";
353 "Number of VMs with the EPA attribute";
359 "Unit label to show in the UI";
368 "Label to show in UI for the param";
375 "Number of VMs with the EPA attribute";
381 "Unit label to show in the UI";
388 uses operational-events;
391 grouping project-nsr-nsd-config-parameter{
392 list config-parameter-map {
394 description "A mapping of VNF config parameter
395 requests and sources within this network service";
397 description "Identfier for VNF map";
400 container config-parameter-request {
402 leaf member-vnf-index-ref {
403 description "Reference to member-vnf within constituent-vnfds";
405 path "../../../nsr:constituent-vnfd/nsr:member-vnf-index";
411 "A reference to a vnfd. This is a
413 ../../nsr:constituent-vnfd
414 + [nsr:id = current()/../id-ref]
418 path "../../../nsr:constituent-vnfd[nsr:member-vnf-index = current()/../member-vnf-index-ref]/nsr:vnfd-id-ref";
421 leaf config-parameter-request-ref {
422 description "Reference to the request in the VNF
423 with the specified member-vnf-index";
425 path "../../../../../.." +
426 "/project-vnfd:vnfd-catalog/project-vnfd:vnfd[project-vnfd:id = current()/../vnfd-id-ref]" +
427 "/rw-project-vnfd:config-parameter/rw-project-vnfd:config-parameter-request/rw-project-vnfd:name";
431 container config-parameter-source {
433 leaf member-vnf-index-ref {
434 description "Reference to member-vnf within constituent-vnfds";
436 path "../../../nsr:constituent-vnfd/nsr:member-vnf-index";
442 "A reference to a vnfd. This is a
444 ../../nsd:constituent-vnfd
445 + [nsd:id = current()/../nsd:id-ref]
449 path "../../../nsr:constituent-vnfd[nsr:member-vnf-index = current()/../member-vnf-index-ref]/nsr:vnfd-id-ref";
452 leaf config-parameter-source-ref {
453 description "Reference to the source in the VNF
454 with the specified member-vnf-index";
456 path "../../../../../.." +
457 "/project-vnfd:vnfd-catalog/project-vnfd:vnfd[project-vnfd:id = current()/../vnfd-id-ref]" +
458 "/rw-project-vnfd:config-parameter/rw-project-vnfd:config-parameter-source/rw-project-vnfd:name";
465 augment /rw-project:project/nsr:ns-instance-opdata/nsr:nsr/nsr:vlr {
466 leaf assigned-subnet {
467 description "Subnet added for the VL";
472 "Datacenter name to use when instantiating
473 the network service. ";
478 augment /rw-project:project/nsr:ns-instance-opdata/nsr:nsr/nsr:constituent-vnfr-ref {
481 "Datacenter name to use when instantiating
482 the network service.";
487 augment /rw-project:project/nsr:ns-instance-config {
488 leaf nfvi-polling-period {
490 "Defines the period (secons) that the NFVI metrics are polled at";
496 augment /rw-project:project/nsr:ns-instance-config/nsr:nsr/nsr:nsd/nsr:vld {
497 leaf ipv4-nat-pool-name{
499 description "IPV4 nat pool name";
502 list virtual-connection-points {
504 "A list of virtual-connection points associated with Virtual Link.
505 These connection points are not directly associated with any VNFs";
507 uses vnfd-base:common-connection-point;
509 leaf-list associated-cps {
511 "A List of connection points associated with virtual connection point";
513 path "../../nsr:vnfd-connection-point-ref/nsr:vnfd-connection-point-ref";
519 augment /rw-project:project/nsr:ns-instance-config/nsr:nsr/nsr:nsd {
520 uses project-nsr-nsd-config-parameter;
523 augment /rw-project:project/nsr:ns-instance-config/nsr:nsr {
524 list vnf-input-parameter {
526 "List of input parameters for Constituent VNFs that can be specified when
527 instantiating a network service.";
529 key "member-vnf-index-ref vnfd-id-ref";
531 leaf member-vnf-index-ref {
532 description "Reference to member-vnf within constituent-vnfds";
534 path "../../nsr:nsd/nsr:constituent-vnfd/nsr:member-vnf-index";
540 "A reference to a VNFD";
542 path "../../nsr:nsd/nsr:constituent-vnfd/nsr:vnfd-id-ref";
546 uses manotypes:input-parameter;
550 augment /rw-project:project/nsr:ns-instance-opdata/nsr:nsr {
551 uses mano-rift:ssh-key-generated;
557 description "If this is an output of the primitive execution";
564 augment /rw-project:project/nsr:ns-instance-config/nsr:nsr/nsr:nsd/nsr:service-primitive/nsr:parameter {
568 augment /rw-project:project/nsr:ns-instance-config/nsr:nsr/nsr:nsd/nsr:service-primitive/nsr:parameter-group/nsr:parameter {
572 augment /rw-project:project/nsr:ns-instance-opdata/nsr:nsr/nsr:service-primitive/nsr:parameter {
576 augment /rw-project:project/nsr:ns-instance-opdata/nsr:nsr/nsr:service-primitive/nsr:parameter-group/nsr:parameter {
580 notification nsm-notification {
581 description "Notification for NSM Events.
582 The timestamp of this event is automatically expressed
583 in human readble format - 1970-01-01T00:00:00Z";
586 description "Short name of the event";
591 description "The description of this event";
596 description "The detailed description of this event, in case of errors";