"git@forge.etsi.org:LIBS/LibIts.git" did not exist on "26fb4295cf56de0adb2a0cd84f34bdaccd7e2d93"
Newer
Older
import ietf-inet-types {
prefix inet;
}
import ietf-yang-types {
prefix yang;
}
description
"Models for VNFD according to GS NFV-IFA 011.";
description
"Initial revision.
Common data structure to support VNFD according to:
VNFD according to ETSI GS NFV-IFA 011 Ed261v254";
"ETSI GS NFV-IFA 011 Ed261v254";
}
grouping virtual-network-interface-requirements {
list virtual-network-interface-requirement {
key "name";
description
"Specifies requirements on a virtual network interface
realising the CPs instantiated from this CPD.";
reference
"GS NFV-IFA011: Section 7.1.6.4, VduCpd information
element";
leaf name {
type string;
description
"Provides a human readable name for the requirement.";
reference
"GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element";
}
leaf description {
type string;
description
"Provides a human readable description of the requirement.";
reference
"GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element";
}
type boolean;
description
"Indicates whether fulfilling the constraint is
mandatory (true) for successful operation or desirable
(false).";
reference
"GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element";
}
list network-interface-requirements {
key "key";
leaf key {
type string;
}
leaf value {
type string;
}
description
"The network interface requirements. An element from an
array of key-value pairs that articulate the network
interface deployment requirements.";
reference
"GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element";
}
}
}
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
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.";
}
}
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
leaf id {
type string;
description
"Identifier of this VNFD information element. This attribute
shall be globally unique. The format will be defined in the
data model specification phase.";
reference
"GS NFV-IFA011: Section 7.1.2, VNFD information element";
}
leaf provider {
type string;
mandatory true;
description
"Provider of the VNF and of the VNFD";
reference
"GS NFV-IFA011: Section 7.1.2, VNFD information element";
}
leaf product-name {
type string;
mandatory true;
description
"Name to identify the VNF Product. Invariant for the VNF
Product lifetime.";
reference
"GS NFV-IFA011: Section 7.1.2, VNFD information element";
}
leaf software-version {
type string;
mandatory true;
description
"Software version of the VNF. This is changed when there is
any change to the software that is included in the VNF
Package";
reference
"GS NFV-IFA011: Section 7.1.2, VNFD information element";
}
leaf version {
type string;
mandatory true;
description
"Identifies the version of the VNFD";
reference
"GS NFV-IFA011: Section 7.1.2, VNFD information element";
}
leaf product-info-name {
type string;
description
"Human readable name of the VNFD. Can change
during the VNF Product lifetime.";
reference
"GS NFV-IFA011: Section 7.1.2, VNFD information element";
}
leaf product-info-description {
type string;
description
"Human readable description of the VNFD. Can change during
the VNF Product lifetime.";
reference
"GS NFV-IFA011: Section 7.1.2, VNFD information element";
}
leaf-list vnfm-info {
type string;
min-elements 1;
description
"Identifies VNFM(s) compatible with the VNF described in
this version of the VNFD.";
reference
"GS NFV-IFA011: Section 7.1.2, VNFD information element";
}
leaf localization-language {
type string;
"Information about the language of the VNF.";
reference
"GS NFV-IFA011: Section 7.1.2, VNFD information element";
}
leaf default-localization-language {
when "../localization-language";
type string;
description
"Default localization language that is instantiated if no
information about selected localization language is
available. Shall be present if 'localization-language'
is present and shall be absent otherwise.";
reference
"GS NFV-IFA011: Section 7.1.2, VNFD information element";
}
list vdu {
key "id";
min-elements 1;
description
"The Virtualisation Deployment Unit (VDU) is a construct supporting
the description of the deployment and operational behaviour of a
VNF component, or the entire VNF if it was not componentized in
components.";
reference
"GS NFV IFA011: Section 7.1.2, VNFD information element";
leaf id {
type string;
description
"Unique identifier of this VDU in VNFD.";
"GS NFV IFA011: Section 7.1.6.2, Vdu information element";
type string;
mandatory true;
description
"GS NFV IFA011: Section 7.1.6.2, Vdu information element";
"Human readable description of the VDU.";
"GS NFV IFA011: Section 7.1.6.2, Vdu information element";
list int-cpd {
key "id";
min-elements 1;
"A internal-connection-point element is a type of
connection point and describes network connectivity
between a VDU instance and an internal Virtual Link or
an external connection point.";
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
"GS NFV IFA011: Section 7.1.6.2, Vdu information element";
leaf int-virtual-link-desc {
type leafref {
path "../../../int-virtual-link-desc/id";
}
description
"Reference of the internal VLD which this internal CPD
connects to.";
reference
"GS NFV IFA011: Section 7.1.6.4, VduCpd information
element";
}
leaf bitrate-requirement {
type uint64;
units "Mbps";
description
"Bitrate requirement on this CP.";
reference
"GS NFV IFA011: Section 7.1.6.4, VduCpd information
element.";
}
uses virtual-network-interface-requirements;
leaf nicio-requirements {
type leafref {
path "../../../virtual-compute-desc/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 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";
}
leaf-list order {
type uint32;
description
"The order of the NIC to be assigned on the compute
instance (e.g. 2 for eth2).
Note: when binding more than one port to a single
compute (aka multi vNICs) and ordering is desired, it
is mandatory that all ports will be set with an order
value. The order values shall represent a positive,
arithmetic progression that starts with 0 (i.e. 0, 1,
2,..., n).
If the property is not present, it shall be left to the
VIM to assign a value when creating the instance.";
reference
"GS NFV IFA011: Section 7.1.6.4, VduCpd information
element.";
}
uses cpd;
leaf security-group-rule-id {
type leafref {
path "../../../security-group-rule/id";
}
description
"Reference of the security group rules bound to this
CPD.";
reference
"GS NFV IFA011: Section 7.1.6.3 Cpd information element";
}
leaf virtual-compute-desc {
type leafref {
path "../../virtual-compute-desc/id";
}
must "../../virtual-compute-desc[id=current()]/" +
"virtual-memory/size >=" +
"../../sw-image-desc[id=current()/" +
"../sw-image-desc]/min-ram" {
}
"Describes CPU, Memory and acceleration requirements of
the Virtualisation Container realizing this VDU.";
"GS NFV IFA011: Section 7.1.6.2, VDU information
element, and Section 7.1.9.2.2, VirtualComputeDesc
information element.";
leaf-list virtual-storage-desc {
type leafref {
path "../../virtual-storage-desc/id";
}
"Describes storage requirements for a VirtualStorage
instance attached to the virtualisation container
created from virtualComputeDesc defined for this VDU.";
"GS NFV IFA011: Section 7.1.6.2, VDU information
element, and Section 7.1.9.4, Information elements
related to Virtual Storage.";
list boot-order {
ordered-by user;
key "key";
leaf key {
type uint32;
}
leaf value {
type leafref {
path "../../virtual-storage-desc";
}
}
"The key indicates the boot index (lowest index defines
highest boot priority). The Value references a descriptor
from which a valid boot device is created e.g.
VirtualStorageDesc from which a VirtualStorage instance
is created.
Editor's note: The boot-order node requires further
study.";
"GS NFV IFA011: Section 7.1.6.2, Vdu information
element.";
leaf sw-image-desc {
type leafref {
path "../../sw-image-desc/id";
}
"Describes the software image which is directly loaded on
the virtualisation container realising this Vdu.";
"GS NFV IFA011: Section 7.1.6.2, Vdu information
element.";
"Describes constraints on the NFVI for the VNFC
instance(s) created from this Vdu. For example, aspects
of a secure hosting environment for the VNFC instance
that involve additional entities or processes.";
"GS NFV IFA011: Section 7.1.6.2, VDU Information
element.";
key "id";
leaf id {
type string;
description
"Unique identifier of the monitoring parameter.";
"GS NFV IFA011: Section 7.1.11.3, MonitoringParameter
information element.";
uses monitoring-parameter;
}
list configurable-properties {
key "key";
leaf key {
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
description
"It provides VNFC configurable properties that can be
modified using the ModifyVnfInfo operation.";
reference
"GS NFV IFA011: Section 7.1.6.7,
VnfcConfigurableProperties Information element.";
}
leaf boot-data {
type string;
description
"Contains a string or a URL to a file contained in the
VNF package used to customize a virtualised compute
resource at boot time. The bootData may contain variable
parts that are replaced by deployment specific values
before being sent to the VIM.";
reference
"GS NFV IFA011: Section 7.1.6.7,
VnfcConfigurableProperties Information element.";
}
}
list virtual-compute-desc {
key "id";
description
"Defines descriptors of virtual compute resources to be
used by the VNF.";
leaf id {
type string;
description
"Unique identifier of this VirtualComputeDesc in the
VNFD.";
reference
"GS NFV IFA011: Section 7.1.9.2, Information elements
related to Virtual CPU.";
}
list logical-node {
key "id";
leaf id {
type string;
"Identifies this set of logical node requirements.";
"GS NFV IFA011: Section 7.1.9.6, LogicalNodeRequirements
Information elements.";
}
list requirement-detail {
key "key";
"The logical node-level compute, memory and I/O
requirements. An array of key-value pairs that
articulate the deployment requirements.
This could include the number of CPU cores on this
logical node, a memory configuration specific to a
logical node (e.g. such as available in the Linux
kernel via the libnuma library) or a requirement
related to the association of an I/O device with the
logical node.";
"GS NFV IFA011: Section 7.1.9.6, LogicalNodeRequirements
description
"The logical node requirements.";
reference
"GS NFV IFA011: Section 7.1.9.2, VirtualComputeDesc
information element.";
}
list request-additional-capability {
key "name";
leaf name {
type string;
"Identifies a requested additional capability for the
VDU. ETSI GS NFV-IFA 002 [i.1] describes acceleration
capabilities.";
"GS NFV IFA011: Section 7.1.9.5,
RequestedAdditionalCapabilityData Information element.";
leaf support-mandatory {
type boolean;
description
"Indicates whether the requested additional capability
is mandatory for successful operation.";
"GS NFV IFA011: Section 7.1.9.5,
RequestedAdditionalCapabilityData Information
leaf min-version {
type string;
"Identifies the minimum version of the requested
additional capability.";
"GS NFV IFA011: Section 7.1.9.5,
RequestedAdditionalCapabilityData Information element.";
"Identifies the preferred version of the requested
additional capability.";
"GS NFV IFA011: Section 7.1.9.5,
RequestedAdditionalCapabilityData Information element.";
list target-performance-parameters {
leaf key {
type string;
}
leaf value {
type string;
}
"Identifies specific attributes, dependent on the
requested additional capability type.";
"GS NFV IFA011: Section 7.1.9.5,
RequestedAdditionalCapabilityData Information element.";
leaf compute-requirements {
type string;
"Specifies compute requirements.";
reference
"GS NFV IFA011: Section 7.1.9.2.2, VirtualComputeDesc
Information element.";
}
container virtual-memory {
leaf size {
type decimal64 {
fraction-digits 1;
range "0..max";
units "GB";
default 1;
description
"Amount of virtual memory in GB.";
reference
"GS NFV IFA011: Section 7.1.9.3, Information elements
related to Virtual Memory.";
}
leaf over-subscription-policy {
type string;
"The memory core oversubscription policy in terms of
virtual memory to physical memory on the platform.
The cardinality can be 0 during the allocation
request, if no particular value is requested.";
"GS NFV IFA011: Section 7.1.9.3, Information elements
related to Virtual Memory.";
list vdu-mem-requirements {
key "key";
description
"Array of key-value pair requirements on the memory for
the VDU.";
reference
"GS NFV IFA011: Section 7.1.9.3.2, VirtualMemoryData
information element.";
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
leaf numa-enabled {
type boolean;
description
"It specifies the memory allocation to be cognisant of
the relevant process/core allocation. The cardinality
can be 0 during the allocation request, if no
particular value is requested.";
reference
"GS NFV IFA011: Section 7.1.9.3, Information elements
related to Virtual Memory.";
}
description
"The virtual memory of the virtualised compute.";
reference
"GS NFV IFA011: Section 7.1.9.2.2, VirtualComputeDesc
Information element.";
}
container virtual-cpu {
description
"The virtual CPU(s)of the virtualised compute.";
reference
"GS NFV IFA011: Section 7.1.9.2.2, VirtualComputeDesc
Information element.";
leaf cpu-architecture {
"CPU architecture type. Examples are x86, ARM. The
cardinality can be 0 during the allocation request,
if no particular CPU architecture type is requested.";
"GS NFV IFA011: Section 7.1.9.2.3, VirtualCpuData
information elements.";
leaf num-virtual-cpu {
type uint16 {
range "1..max";
default 1;
description
"Number of virtual CPUs.";
reference
"GS NFV IFA011: Section 7.1.9.2.3, VirtualCpuData
information elements.";
}
leaf clock {
type uint32;
units "MHz";
"Minimum virtual CPU clock rate (e.g. in MHz). The
cardinality can be 0 during the allocation request,
if no particular value is requested.";
"GS NFV IFA011: Section 7.1.9.2.3, VirtualCpuData
information elements.";
leaf oversubscription-policy {
type string;
"The CPU core oversubscription policy e.g. the relation
of virtual CPU cores to physical CPU cores/threads.
The cardinality can be 0 during the allocation request,
if no particular value is requested.";
"GS NFV IFA011: Section 7.1.9.2.3, VirtualCpuData
information elements.";
}
list vdu-cpu-requirements {
key "key";
}
description
"Array of key-value pair requirements on the compute
(CPU) for the VDU.";
reference
"GS NFV IFA011: Section 7.1.9.3.2, VirtualCpuData
information element.";
}
container pinning {
presence "Set to specify CPU pinning.";
leaf policy {
default "dynamic";
type enumeration {
enum "static";
enum "dynamic";
}
"The policy can take values of 'static' or 'dynamic'.
In case of 'static' the virtual CPU cores are
requested to be allocated to logical CPU cores
according to the rules defined in
virtualCpuPinningRules. In case of 'dynamic' the
allocation of virtual CPU cores to logical CPU cores
is decided by the VIM. (e.g. SMT (Simultaneous
MultiThreading) requirements).";
"GS NFV IFA011: Section 7.1.9.2.4,
VirtualCpuPinningData information element.";
list rule {
when "../policy = 'static'";
leaf key {
type string;
}
leaf value {
type string;
}
description
"A list of rules that should be considered during the
allocation of the virtual CPUs to logical CPUs in case
of 'static' virtualCpuPinningPolicy.";
"GS NFV IFA011: Section 7.1.9.2.4,
VirtualCpuPinningData information element.";
description
"The virtual CPU pinning configuration for the
virtualised compute resource.";
reference
"GS NFV IFA011: Section 7.1.9.2.3,
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 {
key "id";
description
"Storage requirements for a Virtual Storage instance
attached to the VNFC created from this VDU";
leaf id {
type string;
description
"Unique identifier of this VirtualStorageDesc in the
VNFD.";
reference
"GS NFV IFA011: Section 7.1.9.4, Information elements
related to Virtual Storage.";
}
leaf type-of-storage {
// Needed to be able to onboard images
type identityref {
base storage-type;
"Type of virtualised storage resource (BLOCK, OBJECT,
FILE).";
reference
"GS NFV IFA011: Section 7.1.9.4, Information elements
related to Virtual Storage.";
}
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.";
}
}
container file-storage-data {
when '../type-of-storage = "nfv:file"';
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
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 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 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.";
}
}
list sw-image-desc {
key "id";
description
"Defines descriptors of software images to be used by the
VNF.";
reference
"GS NFV IFA011: Section 7.1.2, VNFD Information element.";
leaf id {
type string;
"The identifier of this software image.";
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
"GS NFV IFA011: Section 7.1.6.5, SwImageDesc information
element";
}
leaf name {
mandatory true;
type string;
description
"The name of this software image.";
reference
"GS NFV IFA011: Section 7.1.6.5 SwImageDesc
information element.";
}
leaf version {
mandatory true;
type string;
description
"The version of this software image.";
reference
"GS NFV IFA011: Section 7.1.6.5 SwImageDesc
information element.";
}
container checksum {
leaf algorithm {
type identityref {
base checksum-algorithm;
}
"Species the algorithm used to obtain the checksum
value.";
"GS NFV IFA011: Section 7.1.6.10 ChecksumData
"Contains the result of applying the algorithm
indicated by the algorithm attribute to the data to
which this ChecksumData refers.";
"GS NFV IFA011: Section 7.1.6.10 ChecksumData
description
"The checksum of the software image file.";
reference
"GS NFV IFA011: Section 7.1.6.5 SwImageDesc
information element.";
}
leaf container-format {
default "bare";
type enumeration {
enum "aki" {
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
"An Amazon kernel image.";
}
enum "ami" {
description
"An Amazon machine image.";
}
enum "ari" {
description
"An Amazon ramdisk image.";
}
enum "bare" {
description
"The image does not have a container or metadata
envelope.";
}
enum "docker" {
description
"A docker container format.";
}
enum "ova" {
description
"An OVF package in a tarfile.";
}
enum "ovf" {
description
"The OVF container format.";
description
"The container format describes the container file
format in which software image is provided.";
reference
"GS NFV IFA011: Section 7.1.6.5 SwImageDesc
information element.";
}
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
leaf disk-format {
default "qcow2";
type enumeration {
enum "aki" {
description
"An Amazon kernel image.";
}
enum "ami" {
description
"An Amazon machine image.";
}
enum "ari" {
description
"An Amazon ramdisk image.";
}
enum "iso" {
description
"An archive format for the data contents of an
disk, such as CD-ROM.";
}
enum "qcow2" {
description
"Supported by the QEMU emulator that can expand
dynamically and supports Copy on Write.";
}
enum "raw" {
description
"An unstructured disk image format; if you have a
file without an extension it is possibly a raw
format.";
}
enum "vdi" {
description
"Supported by VirtualBox virtual machine monitor
and the QEMU emulator.";
}
enum "vhd" {
description
"The VHD disk format, a common disk format used by
virtual machine monitors from VMware, Xen,
Microsoft, VirtualBox, and others.";
}
enum "vhdx" {
description
"The VHDX disk format, an enhanced version of the
VHD format, which supports larger disk sizes among
other features.";
}
enum "vmdk" {
description
"Common disk format supported by many common virtual
machine monitors.";
description
"The disk format of a software image is the format of
the underlying disk image.";
}
description
"The minimal disk size requirement for this software
image. The value of the 'size of storage' attribute
of the VirtualStorageDesc referencing this
SwImageDesc shall not be smaller than the value of
minDisk.";
reference
"GS NFV IFA011: Section 7.1.6.5, SwImageDesc
information element.";
}
leaf min-ram {
type decimal64 {
fraction-digits 1;
range "0..max";
units "GB";
default 0;
description
"The minimal RAM requirement for this software image.
The value of the 'size' attribute of
VirtualMemoryData of the Vdu referencing this
SwImageDesc shall not be smaller than the value of
minRam.";
reference
"GS NFV IFA011: Section 7.1.6.5, SwImageDesc
information element.";
}
leaf size {
mandatory true;
type uint64;
units "GB";
description
"The size of this software image.";
reference
"GS NFV IFA011: Section 7.1.6.5, SwImageDesc
information element.";
}
leaf image {
default ".";
type inet:uri;
description
"This is a reference to the actual software image.
The reference can be relative to the root of the VNF
Package or can be a URL";
reference
"GS NFV IFA011: Section 7.1.6.5, SwImageDesc
information element.";
}
leaf operating-system {
type string;
description
"Identifies the operating system used in the software
image. This attribute may also identify if a 32 bit
or 64 bit software image is used.";
reference
"GS NFV IFA011: Section 7.1.6.5, SwImageDesc
information element.";
}
leaf-list supported-virtualization-environment {
type string;
description
"Identifies the virtualisation environments
(e.g. hypervisor) compatible with this software
image.";
reference
"GS NFV IFA011: Section 7.1.6.5, SwImageDesc
information element.";
}
list int-virtual-link-desc {
key "id";
description
"Represents the type of network connectivity mandated by the
VNF provider between two or more CPs which includes at
least one internal CP.";
reference
"GS NFV IFA011: Section 7.1.2, Vnfd information element.";
leaf id {
type string;
description
"Unique identifier of this internal VLD in VNFD.";
reference
"GS NFV IFA011: Section 7.1.7.2, VnfVirtualLinkDesc
Information elements.";
}
list flavour {
"Describes a specific flavour of the VL with specific
bitrate requirements.";
"GS NFV IFA011: Section 7.1.7.2, VnfVirtualLinkDesc
Information elements.";
leaf id {
type string;
description
"Identifies a flavour within a VnfVirtualLinkDesc.";
"GS NFV IFA011: Section 7.1.8.5, VirtualLinkDescFlavour
information element.";
container qos {
presence "VL QoS parameters";
"GS NFV IFA011: Section 7.1.8.5, VirtualLinkDescFlavour
information element.";
leaf latency {
type uint32;
units "ms";
mandatory true;
"Specifies the maximum latency in ms.";
"GS NFV IFA011: Section 7.1.8.10, QoS information
element.";
leaf packet-delay-variation {
type uint32;
units "ms";
mandatory true;
"Specifies the maximum jitter in ms.";
"GS NFV IFA011: Section 7.1.8.10, QoS information
element.";
leaf packet-loss-ratio {
type decimal64 {
fraction-digits "2";
range "0..1.00";
}
"Specifies the maximum packet loss ratio.";
reference
"GS NFV IFA011: Section 7.1.8.10, QoS information
element.";
leaf-list test-access {
type string;
"Specifies test access facilities expected on the VL
(e.g. none, passive monitoring, or active (intrusive)
loopbacks at endpoints.";
"GS NFV IFA011: Section 7.1.7.2, VnfVirtualLinkDesc
information element.";
"Provides human-readable information on the purpose of
the VL (e.g. control plane traffic).";
"GS NFV IFA011: Section 7.1.7.2, VnfVirtualLinkDesc
information element.";
}
list monitoring-parameters {
key "id";
leaf id {
type string;
description
"Unique identifier of the monitoring parameter.";
"GS NFV IFA011: Section 7.1.11.3, MonitoringParameter
information element.";
uses monitoring-parameter;
}
}
list ext-cpd {
key "id";
min-elements 1;
description
"Describes an external interface exposed by this VNF enabling
connection with a Virual Link";
reference
"GS NFV IFA011: Section 7.1.2, VNFD information element.";
choice cp-connection {
leaf int-virtual-link-desc {
description
"Reference to the internal Virtual Link Descriptor (VLD)
to which CPs instantiated from this external CP
Descriptor (CPD) connect. Either intVirtualLinkDesc or
intCpd shall be present.";
type leafref {
path "../../int-virtual-link-desc/id";
container int-cpd {
leaf vdu-id {
leaf cpd {
type leafref {
path "deref(../vdu-id)/../int-cpd/id";
}
}
uses virtual-network-interface-requirements;
leaf nicio-requirements {
type leafref {
path "../../virtual-compute-desc/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 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";
}
uses cpd;
leaf security-group-rule-id {
type leafref {
path "../../security-group-rule/id";
}
description
"Reference of the security group rules bound to this
CPD.";
reference
"GS NFV IFA011: Section 7.1.6.3 Cpd information element";
}
}
list df {
must "default-instantiation-level or " +
"count(instantiation-level) = 1";
key "id";
min-elements 1;
description
"Describes a specific Deployment Flavour (DF) of a VNF with
specific requirements for capacity and performance.";
reference
"GS NFV IFA011: Section 7.1.2, VNFD information element.";
leaf id {
type string;
description
"Identifier of this DF within the VNFD.";
reference
"GS NFV IFA011: Section 7.1.8, Information elements
to the DeploymentFlavour.";
}
leaf description {
type string;
description
"Human readable description of the deployment flavour";
reference
"GS NFV IFA011: Section 7.1.8, Information elements
to the DeploymentFlavour.";
}
list vdu-profile {
key "id";
min-elements 1;
description
"The Vduprofile describes additional instantiation data for
a given VDU used in a deployment flavour.";
reference
"GS NFV IFA011: Section 7.1.8, Information elements
to the DeploymentFlavour.";
leaf id {
type leafref {
path "../../../vdu/id";
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
reference
"GS NFV IFA011: Section 7.1.8.3, VduProfile information
element.";
}
leaf min-number-of-instances {
type uint16;
default 1;
description
"Minimum number of instances of the VNFC based on this
VDU that is permitted to exist for this flavour.";
reference
"GS NFV IFA011: Section 7.1.8.3, VduProfile information
element.";
}
leaf max-number-of-instances {
type uint16;
default 1;
must ". >= ../min-number-of-instances";
reference
"GS NFV IFA011: Section 7.1.8.3, VduProfile information
element.";
uses local-affinity-or-anti-affinity-rule;
list affinity-or-anti-affinity-group {
description
"Identifier(s) of the affinity or anti-affinity
group(s) the VDU belongs to.";
"GS NFV IFA011: Section 7.1.8.3, VduProfile information
element.";
type leafref {
path "../../../" +
"affinity-or-anti-affinity-group/id";
}
"Identifies an affinity or anti-affinity group to
which the affinity or anti-affinity rule applies.";
"GS NFV IFA011: Section 7.1.8.12, AffinityOrAntiAffinity
information element.";
list virtual-link-profile {
key "id flavour";
description
"Defines the internal VLD along with additional data which
is used in this DF.";
reference
"GS NFV IFA011: Section 7.1.8.2, VnfDf information
element.";
leaf id {
type leafref {
path "../../../int-virtual-link-desc/id";
description
"Uniquely identifies a Vnf VLD.";
reference
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element.";
path "deref(../../../ext-cpd/int-virtual-link-desc)" +
"/../flavour/id";
"Identifies a flavour within the VnfVirtualLinkDesc.";
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element.";
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";
}
"Identifier(s) of the affinity or anti-affinity
group(s) the VnfVirtualLinkDesc belongs to.";
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element.";
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
container max-bit-rate-requirements {
leaf root {
mandatory "true";
type uint32;
description
"Throughput requirement of the link (e.g. bitrate of
E-Line, root bitrate of E-Tree, aggregate capacity
of E-LAN).";
reference
"GS NFV IFA011: Section 7.1.8.6,
LinkBitrateRequirements information element.";
}
leaf leaf {
type uint32;
description
"Throughput requirement of leaf connections to the
link when applicable to the connectivity type
(e.g. for E-Tree and E-LAN branches).";
reference
"GS NFV IFA011: Section 7.1.8.6,
LinkBitrateRequirements information element.";
}
"Specifies the maximum bitrate requirements for a VL
instantiated according to this profile.";
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element.";
}
container min-bit-rate-requirements {
leaf root {
mandatory "true";
type uint32;
"Throughput requirement of the link (e.g. bitrate of
E-Line, root bitrate of E-Tree, aggregate capacity
of E-LAN).";
"GS NFV IFA011: Section 7.1.8.6,
LinkBitrateRequirements information element.";
"Throughput requirement of leaf connections to the
link when applicable to the connectivity type
(e.g. for E-Tree and E-LAN branches).";
"GS NFV IFA011: Section 7.1.8.6,
LinkBitrateRequirements information element.";
}
description
"Specifies the minimum bitrate requirements for a VL
instantiated according to this profile.";
reference
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element.";
}
container virtual-link-protocol-data {
leaf associated-layer-protocol {
type identityref {
base layer-protocol;
description
"One of the values of the attribute layerProtocol of
the ConnectivityType IE.";
reference
"GS NFV IFA011: Section 7.1.8.13,
VirtualLinkProtocolData information element.";
}
container l2-protocol-data {
when "(../associated-layer-protocol = 'Ethernet') or " +
"(../associated-layer-protocol = 'MPLS') or " +
"(../associated-layer-protocol = 'ODU2') or " +
"(../associated-layer-protocol = 'Pseudo-Wire')";
leaf name {
type string;
"Network name associated with this L2 protocol.";
"GS NFV IFA011: Section 7.1.8.14,
L2ProtocolData information element.";
leaf network-type {
type enumeration {
enum flat;
enum vlan;
enum vxlan;
enum gre;
"Specifies the network type for this L2 protocol.
Possible values: FLAT, VLAN, VXLAN, GRE.";
"GS NFV IFA011: Section 7.1.8.14,
L2ProtocolData information element.";
"Specifies whether to support VLAN transparency for
this L2 protocol or not.";
"GS NFV IFA011: Section 7.1.8.14,
L2ProtocolData information element.";
leaf mtu {
type uint16;
description
"Specifies the maximum transmission unit (MTU) value
for this L2 protocol.";
reference
"GS NFV IFA011: Section 7.1.8.14,
L2ProtocolData information element.";
}
"Specifies the L2 protocol data for this virtual link.
Shall be present when the associatedLayerProtocol
attribute indicates a L2 protocol and shall be absent
otherwise.";
"GS NFV IFA011: Section 7.1.8.13,
VirtualLinkProtocolData information element.";
}
container l3-protocol-data {
when "(../associated-layer-protocol = 'IPv4') or " +
"(../associated-layer-protocol = 'IPv6')";
leaf name {
type string;
description
"Network name associated with this L3 protocol.";
reference
"GS NFV IFA011: Section 7.1.8.15,
L3ProtocolData information element.";
}
leaf ip-version {
type enumeration {
enum ipv4;
enum ipv6;
"Specifies IP version of this L3 protocol.
Value:
• IPV4.
• IPV6.";
"GS NFV IFA011: Section 7.1.8.15,
L3ProtocolData information element.";
"Specifies the CIDR (Classless InterDomain Routing)
of this L3 protocol.";
"GS NFV IFA011: Section 7.1.8.15,
L3ProtocolData information element.";
leaf-list ip-allocation-pools {
type string;
description
"Specifies the allocation pools with start and end
IP addresses for this L3 protocol.";
reference
"GS NFV IFA011: Section 7.1.8.15,
L3ProtocolData information element.";
}
leaf gateway-ip {
type inet:ip-address;
"Specifies the gateway IP address for this L3
protocol.";
"GS NFV IFA011: Section 7.1.8.15,
L3ProtocolData information element.";
leaf dhcp-enabled {
type boolean;
default "true";
"Indicates whether DHCP (Dynamic Host Configuration
Protocol) is enabled or disabled for this L3
protocol.";
"GS NFV IFA011: Section 7.1.8.15,
L3ProtocolData information element.";
leaf ipv6-address-mode {
when "../ip-version = 'ipv6'";
type enumeration {
enum slaac;
enum dhcpv6-stateful;
enum dhcpv6-stateless;
"Specifies IPv6 address mode. Possible values:
• SLAAC.
• DHCPV6-STATEFUL.
• DHCPV6-STATELESS.
May be present when the value of the ipVersion
attribute is 'IPV6' and shall be absent otherwise.";
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
"GS NFV IFA011: Section 7.1.8.15,
L3ProtocolData information element.";
}
description
"Specifies the L3 protocol data for this virtual link.
Shall be present when the associatedLayerProtocol
attribute indicates a L3 protocol and shall be absent
otherwise.";
reference
"GS NFV IFA011: Section 7.1.8.13,
VirtualLinkProtocolData information element.";
}
description
"Specifies the protocol data for a VL instantiated
according to this profile. Cardinality 0 is used when
no protocol data needs to be specified.";
reference
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element.";
}
}
list instantiation-level {
key "id";
min-elements 1;
description
"Describes the various levels of resources that can be
used to instantiate the VNF using this flavour.
Examples: Small, Medium, Large. If there is only one
'instantiationLevel' entry, it shall be treated as the
default instantiation level for this DF.
The InstantiationLevel information element describes a
given level of resources to be instantiated within a
deployment flavour in term of the number of VNFC instances
to be created from each VDU.
All the VDUs referenced in the level shall be part of the
corresponding deployment flavour and their number shall
be within the range (min/max) for this deployment flavour.";
reference
"GS NFV IFA011: Section 7.1.8.2 VnfDf information element";
leaf id {
type string;
description
"Uniquely identifies a level with the DF.";
reference
"GS NFV IFA011: Section 7.1.8.7 InstantiationLevel
information element";
}
leaf description {
type string;
description
"Human readable description of the instantiation level";
reference
"GS NFV IFA011: Section 7.1.8.7 InstantiationLevel
information element";
}
list vdu-level {
key "vdu-id";
min-elements 1;
description
"Sets the number of instances for the VDU in this
instantiation level.";
reference
"GS NFV IFA011: Section 7.1.8.7 InstantiationLevel
information element";
leaf vdu-id {
type leafref {
path "../../../../vdu/id";
description
"Uniquely identifies a VDU.";
reference
"GS NFV IFA011: Section 7.1.8.9 VduLevel information
element";
leaf number-of-instances {
type uint16;
must ". <= ../../../../df/" +
"vdu-profile[id=current()/../vdu-id]/" +
"max-number-of-instances";
must ". >= ../../../../df/" +
"vdu-profile[id=current()/../vdu-id]/" +
"min-number-of-instances";
default 1;
"Number of instances of VNFC based on this VDU to
deploy for this level.";
"GS NFV IFA011: Section 7.1.8.9 VduLevel information
element";
}
}
list scaling-info {
key "scaling-aspect-id";
description
"The InstantiationLevel information element describes a
given level of resources to be instantiated within a
DF in term of the number of VNFC instances to be
created from each VDU.";
reference
"GS NFV IFA011: Section 7.1.8.7 InstantiationLevel
information element";
leaf scaling-aspect-id {
type leafref {
path "../../../scaling-aspect/id";
description
"Identifier of the scaling aspect.";
reference
"GS NFV IFA011: Section 7.1.8.8 ScaleInfo information
element";
}
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
leaf scale-level {
type uint32;
description
"The scale level, greater than or equal to 0.";
reference
"GS NFV IFA011: Section 7.1.8.8 ScaleInfo information
element";
}
}
}
leaf default-instantiation-level {
type leafref {
path "../instantiation-level/id";
}
description
"This attribute references the 'instantiationLevel'
entry which defines the default instantiation level for
this DF. It shall be present if there are multiple
'instantiationLevel' entries.";
reference
"GS NFV IFA011: Section 7.1.8.2 VnfDf information
element";
}
leaf-list supported-operation {
type identityref {
base supported-operation;
}
description
"Indicates which operations are available for this DF via
the VNF LCM interface. Instantiate VNF, Query VNF and
Terminate VNF are supported in all DF and therefore
need not be included in this list.";
reference
"GS NFV IFA011: Section 7.1.8.2 VnfDf information
element";
}
container lcm-operations-configuration {
description
"This information element is a container for all
attributes that affect the invocation of the VNF
Lifecycle Management operations, structured by
operation.";
reference
"GS NFV IFA011: Section 7.1.8.2 VnfDf information
element";
container instantiate-vnf-op-config {
list parameter {
key "key";
leaf key {
type string;
description
"Array of KVP requirements for VNF-specific parameters
to be passed when invoking the InstantiateVnf
operation.";
reference
"GS NFV IFA011: Section 7.1.5.3
InstantiateVnfOpConfig information element";
description
"Configuration parameters for the InstantiateVnf
operation.";
reference
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
}
container scale-vnf-op-config {
description
"Configuration parameters for the ScaleVnf operation.";
reference
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
list parameter {
key "key";
leaf key {
type string;
}
leaf value {
type string;
"Array of KVP requirements for VNFspecific parameters
to be passed when invoking the ScaleVnf operation.";
"GS NFV IFA011: Section 7.1.5.4 ScaleVnfOpConfig
information element";
leaf scaling-by-more-than-one-step-supported {
type boolean;
default false;
"Signals whether passing a value larger than one in
the numScalingSteps parameter of the ScaleVnf
operation is supported by this VNF.
Default is FALSE, i.e. 'not supported'.";
"GS NFV IFA011: Section 7.1.5.4
ScaleVnfOpConfig information element";
container scale-vnf-to-level-op-config {
"This information element defines attributes that
affect the invocation of the ScaleVnfToLevel
operation.";
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
list parameter {
key "key";
leaf key {
type string;
}
leaf value {
type string;
}
"Array of KVP requirements for VNF-specific parameters
to be passed when invoking the ScaleVnfToLevel
operation.";
"GS NFV IFA011: Section 7.1.5.5
ScaleVnfToLevelOpConfig information element";
leaf arbitrary-target-levels-supported {
type boolean;
default "false";
"Signals whether scaling according to the parameter
'scaleInfo' is supported by this VNF.";
"GS NFV IFA011: Section 7.1.5.5
ScaleVnfToLevelOpConfig information element";
container heal-vnf-op-config {
description
"This information element defines attributes that
affect the invocation of the HealVnf operation.";
reference
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
list parameter {
key "key";
leaf key {
type string;
}
leaf value {
type string;
}
"Array of KVP requirements for VNF-specific parameters
to be passed when invoking the HealVnf operation.";
"GS NFV IFA011: Section 7.1.5.6 HealVnfOpConfig
information element";
"Supported 'cause' parameter values.";
"GS NFV IFA011: Section 7.1.5.6 HealVnfOpConfig
container terminate-vnf-op-config {
description
"This information element defines attributes that
affect the invocation of the TerminateVnf operation.";
reference
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
leaf min-graceful-termination {
type yang:timeticks;
default "1";
"Minimum timeout value for graceful termination of
a VNF instance.";
"GS NFV IFA011: Section 7.1.5.7
TerminateVnfOpConfig information element";
leaf max-recommended-graceful-termination {
type yang:timeticks;
"Maximum recommended timeout value that can be needed
to gracefully terminate a VNF instance of a
particular type under certain conditions, such as
maximum load condition. This is provided by VNF
provider as information for the operator
facilitating the selection of optimal timeout value.
This value is not used as constraint.";
"GS NFV IFA011: Section 7.1.5.7
TerminateVnfOpConfig information element";
list parameter {
key "key";
leaf key {
type string;
}
leaf value {
type string;
"Array of KVP requirements for VNF-specific parameters
to be passed when invoking the TerminateVnf
operation.";
"GS NFV IFA011: Section 7.1.5.7
TerminateVnfOpConfig information element";
"This information element defines attributes that
affect the invocation of the OperateVnf operation.";
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
leaf min-graceful-stop-timeout {
type yang:timeticks;
default "1";
description
"Minimum timeout value for graceful stop of a VNF
instance.";
reference
"GS NFV IFA011: Section 7.1.5.8
OperateVnfOpConfig information element";
}
leaf max-recommended-graceful-stop-timeout {
type yang:timeticks;
"Maximum recommended timeout value that can be
needed to gracefully stop a VNF instance of a
particular type under certain conditions, such as
maximum load condition. This is provided by VNF
provider as information for the operator facilitating
the selection of optimal timeout value. This value
is not used as constraint.";
"GS NFV IFA011: Section 7.1.5.8
OperateVnfOpConfig information element";
list parameter {
key "key";
leaf key {
type string;
}
leaf value {
type string;
"Array of KVP requirements for VNF-specific parameters
to be passed when invoking the OperateVnf
operation.";
"GS NFV IFA011: Section 7.1.5.8
OperateVnfOpConfig information element";
container change-vnf-flavour-op-config {
list parameter {
key "key";
leaf key {
type string;
}
leaf value {
type string;
}
description
"Array of KVP requirements for VNF-specific parameters
to be passed when invoking the OperateVnf
operation.";
reference
"GS NFV IFA011: Section 7.1.5.9
ChangeVnfFlavour information element";
}
description
"Configuration parameters for the ChangeVnfFlavour
operation.";
reference
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
}
container change-ext-vnf-connectivity-op-config {
list parameter {
key "key";
leaf key {
type string;
}
description
"Array of KVP requirements for VNF-specific parameters
to be passed when invoking the
ChangeExtVnfConnectivity operation.";
reference
"GS NFV IFA011: Section 7.1.5.10
ChangeExtVnfConnectivityOpConfig information
element";
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
description
"Configuration parameters for the
ChangeExtVnfConnectivity operation.";
reference
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
}
}
list affinity-or-anti-affinity-group {
key "id";
description
"The AffinityOrAntiAffinityGroup describes the affinity
or anti-affinity relationship applicable between the
virtualization containers to be created based on
different VDUs, or between internal VLs to be created
based on different VnfVirtualLinkDesc(s).
Per VNF, the affinity/anti-affinity rules defined using
this information element, using the
LocalAffinityOrAntiAffinityRule information element, and
using the placement constraints in the
GrantLifecycleOperation as defined in ETSI GS NFV-IFA
007 [i.3] should be conflict-free. In case of conflicts,
the placement constraints in the
GrantLifecycleOperation shall take precedence.";
reference
"GS NFV IFA011: Section 7.1.8.2 VnfDf information
element";
"Identifies an affinity or anti-affinity group to which
the affinity or anti-affinity rule applies.";
"GS NFV IFA011: Section 7.1.8.12
AffinityOrAntiAffinityGroup information element";
leaf type {
mandatory true;
type affinity-type;
description
"Specifies whether the rule is an affinity rule or an
anti-affinity rule.";
reference
"GS NFV IFA011: Section 7.1.8.12
AffinityOrAntiAffinityGroup information element";
}
leaf scope {
mandatory true;
type affinity-scope;
"Specifies the scope of the rule, possible values are
'NFVI-PoP', 'Zone', 'ZoneGroup', 'NFVI-node'.";
"GS NFV IFA011: Section 7.1.8.12
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;
}
"Describe the source of the indicator. The possible
values are:
• VNF.
• EM.
• Both.
This tells the consumer where to send the subscription
request.";
"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
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
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 {
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
}
}
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";
description
"Defines the virtualised resources monitoring parameters
on VNF level.";
reference
"GS NFV IFA011: Section 7.1.8.2 VnfDf information
element";
leaf id {
type string;
description
"Unique identifier of the monitoring parameter.";
reference
"GS NFV IFA011: Section 7.1.11.3 MonitoringParameter
information element";
}
uses monitoring-parameter;
}
list scaling-aspect {
key "id";
description
"The scaling aspects supported by this DF of the VNF.
scalingAspect shall be present if the VNF supports
scaling.";
reference
"GS NFV IFA011: Section 7.1.8.2 VnfDf information
element";
leaf id {
type string;
description
"Unique identifier of this aspect in the VNFD.";
reference
"GS NFV IFA011: Section 7.1.10.2 ScalingAspect
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
}
leaf name {
type string;
description
"Human readable name of the aspect.";
reference
"GS NFV IFA011: Section 7.1.10.2 ScalingAspect
information element";
}
leaf description {
type string;
description
"Human readable description of the aspect.";
reference
"GS NFV IFA011: Section 7.1.10.2 ScalingAspect
information element";
}
leaf max-scale-level {
type uint32 {
range "1..max";
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
description
"The maximum scaleLevel for total number of scaling
steps that can be applied w.r.t. this aspect. The
value of this attribute corresponds to the number of
scaling steps can be applied to this aspect when
scaling it from the minimum scale level (i.e. 0) to the
maximum scale level defined by this attribute.";
reference
"GS NFV IFA011: Section 7.1.10.2 ScalingAspect
information element";
}
container aspect-delta-details {
list deltas {
key "id";
min-elements 1;
leaf id {
type string;
description
"Identifier of this scaling delta.";
reference
"GS NFV IFA011: Section 7.1.10.4 ScalingDelta
information element";
type leafref {
path "../../../../../../vdu/id";
}
"GS NFV IFA011: Section 7.1.8.9 VduLevel
information element";
}
leaf number-of-instances {
type uint32 {
range "0..max";
"Number of instances of VNFC based on this VDU to
deploy for an instantiation level or for a
scaling delta. Shall be zero or greater.";
"GS NFV IFA011: Section 7.1.8.9 VduLevel
description
"The number of VNFC instances based on particular
VDUs to be created or removed.";
reference
"GS NFV IFA011: Section 7.1.10.4 ScalingDelta
information element";
}
list virtual-link-bit-rate-delta {
key "id";
leaf id {
type string;
description
"Uniquely identifies a VnfVirtualLinkDesc.";
reference
"GS NFV IFA011: Section 7.1.10.5
VirtualLinkBitRateLevel information element";
}
container bit-rate-requirements {
leaf root {
type uint32;
units bits/sec;
mandatory true;
"Throughput requirement of the link (e.g.
bitrate of E-Line, root bitrate of E-Tree,
aggregate capacity of E-LAN).";
"GS NFV IFA011: Section 7.1.8.6
LinkBitrateRequirements information element";
leaf leaf {
type uint32;
units bits/sec;
"Throughput requirement of leaf connections to
the link when applicable to the connectivity
type (e.g. for E-Tree and E-LAN branches).";
"GS NFV IFA011: Section 7.1.8.6
LinkBitrateRequirements information element";
"Bitrate requirements for an instantiation level
or bitrate delta for a scaling step.";
"GS NFV IFA011: Section 7.1.10.5
VirtualLinkBitRateLevel information element";
"The bitrate to be added or removed to virtual links
created from particular virtual link descriptors.";
"GS NFV IFA011: Section 7.1.10.4 ScalingDelta
description
"Declares different scaling deltas, each of which is
applied for one or more scaling steps of this
aspect.";
reference
"GS NFV IFA011: Section 7.1.10.3 AspectDeltaDetails
information element";
}
leaf step-deltas {
type leafref {
path "../deltas/id";
"Identifiers of the individual scaling deltas to be
applied for the subsequent scaling steps of this
aspect. The first entry in the array shall correspond
to the first scaling step (between scale levels 0 to
1) and the last entry in the array shall correspond
to the last scaling step (between maxScaleLevel-1
and maxScaleLevel).
Each referenced scaling delta shall be declared in
the 'deltas' attribute.";
"GS NFV IFA011: Section 7.1.10.3 AspectDeltaDetails
description
"A specification of the deltas in terms of number of
instances of VNFCs and virtual link bit rates that
correspond to the scaling steps of this aspect. A
cardinality of zero indicates that this mapping has to
be specified in a lifecycle management script or be
otherwise known to the VNFM. The information in this
attribute, if provided, shall be consistent with the
information provided in the 'InstantiationLevel'
information element. If this attribute is provided, it
shall be provided for all scaling aspects.";
reference
"GS NFV IFA011: Section 7.1.10.2 ScalingAspect
information element";
}
container configurable-properties {
description
"Describes the configurable properties of the VNF
(e.g. related to auto scaling and auto healing).";
reference
"GS NFV IFA011: Section 7.1.2 VNFD information element";
leaf is-auto-scalable-enabled {
type boolean;
"It permits to enable (TRUE) / disable (FALSE) the
auto-scaling functionality.";
"GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties
information element";
}
leaf is-auto-heal-enabled {
type boolean;
description
"It permits to enable (TRUE) / disable (FALSE) the
auto-healing functionality.";
reference
"GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties
information element";
}
list additional-configurable-property {
key "key";
leaf key {
type string;
description
"It provides VNF specific configurable properties that can
be modified using the ModifyVnfConfiguration operation.";
reference
"GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties
information element";
}
container modifiable-attributes {
description
"Describes the modifiable attributes of the VNF.";
reference
"GS NFV IFA011: Section 7.1.2 VNFD information element";
leaf-list extension {
type string;
"Additional VNF-specific attributes of VnfInfo that
affect the lifecycle management of a VNF instance and
that are writeable.
For each VNF instance, these attributes are stored
persistently by the VNFM and can be queried and
modified through the VNFM.
These attributes are intended to be consumed by the
VNFM or by the lifecycle management scripts during the
execution of VNF lifecycle management operations.
Modifying these values has no direct effect on the VNF
instance; however, modified values can be considered
during subsequent VNF lifecycle management operations,
which means that the modified values can indirectly
affect the configuration of the VNF instance.";
"GS NFV IFA011: Section 7.1.14 VnfInfoModifiableAttributes
information element";
}
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
leaf-list metadata {
type string;
description
"Additional VNF-specific attributes of VnfInfo that are
writeable and that provide metadata describing the VNF
instance.
For each VNF instance, these attributes are stored
persistently by the VNFM and can be queried and modified
through the VNFM.
These attributes are intended to provide information to
functional blocks external to the VNFM and will not be
used by the VNFM or the VNF lifecycle management
scripts when executing lifecycle management operations.
Modifying these attributes has no effect on the VNF
instance. It only affects the attribute values stored by
the VNFM.";
reference
"GS NFV IFA011: Section 7.1.14 VnfInfoModifiableAttributes
information element";
}
}
list lifecycle-management-script {
key "id";
description
"Includes a list of events and corresponding management
scripts performed for the VNF.";
reference
"GS NFV IFA011: Section 7.1.2 VNFD information element";
leaf id {
type string;
description
"A unique string that identfies the script in question.";
}
leaf-list event {
type internal-lifecycle-management-script-event;
description
"Describes VNF lifecycle event(s) or an external stimulus
detected on a VNFM reference point.";
reference
"GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
information element";
}
leaf-list lcm-transition-event {
type string;
description
"Describes the transition VNF lifecycle event(s) that
cannot be mapped to any of the enumerated values
defined for the event attribute.";
reference
"GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
information element";
}
leaf script {
type string;
description
"Includes a VNF LCM script (e.g. written in a DSL as
specified in requirement VNF_PACK.LCM.001) triggered to
react to one of the events listed in the event
attribute.";
reference
"GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
information element";
"Defines the domain specific language (i.e. the type) of
script that is provided. Types of scripts could include
bash, python, etc.";
"GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
information element";
}
type string;
description
"Includes a VNF LCM script (e.g. written in a DSL as
specified in requirement VNF_PACK.LCM.001) triggered to
react to one of the events listed in the event
attribute.
The string value specified here is a path to a file in
the VNF package.";
reference
"GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
information element";
}
description
"Array of KVP requirements with the key as the parameter
name and the value as the parameter that need to be
passed as an input to the script.";
reference
"GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
information element";
list element-group {
key "id";
description
"Describes the associated elements of a VNFD for a certain
purpose during VNF lifecycle management.";
reference
"GS NFV IFA011: Section 7.1.2 VNFD information element";
leaf id {
type string;
"Unique identifier of this group in the VNFD.";
"GS NFV IFA011: Section 7.1.4 VnfdElementGroup
information element";
}
leaf description {
type string;
description
"Human readable description of the group.";
reference
"GS NFV IFA011: Section 7.1.4 VnfdElementGroup
information element";
}
leaf-list vdu {
type leafref {
path "../../vdu/id";
description
"References to Vdus that are part of this group.";
reference
"GS NFV IFA011: Section 7.1.4 VnfdElementGroup
information element";
}
leaf-list virtual-link-desc {
type leafref {
path "../../int-virtual-link-desc/id";
description
"References to VnfVirtualLinkDesc that are part of this
group.";
reference
"GS NFV IFA011: Section 7.1.4 VnfdElementGroup
information element";
list indicator {
key "id";
description
"Declares the VNF indicators that are supported by this
VNF.";
reference
"GS NFV IFA011: Section 7.1.2 VNFD information element";
leaf id {
type string;
"GS NFV IFA011: Section 7.1.11.2 VnfdIndicator
information element";
}
leaf name {
type string;
description
"The human readable name of the VnfIndicator.";
reference
"GS NFV IFA011: Section 7.1.11.2 VnfdIndicator
information element";
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
"Defines the allowed values or value ranges of this
indicator.";
reference
"GS NFV IFA011: Section 7.1.11.2 VnfdIndicator
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.";
"GS NFV IFA011: Section 7.1.11.2 VnfdIndicator
information element";
leaf-list auto-scale {
type string;
description
"Rule that determines when a scaling action needs to be
triggered on a VNF instance e.g. based on certain VNF
indicator values or VNF indicator value changes or a
combination of VNF indicator value(s) and monitoring
parameter(s).";
reference
"GS NFV IFA011: Section 7.1.2 VNFD information element";
}