Problem aiming to solve
Proposal for describing a VNF that is based on osContainers.
Changes from v3.3.1
New Classes/Types:
- New Class VnfPackageChangeInfo: A VnfPackageChangeInfo information element describes the processes and rules to be used for performing the resource related tasks while assisting the "change current VNF Package" to change a VNF instance to a different VNF Package (destination package).When creating a VNF package, the VNF vendor can include VnfPackageChangeInfo information elements in the package which allow the package to act as a source package or as a destination package for a modification in relation to another package, which has been created earlier or at the same time. To populate a VnfPackageChangeInfo information element and the underlying related information elements, knowledge of both the source package and the destination package is required.
Attribute | Qualifier | Cardinality | Content | Description |
selector | M | 1 | VersionSelector | Information to identify the source and destination VNFD for the change, and the related deployment flavours. |
additionalParamsId | M | 0..1 | Identifier (Reference to ChangeCurrentVnfPackageOpConfig) | References the ChangeCurrentVnfPackageOpConfig information element that defines the valid additional parameters for the change. |
modificationQualifier | M | 1 | Enum | Specifies the type of modification resulting from transitioning from srcVnfdId to dstVnfdId. The possible values are: 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. |
additionalModificationDescription | M | 0..N | String | A VNF provider may define additional information to qualify further the change between the two versions, such as "VNF upgrade", "VNF update", "VNF downgrade", etc. |
componentMapping | M | 0..N | ComponentMapping | Mapping information related to identifiers of components in source VNFD and destination VNFD that concern to the change process. |
lcmScriptId | M | TBD | Identifier (Reference to LifeCycleManagementScript) | References a lifecycle management script that is executed as part of this "change current VNF Package" process. |
coordinationId | M | 0..N | Identifier (Referenceto VnfLcmOperationCoordination) | References applicable VNF LCM operation coordination actions. |
dstFlavourId | M | 1 | Identifier | Identifies the deployment flavour in the destination VNF package for which this change applies. The flavour ID is definedin the destination VNF package. |
- New Class VersionSelector: The VersionSelector information element allows to identify the source and destination VNFDs (and implicitly, VNF packages) for a "change current VNF Package", as well as the applicable source deployment flavour. The triplet (srcVnfdId, srcFlavourId, dstVnfdId) uniquely determines a change.
Attribute | Qualifier | Cardinality | Content | Description |
srcVnfdId | M | 1 | Identifier | Identifier of the source VNFD and the source VNF package. See note 1. |
dstVnfdId | M | 1 | Identifier | Identifier of the destination VNFD and the destination VNF package. See note 1. |
srcFlavourId | M | 1 | Identifier | Identifier of the deployment flavour in the source VNF package for which this modification applies. See note 2. |
NOTE 1: Either the srcVnfdId or the dstVnfdId shall be equal to the vnfdId of the VNFD containing this version selector. NOTE 2: It is up to protocol design stage to decide whether there is further optimization potential to apply one modification for multiple srcFlavourIds. |
- New Class ComponentMapping: With respect to a "change current VNF Package" process, a ComponentMapping information element defines a mapping between the identifier of a components or property in the source VNFD and the identifier of the corresponding component or property in the destination VNFD. Examples for components are VDUs, VLDs, etc., and an example for a property is a scaling aspect of the VNF.
Attribute | Qualifier | Cardinality | Content | Description |
componentType | M | 1 | Not specified | 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.). |
sourceDescId | M | 1 | Identifier | Identifier of the component or property in the source VNFD. See note. |
dstDescId | M | 1 | Identifier | Identifier of the component or property in the destination VNFD. See note. |
description | M | 0..1 | String | Human readable description of the component changes. |
NOTE: The attribute's content, an identifier value, references to the relevant descriptor parts in the VNFD. |
- New Class VnfLcmOperationCoordination: This information element defines the sets of information needed for a coordination action in a VNF lifecycle management operation.
Attribute | Qualifier | Cardinality | Content | Description |
vnfLcmOpCoordinationId | M | 1 | Identifier | Identifies the specific VNF LCM operation coordination action. |
description | M | 0..1 | String | Human readable description of the coordination action. |
endpointType | M | 1 | Enum | Specifies the type of the endpoint exposing the LCM operation coordination such as other operations supporting or management systems (e.g. an EM) or the VNF instance. Allowed values:
|
coordinationStage | M | 0..1 | Not specified | Indicates the coordination stage during the VNF LCM operation. |
coordinationParams | M | 0..1 | Not specified | Input information needed by the external coordinating entity. See note. |
NOTE: These attributes relate to the corresponding parameters used in the VNF LCM coordination operations (refer to clause 6.4.2.2 of ETSI GS NFV-IFA 008 [i.4]). |
Other Changes:
- New Property Vnfd:vnfpackagechangeinfo of type VnfPackageChangeInfo with cardinality 0..N - 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.
- New Property Vnfd:lcmOperationCoordination of type VnfLcmOperationCoordination with cardinality 0..N - Provides information used for the coordination in VNF LCM operations.
Changes from v4.1.1
New Classes/Types:
- New type OsContainerDesc which describes the member properties of a set of co-located container compute resources when these are realizing a VDU
The osContainerDesc element(s) are listed in the VNF Descriptor and referenced by the VDU element(s). Each VDU may be made up of group of containers, often called a "pod".
Attribute
Qualifier
Cardinality
Content
Description
osContainerDescId
M
1
Identifier
Unique identifier of this OsContainerDesc in the VNFD.
requestedCpuResources
M
0..1
Integer
Number of CPU resources requested for the container (e.g. in milli-CPU-s)
requestedMemoryResources
M
0..1
Number
Amount of memory resources requested for the container (e.g. in MB).
requestedEphemeralStorageResources
M
0..1
Number
Size of ephemeral storage resources requested for the container (e.g. in GB).
extendedResourceRequests
M
0..N
Not specified
An array of key-value pairs of extended resources required by the container.
See note.
cpuResourceLimit
M
0..1
Integer
Number of CPU resources the container can maximally use (e.g. in milli-CPU).
memoryResourceLimit
M
0..1
Number
Amount of memory resources the container can maximum use (e.g. in MB).
ephemeralStorageResourceLimit
M
0..1
Number
Size of ephemeral storage resources the container can maximum use (e.g. in GB).
swImageDesc
M
1
Identifier (Reference to SwImageDesc)
Describes the software image realizing this OS container.
bootData
M
0..1
Not specified
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.
virtualStorageDesc
M
0..N
Identifier (Reference to VirtualStorageDesc)
Links to virtualStorageDesc-s of the Vdu. The storages represented by the linked VirtualStorageDesc-s are attached to the OS Container as volumes. Shall be present in case the OS container requires storage resources.
monitoringParameters
M
0..N
MonitoringParameter
Specifies the virtualised resource related performance metrics on the OsContainerDesc level to be tracked by the VNFM. MonitoringParameter is defined in clause 7.1.11.3.
NOTE: Extended resources are to describe any type of resource provided by the container infrastructure. One example implementation of extended resources are “Extended Resources” in case the container infrastructure service is a Kubernetes® instance.
- New type MciopProfile which describes properties of the Managed Container Infrastructure Object Package (MCIOP) which are used during deployment of containerized workloads based on a MCIOP, associated to a VNF deployment flavour. An MCIOP is a hierarchical aggregate of information objects for OS container management and orchestration. Multiple MCIOPs can be included in a VNF Package. The MCIOP is expected to be realized by a Helm chart.
Each VnfDf in the VNF Descriptor would list the appropriate mciopProfiles.
Attribute
Qualifier
Cardinality
Content
Description
mciopId
M
1
Identifier
Identifies the MCIOP in the VNF package.
deploymentOrder
M
0..1
Integer
Indicates the order in which this MCIOP shall be deployed in relation to other MCIOPs. A lower value specifies an earlier deployment.
affinityOrAntiAffinityGroupId
M
0..N
Identifier (Reference to AffinityOrAntiAffinityGroup)
References the affinity or anti-affinity group(s) the MCIOP belongs to.
See note.
associatedVdu
M
0..N
Identifier (Reference to Vdu)
List of VDUs which are associated to this MCIOP and which are deployed using this MCIOP.
NOTE: Each identifier references an affinity or anti-affinity group which expresses affinity or anti-affinity relationships between the containerized workloads to be created using this MCIOP and the containerized workloads to be created using other MCIOP(s) in the same group.
- New types VirtualCpd, AdditionalServiceData, and ServicePortData
VirtualCpd - A type of Cpd that describes a requirement to create a virtual connection point allowing the access to a number of VNFC instances (based on their respective VDUs).
Attribute
Qualifier
Cardinality
Content
Description
vdu
M
1..N
Identifier (Reference to Vdu)
References the VDU(s) which implement this service.
additionalServiceData
M
0..N
AdditionalServiceData
Additional service identification data of the VirtualCp exposed to NFV-MANO.
(inherited attributes)
All attributes inherited from Cpd.
See note.NOTE: If this VirtualCp represents a load balancing virtual IP address of a VNFC realized by one or a set of OS containers and the IP address is configurable in the declarative descriptor of the corresponding MCIO, the attribute iPAddressAssignment shall be set to value=true in the L3AddressData.
AdditionalServiceData
Attribute
Qualifier
Cardinality
Content
Description
portData
M
1..N
ServicePortData
Service port numbers exposed by the VirtualCp.
serviceData
M
0..1
Not specified
Service matching information exposed by the VirtualCp.
See note.
NOTE: This attribute shall only be present if additional information is needed to identify the service termination within the VNF, such as for example a url path information in an HTTP request required to allow a single VirtualCp IP address to be used for several HTTP based services that use the same portnumber.
ServicePortData
Attribute
Qualifier
Cardinality
Content
Description
name
M
1
String
The name of the port exposed by the VirtualCp.
protocol
M
1
Enum
The L4 protocol for this port exposed by the VirtualCp.
VALUES:
· TCP
· UDP
· SCTP
port
M
1
Integer
The L4 port number exposed by the VirtualCp.
portConfigurable
M
1
Boolean
Specifies whether the port attribute value is allowed to be configurable.
...
- New property vnfd::osContainerDesc of type osContainerDesc OsContainerDesc with cardinality 0..N which 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. Only one of virtualComputeDesc or osContanerDesc may be present in the vnfd
- New property vnfd::virtualCpd which describes a virtual connection point(s) allowing to access a set of VNFC instances (based on their respective VDUs).
- New property VnfExtCpd::virtualCpd which 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).
- New property vdu::osContainerDesc of type identifier (Reference to osContainerDesc) with cardinality 0..N which 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.
- Modification of VduCpd::vnictype to include several new types (BRIDGE, IPVLAN, LOOPBACK, MACVLAN, PTP, VLAN, HOST-DEVICE)
- Modification to the cardinality of SwImageDesc::diskFormat, SwImageDesc::minDisk to allow cardinality of 0..N
- New property VndDf::mciopProfile of type mciopProfile with cardinality 0..N which describes additional instantiation data for the MCIOPs used in this deployment flavour. This attribute shall be present if the DF references containerized workloads based on a MCIOP.
- New property VirtualStorageDesc::volumeTemplate of type Boolean with cardinality 0..1 which indicates whether the virtual storage descriptor shall be used as template, i.e. if the virtual storage resource shall be instantiated per VNFC instance. If the value is true (default), a persistent virtual storage resource shall be instantiated for each VNFC instance that is based on a VDU referring to this virtual storage descriptor. If the value is false, a single persistent 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.
...