Skip to content

Placement Plugin

Thomas Soenen edited this page Aug 27, 2019 · 4 revisions

The placement plugin is the MANO component that is called when a service needs to be placed, if that service does not specify a placement SSM. The placement plugin contains the default placement algorithm. The placement plugin requires the following ENV

  • broker_host: amqp://guest:guest@son-broker:5672/%2F

API

The placement plugin listens on the topic mano.service.place for placement requests. These requests, and the response that the placement plugin will formulate, should have the following characteristics.

Request

To request a placement, The SLM sends a request to the placement plugin. This message requires the following header fields:

  • app_id: to indicate the sender of the message
  • correlation_id: a correlation id for the message
  • reply_to: the topic on which the sender expects a response, in this case mano.service.place

The payload of the request is a yaml encoded dictionary that should include the following fields:

  • nsd : the network service descriptor
  • functions: a list with the VNF descriptors
  • topology: a dictionary with the topology of the infrastructure
  • serv_id: the service instance id of the service that is being placed
  • nap: a dictionary with information on the ip and the location of the sources and destinations of the service

Response

The response of the placement plugin will have the following headers:

  • app_id: To indicate which MANO Framework plugin responded
  • correlation_id: The same correlation id as in the request

The payload of the message is a yaml encoded dictionary with the following fields:

  • mapping: either None, when a mapping was not possible, or a dictionary. This dictionary has an element for each VNF in the service. The id of the VNF instance is the key, the value is again a dictionary. This dictionary has vim as key, which has the id of that VIM as value.