Commit 017528db authored by Mahesh Jethanandani's avatar Mahesh Jethanandani
Browse files

Merge branch 'issue#14' of https://forge.etsi.org/gitlab/nfv/SOL006 into issue#14

parents 6c5f6a72 27a33fd7
Pipeline #2309 passed with stage
in 0 seconds
......@@ -80,8 +80,12 @@
</virtual-compute-desc>
<virtual-storage-desc>
<id>root</id>
<type-of-storage>root-storage</type-of-storage>
<type-of-storage>block</type-of-storage>
<block-storage-data>
<size-of-storage>10</size-of-storage>
<rdma-enabled>true</rdma-enabled>
<sw-image-desc>CP</sw-image-desc>
</block-storage-data>
</virtual-storage-desc>
<sw-image-desc>
<id>CP</id>
......
<?xml version="1.0" encoding="UTF-8"?>
<nfv xmlns="urn:etsi:nfv:yang:etsi-nfv-descriptors">
<vnfd>
<id>ASA</id>
......@@ -36,8 +37,10 @@
</virtual-compute-desc>
<virtual-storage-desc>
<id>asa-vsd</id>
<type-of-storage xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:root-storage</type-of-storage>
<type-of-storage xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:block</type-of-storage>
<block-storage-data>
<size-of-storage>0</size-of-storage>
</block-storage-data>
</virtual-storage-desc>
<sw-image-desc>
<id>asa-image</id>
......@@ -49,7 +52,7 @@
</checksum>
<container-format>bare</container-format>
<disk-format>qcow2</disk-format>
<min-disk>20</min-disk>
<min-disk>0</min-disk>
<min-ram>2.0</min-ram>
<size>1</size>
<image>http://www.mycompany.com/asa.qcow2</image>
......
......@@ -35,8 +35,11 @@
</virtual-compute-desc>
<virtual-storage-desc>
<id>asa-vsd</id>
<type-of-storage xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:root-storage</type-of-storage>
<type-of-storage xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:file</type-of-storage>
<file-storage-data>
<size-of-storage>0</size-of-storage>
<int-virtual-link-desc>asa-image</int-virtual-link-desc>
</file-storage-data>
</virtual-storage-desc>
<sw-image-desc>
<id>asa-image</id>
......@@ -48,7 +51,7 @@
</checksum>
<container-format>bare</container-format>
<disk-format>qcow2</disk-format>
<min-disk>20</min-disk>
<min-disk>0</min-disk>
<min-ram>2.0</min-ram>
<size>1</size>
<image>http://www.mycompany.com/asa.qcow2</image>
......
......@@ -36,8 +36,12 @@
</virtual-compute-desc>
<virtual-storage-desc>
<id>asa-vsd</id>
<type-of-storage>root-storage</type-of-storage>
<size-of-storage>0</size-of-storage>
<type-of-storage>block</type-of-storage>
<block-storage-data>
<size-of-storage>1</size-of-storage>
<rdma-enabled>true</rdma-enabled>
<sw-image-desc>asa-image</sw-image-desc>
</block-storage-data>
</virtual-storage-desc>
<sw-image-desc>
<id>asa-image</id>
......@@ -181,8 +185,11 @@
</virtual-compute-desc>
<virtual-storage-desc>
<id>csr-vsd</id>
<type-of-storage>root-storage</type-of-storage>
<size-of-storage>0</size-of-storage>
<type-of-storage>file</type-of-storage>
<file-storage-data>
<size-of-storage>1</size-of-storage>
<int-virtual-link-desc>csr-image</int-virtual-link-desc>
</file-storage-data>
</virtual-storage-desc>
<sw-image-desc>
<id>csr-image</id>
......
......@@ -233,22 +233,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 +393,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 +437,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
......
......@@ -30,8 +30,10 @@ module etsi-nfv-nsd {
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
......
......@@ -95,6 +95,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 +564,7 @@ submodule etsi-nfv-vnf {
list requirement-detail {
key "key";
min-elements 1;
leaf key {
type string;
......@@ -778,6 +852,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 +889,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).";
"Type of virtualised storage resource (BLOCK, OBJECT,
FILE).";
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;
choice storage {
container block-storage-data {
when '../type-of-storage = "nfv:block"';
description
"Size of virtualised storage resource (e.g. size of
volume, in GB)";
"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.";
}
list vdu-storage-requirements {
key "key";
leaf key {
type string;
uses block-storage-data;
}
leaf value {
type string;
}
container object-storage-data {
when '../type-of-storage = "nfv:object"';
description
"Array of key-value pairs that articulate the storage
deployment requirements.";
"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.2, VirtualStorageDesc
information element.";
"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 rdma-enabled {
type boolean;
container file-storage-data {
when '../type-of-storage = "nfv:file"';
description
"Indicate if the storage support RDMA.";
"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 sw-image-desc {
type leafref {
path "../../sw-image-desc/id";
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.";
}
must "../size-of-storage >=" +
"../../sw-image-desc[id=current()]/min-disk" {
leaf int-virtual-link-desc {
type leafref {
path "../../../sw-image-desc/id";
}
mandatory true;
description
"Software image to be loaded on the VirtualStorage
resource created based on this VirtualStorageDesc.";
"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, Information elements
related to Virtual Storage.";
"GS NFV IFA011: Section 7.1.9.4.5, FileStorageData
Information element.";
}
}
}
}
......@@ -2856,10 +2977,25 @@ submodule etsi-nfv-vnf {
}
leaf-list 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 +3067,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";
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment