diff --git a/example-data/complex-vnfd.xml b/example-data/complex-vnfd.xml
index 39bbbaf03bed0b92b9fa98710adcc78be70afd2c..56ef89ab6c2be628df5822d88ee023b355b4b266 100644
--- a/example-data/complex-vnfd.xml
+++ b/example-data/complex-vnfd.xml
@@ -80,8 +80,12 @@
root
- root-storage
- 10
+ block
+
+ 10
+ true
+ CP
+
CP
@@ -152,17 +156,13 @@
control-plane-active
1
1
-
- control-plane
-
+ control-plane
control-plane-standby
1
1
-
- control-plane
-
+ control-plane
data-plane
@@ -223,17 +223,13 @@
control-plane-active
1
1
-
- control-plane
-
+ control-plane
control-plane-standby
1
1
-
- control-plane
-
+ control-plane
data-plane
diff --git a/example-data/nfv-nsd.xml b/example-data/nfv-nsd.xml
index 57f7c7c840327e7396717dfcd1c5b735f36130bd..1f057d31fabdb3a4c55afd0ca1cac91eae876725 100644
--- a/example-data/nfv-nsd.xml
+++ b/example-data/nfv-nsd.xml
@@ -1,4 +1,5 @@
-
+
+
ASA
My Company
@@ -36,8 +37,10 @@
asa-vsd
- nfv:root-storage
- 0
+ nfv:block
+
+ 0
+
asa-image
@@ -49,7 +52,7 @@
bare
qcow2
- 20
+ 0
2.0
1
http://www.mycompany.com/asa.qcow2
@@ -133,4 +136,4 @@
-
+
diff --git a/example-data/nfv-vnfd.xml b/example-data/nfv-vnfd.xml
index f9ffa74826c2b86702e49ae2472ae5f1277239d7..d9a64e89b42ffa7a695f2e6faf6f6dfdd3f7d88e 100644
--- a/example-data/nfv-vnfd.xml
+++ b/example-data/nfv-vnfd.xml
@@ -35,8 +35,11 @@
asa-vsd
- nfv:root-storage
- 0
+ nfv:file
+
+ 0
+ asa-image
+
asa-image
@@ -48,7 +51,7 @@
bare
qcow2
- 20
+ 0
2.0
1
http://www.mycompany.com/asa.qcow2
diff --git a/example-data/nfv.xml b/example-data/nfv.xml
index fef928e79c8de820afadfe5e03f5d361336dbe21..035538617980c79e6721b1155dc339f1bfba6ee0 100644
--- a/example-data/nfv.xml
+++ b/example-data/nfv.xml
@@ -36,8 +36,12 @@
asa-vsd
- root-storage
- 0
+ block
+
+ 1
+ true
+ asa-image
+
asa-image
@@ -181,8 +185,11 @@
csr-vsd
- root-storage
- 0
+ file
+
+ 1
+ csr-image
+
csr-image
diff --git a/src/yang/etsi-nfv-common.yang b/src/yang/etsi-nfv-common.yang
index 7077b5c7b1018057b7c02829dc02f44a51e76dd7..e0921af45a76f7cee6d017bfb45dacca92c9ae59 100644
--- a/src/yang/etsi-nfv-common.yang
+++ b/src/yang/etsi-nfv-common.yang
@@ -9,6 +9,15 @@ submodule etsi-nfv-common {
description
"Common data types for ETSI data models.";
+ revision 2020-06-01 {
+ description
+ "Version 2.8.1.
+
+ Common data structures to support VNFD and NSD according to:
+ ETSI GS NFV-IFA 014 271
+ ETSI GS NFV-IFA 011 271.";
+ }
+
revision 2019-10-01 {
description
"Version 2.7.1.
@@ -233,22 +242,22 @@ submodule etsi-nfv-common {
"Base type of storage that identities can derive from.";
}
- identity root-storage {
+ identity block {
base storage-type;
description
- "Root type of storage.";
+ "Block type of storage.";
}
- identity swap-storage {
+ identity object {
base storage-type;
description
- "Swap type of storage.";
+ "Object type of storage.";
}
- identity ephemeral-storage {
+ identity file {
base storage-type;
description
- "Ephemeral type of storage.";
+ "File type of storage.";
}
identity forwarding-behaviour {
@@ -393,6 +402,19 @@ submodule etsi-nfv-common {
}
}
+ typedef external-lifecycle-management-script-event {
+ type enumeration {
+ enum "instantiation";
+ enum "scaling";
+ enum "healing";
+ enum "termination";
+ enum "vnf-flavour-change";
+ enum "vnf-operation-change";
+ enum "vnf-ext-conn-change";
+ enum "vnfinfo-modification";
+ }
+ }
+
grouping local-affinity-or-anti-affinity-rule {
list local-affinity-or-anti-affinity-rule {
key "type scope";
@@ -424,6 +446,7 @@ submodule etsi-nfv-common {
type identityref {
base layer-protocol;
}
+ min-elements 1;
description
"Identifies the protocols that the VL uses (Ethernet,
MPLS, ODU2, IPV4, IPV6, Pseudo-Wire). The top layer
diff --git a/src/yang/etsi-nfv-descriptors.yang b/src/yang/etsi-nfv-descriptors.yang
index 0f2b64c5e221287e18881fc661e6c50ad9f443b1..3b93f1287b36f105b99c9ceef0dac8ba46b42fb5 100644
--- a/src/yang/etsi-nfv-descriptors.yang
+++ b/src/yang/etsi-nfv-descriptors.yang
@@ -14,6 +14,14 @@ module etsi-nfv-descriptors {
description
"Network Function Virtualization Descriptors";
+ revision 2020-06-01 {
+ description
+ "Version 2.8.1.
+
+ NSD and PNFD according to ETSI GS NFV-IFA 014 271
+ VNFD according to ETSI GS NFV-IFA 011 271.";
+ }
+
revision 2019-10-01 {
description
"Version 2.7.1.
@@ -24,6 +32,7 @@ module etsi-nfv-descriptors {
revision 2019-04-25 {
description
"Initial revision.
+
NSD and PNFD according to ETSI GS NFV-IFA 014 Ed261v252
VNFD according to ETSI GS NFV-IFA 011 Ed261v254";
}
diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang
index 8aa781a774d201e20b35fc7c62e8c0f393293136..c096d1e65aa7d6906dddc46ea317774b01ec4638 100644
--- a/src/yang/etsi-nfv-ns.yang
+++ b/src/yang/etsi-nfv-ns.yang
@@ -11,19 +11,25 @@ submodule etsi-nfv-ns {
description
"Models for NS according to ETSI GS NFV-IFA 014.";
+ revision 2020-06-01 {
+ description
+ "Version 2.8.1.
+
+ NSD according to ETSI GS NFV-IFA 014 271.";
+ }
+
revision 2019-10-01 {
description
"Version 2.7.1.
- Common data structures to support VNFD and NSD according to:
- ETSI GS NFV-IFA 014 Ed271v264
- ETSI GS NFV-IFA 011 Ed271v264";
+ NSD according to ETSI GS NFV-IFA 014 Ed271v264.";
}
+
revision 2019-04-25 {
description
"Initial revision
- Common data structure to support NSD according to:
- ETSI GS NFV-IFA 014 Ed261v252";
+
+ NSD according to ETSI GS NFV-IFA 014 Ed261v252.";
reference
"ETSI GS NFV-IFA 014 Ed261v252";
@@ -355,7 +361,6 @@ submodule etsi-nfv-ns {
"GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
information element";
}
- uses security-parameters;
}
list vnffgd {
@@ -792,21 +797,16 @@ submodule etsi-nfv-ns {
uses local-affinity-or-anti-affinity-rule;
- list affinity-or-anti-affinity-group {
- key "id";
-
+ leaf-list affinity-or-anti-affinity-group-id {
+ type leafref {
+ path "../../affinity-or-anti-affinity-group/id";
+ }
description
"Identifier(s) of the affinity or anti-affinity
group(s) the VnfProfile belongs to.";
reference
"GS NFV IFA014: Section 6.3.3.2 VnfProfile information
element";
-
- leaf id {
- type leafref {
- path "../../../affinity-or-anti-affinity-group/id";
- }
- }
}
list virtual-link-connectivity {
@@ -1004,9 +1004,10 @@ submodule etsi-nfv-ns {
uses local-affinity-or-anti-affinity-rule;
- list affinity-or-anti-affinity-group {
- key "id";
-
+ leaf-list affinity-or-anti-affinity-group-id {
+ type leafref {
+ path "../../affinity-or-anti-affinity-group/id";
+ }
description
"Identifies an affinity or anti-affinity group the
VLs instantiated according to the VlProfile belong
@@ -1014,12 +1015,6 @@ submodule etsi-nfv-ns {
reference
"GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile
information element";
-
- leaf id {
- type leafref {
- path "../../../affinity-or-anti-affinity-group/id";
- }
- }
}
container max-bitrate-requirements {
@@ -1452,21 +1447,16 @@ submodule etsi-nfv-ns {
element";
}
- list affinity-or-anti-affinity-group-id {
- key "id";
-
+ leaf-list affinity-or-anti-affinity-group-id {
+ type leafref {
+ path "../../affinity-or-anti-affinity-group/id";
+ }
description
"Identifies an affinity or anti-affinity group the NSs
created according to this NsProfile belongs to.";
reference
"GS NFV IFA014: Section 6.3.11.2 NsProfile information
element";
-
- leaf id {
- type leafref {
- path "../../../affinity-or-anti-affinity-group/id";
- }
- }
}
list virtual-link-connectivity {
diff --git a/src/yang/etsi-nfv-nsd.yang b/src/yang/etsi-nfv-nsd.yang
index 304fc30e19f93ead8831dc49a57dd6d382b9f85a..c23e31c06f243d419007419dd13e92ff89d793e2 100644
--- a/src/yang/etsi-nfv-nsd.yang
+++ b/src/yang/etsi-nfv-nsd.yang
@@ -13,25 +13,34 @@ module etsi-nfv-nsd {
description
"Network Services Descriptors";
+ revision 2020-06-01 {
+ description
+ "Version 2.8.1.
+
+ NSD according to ETSI GS NFV-IFA 014 271.";
+ }
+
revision 2019-10-01 {
description
"Version 2.7.1.
- Common data structures to support VNFD and NSD according to:
- ETSI GS NFV-IFA 014 Ed271v264
- ETSI GS NFV-IFA 011 Ed271v264";
+ NSD according to ETSI GS NFV-IFA 014 Ed271v264.";
}
+
revision 2019-04-25 {
description
"Initial revision.
+
NSD according to ETSI GS NFV-IFA 014 Ed261v252.";
}
container nsd {
list nsd {
key "id";
+
max-elements 1;
uses nfv:nsd;
+
description
"The NSD information element is a deployment template whose
instances are used by the NFVO for the lifecycle management
diff --git a/src/yang/etsi-nfv-pnf.yang b/src/yang/etsi-nfv-pnf.yang
index 170e9638b87a37dba4fe7599d1bb97ed0d4c3c2b..aa1313e2aac4076c819b2c2c7fe2dad46113dce3 100644
--- a/src/yang/etsi-nfv-pnf.yang
+++ b/src/yang/etsi-nfv-pnf.yang
@@ -12,20 +12,25 @@ submodule etsi-nfv-pnf {
description
"Models for PNFD according to GS NFV-IFA 014.";
+ revision 2020-06-01 {
+ description
+ "Version 2.8.1.
+
+ PNFD according to ETSI GS NFV-IFA 014 271.";
+ }
+
revision 2019-10-01 {
description
"Version 2.7.1.
- Common data structures to support VNFD and NSD according to:
- ETSI GS NFV-IFA 014 Ed271v264
- ETSI GS NFV-IFA 011 Ed271v264";
+ PNFD according to ETSI GS NFV-IFA 014 Ed271v264.";
}
+
revision 2019-04-25 {
description
"Initial revision.
- Common data structure to support VNFD according to:
- ETSI GS NFV-IFA 014 Ed261v252";
+ PNFD according to ETSI GS NFV-IFA 014 Ed261v252.";
reference
"ETSI GS NFV-IFA 014 Ed261v252";
diff --git a/src/yang/etsi-nfv-pnfd.yang b/src/yang/etsi-nfv-pnfd.yang
index 8b3e46ebd17181c3e4ccd1b2dfd03817479e302a..66147c9a6de2f2437fd90c112e2d57324c4c1b6d 100644
--- a/src/yang/etsi-nfv-pnfd.yang
+++ b/src/yang/etsi-nfv-pnfd.yang
@@ -13,15 +13,24 @@ module etsi-nfv-pnfd {
description
"Physcial Network Function Descriptor.";
+ revision 2020-06-01 {
+ description
+ "Version 2.8.1.
+
+ PNFD according to ETSI GS NFV-IFA 014 271.";
+ }
+
revision 2019-10-01 {
description
"Version 2.7.1.
NSD according to ETSI GS NFV-IFA 014 Ed271v264.";
}
+
revision 2019-04-25 {
description
"Initial revision.
+
NSD according to ETSI GS NFV-IFA 014 Ed261v252.";
}
diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang
index 283217a50a5da677784713f4b209cef71a3b05fa..16f77c98637e3950e3bbbb4813620a5eece43ebe 100755
--- a/src/yang/etsi-nfv-vnf.yang
+++ b/src/yang/etsi-nfv-vnf.yang
@@ -16,19 +16,24 @@ submodule etsi-nfv-vnf {
description
"Models for VNFD according to GS NFV-IFA 011.";
+ revision 2020-06-01 {
+ description
+ "Version 2.8.1.
+
+ VNFD according to ETSI GS NFV-IFA 011 271.";
+ }
+
revision 2019-10-01 {
description
"Version 2.7.1.
- Common data structures to support VNFD and NSD according to:
- ETSI GS NFV-IFA 014 Ed271v264
- ETSI GS NFV-IFA 011 Ed271v264";
+ VNFD according to ETSI GS NFV-IFA 011 Ed271v264";
}
+
revision 2019-03-18 {
description
"Initial revision.
- Common data structure to support VNFD according to:
VNFD according to ETSI GS NFV-IFA 011 Ed261v254";
reference
@@ -95,6 +100,79 @@ submodule etsi-nfv-vnf {
"GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element";
}
+
+ leaf nic-io-requirements {
+ type leafref {
+ path "/nfv:nfv/nfv:vnfd/nfv:virtual-compute-desc/" +
+ "nfv:logical-node/nfv:id";
+ }
+ description
+ "This references (couples) the CPD with any logical node
+ I/O requirements (for network devices) that may have been
+ created. Linking these attributes is necessary so that I/O
+ requirements that need to be articulated at the logical
+ node level can be associated with the network interface
+ requirements associated with the CPD.";
+ reference
+ "GS NFV-IFA011: Section 7.1.6.6,
+ VirtualNetworkInterfaceRequirements information element";
+ }
+ }
+ }
+
+ grouping block-storage-data {
+ leaf size-of-storage {
+ type uint64;
+ units "GB";
+ default 0;
+ description
+ "Size of virtualized storage resource in GB.";
+ reference
+ "GS NFV IFA011: Section 7.1.9.4.3, BlockStorageData
+ Information element.";
+ }
+
+ list vdu-storage-requirements {
+ key "key";
+
+ leaf key {
+ type string;
+ }
+
+ leaf value {
+ type string;
+ }
+ description
+ "An array of key-value pairs that articulate
+ the storage deployment requirements.";
+ reference
+ "GS NFV IFA011: Section 7.1.9.4.3, BlockStorageData
+ Information element.";
+ }
+
+ leaf rdma-enabled {
+ type boolean;
+ description
+ "Indicate if the storage support RDMA.";
+ reference
+ "GS NFV IFA011: Section 7.1.9.4.3, BlockStorageData
+ Information element.";
+ }
+
+ leaf sw-image-desc {
+ type leafref {
+ path "../../../sw-image-desc/id";
+ }
+ must "../size-of-storage >=" +
+ "../../../sw-image-desc[id=current()]/min-disk" {
+ }
+ description
+ "Software image to be loaded on the VirtualStorage
+ resource created based on this VirtualStorageDesc.
+ Shall be absent when used for virtual disks.";
+ reference
+ "GS NFV IFA011: Section 7.1.9.4.3, BlockStorageData
+ Information element.";
}
}
@@ -491,6 +569,7 @@ submodule etsi-nfv-vnf {
list requirement-detail {
key "key";
+ min-elements 1;
leaf key {
type string;
@@ -778,6 +857,24 @@ submodule etsi-nfv-vnf {
VirtualCpuData information element.";
}
}
+
+ list virtual-disk {
+ key "id";
+
+ description
+ "The local or ephemeral disk(s) of the virtualised compute.";
+ reference
+ "GS NFV IFA011: Section 7.1.9.2.2, VirtualComputeDesc
+ Information element.";
+
+ leaf id {
+ type string;
+ description
+ "Unique identifier for the list of virtual disks.";
+ }
+
+ uses block-storage-data;
+ }
}
list virtual-storage-desc {
@@ -797,70 +894,99 @@ submodule etsi-nfv-vnf {
leaf type-of-storage {
// Needed to be able to onboard images
- default root-storage;
type identityref {
base storage-type;
}
+ default "nfv:block";
description
- "Type of virtualised storage resource (e.g. volume,
- object).";
- reference
- "GS NFV IFA011: Section 7.1.9.4, Information elements
- related to Virtual Storage.";
- }
-
- leaf size-of-storage {
- type uint64;
- units "GB";
- default 0;
- description
- "Size of virtualised storage resource (e.g. size of
- volume, in GB)";
+ "Type of virtualised storage resource (BLOCK, OBJECT,
+ FILE).";
reference
"GS NFV IFA011: Section 7.1.9.4, Information elements
related to Virtual Storage.";
}
- list vdu-storage-requirements {
- key "key";
-
- leaf key {
- type string;
- }
+ choice storage {
+ container block-storage-data {
+ when '../type-of-storage = "nfv:block"';
+ description
+ "Specifies the details of block storage. It shall
+ be present when the 'typeOfStorage' attribute is set to
+ 'BLOCK'. It shall be absent otherwise.";
+ reference
+ "GS NFV IFA011: Section 7.1.9.4, Information elements
+ related to Virtual Storage.";
+
+ uses block-storage-data;
+ }
+
+ container object-storage-data {
+ when '../type-of-storage = "nfv:object"';
+ description
+ "Specifies the details of object storage. It shall be
+ present when the 'typeOfStorage' attribute is set to
+ 'OBJECT'. It shall be absent otherwise.";
+ reference
+ "GS NFV IFA011: Section 7.1.9.4, Information elements
+ related to Virtual Storage.";
+
+ leaf max-size-of-storage {
+ type uint64;
+ units "GB";
+ default 0;
+ description
+ "Max size of virtualised storage resource in GB.";
+ reference
+ "GS NFV IFA011: Section 7.1.9.4.4, ObjectStorage Information
+ element.";
+ }
+ }
- leaf value {
- type string;
- }
- description
- "Array of key-value pairs that articulate the storage
- deployment requirements.";
- reference
- "GS NFV IFA011: Section 7.1.9.4.2, VirtualStorageDesc
- information element.";
- }
+ container file-storage-data {
+ when '../type-of-storage = "nfv:file"';
+ description
+ "Specifies the details of file storage. It shall be present
+ when the 'typeOfStorage' attribute is set to 'FILE'. It
+ shall be absent otherwise.";
+ reference
+ "GS NFV IFA011: Section 7.1.9.4, Information elements
+ related to Virtual Storage.";
+
+ leaf size-of-storage {
+ type uint64;
+ units "GB";
+ default 0;
+ description
+ "Size of virtualised storage resource in GB.";
+ reference
+ "GS NFV IFA011: Section 7.1.9.4.5, FileStorageData
+ Information element.";
+ }
- leaf rdma-enabled {
- type boolean;
- description
- "Indicate if the storage support RDMA.";
- reference
- "GS NFV IFA011: Section 7.1.9.4, Information elements
- related to Virtual Storage.";
- }
+ leaf file-system-protocol {
+ type string;
+ default "cifs";
+ description
+ "The shared file system protocol (e.g. NFS, CIFS).";
+ reference
+ "GS NFV IFA011: Section 7.1.9.4.5, FileStorageData
+ Information element.";
+ }
- leaf sw-image-desc {
- type leafref {
- path "../../sw-image-desc/id";
- }
- must "../size-of-storage >=" +
- "../../sw-image-desc[id=current()]/min-disk" {
- }
- description
- "Software image to be loaded on the VirtualStorage
- resource created based on this VirtualStorageDesc.";
- reference
- "GS NFV IFA011: Section 7.1.9.4, Information elements
- related to Virtual Storage.";
+ leaf int-virtual-link-desc {
+ type leafref {
+ path "../../../sw-image-desc/id";
+ }
+ mandatory true;
+ description
+ "Reference of the internal VLD which this file storage
+ connects to. The attached VDUs shall connect to the
+ same internal VLD.";
+ reference
+ "GS NFV IFA011: Section 7.1.9.4.5, FileStorageData
+ Information element.";
+ }
+ }
}
}
@@ -1445,27 +1571,16 @@ submodule etsi-nfv-vnf {
}
uses local-affinity-or-anti-affinity-rule;
- list affinity-or-anti-affinity-group {
- key "id";
-
+ leaf-list affinity-or-anti-affinity-group-id {
+ type leafref {
+ path "../../affinity-or-anti-affinity-group/id";
+ }
description
"Identifier(s) of the affinity or anti-affinity
group(s) the VDU belongs to.";
reference
"GS NFV IFA011: Section 7.1.8.3, VduProfile information
element.";
- leaf id {
- type leafref {
- path "../../../" +
- "affinity-or-anti-affinity-group/id";
- }
- description
- "Identifies an affinity or anti-affinity group to
- which the affinity or anti-affinity rule applies.";
- reference
- "GS NFV IFA011: Section 7.1.8.12, AffinityOrAntiAffinity
- information element.";
- }
}
}
@@ -1502,12 +1617,9 @@ submodule etsi-nfv-vnf {
}
uses local-affinity-or-anti-affinity-rule;
- list affinity-or-anti-affinity-group {
- key "id";
- leaf id {
- type leafref {
- path "../../../affinity-or-anti-affinity-group/id";
- }
+ leaf-list affinity-or-anti-affinity-group-id {
+ type leafref {
+ path "../../affinity-or-anti-affinity-group/id";
}
description
"Identifier(s) of the affinity or anti-affinity
@@ -2856,10 +2968,25 @@ submodule etsi-nfv-vnf {
}
leaf-list event {
- type internal-lifecycle-management-script-event;
+ type union {
+ type internal-lifecycle-management-script-event;
+ type external-lifecycle-management-script-event;
+ }
description
"Describes VNF lifecycle event(s) or an external stimulus
- detected on a VNFM reference point.";
+ detected on a VNFM reference point.
+
+ If the event is of type
+ internal-lifecycle-management-script-event, then depending
+ on whether the event is of type start-* or end-*, the
+ script associated with the VNF LCM operation needs to be
+ executed before the event, or after the event,
+ respectively.
+
+ On the other hand, if the event is of type
+ external-lifecycle-management-script-event, then the
+ script associated with the event needs to be executed
+ for the given VNF LCM operation.";
reference
"GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
information element";
@@ -2931,10 +3058,15 @@ submodule etsi-nfv-vnf {
}
list element-group {
+ status deprecated;
key "id";
description
"Describes the associated elements of a VNFD for a certain
- purpose during VNF lifecycle management.";
+ purpose during VNF lifecycle management.
+
+ Reason for deprecating this node - Information about which
+ VDU and VLD are involved in scaling is better defined by
+ ScalingDelta.";
reference
"GS NFV IFA011: Section 7.1.2 VNFD information element";
diff --git a/src/yang/etsi-nfv-vnfd.yang b/src/yang/etsi-nfv-vnfd.yang
index f5fcc6282c69ff9dbc8054d2af0bea71bbc4fd58..279dfbab2e527b479ad1b879943fee82b23f8f75 100644
--- a/src/yang/etsi-nfv-vnfd.yang
+++ b/src/yang/etsi-nfv-vnfd.yang
@@ -13,15 +13,24 @@ module etsi-nfv-vnfd {
description
"Virtual Network Function Descriptor.";
+ revision 2020-06-01 {
+ description
+ "Version 2.8.1.
+
+ VNFD according to ETSI GS NFV-IFA 011 271.";
+ }
+
revision 2019-10-01 {
description
"Revision 2.7.1.
VNFD according to ETSI GS NFV-IFA 011 Ed271v264.";
}
+
revision 2019-03-18 {
description
"Initial revision.
+
VNFD according to ETSI GS NFV-IFA 011 Ed261v254.";
}