diff --git a/example-data/nfv.xml b/example-data/nfv.xml
index 12f66684451747b5782623ea78ef57a71994ac2a..a956b2b51ebb5f5c36cab9095f918b8eefc8bded 100644
--- a/example-data/nfv.xml
+++ b/example-data/nfv.xml
@@ -48,14 +48,26 @@
inside
+
+ firewall
+ inside
+
Ethernet
management
+
+ firewall
+ management
+
Ethernet
outside
+
+ firewall
+ outside
+
Ethernet
@@ -131,14 +143,26 @@
left
+
+ router
+ left
+
Ethernet
management
+
+ router
+ management
+
Ethernet
right
+
+ router
+ right
+
Ethernet
diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang
index 0f7f75046647c6d530a06e78d361a7fca794eddf..93264f7ab05bd433cbbc7cf95eff1f66bc01ce4d 100644
--- a/src/yang/etsi-nfv-ns.yang
+++ b/src/yang/etsi-nfv-ns.yang
@@ -492,7 +492,8 @@ submodule etsi-nfv-ns {
}
container ns {
leaf nsd-id {
- must ". = deref(../../ns-profile-id)/../nsd-id" {
+ must ". = deref(../../nested-ns-profile-id)/" +
+ "../nsd-id" {
}
type leafref {
@@ -752,7 +753,7 @@ submodule etsi-nfv-ns {
}
leaf min-number-of-instances {
- mandatory true;
+ default 1;
type uint16;
description
"Minimum number of instances of the VNF based on this
@@ -763,7 +764,7 @@ submodule etsi-nfv-ns {
}
leaf max-number-of-instances {
- mandatory true;
+ default 1;
type uint16;
description
"Maximum number of instances of the VNF based on this
@@ -1176,7 +1177,7 @@ submodule etsi-nfv-ns {
}
leaf number-of-instances {
- mandatory true;
+ default 1;
type uint32;
description
"Specifies the number of VNF instances required for
@@ -1236,7 +1237,7 @@ submodule etsi-nfv-ns {
}
leaf number-of-instances {
- mandatory true;
+ default 1;
type uint32;
description
"Specifies the number of nested NS instances required
@@ -1342,7 +1343,7 @@ submodule etsi-nfv-ns {
}
leaf min-number-of-instances {
type uint16;
- mandatory true;
+ default 1;
description
"Minimum number of nested NS instances based on the
referenced NSD that is permitted to exist for this
@@ -1353,7 +1354,7 @@ submodule etsi-nfv-ns {
}
leaf max-number-of-instances {
type uint16;
- mandatory true;
+ default 1;
description
"Maximum number of nested NS instances based on the
referenced NSD that is permitted to exist for this
diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang
index 4dcb32db44ce089cc817fe21b6b8190f813c3c22..3a202cbbda233a40d9e2bd8291658e7a7c642a45 100755
--- a/src/yang/etsi-nfv-vnf.yang
+++ b/src/yang/etsi-nfv-vnf.yang
@@ -56,7 +56,7 @@ submodule etsi-nfv-vnf {
}
leaf support-mandatory {
- mandatory true;
+ default "false";
type boolean;
description
"Indicates whether fulfilling the constraint is
@@ -623,7 +623,7 @@ submodule etsi-nfv-vnf {
type uint16 {
range "1..max";
}
- mandatory true;
+ default 1;
description
"Number of virtual CPUs.";
reference
@@ -738,7 +738,7 @@ submodule etsi-nfv-vnf {
enum "swap";
enum "ephemeral";
}
- mandatory true;
+ default "root";
description
"Type of virtualised storage resource (e.g. volume,
object).";
@@ -836,7 +836,7 @@ submodule etsi-nfv-vnf {
information element.";
}
leaf container-format {
- mandatory true;
+ default "bare";
type enumeration {
enum "aki" {
description
@@ -876,7 +876,7 @@ submodule etsi-nfv-vnf {
information element.";
}
leaf disk-format {
- mandatory true;
+ default "qcow2";
type enumeration {
enum "aki" {
description
@@ -974,7 +974,7 @@ submodule etsi-nfv-vnf {
information element.";
}
leaf image {
- mandatory true;
+ default ".";
type inet:uri;
description
"This is a reference to the actual software image.
@@ -1203,7 +1203,7 @@ submodule etsi-nfv-vnf {
}
leaf min-number-of-instances {
type uint16;
- mandatory true;
+ default 1;
description
"Minimum number of instances of the VNFC based on this
VDU that is permitted to exist for this flavour.";
@@ -1213,7 +1213,7 @@ submodule etsi-nfv-vnf {
}
leaf max-number-of-instances {
type uint16;
- mandatory true;
+ default 1;
must ". >= ../nfv:min-number-of-instances";
reference
"GS NFV IFA011: Section 7.1.8.3, VduProfile information
@@ -1617,7 +1617,7 @@ submodule etsi-nfv-vnf {
must ". >= ../../../../nfv:df/" +
"nfv:vdu-profile[id=current()/../nfv:id]/" +
"nfv:min-number-of-instances";
- mandatory true;
+ default 1;
description
"Number of instances of VNFC based on this VDU to
deploy for this level.";
@@ -2036,6 +2036,118 @@ submodule etsi-nfv-vnf {
AffinityOrAntiAffinityGroup information element";
}
}
+
+ list indicator {
+ key "id";
+
+ leaf id {
+ type string;
+ description
+ "Unique identifier.";
+ reference
+ "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
+ information element";
+ }
+
+ leaf name {
+ type string;
+ description
+ "The human readable name of the VnfIndicator.";
+ reference
+ "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
+ information element";
+ }
+
+ leaf indicator-value {
+ type string;
+ description
+ "Defines the allowed values or value ranges of this
+ indicator.";
+ reference
+ "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
+ information element";
+ }
+
+ leaf source {
+ type enumeration {
+ enum vnf;
+ enum em;
+ enum both;
+ }
+ description
+ "Describe the source of the indicator. The possible
+ values are:
+ • VNF.
+ • EM.
+ • Both.
+
+ This tells the consumer where to send the subscription
+ request.";
+ reference
+ "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
+ information element";
+ }
+
+ description
+ "Declares the VNF indicators that are supported by this
+ VNF (specific to this DF).";
+ reference
+ "GS NFV IFA011: Section 7.1.8.2 VnfDf information
+ element";
+ }
+
+ list supported-vnf-interfaces {
+ key "name";
+
+ leaf name {
+ type enumeration {
+ enum vnf-configuration;
+ enum vnf-indicator;
+ }
+ description
+ "Identifies an interface produced by the VNF. Valid
+ values:
+ - VNF_CONFIGURATION
+ - VNF_INDICATOR";
+ reference
+ "GS NFV IFA011: Section 7.1.8.16 VnfInterfaceDetails
+ information element";
+ }
+
+ leaf-list cpd-id {
+ type leafref {
+ path "../../../ext-cpd/id";
+ }
+ description
+ "References one or more CPDs from which to instantiate
+ external CPs through which interface endpoints on the
+ VNF side can be reached by the VNFM.";
+ reference
+ "GS NFV IFA011: Section 7.1.8.16 VnfInterfaceDetails
+ information element";
+ }
+
+ list interface-details {
+ key "key";
+
+ leaf key {
+ type string;
+ }
+
+ leaf value {
+ type string;
+ }
+ }
+
+ description
+ "Indicates which interfaces the VNF produces and provides
+ additional details on how to access the interface
+ endpoints.";
+ reference
+ "GS NFV IFA011: Section 7.1.8.2 VnfDf information
+ element";
+ }
+
list monitoring-parameter {
key "id";