Newer
Older
import ietf-inet-types {
prefix inet;
}
import ietf-yang-types {
prefix yang;
}
description
"Models for VNFD according to GS NFV-IFA 011.";
revision 2020-06-10 {
"Version 3.3.1.
Data structures to support VNFD according to
ETSI GS NFV-IFA 011 Release 3.";
revision 2020-06-01 {
description
"Version 2.8.1.
VNFD according to ETSI GS NFV-IFA 011 271.";
}
Data structure to support 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";
}
status "deprecated";
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";
}
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";
}
}
}
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
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
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.";
grouping vnf-local-affinity-or-anti-affinity-rule {
list local-affinity-or-anti-affinity-rule {
key "type scope";
leaf type {
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.11,
LocalAffinityOrAntiAffinityRule information element.";
}
leaf scope {
type affinity-scope;
description
"Specifies the scope of the rule. Possible values are
'NFVI-PoP', 'Zone', 'ZoneGroup', 'NFVI-node', and
'network-link-and-node'.";
reference
"GS NFV IFA011: Section 7.1.8.11,
LocalAffinityOrAntiAffinityRule information element.";
}
uses nfvi-maintenance-info {
description
"When present, provides information on the impact tolerance
and rules to be observed when a group of instances based
on the same VDU is impacted during NFVI operation and
maintenance (e.g. NFVI resource upgrades).";
reference
"GS NFV IFA011: Section 7.1.8.11,
LocalAffinityOrAntiAffinityRule information element.";
}
}
}
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
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.";
"GS NFV IFA011: Section 7.1.6.2, Vdu information element";
leaf int-virtual-link-desc {
type leafref {
path "/nfv:nfv/nfv:vnfd/nfv:int-virtual-link-desc/nfv: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 "/nfv:nfv/nfv:vnfd/nfv:virtual-compute-desc/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 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";
}
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.";
}
type identityref {
base vnic-type;
}
description
"Describes the type of the virtual network interface
realizing the CPs instantiated from this CPD. This is
used to determine which mechanism driver(s) to be used
to bind the port. Value:
• NORMAL
• VIRTIO
• DIRECT
• BAREMETAL
• VIRTIO-FORWARDER
• DIRECT-PHYSICAL
• SMART-NIC";
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 {
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
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";
min-elements 1;
"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.";
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
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.";
leaf-list cpu-policy {
type enumeration {
enum "dedicated";
enum "shared";
}
description
"Shows the list of dedicated virtual CPU cores and
shared virtual CPU cores in a VM. Dedicated refers to
a virtual CPU core occupies one physical CPU core.
Shared refers to multi virtual CPU cores shared one
physical CPU core.";
reference
"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"';
"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"';
1011
1012
1013
1014
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
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
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.";
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
"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.";
}
leaf provider {
type string;
description
"The provider of this software image. If not present the
provider of the software image is assumed to be same as
the VNF provider.";
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" {
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
"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.";
}
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
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 nfvi-maintenance-info {
description
"When present, provides information on the rules to be
observed when an instance based on this
VnfVirtualLinkDesc is impacted during NFVI operation and
maintenance (e.g. NFVI resource upgrades).";
reference
"GS NFV IFA011: Section 7.1.7.2, VnfVirtualLinkDesc
information element.";
}
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 "/nfv:nfv/nfv:vnfd/nfv:int-virtual-link-desc/nfv:id";
container int-cpd {
leaf vdu-id {
leaf cpd {
type leafref {
path "deref(../vdu-id)/../int-cpd/id";
leaf vip-cpd {
type leafref {
path "../../vip-cpd/id";
}
description
"Reference to the VIP CPD which is used to instantiate CPs
to hold virtual IP addresses. These CPs are, in turn,
exposed as external CPs defined by this external CPD.
One and only one of the following attributes shall be
present: intVirtualLinkDesc or intCpd or vipCpd .";
reference
"GS NFV-IFA011: Section 7.1.3.2, VnfExtCpd information
element";
}
uses virtual-network-interface-requirements;
leaf nicio-requirements {
type leafref {
path "/nfv:nfv/nfv:vnfd/nfv:virtual-compute-desc/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 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";
}
}
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
list vip-cpd {
key "id";
leaf-list int-cpd {
type leafref {
path "../../vdu/int-cpd/int-virtual-link-desc";
}
description
"Reference to the internal VDU CPD which is used to
instantiate internal CPs. These internal CPs share the
virtual IP addresses allocated when a VipCp instance
is created from the VipCpd.";
reference
"GS NFV IFA011: Section 7.1.x, VipCpd information element.";
}
leaf-list vnf-ext-cpd {
type leafref {
path "../../ext-cpd/id";
}
description
"Reference to the VNF external CPD which is used to
instantiate external CPs. These external CPs share the
virtual IP addresses allocated when a VipCp instance is
created from the VipCpd.";
reference
"GS NFV IFA011: Section 7.1.x, VipCpd information element.";
}
leaf vip-function {
type identityref {
base vip-function;
}
description
"It indicates the function the virtual IP address is used
for. Permitted values: high availability, load balancing.";
reference
"GS NFV IFA011: Section 7.1.x, VipCpd information element.";
}
uses cpd;
description
"Describes virtual IP addresses to be shared among instances
of connection points. See clause 7.1.x.";
reference
"GS NFV IFA011: Section 7.1.2, VNFD 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";
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
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.";
type leafref {
path "../../affinity-or-anti-affinity-group/id";
}
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.";
}
uses nfvi-maintenance-info {
description
"When present, provides information on the impact
tolerance and rules to be observed when instance(s) of
the VDU are impacted during NFVI operation and
maintenance (e.g. NFVI resource upgrades).";
reference
"GS NFV IFA011: Section 7.1.8.3, VduProfile 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.";
path "/nfv:nfv/nfv:vnfd/nfv:int-virtual-link-desc/nfv: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)" +
"Identifies a flavour within the VnfVirtualLinkDesc.";
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element.";
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.";
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
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.";
}
leaf segmentation-id {
type string;
description
"If present, specifies a specific virtualised network
segment, which depends on the network type. For e.g.,
VLAN ID for VLAN network type and tunnel ID for
GRE/VXLAN network types.";
"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.";
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
"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";
}
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
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";
description
"Configuration parameters for the
ChangeExtVnfConnectivity operation.";
reference
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
}
description
"Configuration parameters for the Create VNF Snapshot
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;
}
description
"Array of KVP requirements for VNF-specific parameters
to be passed when invoking the
CreateSnapshotVnfOpConfig operation.";
"GS NFV IFA011: Section 7.1.5.11
CreateSnapshotVnfOpConfig information
element";
}
description
"Configuration parameters for the Revert-To VNF Snapshot
operation.";
reference
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
list parameter {
key "key";
min-elements 1;
leaf value {
type string;
}
description
"Array of KVP requirements for VNF-specific parameters
to be passed when invoking the
RevertToSnapshotVnfOpConfig operation.";
"GS NFV IFA011: Section 7.1.5.12
RevertToSnapshotVnfOpConfig information
element";
list change-current-vnf-package-op-config {
key "id";
description
"Configuration parameters for the
ChangeCurrentVnfPackageOpConfig operation.";
reference
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
leaf id {
type string;
description
"Identifier of this parameter set for later referencing.";
reference
"GS NFV IFA011: Section 7.1.5.13
ChangeCurrentVnfPackageOpConfig information
element";
}
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 change current VNF
Package operation.";
reference
"GS NFV IFA011: Section 7.1.5.13
ChangeCurrentVnfPackageOpConfig information
element";
}
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
}
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";
"Identifier of this AffinityOrAntiAffinityGroup
information element.";
"GS NFV IFA011: Section 7.1.8.12
AffinityOrAntiAffinityGroup information element";
leaf type {
mandatory true;
type affinity-type;
description
"Specifies the type of relationship that the members of
the group have: 'affinity' or 'anti-affinity'.";
reference
"GS NFV IFA011: Section 7.1.8.12
AffinityOrAntiAffinityGroup information element";
}
leaf scope {
mandatory true;
type affinity-scope;
"Specifies the scope of the affinity or anti-affinity
relationship. Possible values are 'NFVI-PoP', 'Zone',
'ZoneGroup', 'NFVI-node' and 'network-link-and-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
list supported-vnf-interfaces {
key "name";
leaf name {
type enumeration {
enum vnf-configuration;
enum vnf-indicator;
enum vnf-lcm-coordination;
}
description
"Identifies an interface produced by the VNF. Valid
values:
- VNF_CONFIGURATION
- VNF_INDICATOR
- VNF_LCM_COORDINATION";
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 {
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
}
}
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
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
}
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";
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
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";
}
container vnfm-interface-info {
leaf interface-name {
type string {
pattern 'vnf-[lcm|pm|fm]';
}
description
"Identifies an interface produced by the VNFM.";
}
container details {
container uri-components {
leaf scheme {
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
description
"Corresponds to the scheme component of a URI, as
per IETF RFC 3986.";
reference
"RFC 3986: URI Generic Syntax.";
}
container authority {
leaf userinfo {
type string;
description
"Corresponds to the userinfo field of the authority
component of a URI, as per IETF RFC 3986.
For HTTP and HTTPS URIs, the provisions in
sections 2.7.1 and 2.7.2 of IETF RFC 7230 apply,
respectively.";
reference
"RFC 3986: URI Generic Syntax.";
}
leaf host {
description
"Corresponds to the host field of the authority
component of a URI, as per IETF RFC 3986.";
reference
"RFC 3986: URI Generic Syntax.";
}
leaf port {
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
description
"Corresponds to the port field of the authority
component of a URI, as per IETF RFC 3986.";
reference
"RFC 3986: URI Generic Syntax.";
}
description
"Corresponds to the authority component of a URI,
as per IETF RFC 3986.";
reference
"RFC 3986: URI Generic Syntax.";
}
leaf path {
type string;
description
"Corresponds to the path component of a URI, as per
IETF RFC 3986.";
reference
"RFC 3986: URI Generic Syntax.";
}
leaf query {
type string;
description
"Corresponds to the query component of a URI, as per
IETF RFC 3986.";
reference
"RFC 3986: URI Generic Syntax.";
}
leaf fragment {
type string;
description
"Corresponds to the fragment component of a URI, as per
IETF RFC 3986.";
reference
"RFC 3986: URI Generic Syntax.";
}
description
"Provides components to build a Uniform Resource
Identifier (URI) where to access the interface end
point.";
}
leaf-list interface-specific-data {
type string;
description
"Provides additional details that are specific to the
type of interface considered.";
}
description
"Provide additional data to access the interface
endpoint (e.g. API URI prefix).";
}
leaf credentials {
type string;
description
"Provides credential enabling access to the interface.";
}
description
"Contains information enabling access to the NFV-MANO
interfaces produced by the VNFM (e.g. URIs and
credentials).";
reference
"GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties
information element";
}
container vnfm-oauth-server-info {
description
"Contains information to enable discovery of the
authorization server protecting access to
VNFM interfaces.";
reference
"GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties
information element";
}
container vnf-oauth-server-info {
description
"Contains information to enable discovery of the
authorization server to validate the access tokens
provided by the VNFM when the VNFM accesses the VNF
interfaces, if that functionality (token introspection) is
supported by the authorization server.";
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";
}
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
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.";
}
type union {
type internal-lifecycle-management-script-event;
type external-lifecycle-management-script-event;
}
description
"Describes VNF lifecycle event(s) or an external stimulus
detected on a VNFM reference point.
If the event is of type
internal-lifecycle-management-script-event, then depending
on whether the event is of type start-* or end-*, the
script associated with the VNF LCM operation needs to be
executed before the event, or after the event,
respectively.
On the other hand, if the event is of type
external-lifecycle-management-script-event, then the
script associated with the event needs to be executed
for the given VNF LCM operation.";
reference
"GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
information element";
}
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";
Mahesh Jethanandani
committed
status deprecated;
key "id";
description
"Describes the associated elements of a VNFD for a certain
Mahesh Jethanandani
committed
purpose during VNF lifecycle management.
Reason for deprecating this node - Information about which
VDU and VLD are involved in scaling is better defined by
ScalingDelta.";
reference
"GS NFV IFA011: Section 7.1.2 VNFD information element";
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 "/nfv:nfv/nfv:vnfd/nfv:int-virtual-link-desc/nfv: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";
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
"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";
}
list vnf-package-change-info {
Mahesh Jethanandani
committed
// IFA011ed332 defines the key as VersionSelector, which is
// nothing but a combination of src-vnfd-id, dst-vnfd-id and
// src-flavour-id. YANG cannot use a composite as a key, and
// therefore the model breaks it out as three elements that
// form the key.
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
key "src-vnfd-id dst-vnfd-id src-flavour-id";
leaf src-vnfd-id {
type string;
description
"Identifier of the source VNFD and the source VNF
package. Either the srcVnfdId or the dstVnfdId shall be
equal to the vnfdId of the VNFD containing this version
selector.";
reference
"GS NFV IFA011: Section 7.1.15.3 VersionSelector
information element";
}
leaf dst-vnfd-id {
type string;
description
"Identifier of the destination VNFD and the destination
VNF package. Either the srcVnfdId or the dstVnfdId shall
be equal to the vnfdId of the VNFD containing this version
selector.";
reference
"GS NFV IFA011: Section 7.1.15.3 VersionSelector
information element";
}
leaf src-flavour-id {
type string;
description
"Identifier of the deployment flavour in the source VNF
package for which this modification applies. It is up to
protocol design stage to decide whether there is further
optimization potential to apply one modification for
multiple srcFlavourIds.";
reference
"GS NFV IFA011: Section 7.1.15.3 VersionSelector
information element";
}
leaf additional-params-id {
type leafref {
path "../../df/lcm-operations-configuration/" +
"change-current-vnf-package-op-config/id";
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
}
description
"References the ChangeCurrentVnfPackageOpConfig information
element that defines the valid additional parameters for
the change.";
reference
"GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo
information element";
}
leaf-list modification-qualifier {
type enumeration {
enum "up";
enum "down";
enum "vnf-upgrade";
enum "vnf-update";
enum "vnf-downgrade";
}
description
"When present, it specifies the type of modification
resulting from transitioning from srcVnfdId to dstVnfdId.
The possible values include at least:
UP - indicating that the destination VNF version is newer
than the source version,
DOWN - indicating that the destination VNF version is
older than the source version.
When provided, UP and DOWN values shall always be
supported as the first value. In addition, a vendor may
specify additional values and provide such values to
qualify further the change between the two versions such
as VNF_UPGRADE, VNF_UPDATE, VNF_DOWNGRADE, etc.";
reference
"GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo
information element";
}
Mahesh Jethanandani
committed
leaf-list additional-modification-description {
type string;
description
"A VNF provider may define additional information to
Mahesh Jethanandani
committed
qualify further the change between the two versions,
such as 'VNF upgrade', 'VNF update', 'VNF downgrade',
etc.";
reference
"GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo
information element";
}
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
list component-mapping {
key "type";
leaf type {
type string;
description
"The type of component or property. Possible values
differentiate whether changes concern to some VNF
component (e.g., VDU, internal VLD, etc.) or property
(e.g., a Scaling Aspect, etc.).";
reference
"GS NFV IFA011: Section 7.1.15.4 ComponentMapping
information element";
}
leaf source-desc-id {
type string;
description
"Identifier of the component or property in the source
VNFD.";
reference
"GS NFV IFA011: Section 7.1.15.4 ComponentMapping
information element";
}
leaf dst-desc-id {
type string;
description
"Identifier of the component or property in the
destination VNFD.";
reference
"GS NFV IFA011: Section 7.1.15.4 ComponentMapping
information element";
}
leaf description {
type string;
description
"Human readable description of the component changes.";
reference
"GS NFV IFA011: Section 7.1.15.4 ComponentMapping
information element";
}
description
"Mapping information related to identifiers of components in
source VNFD and destination VNFD that concern to the change
process.";
reference
"GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo
information element";
}
leaf lcm-script-id {
type leafref {
path "../../lifecycle-management-script/id";
}
description
"Reference to a lifecycle management script that is executed
as part of this 'change current VNF Package' process.";
reference
"GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo
information element";
}
leaf coordination-id {
type leafref {
path "../../lcm-operations-coordination/id";
}
description
"Reference to applicable VNF LCM operation coordination
actions.";
reference
"GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo
information element";
}
leaf dst-flavour-id {
type leafref {
path "../../df/id";
}
description
"Identifies the deployment flavour in the destination VNF
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
package for which this change applies. The flavour ID is
defined in the destination VNF package.";
reference
"GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo
information element";
}
description
"Information used for performing the change of the current
VNF Package. More than one VNF Package Change Info construct
is possible to cater the possibility that changes of the
current VNF Package can be performed for different source
VNFDs.";
reference
"GS NFV IFA011: Section 7.1.2 VNFD information element";
}
list lcm-operations-coordination {
key "id";
leaf id {
type string;
description
"Identifies the specific VNF LCM operation coordination
action.";
reference
"GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
information element";
}
leaf description {
type string;
description
"Human readable description of the coordination action.";
reference
"GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
information element";
}
leaf endpoint-type {
type enumeration {
enum "mgmt";
enum "vnf";
}
description
"Specifies the type of the endpoint exposing the LCM
operation coordination such as other operations supporting
or management systems (e.g. an EM) or the VNF instance.
Allowed values:
• MGMT: coordination with other operation supporting
management systems.
• VNF: coordination with the VNF instance.";
reference
"GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
information element";
}
leaf coordination-stage {
type string;
description
"Indicates the coordination stage during the VNF LCM
operation.";
reference
"GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
information element";
}
leaf coordination-params {
type string;
description
"Input information needed by the external coordinating
entity.";
reference
"GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
information element";
}
description
"Provides information used for the coordination in VNF LCM
operations.";
reference
"GS NFV IFA011: Section 7.1.2 VNFD information element";
}