diff --git a/example-data/nfv.xml b/example-data/nfv.xml
index ddf78072a078ef78a2bb07a6439747e389353b4b..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
@@ -218,7 +242,9 @@
fw2dpi
- Ethernet
+
+ Ethernet
+
normal
@@ -231,7 +257,9 @@
mgmt
- IPv4
+
+ IPv4
+
normal
@@ -244,7 +272,9 @@
r2fw
- Ethernet
+
+ Ethernet
+
normal
@@ -467,7 +497,9 @@
r2fw
- IPv4
+
+ IPv4
+
r2fw
diff --git a/src/yang/etsi-nfv-common.yang b/src/yang/etsi-nfv-common.yang
index 2ee04477ff41b3d64b4cfc68b7d306baa267a1dd..2f6a69a9329b3a886411cb0e17c6bf6d1763cf20 100644
--- a/src/yang/etsi-nfv-common.yang
+++ b/src/yang/etsi-nfv-common.yang
@@ -6,13 +6,13 @@ submodule etsi-nfv-common {
description
"Common data types for ETSI data models.";
- revision 2018-06-19 {
+ revision 2019-03-18 {
description
"Initial revision
Common data structures to support VNFD and NSD according to:
- ETSI GS NFV-IFA 014 Ed251v244
- ETSI GS NFV-IFA 011 Ed251v243";
+ ETSI GS NFV-IFA 014 Ed261v252
+ ETSI GS NFV-IFA 011 Ed261v254";
}
/*
@@ -293,14 +293,20 @@ submodule etsi-nfv-common {
grouping connectivity-type {
container connectivity-type {
- leaf layer-protocol {
- mandatory true;
- type identityref {
- base layer-protocol;
- }
+ list layer-protocol {
+ key "protocol";
+
+ leaf protocol {
+ type identityref {
+ base layer-protocol;
+ }
+ }
description
- "Identifies the protocol this VL gives access to (Ethernet,
- MPLS, ODU2, IPV4, IPV6, Pseudo-Wire).";
+ "Identifies the protocols that the VL uses (Ethernet,
+ MPLS, ODU2, IPV4, IPV6, Pseudo-Wire). The top layer
+ protocol of the VL protocol stack shall always be provided.
+ The lower layer protocols may be included when there are
+ specific requirements on these layers.";
reference
"GS NFV IFA011: Section 7.1.7.3, ConnectivityType
information element.";
diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang
index 4a8ccabeb8a18576a2e3bd6d9d45433308325555..3b8aef3cfb092781b9b22457fcc037d98c1fd7ec 100644
--- a/src/yang/etsi-nfv-ns.yang
+++ b/src/yang/etsi-nfv-ns.yang
@@ -11,14 +11,14 @@ submodule etsi-nfv-ns {
description
"Models for NS according to ETSI GS NFV-IFA 014.";
- revision 2017-01-20 {
+ revision 2019-03-18 {
description
"Initial revision
Common data structure to support NSD according to:
- ETSI GS NFV-IFA 011 Ed251v243";
+ ETSI GS NFV-IFA 014 Ed261v252";
reference
- "ETSI GS NFV-IFA 011 Ed251v243";
+ "ETSI GS NFV-IFA 014 Ed261v252";
}
grouping resource-handle {
@@ -250,6 +250,7 @@ submodule etsi-nfv-ns {
}
container qos {
+ presence "VL QoS parameters";
description
"The QoS information element specifies quality of
service parameters applicable to a VL.";
@@ -492,7 +493,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 +754,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 +765,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 +1178,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 +1238,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 +1344,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 +1355,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-pnf.yang b/src/yang/etsi-nfv-pnf.yang
index 69450eefe4d02aad851f72f57894cf43a00c056e..ae7ef81fd3c4659ed7555fcc33202a7355113396 100644
--- a/src/yang/etsi-nfv-pnf.yang
+++ b/src/yang/etsi-nfv-pnf.yang
@@ -12,15 +12,15 @@ submodule etsi-nfv-pnf {
description
"Models for PNFD according to GS NFV-IFA 014.";
- revision 2018-06-25 {
+ revision 2019-03-18 {
description
"Initial revision.
Common data structure to support VNFD according to:
- ETSI GS NFV-IFA 014 Ed251v244";
+ ETSI GS NFV-IFA 014 Ed261v252";
reference
- "ETSI GS NFV-IFA 014 Ed251v244";
+ "ETSI GS NFV-IFA 014 Ed261v252";
}
grouping pnfd {
diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang
index 4bffa9c8a48b1f8683b3a97c8e9b652725923b62..28e81604b242e555174edc0c35932dbccc565928 100755
--- a/src/yang/etsi-nfv-vnf.yang
+++ b/src/yang/etsi-nfv-vnf.yang
@@ -16,15 +16,15 @@ submodule etsi-nfv-vnf {
description
"Models for VNFD according to GS NFV-IFA 011.";
- revision 2018-06-19 {
+ revision 2019-03-18 {
description
"Initial revision.
Common data structure to support VNFD according to:
- VNFD according to ETSI GS NFV-IFA 011 Ed251v243";
+ VNFD according to ETSI GS NFV-IFA 011 Ed261v254";
reference
- "ETSI GS NFV-IFA 011 Ed251v243";
+ "ETSI GS NFV-IFA 011 Ed261v254";
}
grouping virtual-network-interface-requirements {
@@ -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).";
@@ -856,7 +856,7 @@ submodule etsi-nfv-vnf {
information element.";
}
leaf container-format {
- mandatory true;
+ default "bare";
type enumeration {
enum "aki" {
description
@@ -896,7 +896,7 @@ submodule etsi-nfv-vnf {
information element.";
}
leaf disk-format {
- mandatory true;
+ default "qcow2";
type enumeration {
enum "aki" {
description
@@ -994,7 +994,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.
@@ -1061,6 +1061,7 @@ submodule etsi-nfv-vnf {
information element.";
}
container qos {
+ presence "VL QoS parameters";
description
"QoS of the VL.";
reference
@@ -1223,7 +1224,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.";
@@ -1233,7 +1234,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
@@ -1637,7 +1638,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.";
@@ -2056,6 +2057,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";
diff --git a/src/yang/etsi-nfv.yang b/src/yang/etsi-nfv.yang
index a209fc30f22d3c0a1cbe136c512ca4ec9be6ac12..96d0db1afe03b81d01fd56e05d7021246ca3dcea 100644
--- a/src/yang/etsi-nfv.yang
+++ b/src/yang/etsi-nfv.yang
@@ -14,11 +14,11 @@ module etsi-nfv {
description
"Network Function Virtualization Descriptors";
- revision 2018-06-13 {
+ revision 2019-03-18 {
description
"Initial revision.
- NSD and PNFD according to ETSI GS NFV-IFA 014 Ed251v244
- VNFD according to ETSI GS NFV-IFA 011 Ed251v243";
+ NSD and PNFD according to ETSI GS NFV-IFA 014 Ed261v252
+ VNFD according to ETSI GS NFV-IFA 011 Ed261v254";
}
container nfv {