/*
*
- * Copyright 2016 RIFT.IO Inc
+ * Copyright 2016-2017 RIFT.IO Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
namespace "http://riftio.com/ns/riftware-1.0/rw-vnfd";
prefix "rw-vnfd";
+ import ietf-inet-types {
+ prefix "inet";
+ }
+
import vnfd {
prefix "vnfd";
}
- import rwvcs-types {
- prefix "rwvcstypes";
+ import rw-vnfd-base {
+ prefix "rw-vnfd-base";
}
- import rw-pb-ext { prefix "rwpb"; }
+ import vnfd-base {
+ prefix "vnfd-base";
+ }
- import ietf-yang-types {
- prefix "yang";
+ import mano-rift-groupings {
+ prefix "mano-rift";
}
import mano-types {
prefix "manotypes";
}
+ revision 2017-02-28 {
+ description
+ "Update model to support projects.";
+ }
+
revision 2015-09-10 {
description
"Initial revision. This YANG file augments
"Derived from earlier versions of base YANG files";
}
- augment /vnfd:vnfd-catalog/vnfd:vnfd {
- uses manotypes:control-param;
- uses manotypes:action-param;
- leaf meta {
- description
- "Any meta-data needed by the UI";
- type string;
- }
- list component {
+ grouping vnfd-config-parameter {
+ container config-parameter {
description
- "This section defines the RIFT.ware
- virtual components";
- key "component-name";
- rwpb:msg-new VcsComponent;
- rwpb:application-request-point;
-
- leaf component-name {
- description "";
- type string;
- }
+ "List of VNF config parameter requests and sources";
+ list config-parameter-source {
+ description "The list of parameters exposed by this VNF";
+ key "name";
- leaf component-type {
- description "";
- type rwvcstypes:component_type;
- mandatory true;
- }
+ leaf name {
+ description "Name of the source";
+ type string {
+ length "1..128";
+ }
+ }
+
+ leaf description {
+ description " Description of the source";
+ type string;
+ }
+
+ choice source {
+ case descriptor {
+ leaf descriptor {
+ description
+ "Location of this source as an xpath.
+ For example:
+ ../../../mgmt-interface/port";
+ type string;
+ }
+ }
- choice component {
- case rwvcs-rwcollection {
- uses rwvcstypes:rwvcs-rwcollection;
+ case attribute {
+ leaf attribute {
+ description
+ "Location of this source as runtime attribute.
+ The value is <xpath>, <attribute_name>
+ For example:
+ ../../../mgmt-interface, ip-address
+ which retruns the ip-address assigned to the
+ mgmt-interface after VNF instantiation.";
+ type string;
+ }
+ }
+
+ case primitive-ref {
+ leaf config-primitive-name-ref {
+ description
+ "A leafref to configuration primitive.
+ This refers to a config parameter whose
+ output parameter is referred in out-parameter.";
+ type leafref {
+ path "../../../vnfd:vnf-configuration/vnfd:config-primitive/vnfd:name";
+ }
+ }
+
+ leaf parameter-ref {
+ description
+ "Name of the output parameter in the config primitiive";
+ type leafref {
+ path
+ "../../../vnfd:vnf-configuration/vnfd:config-primitive[vnfd:name=current()/../config-primitive-name-ref]/vnfd:parameter/vnfd:name";
+ }
+ }
+ }
+
+ case value {
+ leaf value {
+ description
+ "Pre-defined value to be used for this source";
+ type string;
+ }
+ }
}
- case rwvcs-rwvm {
- uses rwvcstypes:rwvcs-rwvm;
+
+ list parameter {
+ key "config-primitive-name-ref";
+
+ leaf config-primitive-name-ref {
+ description
+ "Name of the configuration primitive where this
+ request will used";
+ type leafref {
+ path "../../../../vnfd:vnf-configuration/vnfd:config-primitive/vnfd:name";
+ }
+ }
+
+ leaf config-primitive-parameter-ref {
+ description
+ "Parameter name of the config primitive";
+ type leafref {
+ path "../../../../vnfd:vnf-configuration/vnfd:config-primitive[vnfd:name=current()/../config-primitive-name-ref]/vnfd:parameter/vnfd:name";
+ }
+ }
}
- case rwvcs-rwproc {
- uses rwvcstypes:rwvcs-rwproc;
+ }
+
+ list config-parameter-request {
+ description "The list of requests for this VNF";
+ key "name";
+
+ leaf name {
+ description "Name of this parameter request";
+ type string {
+ length "1..128";
+ }
}
- case native-proc {
- uses rwvcstypes:native-proc;
+
+ leaf description {
+ description "Description of this request";
+ type string;
}
- case rwvcs-rwtasklet {
- uses rwvcstypes:rwvcs-rwtasklet;
+
+ list parameter {
+ key "config-primitive-name-ref";
+
+ leaf config-primitive-name-ref {
+ description
+ "Name of the configuration primitive where this
+ request will used";
+ type leafref {
+ path "../../../../vnfd:vnf-configuration/vnfd:config-primitive/vnfd:name";
+ }
+ }
+
+ leaf config-primitive-parameter-ref {
+ description
+ "Parameter name of the config primitive";
+ type leafref {
+ path "../../../../vnfd:vnf-configuration/vnfd:config-primitive[vnfd:name=current()/../config-primitive-name-ref]/vnfd:parameter/vnfd:name";
+ }
+ }
}
}
- } // list component
+ }
}
- augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu {
- leaf vcs-component-ref {
+ augment /vnfd:vnfd-catalog/vnfd:vnfd {
+ uses rw-vnfd-base:rw-vnfd-ext;
+ uses vnfd-config-parameter;
+ }
+
+ augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:mgmt-interface {
+ uses rw-vnfd-base:ssh-key;
+ }
+
+ augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:http-endpoint {
+ uses mano-rift:http-end-point-additions;
+ }
+
+ augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:supplemental-boot-data {
+ uses mano-rift:custom-meta-data;
+ }
+
+ augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:volumes {
+ uses mano-rift:volume-info-additions;
+ uses mano-rift:custom-meta-data;
+ }
+
+ augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:interface {
+ leaf static-ip-address {
+ description "Static IP address for the connection point";
+ type inet:ip-address;
+ }
+
+ leaf floating-ip-needed{
+ type boolean;
+ default "false";
+ description
+ "Sole purpose of this field is to facilitate translation of VNFD
+ to other VNFMs";
+ }
+ }
+
+ augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:volumes/vnfd:volume-source {
+ case volume {
+ leaf volume-ref {
+ description "Reference for pre-existing volume in VIM";
+ type string;
+ }
+ }
+ }
+
+ augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:internal-vld {
+ list virtual-connection-points {
description
- "This defines the software components using the
- RIFT.ware Virtual Component System (VCS). This
- also allows specifying a state machine during
- the VM startup.
- NOTE: This is an significant addition to MANO,
- since MANO doesn't clearly specify a method to
- identify various software components in a VM.
- Also using a state machine is not something that
- is well described in MANO.";
- type leafref {
- path "/vnfd:vnfd-catalog/vnfd:vnfd/rw-vnfd:component/rw-vnfd:component-name";
+ "A list of virtual-connection points associated with Virtual Link.
+ These connection points are not directly associated with any VDUs";
+ key name;
+ uses vnfd-base:common-connection-point;
+
+ leaf-list associated-cps {
+ description
+ "A List of connection points associated with virtual connection point";
+ type leafref {
+ path "../../vnfd:internal-connection-point/vnfd:id-ref";
+ }
+ }
+ }
+ }
+
+
+ augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:vm-flavor {
+ uses manotypes:vm-flavor-name;
+ }
+
+ augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vnf-configuration/vnfd:config-primitive/vnfd:parameter {
+ leaf out {
+ description "If this is an output of the primitive execution";
+ type boolean;
+ default false;
+ }
+ }
+
+ augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vnf-configuration/vnfd:initial-config-primitive/vnfd:primitive-type {
+ case primitive-ref {
+ leaf config-primitive-ref {
+ description
+ "Reference to a config primitive name.
+ NOTE: The config primitive referred should have
+ all the input parameters predefined either
+ with default values or dependency references.";
+ type leafref {
+ path "../../vnfd:config-primitive/vnfd:name";
+ }
}
}
}
+
}
// vim: sw=2