Newer
Older
import ietf-inet-types {
prefix inet;
}
import ietf-yang-types {
prefix yang;
}
description
"Models for VNFD according to GS NFV-IFA 011.";
![Miguel Angel Reina Ortega Miguel Angel Reina Ortega's avatar](/rep/uploads/-/system/user/avatar/20/avatar.png?width=36)
Miguel Angel Reina Ortega
committed
revision 2022-03-08 {
description
"Version 3.6.1.
Data structures to support VNFD according to
ETSI GS NFV-IFA 011 Release 3.";
}
revision 2021-07-05 {
description
"Version 3.5.1.
Data structures to support VNFD according to
ETSI GS NFV-IFA 011 Release 3.";
}
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";
}
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";
}
}
}
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
186
187
188
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
Values
• affinity
• anti-affinity.";
reference
"GS NFV IFA011: Section 7.1.8.11,
LocalAffinityOrAntiAffinityRule information element.";
}
leaf scope {
type affinity-scope;
description
"Specifies the scope of the rule.
Values:
• NFVI-PoP
• Zone
• ZoneGroup
• NFVI-node
• 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.";
}
}
}
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
307
308
309
310
311
312
313
314
315
316
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";
"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.
Values:
• 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 os-container-desc {
type leafref {
path "../../os-container-desc/id";
}
description
"Describes CPU, memory requirements and limits, and
software images of the OS Containers realizing this
Vdu corresponding to OS Containers sharing the same
host and same network namespace. Each unique identifier
is referenced only once within one VDU.";
reference
"GS NFV IFA011: Section 7.1.6.2, VDU 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(s)
created from virtualComputeDesc or osContainerDesc
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.";
}
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.";
}
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-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.12, Information elements
related to to subport of a trunk parent port.";
}
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 when each of the VNFC instances of the
VNF is intended to be deployed in a single VM.";
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.";
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
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";
}
"Indicates the policy for CPU pinning.
Values:
• static
• 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
"List of rules that should be considered during the
allocation of the virtual CPUs to logical CPUs in case
of 'static' virtualCpuPinningPolicy.";
"GS NFV IFA011: Section 7.1.9.2.4,
VirtualCpuPinningData information element.";
description
"The virtual CPU pinning configuration for the
virtualised compute resource.";
reference
"GS NFV IFA011: Section 7.1.9.2.3,
VirtualCpuData information element.";
}
}
list virtual-disk {
key "id";
description
"The local or ephemeral disk(s) of the virtualised compute.";
reference
"GS NFV IFA011: Section 7.1.9.2.2, VirtualComputeDesc
Information element.";
leaf id {
type string;
description
"Unique identifier for the list of virtual disks.";
}
uses block-storage-data;
}
list virtual-storage-desc {
key "id";
description
"Storage requirements for a Virtual Storage instance
attached to the VNFC created from this VDU";
leaf id {
type string;
description
"Unique identifier of this VirtualStorageDesc in the
VNFD.";
reference
"GS NFV IFA011: Section 7.1.9.4, Information elements
related to Virtual Storage.";
}
leaf type-of-storage {
// Needed to be able to onboard images
type identityref {
base storage-type;
"Type of virtualised storage resource
Values:
• 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"';
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
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"';
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
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
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.";
}
}
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
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
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
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
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
list os-container-desc {
key "id";
description
"Defines descriptors of container compute resources to be used
by the VNF when the VDUs of the VNF are realized by a set of
OS Containers sharing the same host and same networking namespace.";
reference
"GS NFV IFA011: Section 7.1.2, VNFD Information element.";
leaf id {
type string;
description
"Unique identifier of this OsContainerDesc in the VNFD.";
reference
"GS NFV IFA011: Section 7.1.6.13, OsContainerDesc
information element.";
}
leaf name {
type string;
description
"Human readable name of this OS container.";
reference
"GS NFV IFA011: Section 7.1.6.13, OsContainerDesc
information element.";
}
leaf description {
type string;
description
"Human readable description of this OS container.";
reference
"GS NFV IFA011: Section 7.1.6.13, OsContainerDesc
information element.";
}
leaf requested-cpu-resources {
type uint32;
description
"Number of CPU resources requested for the container
(e.g. in milli-CPU-s).";
reference
"GS NFV IFA011: Section 7.1.6.13, OsContainerDesc
information element.";
}
leaf requested-memory-resources {
type uint64;
description
"Amount of memory resources requested for the container
(e.g. in MB).";
reference
"GS NFV IFA011: Section 7.1.6.13, OsContainerDesc
information element.";
}
leaf requested-ephemeral-storage-resources {
type uint64;
units "GB";
description
"Size of ephemeral storage resources requested for the container
(e.g. in GB).";
reference
"GS NFV IFA011: Section 7.1.6.13, OsContainerDesc
information element.";
}
list extended-resource-requests {
key "key";
leaf key {
type string;
}
leaf value {
type string;
}
description
"An array of key-value pairs of extended resources
required by the container.";
reference
"GS NFV IFA011: Section 7.1.6.13, OsContainerDesc
information element.";
}
leaf cpu-resource-limit {
type uint32;
description
"Number of CPU resources the container can maximally use
(e.g. in milli-CPU).";
reference
"GS NFV IFA011: Section 7.1.6.13, OsContainerDesc
information element.";
}
leaf memory-resource-limit {
type uint64;
description
"Amount of memory resources the container can maximally
use(e.g. in MB).";
reference
"GS NFV IFA011: Section 7.1.6.13, OsContainerDesc
information element.";
}
leaf ephemeral-storage-resource-limit {
type uint64;
units "GB";
description
"Size of ephemeral storage resources the container can
maximally use(e.g. in GB).";
reference
"GS NFV IFA011: Section 7.1.6.13, OsContainerDesc
information element.";
}
list huge-page-resources {
key "key";
max-elements "1";
leaf key {
type string;
}
leaf value {
type string;
}
description
"An array of key-value pairs of HugePages resources
requested for the container, which the container
can maximally use (e.g., \"hugepages-2Mi: 100Mi\").";
reference
"GS NFV IFA011: Section 7.1.6.13, OsContainerDesc
information element.";
}
leaf sw-image-desc {
type leafref {
path "../../sw-image-desc/id";
}
description
"Describes the software image realizing this OS container.";
reference
"GS NFV IFA011: Section 7.1.6.13, OsContainerDesc
information element.";
}
list boot-data {
key "key";
max-elements "1";
leaf key {
type string;
}
leaf value {
type string;
}
description
"Contains a string or a URL to a file contained in the VNF
package used to customize a container resource at boot time.
The bootData may contain variable parts that are replaced
by deployment specific values before being sent.";
reference
"GS NFV IFA011: Section 7.1.6.13, OsContainerDesc
information element.";
}
list monitoring-parameter {
key "id";
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;
description
"Specifies the virtualised resource related performance
metrics on the OsContainerDesc level to be tracked by
the VNFM.";
reference
"GS NFV IFA011: Section 7.1.6.13, OsContainerDesc
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.";
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
"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" {
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
"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.";
}
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
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.";
}
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
leaf externally-managed {
type enumeration {
enum required;
enum allowed;
}
description
"Specifies the intent of the VNF designer w.r.t. the
internal VL instances created from this descriptor being
externally managed.
Values:
REQUIRED
ALLOWED
Default: ALLOWED
If the VNFD does not reference any LCM script and if the
'vnfmInfo' attribute in the 'Vnfd' information element
indicates that the VNF can be managed by any ETSI NFV
compliant VNFM, this attribute shall not be present.";
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";
}
}
list vip-cpd {
key "id";
leaf-list int-cpd {
path "../../vdu/int-cpd/id";
}
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.17.2, VipCpd information element.";
leaf int-virtual-link-desc {
path "../../int-virtual-link-desc/id";
"Reference of the internal VLD which this VipCpd
connects to";
"GS NFV IFA011: Section 7.1.17.2 VipCpd information element.";
}
leaf dedicated-ip-address {
type boolean;
description
"If set to true, it indicates that the VIP address
shall be different from the addresses allocated to
all of the VduCp instances associated to it.
If set to false, the VIP address shall be the same
as one of the VduCp instances associated to it.";
"GS NFV IFA011: Section 7.1.17.2 VipCpd information element.";
}
leaf vip-function {
type identityref {
base vip-function;
}
description
"It indicates the function the virtual IP address is used
for.
Values:
• high availability
• load balancing.";
"GS NFV IFA011: Section 7.1.17.2, VipCpd information element.";
}
uses cpd;
description
"Describes virtual IP addresses to be shared among instances
of connection points. See clause 7.1.17.";
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";
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
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";
}
"References of the affinity or anti-affinity
"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";
}
"References of the affinity or anti-affinity
group(s) the VnfVirtualLinkDesc belongs to.";
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element.";
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
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
Values:
• Ethernet
• MPLS
• ODU2
• Pseudo-Wire
• etc.";
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.
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.
Values:
• IPV4
"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.
Values:
• SLAAC
• DHCPV6-STATEFUL
• DHCPV6-STATELESS
May be present when the value of the ipVersion
attribute is 'IPV6' and shall be absent otherwise.";
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
"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.";
}
}
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
list vip-cp-profile {
key "id";
description
"Defines the minimum and maximum number of VIP CP instances
created from each of the VipCpds used in this flavour.
Shall be present if the deployment flavour can contain
VIP CP instances.";
reference
"GS NFV IFA011: Section 7.1.8.2, VnfDf information
element.";
leaf id {
type leafref {
path "../../../vip-cpd/id";
}
description
"Uniquely references a VIP CPD.";
reference
"GS NFV IFA011: Section 7.1.8.20, VipCpProfile information
element.";
}
leaf min-number-of-instances {
type uint16;
description
"Minimum number of instances of the VIP CP based on the
referenced VIP CPD that is permitted to exist for this
flavour. Shall be zero or greater.";
reference
"GS NFV IFA011: Section 7.1.8.20, VipCpProfile information
element.";
}
leaf max-number-of-instances {
type uint16;
description
"Maximum number of instances of the VIP CP based on the
referenced VIP CPD that is permitted to exist for this
flavour. Shall be greater than zero and not less than
the value of 'minNumberOfInstances'.";
reference
"GS NFV IFA011: Section 7.1.8.20, VipCpProfile information
element.";
}
}
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
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";
}
}
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
list vip-cp-level {
key "id";
description
"Indicates the number of VIP CP instances based on
a particular VipCpd to be part of this level.
If a particular VipCpd is defined with
minNumberOfInstances= maxNumberOfInstances=1 in the
vipCpProfile of the DF, that vipCpd may be omitted
from the 'vipCpLevel' attribute, which shall be
interpreted that one related VIP CP instance is
part of this level.";
reference
"GS NFV IFA011: Section 7.1.8.7, InstantiationLevel information
element.";
leaf id {
type leafref {
path "../../../../vip-cpd/id";
}
description
"Uniquely references a VIP CPD.";
reference
"GS NFV IFA011: Section 7.1.10.6, VipCpLevel information
element.";
}
leaf number-of-instances {
type uint16;
description
"Number of VIP CP instances based on the referenced
VipCpd to deploy for an instantiation level or for
a scaling delta. Shall be zero or greater.";
reference
"GS NFV IFA011: Section 7.1.10.6, VipCpLevel 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";
}
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
"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.
Values:
• Scale VNF
• Scale VNF to level
• Heal VNF
• Operate VNF
• etc.";
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
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";
}
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
}
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 affinityorAntiaffinity {
mandatory true;
type affinity-type;
description
"Specifies the type of relationship that the members of
the group have.
Values:
• AFFINITY
• 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.
Values:
• NFVI-PoP
• Zone
• ZoneGroup
• NFVI-node
• 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.
Values:
• 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;
"Identifies an interface produced by the VNF.
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 {
}
}
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";
}
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
list supported-coordination-actions {
key "vnf-lcm-operation";
description
"References applicable LCM coordination actions
that can be invoked during each of the listed
VNF LCM operations.";
reference
"GS NFV IFA011: Section 7.1.8.2 VnfDf information
element";
leaf vnf-lcm-operation {
type enumeration {
enum "instantiate";
enum "scale";
enum "scale_to_level";
enum "change_flavour";
enum "terminate";
enum "heal";
enum "operate";
enum "change_ext_conn";
enum "modify_info";
enum "create_snapshot";
enum "revert_to_snapshot";
}
description
"Identifies the specific VNF LCM operation.
Values:
• INSTANTIATE
• SCALE
• SCALE_TO_LEVEL
• CHANGE_FLAVOUR
• TERMINATE
• HEAL
• OPERATE
• CHANGE_EXT_CONN
• MODIFY_INFO
• CREATE_SNAPSHOT
• REVERT_TO_SNAPSHOT.";
reference
"GS NFV IFA011: Section 7.1.16.3 LcmCoordinationActionMapping
information element";
}
leaf coordination-action-name {
type leafref {
path "../../../lcm-operations-coordination/coordination-action-name";
}
description
"References to the names of coordination actions that can be
invoked during the LCM operation indicated by the
'vnfLcmOperation' attribute.
The related coordination actions shall either be declared
in the VnfLcmOperationCoordination information element
in the same VNFD, or shall be well-known standardized
coordination action name identifiers.";
reference
"GS NFV IFA011: Section 7.1.16.3 LcmCoordinationActionMapping
information element";
}
}
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
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
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
}
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";
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
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
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
list vip-cp-delta {
key "id";
description
"Number of VIP CP instances based on a particular
VipCpd to be created or removed.";
reference
"GS NFV IFA011: Section 7.1.10.4, ScalingDelta information
element.";
leaf id {
type leafref {
path "../../../../../../vip-cpd/id";
}
description
"Uniquely references a VIP CPD.";
reference
"GS NFV IFA011: Section 7.1.10.6, VipCpLevel information
element.";
}
leaf number-of-instances {
type uint16;
description
"Number of VIP CP instances based on the referenced
VipCpd to deploy for an instantiation level or for
a scaling delta. Shall be zero or greater.";
reference
"GS NFV IFA011: Section 7.1.10.6, VipCpLevel information
element.";
}
}
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";
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
3460
3461
list dependencies {
key "id";
description
"Specifies the order in which instances of the VNFCs
have to be created.";
reference
"GS NFV IFA011: Section 7.1.8.2 VnfDf information element";
leaf id {
type string;
}
leaf primary-id {
type leafref {
path "../../vdu-profile/id";
}
description
"References a VduProfile for describing dependencies
between VNFCs in terms of primary entities.";
reference
"GS NFV IFA011: Section 7.1.8.19 Dependencies
information element";
}
leaf secondary-id {
type leafref {
path "../../vdu-profile/id";
}
description
"References a VduProfile for describing dependencies
between VNFCs in terms of secondary entities.";
reference
"GS NFV IFA011: Section 7.1.8.19 Dependencies
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 {
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
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 {
3536
3537
3538
3539
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
3594
3595
3596
3597
3598
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";
}
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
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";
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
"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.
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
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";
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
}
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.
• 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";
}
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
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-action-name {
path "../../lcm-operations-coordination/coordination-action-name";
"Reference to applicable VNF LCM operation coordination actions
that can be invoked during a VNF package change as defined by
the 'selector' attribute.";
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
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 "coordination-action-name";
leaf coordination-action-name {
type string;
description
"Identifies the specific VNF LCM operation coordination
action.Shall be unique within the scope of VNFD";
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
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.
• MGMT: coordination with other operation supporting
• VNF: coordination with the VNF instance.";
reference
"GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
information element";
}
leaf coordination-stage {
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
type enumeration {
enum "start";
enum "end";
}
description
"Indicates whether the coordination action is invoked before
or after all other changes performed by the VNF LCM
operation.
Values:
• START:the coordination action is invoked after receiving
the grant and before the LCM operation performs any
other changes.
• END:the coordination action is invoked after the LCM
operation has performed all other changes.
This attribute shall be omitted if the coordination action
is intended to be invoked at an intermediate stage of the
LCM operation, i.e. neither at the start nor at the end.
In this case, the actual instant during the LCM operation
when invoking the coordination is determined by means outside
the scope of the present document such as VNFM-internal logic
or LCM script.";
reference
"GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
information element";
}
list input-parameter {
key "key";
leaf key {
type string;
}
leaf value {
type string;
}
description
"Input parameter needed by the external coordinating
entity.";
reference
"GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination
information element";
}
list output-parameter {
key "key";
leaf key {
type string;
}
leaf value {
type string;
}
description
"Output parameter provided 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";
}
leaf-list mciop-id {
type string;
description
"Identifies the MCIOP(s) in the VNF package, used in
containerized workload management, when the VNF is
realized by a set of OS containers.";
reference
"GS NFV IFA011: Section 7.1.2, VNFD Information element.";
}