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 {
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.";
}
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
list trunk-port {
key "parent-port-cpd";
description
"Specifies the logical topology between an intCpd in
trunk mode, used to describe a trunk port, and other
intCpds used to describe subports of the same trunk.
Cardinality 0 is used when there is no intCpd with
trunkmode = True, or when no individual intCpds to
describe the subports are included in the Vdu.";
reference
"GS NFV IFA011: Section 7.1.6.2, Vdu information element";
leaf parent-port-cpd {
type leafref {
path "../int-cpd/id";
}
description
"Reference of the internal VDU CPD which is used to
instantiate the parent port in a logical trunk model.";
reference
"GS NFV IFA011: Section 7.1.6.11, Information elements
related to TrunkPort Topology.";
}
leaf segmentation-type {
default "vlan";
type enumeration {
enum "vlan";
enum "inherit";
}
description
"Specifies the encapsulation type for the traffics
coming in and out of the trunk subport.
Values:
• VLAN: the subport uses VLAN as encapsulation type.
• INHERIT: the subport gets its segmentation type
from the network it’s connected to.
Cardinality 0 means default value VLAN is used.";
reference
"GS NFV IFA011: Section 7.1.6.11, Information elements
related to TrunkPort Topology.";
}
list sub-port-list {
key "sub-port-cpd";
description
"Provides information used for the subport.";
reference
"GS NFV IFA011: Section 7.1.6.11, Information elements
related to subport of a trunk parent port.";
leaf sub-port-cpd{
type leafref {
path "../../int-cpd/id";
}
description
"Reference of the internal VDU CPD which is used
to instantiate the subport in a logical trunk model.";
reference
"GS NFV IFA011: Section 7.1.6.12, Information elements
related to subport of a trunk parent port.";
}
leaf segmentation-id {
type unit32;
description
"Specifies the segmentation ID for the subport, which is
used to differentiate the traffics on different networks
coming in and out of the trunk port. If a value is provided
here it may be overridden by a value provided at run time
when the infrastructure doesn’t support mapping of
segmentation IDs.";
reference
"GS NFV IFA011: Section 7.1.6.12, Information elements
related to subport of a trunk parent port.";
}
}
}
}
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.";
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
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"';
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
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"';
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
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.";
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
"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" {
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
"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.";
}
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
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";
}
}
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
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";
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
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.";
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
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.";
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
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
"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";
}
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
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";
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
container change-current-vnf-package-op-config {
description
"Configuration parameters for the
ChangeCurrentVnfPackageOpConfig 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 change current VNF
Package operation.";
reference
"GS NFV IFA011: Section 7.1.5.13
ChangeCurrentVnfPackageOpConfig information
element";
}
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
}
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 {
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
}
}
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
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
}
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";
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
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 {
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
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 {
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
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";
}
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
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";
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
"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.
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
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/parameter/key";
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
3526
3527
}
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";
}
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
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
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
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
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";
}