/*
*
- * 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-nsd";
prefix "rw-nsd";
- import nsd {
- prefix "nsd";
+ import rw-nsd-base {
+ prefix "rw-nsd-base";
+ }
+
+ import vnfd {
+ prefix "vnfd";
+ }
+
+ import vnfd-base {
+ prefix "vnfd-base";
+ }
+
+ import rw-vnfd {
+ prefix "rwvnfd";
}
- import ietf-yang-types {
- prefix "yang";
+ import nsd {
+ prefix "nsd";
}
- import mano-types {
- prefix "manotypes";
+ revision 2017-02-28 {
+ description
+ "Update model to support projects.";
}
revision 2015-09-10 {
"Derived from earlier versions of base YANG files";
}
+ grouping nsd-config-parameter{
+ list config-parameter-map {
+ key "id";
+ description "A mapping of VNF config parameter
+ requests and sources within this network service";
+ leaf id {
+ description "Identfier for VNF map";
+ type string;
+ }
+ container config-parameter-request {
+ leaf member-vnf-index-ref {
+ description "Reference to member-vnf within constituent-vnfds";
+ type leafref {
+ path "../../../nsd:constituent-vnfd/nsd:member-vnf-index";
+ }
+ }
+ leaf vnfd-id-ref {
+ description
+ "A reference to a vnfd.";
+
+ type leafref {
+ path "../../../nsd:constituent-vnfd[nsd:member-vnf-index = current()/../member-vnf-index-ref]/nsd:vnfd-id-ref";
+ }
+ }
+ leaf config-parameter-request-ref {
+ description "Reference to the request in the VNF
+ with the specified member-vnf-index";
+ type leafref {
+ path
+ "/vnfd:vnfd-catalog/vnfd:vnfd[vnfd:id = current()/../vnfd-id-ref]" +
+ "/rwvnfd:config-parameter/rwvnfd:config-parameter-request/rwvnfd:name";
+ }
+ }
+ }
+ container config-parameter-source {
+ leaf member-vnf-index-ref {
+ description "Reference to member-vnf within constituent-vnfds";
+ type leafref {
+ path "../../../nsd:constituent-vnfd/nsd:member-vnf-index";
+ }
+ }
+ leaf vnfd-id-ref {
+ description
+ "A reference to a vnfd.";
+ type leafref {
+ path "../../../nsd:constituent-vnfd[nsd:member-vnf-index = current()/../member-vnf-index-ref]/nsd:vnfd-id-ref";
+ }
+ }
+ leaf config-parameter-source-ref {
+ description "Reference to the source in the VNF
+ with the specified member-vnf-index";
+ type leafref {
+ path
+ "/vnfd:vnfd-catalog/vnfd:vnfd[vnfd:id = current()/../vnfd-id-ref]" +
+ "/rwvnfd:config-parameter/rwvnfd:config-parameter-source/rwvnfd:name";
+ }
+ }
+ }
+ }
+ }
+
augment /nsd:nsd-catalog/nsd:nsd {
- uses manotypes:control-param;
- uses manotypes:action-param;
- leaf meta {
- description
- "Any meta-data needed by the UI";
+ uses rw-nsd-base:rw-nsd-ext;
+ uses nsd-config-parameter;
+ }
+
+ augment /nsd:nsd-catalog/nsd:nsd/nsd:service-primitive/nsd:parameter {
+ leaf out {
+ description "If this is an output of the primitive execution";
+ type boolean;
+ default false;
+ }
+ }
+
+ augment /nsd:nsd-catalog/nsd:nsd/nsd:service-primitive/nsd:parameter-group/nsd:parameter {
+ leaf out {
+ description "If this is an output of the primitive execution";
+ type boolean;
+ default false;
+ }
+ }
+
+ augment /nsd:nsd-catalog/nsd:nsd/nsd:vld {
+ leaf ipv4-nat-pool-name{
type string;
+ description "IPV4 nat pool name";
+ }
+
+ list virtual-connection-points {
+ description
+ "A list of virtual-connection points associated with Virtual Link.
+ These connection points are not directly associated with any VNFs";
+ 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 "../../nsd:vnfd-connection-point-ref/nsd:vnfd-connection-point-ref";
+ }
+ }
}
}
}