API / interface mapping ETSI NFV vs. OpenStack Blazar

Resource reservation mapping tables

The following tables are an attempt to map the resource reservation APIs / interfaces between ETSI NFV-IFA005 and Blazar for OpenStack.

I. Create Compute Resource Reservation

I.a) Create compute pool/resources reservation REQUEST

ETSI NFV IFA005 Blazar Description Comment
- name Name of the lease/reservation.  
computePoolReservation [1]: ComputePoolReservation reservations: resource_type = ‘virtual:instance’   Instance reservation is only available from OpenStack Pike release.
  -   amount Amount of virtual instances of a given flavour to be reserved.  
  numCpuCores [1]: Integer   vcpus Number of vCPU cores to be reserved.  
  numVcInstances [1]: Integer   - Number of virtualized container instances to be reserved (without explicitly reserved specific virtual containers).  
  virtualMemSize [1]: Number   memory_mb Size of virtual memory to be reserved.  
  -   disk_gb Size of (disk) storage to be reserved.  
computeAttributes [0..1]:
VirtualComputeAttributes
ReservationData
  - Information specifying additional attributes of the compute resource to be reserved. Not yet available in Pike release. Blueprint available in [1]
affinityConstraint [0..N]: AffinityOrAnti AffinityConstraint   affinity: Boolean Element with (anti-)affinity information of the virtualised compute resources to reserve. For the resource reservation at resource pool granularity level, it defines the (anti-)affinity information of the virtual compute pool resources to reserve. For the resource reservation at virtual container granularity level, it defines the (anti-)affinity information of the virtualisation container(s) to reserve. Only boolean (anti-)affinity rule in Pike release. Blueprint available in [2]
antiAffinityConstraint [0..N]: AffinityOrAnti AffinityConstraint
startTime [0..1]: TimeStamp start_date [0..1]: DateTime Timestamp indicating the earliest time to start the consumption of the resources.

Resources are reserved for immediate use if:

  • (Blazar) the start_date parameter is omitted
  • (ETSI NFV IFA005) the startTime value is 0
endTime [0..1]: TimeStamp end_date [0..1]: DateTime Timestamp indicating the end time of the reservation (when the issuer of the request expects that the resources will no longer be needed) and used by the VIM to schedule the reservation.
  • (ETSI NFV IFA005) If the attribute is not present, resources are reserved for unlimited usage time.
  • (Blazar) If the parameter is not present, resources are reserved for 24h after the start_date.
expiryTime [0..1]: TimeStamp - Timestamp indicating the time the VIM can release the reservation in case no allocation request against this reservation was made. Not yet available in Pike release.
- before_end_notification Timestamp indicating when the before_end action will be executed, e.g. take a snapshot of the resources of the lease.
  • (ETSI NFV IFA005) not specified
  • (Blazar) Not yet implemented for pool/ resources reservation, but only host reservations.
locationConstraints [0..1]: -tbd- - If present, it defines location constraints for the resource(s) is (are) requested to be reserved, e.g. in what particular Resource Zone. Not yet available in Pike release. Blueprint available in [3]
resourceGroupId [0..1]: Identifier project_id: Identifier Unique identifier of the “infrastructure resource group”, logical grouping of virtual resources assigned to a tenant within an Infrastructure Domain.  

Note

In Blazar reservations are encapsulated in leases, whereby one lease can have several reservations (i.e. reserved resources) with the same start and end dates.

Note

In the reservation system (e.g. Blazar) each lease/reservation has additional implementation level attributes not listed in the mapping tables in this document, e.g. lease_id, status, status reason, action, …, and which are not included in reservation requests.

I.b) Create virtualisation container reservation REQUEST

ETSI NFV IFA005 Blazar Description Comment
- name Name of the lease/reservation.  
  reservations    
    resource_type = ‘...’    
