Skip to content

Specific Management Registry

José Bonnet edited this page Sep 6, 2017 · 23 revisions

The Specific Manager Registry (SMR) is a MANO framework plugin that is responsible for FSM/SSMs lifecycle management including on-boarding, instantiating, registering, updating, and terminating. SMR interacts with other MANO framework plugins through the message broker, e.g., to obtain SSM on-boarding request from SLM.

Features

The features provided by SMR are detailled in the next sub-sections.

SSMs and FSMs Onboarding

The SSM/FSM On-boarding function downloads SSM/FSM images from the docker registry that stores the SSM/FSM images. It retrieves the SSM and FSM image URIs from Network Service Descriptor (NSD) and Virtual Network Function Descriptor (VNFD), respectively. SMR obtains NSDs from the Service Lifecycle Management (SLM) and VNFDs from the Function Lifecycle Management (FLM) through on-boarding message requests.

SSMs and FSMs Instantiation and Registration

SMR instantiation function is responsible for starting SSM/FSM containers. SLM triggers this function for SSMs by sending an instantiation request message to SMR which contains the UUID of the service that the SSM belongs to. For FSMs, the triggering message comes from FLM which contains the UUID of the corresponding network function. This function is also responsible for SSM/FSM registration. Once SSM/FSM has been instantiated, it sends a registration request to SMR. Then, SMR generates a UUID for the SSM/FSM and stores a record of it in the SSM/FSM repository.

SSMs and FSMs Updating

This function updates the running FSM/SSMs. SLM/FLM can trigger this function by sending a request message to SMR containing the NSD/VNFD that includes the URI of the new SSM/FSM image and the UUID of the SSM/FSM that is targeted for updating. The following is an example of descriptors that can be used for updating an FSM.

service_specific_managers:
  - id: "sonfsmservice1firewallplacement2"
    description: "Placement FSM"
    image: "hadik3r/sonfsmservice1firewallplacement2"
    options:
      - key: "currentId"
        value: "sonfsmservice1firewallplacement1"
      - key: "currentImage"
        value: "hadik3r/sonfsmservice1firewallplacement1"

SSMs and FSMs Termination

This function is responsible for terminating an FSM or SSM. The same as other functions, the triggering message for FSMs and SSMs comes from FLM and SLM, respectively.

APIs

The followings are the APIs that are exposed by SMR:

Onboarding topics:

FSM topic: specific.manager.registry.fsm.on-board

Request payload (a Yaml encoded dictionary) should include the following fields:

  • 'VNFD': the network service description

  • 'UUID': the VNF uuid

Response payload (a Yaml encoded dictionary) includes the following fields:

  • 'status': 'On-boarded'(or 'Failed')

  • 'error': 'None' (or 'some errors')

SSM topic: specific.manager.registry.ssm.on-board

Request payload (a Yaml encoded dictionary) should include the following fields:

  • 'NSD': the network service description

  • 'UUID': the network service uuid

Response payload (a Yaml encoded dictionary) includes the following fields:

  • 'status': 'On-boarded'(or 'Failed')

  • 'error': 'None' (or 'some errors')

Instantiating topics:

FSM topic: specific.manager.registry.fsm.instantiate

Request payload (a Yaml encoded dictionary) should include the following fields:

  • 'VNFD': the network service description

  • 'UUID': the VNF uuid

Response payload (a Yaml encoded dictionary) includes the following fields:

  • 'status': 'Instantiated'(or 'Failed')

  • 'error': 'None' (or 'some errors')

SSM topic: specific.manager.registry.ssm.instantiate

Request payload (a Yaml encoded dictionary) should include the following fields:

  • 'NSD': the network service description

  • 'UUID': the network service uuid

Response payload (a Yaml encoded dictionary) includes the following fields:

  • 'status': 'Instantiated'(or 'Failed')

  • 'error': 'None' (or 'some errors')

Registration topic:

The following topic can be used by both SSMs and FSMs to send/receive a registration request/response.

Topic:specific.manager.registry.ssm.registration

Request payload (a Yaml encoded dictionary) should include the following fields:

  • specific_manager_type: either ssm or fsm
  • service_name : the corresponding service name
  • function_name : the corresponding VNF name (should be empty for ssms)
  • specific_manager_name : ssm name
  • specific_manager_id : ssm id
  • update_version : true or false
  • version : version
  • description : short description
  • sf_uuid : UUID of the corresponding service/VNF

Response payload (a Yaml encoded dictionary) includes the following fields:

  • 'status': 'registered'(or 'Failed')

  • 'error': 'None' (or 'some errors')

Updating topics:

FSM topic: specific.manager.registry.fsm.update

Request payload (a Yaml encoded dictionary) should include the following fields:

  • 'VNFD': the network service description

  • 'UUID': the VNF uuid

Response payload (a Yaml encoded dictionary) includes the following fields:

  • 'status': 'Updated'(or 'Failed')

  • 'error': 'None' (or 'some errors')

SSM topic: specific.manager.registry.ssm.update

Request payload (a Yaml encoded dictionary) should include the following fields:

  • 'NSD': the network service description

  • 'UUID': the network service uuid

Response payload (a Yaml encoded dictionary) includes the following fields:

  • 'status': 'Updated'(or 'Failed')

  • 'error': 'None' (or 'some errors')

Termination topics:

FSM topic: specific.manager.registry.fsm.terminate

Request payload (a Yaml encoded dictionary) should include the following fields:

  • 'VNFD': the network service description

  • 'UUID': the VNF uuid

Response payload (a Yaml encoded dictionary) includes the following fields:

  • 'status': 'Terminated'(or 'Failed')

  • 'error': 'None' (or 'some errors')

SSM topic: specific.manager.registry.ssm.terminate

Request payload (a Yaml encoded dictionary) should include the following fields:

  • 'NSD': the network service description

  • 'UUID': the network service uuid

Response payload (a Yaml encoded dictionary) includes the following fields:

  • 'status': 'Terminated'(or 'Failed')

  • 'error': 'None' (or 'some errors')