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
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";
}
ppree
committed
list standardized-network-interface-requirements {
key "key";
max-elements "1";
leaf key {
type string;
}
leaf value {
type string;
}
description
"The requirements on standardized network interface
capabilities, e.g., SR-IOV or secondary container
cluster network interface deployment requirements.";
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
ppree
committed
"The additional network interface requirements beyond those
specified in the standardizedNetworkInterfaceRequirementsattribute.
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";
}
}
}
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
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.";
}
}
}
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
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
grouping logical-node {
list logical-node {
key "id";
leaf id {
type string;
description
"Identifies this set of logical node requirements.";
reference
"GS NFV IFA011: Section 7.1.9.6, LogicalNodeRequirements
Information elements.";
}
list requirement-detail {
key "key";
min-elements 1;
leaf key {
type string;
}
leaf value {
type string;
}
description
"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.";
reference
"GS NFV IFA011: Section 7.1.9.6, LogicalNodeRequirements
information element.";
}
}
}
grouping request-additional-capability {
list request-additional-capability {
key "name";
leaf name {
type string;
description
"Identifies a requested additional capability for the
VDU. ETSI GS NFV-IFA 002 [i.1] describes acceleration
capabilities.";
reference
"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.";
reference
"GS NFV IFA011: Section 7.1.9.5,
RequestedAdditionalCapabilityData Information
element.";
}
leaf min-version {
type string;
description
"Identifies the minimum version of the requested
additional capability.";
reference
"GS NFV IFA011: Section 7.1.9.5,
RequestedAdditionalCapabilityData Information element.";
}
leaf preferred-version {
type string;
description
"Identifies the preferred version of the requested
additional capability.";
reference
"GS NFV IFA011: Section 7.1.9.5,
RequestedAdditionalCapabilityData Information element.";
}
list target-performance-parameters {
key "key";
leaf key {
type string;
}
leaf value {
type string;
}
description
"Identifies specific attributes, dependent on the
requested additional capability type.";
reference
"GS NFV IFA011: Section 7.1.9.5,
RequestedAdditionalCapabilityData Information element.";
}
}
}
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
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
Additional values of the attribute for VDUs realized
by one or set of OS containers:
• BRIDGE
• IPVLAN
• LOOPBACK
• MACVLAN
• PTP
• VLAN
• HOST-DEVICE
etc.";
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.";
}
}
}
uses request-additional-capability;
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
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
900
901
902
903
904
905
906
907
leaf-list mcio-constraint-params {
type enumeration {
enum "affinityNfviPop";
enum "affinityZone";
enum "affinityZoneGroup";
enum "affinityNfviNode";
enum "affinityCisNode";
enum "antiAffinityNfviPop";
enum "antiAffinityZone";
enum "antiAffinityZoneGroup";
enum "antiAffinityNfviNode";
enum "antiAffinityCisNode";
enum "localAffinityNfviPop";
enum "localAffinityZone";
enum "localAffinityZoneGroup";
enum "localAffinityNfviNode";
enum "localAffinityCisNode";
enum "localAntiAffinityNfviPop";
enum "localAntiAffinityZone";
enum "localAntiAffinityZoneGroup";
enum "localAntiAffinityNfviNode";
enum "localAntiAffinityCisNode";
enum "nodeAdditionalCapabilitySsd";
enum "nodeAdditionalCapabilityDpdk";
enum "nodeAdditionalCapabilitySriov";
enum "nodeAdditionalCapabilityGpu";
enum "nodeAdditionalCapabilityFpga";
enum "nodeAdditionalCapabilityCpuPin";
enum "nodeCapabilityLogicalNuma";
enum "nodePool";
}
description
"The parameter names for constraints expected to be
assigned to MCIOs realizing this Vdu.The value specifies
the standardized semantical context of the MCIO
constraints and the parameter names for the MCIO
constraints in the MCIO declarative descriptor.
The mcioConstraintParams attribute shall have one of the
following values, expressing the associated semantical
context.
VALUES:
• affinityNfviPop
• affinityZone
• affinityZoneGroup
• affinityNfviNode
• affinityCisNode
• antiAffinityNfviPop
• antiAffinityZone
• antiAffinityZoneGroup
• antiAffinityNfviNode
• antiAffinityCisNode
• localAffinityNfviPop
• localAffinityZone
• localAffinityZoneGroup
• localAffinityNfviNode
• localAffinityCisNode
• localAntiAffinityNfviPop
• localAntiAffinityZone
• localAntiAffinityZoneGroup
• localAntiAffinityNfviNode
• localAntiAffinityCisNode
• nodeAdditionalCapabilitySsd
• nodeAdditionalCapabilityDpdk
• nodeAdditionalCapabilitySriov
• nodeAdditionalCapabilityGpu
• nodeAdditionalCapabilityFpga
• nodeAdditionalCapabilityCpuPin
• nodeCapabilityLogicalNuma
• nodePool.";
reference
"GS NFV IFA011: Section 7.1.6.2, Vdu Information elements.";
}
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
container mcio-identification-data {
leaf name {
mandatory true;
type string;
description
"The name of the mcio.";
}
leaf type {
mandatory true;
type enumeration {
enum "Deployment";
enum "StatefulSet";
}
description
"The type of the mcio.";
}
description
"Name and type of the MCIO that realizes this VDU.It allows
the VNFM to identify the MCIO e.g. when querying the CISM.
It shall be present when the VDU is realized by one or a
set of OS containers and shall be absent otherwise.";
reference
"GS NFV IFA011: Section 7.1.6.2, VDU Information
element.";
}
}
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.";
}
uses request-additional-capability;
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.";
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
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"';
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
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"';
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
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.";
}
}
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
uses nfvi-maintenance-info {
description
"When present, provides information on the rules to be
observed when an instance based on this
VirtualStorageDesc is impacted during NFVI operation
and maintenance (e.g. NFVI resource upgrades).";
reference
"GS NFV IFA011: Section 7.1.9.4, Information elements
related to Virtual Storage.";
}
leaf per-vnfc-instance {
type boolean;
default "true";
description
"Indicates whether the virtual storage resource shall be
instantiated per VNFC instance.
If the value is true (default), a virtual storage
resource shall be instantiated for each VNFC instance
that is based on a VDU referring to this virtual storage
descriptor and have the same lifetime as the VNFC instance.
If the value is false, a single virtual storage resource
shall be instantiated with a lifetime independent of the
lifetime of individual VNFC instances based on a VDU
referring to this virtual storage descriptor.The storage
resource shall have the same lifetime as the VNF instance";
reference
"GS NFV IFA011: Section 7.1.9.4, Information elements
related to Virtual Storage.";
}
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
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 "extended-resource amount";
leaf extended-resource{
description
"The hardware platform specific extended resource.";
leaf amount {
type uint32;
description
"Requested amount of the indicated extended resource.";
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
}
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 "hugepage-size";
max-elements "1";
leaf hugepage-size{
type uint32;
description
"Specifies the size of the hugepage.";
leaf requested-size {
type uint32;
description
"Specifies the total size required for all the
hugepages of the size indicated by hugepage-size.";
leaf size-unit {
type scaler-units-size;
description
"Specifies the unit used for both hugepage-size
and requested-size";
}
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.";
}
leaf boot-data {
type string;
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
1510
1511
1512
1513
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.";
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
"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" {
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
"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.";
}
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
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 {
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.";
}
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
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
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.";
reference
"GS NFV-IFA011: Section 7.1.3.2, VnfExtCpd information
element";
}
leaf virtual-cpd {
type leafref {
path "../../virtual-cpd/id";
}
description
"References the Virtual CPD which is used to describe a
virtual connection point allowing to access a set of
VNFC instances (based on their respective VDUs).";
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.";
}
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
list virtual-cpd {
key "id";
leaf-list vdu {
type leafref {
path "../../vdu/id";
}
description
"References the VDU(s) which implement this service.";
reference
"GS NFV IFA011: Section 7.1.18.2, Information elements
related to VirtualCpd.";
}
container additional-service-data {
list port-data {
key "name";
leaf name {
type string;
description
"The name of the port exposed by the VirtualCp.";
reference
"GS NFV IFA011: Section 7.1.18.4, ServicePortData
information element.";
}
leaf protocol {
type enumeration {
enum tcp;
enum udp;
enum sctp;
}
description
"The L4 protocol for this port exposed by the VirtualCp.
Values:
• TCP
• UDP
• SCTP";
reference
"GS NFV IFA011: Section 7.1.18.4, ServicePortData
information element.";
}
leaf port {
type uint64;
description
"The L4 port number exposed by the VirtualCp.";
reference
"GS NFV IFA011: Section 7.1.18.4, ServicePortData
information element.";
}
leaf port-configurable {
type boolean;
description
"Specifies whether the port attribute value
is allowed to be configurable.";
reference
"GS NFV IFA011: Section 7.1.18.4, ServicePortData
information element.";
}
description
"Service port numbers exposed by the VirtualCp.";
reference
"GS NFV IFA011: Section 7.1.18.3, AdditionalServiceData
information element";
}
leaf service-data {
type string;
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
description
"Service matching information exposed by the VirtualCp.";
reference
"GS NFV IFA011: Section 7.1.18.3, AdditionalServiceData
information element";
}
description
"Additional service identification data of the VirtualCp
exposed to NFV-MANO.";
reference
"GS NFV IFA011: Section 7.1.18.2, Information elements
related to VirtualCpd";
}
uses cpd;
description
"Describes a virtual connection point allowing to access a
set of VNFC instances (based on their respective VDUs).";
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";
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
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.";
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
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.";
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
"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.";
}
}
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
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.";
}
}
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
list mciop-profile {
key "id";
description
"Describes additional instantiation data for the MCIOPs
used in this deployment flavour.This attribute shall be
present if the DF references (via the vduProfile)
containerized workloads based on a MCIOP.";
reference
"GS NFV IFA011: Section 7.1.8.2, VnfDf information
element.";
leaf id {
type string;
description
"Identifies the MCIOP in the VNF package.";
reference
"GS NFV IFA011: Section 7.1.8.19, MciopProfile
information element.";
}
leaf deployment-order {
type uint32;
description
"Indicates the order in which this MCIOP shall
be deployed in relation to other MCIOPs. A lower
value specifies an earlier deployment.";
reference
"GS NFV IFA011: Section 7.1.8.19, MciopProfile
information element.";
}
leaf-list affinity-or-anti-affinity-group-id {
type leafref {
path "../../affinity-or-anti-affinity-group/id";
}
description
"References the affinity or anti-affinity group(s)
the MCIOP belongs to.";
reference
"GS NFV IFA011: Section 7.1.8.19, MciopProfile
information element.";
}
leaf-list associated-vdu {
type leafref {
path "../../../vdu/id";
}
description
"List of VDUs which are associated to this MCIOP
and which are deployed using this MCIOP";
reference
"GS NFV IFA011: Section 7.1.8.19, MciopProfile
information element.";
}
}
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
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";
}
}
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
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.";
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
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";
leaf target-scale-levels-supported {
type boolean;
default false;
description
"Signals whether target scale levels are supported
by this VNF during instantiation.
Default is FALSE, i.e. 'not supported'.";
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";
}
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
}
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
• container-namespace";
"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";
}
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
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";
}
}
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
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
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
}
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";
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
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
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
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";
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
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 {
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
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 {
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
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";
}
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
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";
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
"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.
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
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";
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
}
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";
}
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
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";
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
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 {
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
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.";
}