-
Notifications
You must be signed in to change notification settings - Fork 13
Specific Management Registry
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.
The features provided by SMR are detailled in the next sub-sections.
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.
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.
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"
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.
The followings are the APIs that are exposed by SMR:
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')
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')
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')
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')
The following topic can be used by both SSMs and FSMs to send/receive a registration request/response.
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')
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')
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')
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')
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')