virtualisationContainerReservation [0..N]:     Virtualisation containers that need to be reserved (e.g. following a specific compute “flavour”).  
  VirtualisationContainerReservation        
  containerId [1]: Identifier     Identifier given to the compute flavour.  
  flavourId [1]: Identifier     The containerFlavour encapsulates information of the virtualisation container to be reserved.  
  accelerationCapability [0..N]: -tbd-     Selected acceleration capabilities (e.g. crypto, GPU) from the set of capabilities offered by the compute node acceleration resources. The cardinality can be 0, if no particular acceleration capability is requested.  
  virtualMemory [1]: VirtualMemoryData     Virtual memory of the virtualised compute.  
  virtualCpu [1]: VirtualCpuData     Virtual CPU(s) of the virtualised compute.  
  storageAttributes [0..N]: VirtualStorageData     Element containing information about the size of virtualised storage resource (e.g. size of volume, in GB), the type of storage (e.g., volume, object), and support for RDMA.  
  virtualNetworkInterface [0..N]: VirtualNetworkInterface     Virtual network interfaces of the virtualised compute.  
affinityConstraint [0..N]: AffinityOrAntiAffinityConstraint   affinity: Boolean Element with (anti-)affinity information of the virtualised compute resources to reserve. For the resource reservation at resource pool granularity level, it defines the (anti-)affinity information of the virtual compute pool resources to reserve. For the resource reservation at virtual container granularity level, it defines the (anti-)affinity information of the virtualisation container(s) to reserve. Affinity and AntiAffinity rules are not yet available in Pike release.
antiAffinityConstraint [0..N]: AffinityOrAntiAffinityConstraint
startTime [0..1]: TimeStamp start_date [0..1]: DateTime Timestamp indicating the earliest time to start the consumption of the resources.

Resources are reserved for immediate use if:

  • (Blazar) the start_date parameter is omitted
  • (ETSI NFV IFA005) the startTime value is 0
endTime [0..1]: TimeStamp end_date [0..1]: DateTime Timestamp indicating the end time of the reservation (when the issuer of the request expects that the resources will no longer be needed) and used by the VIM to schedule the reservation.
  • (ETSI NFV IFA005) If the attribute is not present, resources are reserved for unlimited usage time.
  • (Blazar) If the parameter is not present, resources are reserved for 24h after the start_date. to be checked
expiryTime [0..1]: TimeStamp - Timestamp indicating the time the VIM can release the reservation in case no allocation request against this reservation was made. Not yet available in Pike release.
- before_end_notification Timestamp indicating when the before_end action will be executed, e.g. take a snapshot of the resources of the lease.  
locationConstraints [0..1]: -tbd- - If present, it defines location constraints for the resource(s) is (are) requested to be reserved, e.g. in what particular Resource Zone. Not yet available in Pike release.
resourceGroupId [0..1]: Identifier project_id: Identifier Unique identifier of the “infrastructure resource group”, logical grouping of virtual resources assigned to a tenant within an Infrastructure Domain.  

I.c) Create reservation RESPONSE

ETSI NFV IFA005 Blazar Description Comment
ReservedVirtualCompute [1]: reservations    
  computePoolReserved [0..1]: ReservedComputePool   resource_type = ‘virtual:instance’ Information about compute resources that have been reserved, e.g. {“cpu_cores”:90, “vm_instances”:10, “ram”:10000}. In Blazar resource_type = ‘virtual:instance’ if the reservation was for virtual instances. Instance reservation is available from Pike release.
    -   id Identifier of the reservation.  
    -   lease-id Identifier of the corresponding lease.  
    -   resource_id ??  
    -   amount Amount of virtual instances of a given flavour that have been reserved.  
    numVcInstances [1]: Integer   - Number of virtual container instances that have been reserved.  
    numCpuCores [1]: Integer   vcpus Number of CPU cores that have been reserved.  
    virtualMemSize [1]: Number   memory_mb Size of virtual memory that has been reserved.  
    -   disk_gb Size of (disk) storage that has been reserved.  
    -   affinity: Boolean Affinity information of the reserved resources. (NFV-IFA005) no such information is returned. Recommendation to add this attribute to the response message.
    computeAttributes [0..1]: VirtualComputeAttributes ReservationData   - Information specifying additional attributes of the virtual compute resource that have been reserved.  
  virtualisationContainerReserved [0..N]: ReservedVirtualisation Container     Information about the virtualisation container(s) that have been reserved.  
    containerId [1]: Identifier     Identifier of the virtualisation container that has been reserved.  
    flavourId [1]: Identifier     Identifier of the given compute flavour used in the reserved virtualisation container.  
    accelerationCapability [0..N]: -tbd-     Selected acceleration capabilities (e.g. crypto, GPU) from the set of capabilities offered by the compute node acceleration resources. The cardinality can be 0, if no particular acceleration capability is provided.  
    virtualMemory [1]: VirtualMemoryData     Virtual memory of the reserved virtualisation container.  
    virtualCpu [1]: VirtualCpuData     Virtual CPU(s) of the reserved virtualisation container.  
    virtualDisks [0..N]: VirtualStorage     Element with information of the virtualised storage resources attached to the reserved virtualisation container.  
    virtualNetworkInterface [0..N]: VirtualNetworkInterface     Element with information of the virtual network interfaces of the reserved virtualisation container  
    zoneId [0..1]: Identifier (reference to ResoureZone)     References the resource zone where the virtualisation container has been reserved. Cardinality can be 0 to cover the case where reserved network resources are not bound to a specific resource zone.  
  reservationStatus [1]: Enum   status; status_reason Status of the compute resource reservation, e.g. to indicate if a reservation is being used  
  startTime [0..1]: TimeStamp   start_date [1] Indication when the consumption of the resources starts. If the value is 0, resources are reserved for immediate use.  
  endTime [0..1]: TimeStamp   end_date [1] Indication when the reservation ends (when it is expected that the resources will no longer be needed) and used by the VIM to schedule the reservation. If not present, resources are reserved for unlimited usage time.  
  expiryTime [0..1]: TimeStamp   - Indication when the VIM can release the reservation in case no allocation request against this reservation was made.  
  -   events    

