Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
NFV - Network Functions Virtualisation
SOL006
Commits
017528db
Commit
017528db
authored
Jan 22, 2020
by
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
Changes
7
Pipelines
1
Show whitespace changes
Inline
Side-by-side
example-data/complex-vnfd.xml
View file @
017528db
...
@@ -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>
<block-storage-data>
<size-of-storage>
10
</size-of-storage>
<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>
...
...
example-data/nfv-nsd.xml
View file @
017528db
<?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>
<block-storage-data>
<size-of-storage>
0
</size-of-storage>
<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>
2
0
</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>
...
...
example-data/nfv-vnfd.xml
View file @
017528db
...
@@ -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>
<file-storage-data>
<size-of-storage>
0
</size-of-storage>
<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>
2
0
</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>
...
...
example-data/nfv.xml
View file @
017528db
...
@@ -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>
...
...
src/yang/etsi-nfv-common.yang
View file @
017528db
...
@@ -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-storag
e
{
identity
fil
e
{
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
...
...
src/yang/etsi-nfv-nsd.yang
View file @
017528db
...
@@ -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
...
...
src/yang/etsi-nfv-vnf.yang
View file @
017528db
...
@@ -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
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."
;
}
}
leaf
size-of-storage
{
choice
storage
{
type
uint64
;
container
block-storage-data
{
units
"GB"
;
when
'../type-of-storage = "nfv:block"'
;
default
0
;
description
description
"Size of virtualised storage resource (e.g. size of
"Specifies the details of block storage. It shall
volume, in GB)"
;
be present when the 'typeOfStorage' attribute is set to
'BLOCK'. It shall be absent otherwise."
;
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
{
key
"key"
;
leaf
key
{
uses
block-storage-data
;
type
string
;
}
}
leaf
value
{
container
object-storage-data
{
type
string
;
when
'../type-of-storage = "nfv:object"'
;
}
description
description
"Array of key-value pairs that articulate the storage
"Specifies the details of object storage. It shall be
deployment requirements."
;
present when the 'typeOfStorage' attribute is set to
'OBJECT'. It 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
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
{
container
file-storage-data
{
type
boolean
;
when
'../type-of-storage = "nfv:file"'
;
description
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
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."
;
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
{
leaf
file-system-protocol
{
type
leafref
{
type
string
;
path
"../../sw-image-desc/id"
;
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
description
"Software image to be loaded on the VirtualStorage
"Reference of the internal VLD which this file storage
resource created based on this VirtualStorageDesc."
;
connects to. The attached VDUs shall connect to the
same internal VLD."
;
reference
reference
"GS NFV IFA011: Section 7.1.9.4, Information elements
"GS NFV IFA011: Section 7.1.9.4.5, FileStorageData
related to Virtual Storage."
;
Information element."
;
}
}
}
}
}
}
...
@@ -2856,10 +2977,25 @@ submodule etsi-nfv-vnf {
...
@@ -2856,10 +2977,25 @@ submodule etsi-nfv-vnf {
}
}
leaf-list
event
{
leaf-list
event
{
type
union
{
type
internal-lifecycle-management-script-event
;
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"
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment