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 @@ ...@@ -80,8 +80,12 @@
</virtual-compute-desc> </virtual-compute-desc>
<virtual-storage-desc> <virtual-storage-desc>
<id>root</id> <id>root</id>
<type-of-storage>root-storage</type-of-storage> <type-of-storage>block</type-of-storage>
<size-of-storage>10</size-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> </virtual-storage-desc>
<sw-image-desc> <sw-image-desc>
<id>CP</id> <id>CP</id>
......
<?xml version="1.0" encoding="UTF-8"?>
<nfv xmlns="urn:etsi:nfv:yang:etsi-nfv-descriptors"> <nfv xmlns="urn:etsi:nfv:yang:etsi-nfv-descriptors">
<vnfd> <vnfd>
<id>ASA</id> <id>ASA</id>
...@@ -36,8 +37,10 @@ ...@@ -36,8 +37,10 @@
</virtual-compute-desc> </virtual-compute-desc>
<virtual-storage-desc> <virtual-storage-desc>
<id>asa-vsd</id> <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>
<size-of-storage>0</size-of-storage> <block-storage-data>
<size-of-storage>0</size-of-storage>
</block-storage-data>
</virtual-storage-desc> </virtual-storage-desc>
<sw-image-desc> <sw-image-desc>
<id>asa-image</id> <id>asa-image</id>
...@@ -49,7 +52,7 @@ ...@@ -49,7 +52,7 @@
</checksum> </checksum>
<container-format>bare</container-format> <container-format>bare</container-format>
<disk-format>qcow2</disk-format> <disk-format>qcow2</disk-format>
<min-disk>20</min-disk> <min-disk>0</min-disk>
<min-ram>2.0</min-ram> <min-ram>2.0</min-ram>
<size>1</size> <size>1</size>
<image>http://www.mycompany.com/asa.qcow2</image> <image>http://www.mycompany.com/asa.qcow2</image>
......
...@@ -35,8 +35,11 @@ ...@@ -35,8 +35,11 @@
</virtual-compute-desc> </virtual-compute-desc>
<virtual-storage-desc> <virtual-storage-desc>
<id>asa-vsd</id> <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>
<size-of-storage>0</size-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> </virtual-storage-desc>
<sw-image-desc> <sw-image-desc>
<id>asa-image</id> <id>asa-image</id>
...@@ -48,7 +51,7 @@ ...@@ -48,7 +51,7 @@
</checksum> </checksum>
<container-format>bare</container-format> <container-format>bare</container-format>
<disk-format>qcow2</disk-format> <disk-format>qcow2</disk-format>
<min-disk>20</min-disk> <min-disk>0</min-disk>
<min-ram>2.0</min-ram> <min-ram>2.0</min-ram>
<size>1</size> <size>1</size>
<image>http://www.mycompany.com/asa.qcow2</image> <image>http://www.mycompany.com/asa.qcow2</image>
......
...@@ -36,8 +36,12 @@ ...@@ -36,8 +36,12 @@
</virtual-compute-desc> </virtual-compute-desc>
<virtual-storage-desc> <virtual-storage-desc>
<id>asa-vsd</id> <id>asa-vsd</id>
<type-of-storage>root-storage</type-of-storage> <type-of-storage>block</type-of-storage>
<size-of-storage>0</size-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> </virtual-storage-desc>
<sw-image-desc> <sw-image-desc>
<id>asa-image</id> <id>asa-image</id>
...@@ -181,8 +185,11 @@ ...@@ -181,8 +185,11 @@
</virtual-compute-desc> </virtual-compute-desc>
<virtual-storage-desc> <virtual-storage-desc>
<id>csr-vsd</id> <id>csr-vsd</id>
<type-of-storage>root-storage</type-of-storage> <type-of-storage>file</type-of-storage>
<size-of-storage>0</size-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> </virtual-storage-desc>
<sw-image-desc> <sw-image-desc>
<id>csr-image</id> <id>csr-image</id>
......
...@@ -233,22 +233,22 @@ submodule etsi-nfv-common { ...@@ -233,22 +233,22 @@ submodule etsi-nfv-common {
"Base type of storage that identities can derive from."; "Base type of storage that identities can derive from.";
} }
identity root-storage { identity block {
base storage-type; base storage-type;
description description
"Root type of storage."; "Block type of storage.";
} }
identity swap-storage { identity object {
base storage-type; base storage-type;
description description
"Swap type of storage."; "Object type of storage.";
} }
identity ephemeral-storage { identity file {
base storage-type; base storage-type;
description description
"Ephemeral type of storage."; "File type of storage.";
} }
identity forwarding-behaviour { identity forwarding-behaviour {
...@@ -393,6 +393,19 @@ submodule etsi-nfv-common { ...@@ -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 { grouping local-affinity-or-anti-affinity-rule {
list local-affinity-or-anti-affinity-rule { list local-affinity-or-anti-affinity-rule {
key "type scope"; key "type scope";
...@@ -424,6 +437,7 @@ submodule etsi-nfv-common { ...@@ -424,6 +437,7 @@ submodule etsi-nfv-common {
type identityref { type identityref {
base layer-protocol; base layer-protocol;
} }
min-elements 1;
description description
"Identifies the protocols that the VL uses (Ethernet, "Identifies the protocols that the VL uses (Ethernet,
MPLS, ODU2, IPV4, IPV6, Pseudo-Wire). The top layer MPLS, ODU2, IPV4, IPV6, Pseudo-Wire). The top layer
......
...@@ -30,8 +30,10 @@ module etsi-nfv-nsd { ...@@ -30,8 +30,10 @@ module etsi-nfv-nsd {
container nsd { container nsd {
list nsd { list nsd {
key "id"; key "id";
max-elements 1; max-elements 1;
uses nfv:nsd; uses nfv:nsd;
description description
"The NSD information element is a deployment template whose "The NSD information element is a deployment template whose
instances are used by the NFVO for the lifecycle management instances are used by the NFVO for the lifecycle management
......
...@@ -95,6 +95,79 @@ submodule etsi-nfv-vnf { ...@@ -95,6 +95,79 @@ submodule etsi-nfv-vnf {
"GS NFV-IFA011: Section 7.1.6.6, "GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element"; 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 { ...@@ -491,6 +564,7 @@ submodule etsi-nfv-vnf {
list requirement-detail { list requirement-detail {
key "key"; key "key";
min-elements 1;
leaf key { leaf key {
type string; type string;
...@@ -778,6 +852,24 @@ submodule etsi-nfv-vnf { ...@@ -778,6 +852,24 @@ submodule etsi-nfv-vnf {
VirtualCpuData information element."; 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 { list virtual-storage-desc {
...@@ -797,70 +889,99 @@ submodule etsi-nfv-vnf { ...@@ -797,70 +889,99 @@ submodule etsi-nfv-vnf {
leaf type-of-storage { leaf type-of-storage {
// Needed to be able to onboard images // Needed to be able to onboard images
default root-storage;
type identityref { type identityref {
base storage-type; base storage-type;
} }
default "nfv:block";
description description
"Type of virtualised storage resource (e.g. volume, "Type of virtualised storage resource (BLOCK, OBJECT,
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;
description
"Size of virtualised storage resource (e.g. size of
volume, in GB)";
reference reference
"GS NFV IFA011: Section 7.1.9.4, Information elements "GS NFV IFA011: Section 7.1.9.4, Information elements
related to Virtual Storage."; related to Virtual Storage.";
} }
list vdu-storage-requirements { choice storage {
key "key"; container block-storage-data {
when '../type-of-storage = "nfv:block"';
leaf key { description
type string; "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 { container file-storage-data {
type string; when '../type-of-storage = "nfv:file"';
} description
description "Specifies the details of file storage. It shall be present
"Array of key-value pairs that articulate the storage when the 'typeOfStorage' attribute is set to 'FILE'. It
deployment requirements."; shall be absent otherwise.";
reference reference
"GS NFV IFA011: Section 7.1.9.4.2, VirtualStorageDesc "GS NFV IFA011: Section 7.1.9.4, Information elements
information element."; 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 { leaf file-system-protocol {
type boolean; type string;
description default "cifs";
"Indicate if the storage support RDMA."; description
reference "The shared file system protocol (e.g. NFS, CIFS).";
"GS NFV IFA011: Section 7.1.9.4, Information elements reference
related to Virtual Storage."; "GS NFV IFA011: Section 7.1.9.4.5, FileStorageData
} Information element.";
}
leaf sw-image-desc { leaf int-virtual-link-desc {
type leafref { type leafref {
path "../../sw-image-desc/id"; path "../../../sw-image-desc/id";
} }
must "../size-of-storage >=" + mandatory true;
"../../sw-image-desc[id=current()]/min-disk" { description
} "Reference of the internal VLD which this file storage
description connects to. The attached VDUs shall connect to the
"Software image to be loaded on the VirtualStorage same internal VLD.";
resource created based on this VirtualStorageDesc."; reference
reference "GS NFV IFA011: Section 7.1.9.4.5, FileStorageData
"GS NFV IFA011: Section 7.1.9.4, Information elements Information element.";
related to Virtual Storage."; }
}
} }
} }
...@@ -2856,10 +2977,25 @@ submodule etsi-nfv-vnf { ...@@ -2856,10 +2977,25 @@ submodule etsi-nfv-vnf {
} }
leaf-list event { leaf-list event {
type internal-lifecycle-management-script-event; type union {
type internal-lifecycle-management-script-event;
type external-lifecycle-management-script-event;
}
description description
"Describes VNF lifecycle event(s) or an external stimulus "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 reference
"GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript "GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
information element"; information element";
...@@ -2931,10 +3067,15 @@ submodule etsi-nfv-vnf { ...@@ -2931,10 +3067,15 @@ submodule etsi-nfv-vnf {
} }
list element-group { list element-group {
status deprecated;
key "id"; key "id";
description description
"Describes the associated elements of a VNFD for a certain "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 reference
"GS NFV IFA011: Section 7.1.2 VNFD information element"; "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