II. Query / list compute resource reservation

II.a) REQUEST

ETSI NFV IFA005 Blazar Description Comment
queryReservationFilter [1]: Filter lease_id Query filter based on e.g. name, identifier, meta-data information or status information expressing the type of information to be retrieved. It can also be used to specify one or more reservations to be queried by providing their identifiers. Blazar does not yet allow to list leases based on a filter. In Blazar you can either list all leases registered in Blazar (GET /v1/leases) or show information about a specific lease (GET /v1/leases/{lease-id}).

II.a) RESPONSE

ETSI NFV IFA005 Blazar Description Comment
queryResult [0..N]: ReservedVirtualCompute leases{ reservations {..} } Element containing information about the reserved resource. Cardinality is 0 if the query did not return any result. For attributes of ReservedVirtualCompute see clause I.c.

III. Update reservation

Note

Compute host reservations in Blazar supports updating for name, start time, and end time.

Note

Instance reservation does not yet support the update operation. A bug report is available in [4] .

III.a) REQUEST

ETSI NFV IFA005 Blazar Description Comment
reservationId [1]: Id lease_id Identifier of the existing resource reservation to be updated.  
- name Name of the lease/reservation.  
computePoolReservation [0..1]: ComputePoolReservation - New amount of compute resources to be reserved. For attributes of ComputePoolReservation see clause I.a.
virtualisationContainer Reservation [0..N]: VirtualisationContainerReservation - New virtualisation containers to be reserved (e.g. following a specific compute “flavour”). For attributes of VirtualisationContainerReservation see clause I.b.
startTime [0..1]: TimeStamp start_date [1] Indication when the consumption of the resources resources starts. If not present, the original setting will not be changed. If present and the value is 0, resources are reserved for immediate use.  
endTime [0..1]: TimeStamp end_date [1] Indication when the reservation ends (when it is expected that the resources will no longer be needed) and used by the VIM to schedule the reservation. If not present, resources are reserved for unlimited usage time.  
expiryTime [0..1]: TimeStamp - Indication when the VIM can release the reservation in case no allocation request against this reservation was made.  

III.a) RESPONSE

ETSI NFV IFA005 Blazar Description Comment
reservationData [0..N]: ReservedVirtualCompute leases { reservations {..} } Element containing information about the updated reserved resource. For attributes of ReservedVirtualCompute and Blazar reservations see clause I.c.

IV. Terminate compute resource reservation

IV.a) REQUEST

ETSI NFV IFA005 Blazar Description Comment
reservationId [1..N]: Identifier lease_id Identifier of the resource reservation(s) to terminate.  

IV.a) RESPONSE

ETSI NFV IFA005 Blazar Description Comment
reservationId [1..N]: Identifier - Identifier of the resource reservation(s) successfullly terminated. Blazar just returns a HTTP/1.1 204 NO CONTENT response code.