High Level Design
Cross Carrier L1 Interconnect service
Run Time Service Creation Flow within each ONAP Instance
L1 Service Instantiation Diagram
L1 Service Instantiation Steps
1. L1 Service Instantiation request
External API sends L1 Service Instantiation request to SO vi REST
Sample service request: service creation request
REST Path: /onap/so/infra/e2eServiceInstances/{version}
2. Generate request Id and stores the request details in RequestDB
API Handler generates the request Id for the received request.
Parse the json and convert e2e service instance request to service instance request
Update requestDB with request details.
3. Fetch service recipe
Query catalog DB to fetch the service recipe for Orchestration URI, which is BPMN workflow URI.
If the service recipe is not found in DB, update the request status = RECIPE_NOT_FOUND in Request DB and send error response to External API. (Steps 3a and 3b)
Orchestration URI: /mso/async/services/<BPMN workflow name>
4. Invoke BPMN workflow
API-Handler will invoke BPMN engine using orchestration-uri.[Note: We ae using existing custom workflow in this use-case]
REST Path: /mso/async/services/CreateCustomE2EServiceInstance
5. Request Validation
BPMN Validate mandatory fields such as serviecInstanceId, globalSubscriberId, serviceModelInfo etc…in service creation request.
If request validation is success, then update request DB and send sync success response to API-Handler with valid message.
If request validation is failure, then update request DB and send sync failure response to API-Handler with valid message.
6. Query catalogDB for service template
If the request validation is success, then it will fetch the service template from Catalog DB for service decomposition.
7. Decompose service template
Decompose L1 Access service template based on the domain type, which can be looked up in AAI using generic-node-uuid.
Note: generic-node-uuid is uni/enni ids.
8. Create service instance in AAI
Create L1 Access instance in AAI with ORCHESTARTION_STATUS = PENDING.
9. Resource validation and allocation
Validate resources(end points) by checking operation-status and in-maint status in AAI.
If the resource validation is success, then update AAI with L1 Access service orchestration-status = ASSIGNED.
If the resource validation is failure, then delete L1 Access service insatnce in AAI and update requestDB with progress and result = FAILED.
10. Call OOF to determine inter-domain link
SO calls OOF to determine the inter-domain link with the provided UNI/ENNI.
Upon reception of success response from OOF, SO will fetch the inter-domin link from AAI.
Upon reception of failure response from OOF, SO will delete the service instance in AAI and update requestDB.
11. Post Create request to DMaaP
Generate requestId for each request and send to SDNC for domain service to be created.
Request will be sent via DMaaP.
No.Of requests is based on no. of domain controllers.
12. Create requests sync response
SDN-C will consume create requests from DMaaP.
Upon reception of sync success response from SDNC, SO(BPMN) will update AAI with L1 Access service instance orchestration-status="creating" and update requestDB also.
Upon reception of failure response from SDNC, SO(BPMN) will delete the service instance in AAI and update RequestDB.
13. Call back from SDNC
Within timeout:
Upon reception of async success response from SDNC, SO will update UUi with valid message, update AAI with L1 Access service orchestartion-status = CREATED and update request DB.
Upon recpetion of async failure response from SDNC, SO will update UUi with valid message, delete L1 Access service insatnce in AAI and update requestDB.
Upon reception of no-response from SDNC, SO will consider it as failure case.
After timeout expires:
Upon reception of success response from SDNC, SO will generate delete request for the domain service which is successfully created after timeout and send it to SDNC
Run Time Service Delete Flow within each ONAP Instance
L1 Service Delete Diagram
L1 Service Delete Steps
1. Service Delete Request with service ID
The External API sends delete service request to SO (API Request handler) with serviceId via REST.
REST path: /onap/so/infra/e2eServiceInstances/{version:[vV][3-5]}/{serviceId}\
2. Generate requestId
The specified version and service ID is passed as path parameter to API-Handler.
Parse the service request JSON string to E2EserviceInstanceDeleteRequest.
A unique Request ID is generated.
Then it stores the request details in mso_request_db with the status INITIATED.
3. Query CatalogDB for service_recipe
Query service_recipe fro orchestration_uri to invoke BPMN workflow.
ORCHESTRATION_URI: /mso/async/services/DeleteCustomE2EServiceInstance
If Orchestration URI is not found in DB, an error response is sent back and the transaction is closed.
4. API-Handler invokes BPMN
A post call via REST is made to the BPMN engine with action name, service ID, recipe time out, request details and version.
The BPMN delete work flow for the above orchestartion_uri gets invoked
5. Request Validation
Validate request with basic mandatory fields such as Service ID, service Model Information, etc.
6. Update RequestDB
Based on the request validation result, update requestDB. with result =PROGRESS/FAILED.
BPMN sends back a sync response as an acknowledgment regarding the success/failure of the validation to API handler.
API handler process this response and send back to external API via response handler.
7. Relate request in requestDB
Fetch the request details from requestDB using given serviceId.
Fetch the decomposed request details using main requestId.
8. Fetch service instance from AAI
Using given serviceId, fetch L1 Access service instance details from AAI.
10. Post Delete request to DMaaP
Send delete requests to SDNC via DMaaP.
No. of Delete requests is based on no. of domain controllers.
11. Sync response from SDNC
Delete requests are consumed by SDNC and send sync response to SO.
Upon reception of sync success response from SDNC, SO(BPMN) will update UUi with valid message, update AAI with L1 Access service instance orchestration-status = deleting,update requestDB and wait for async response.
Upon reception of sync failure response from SDNC, SO(BPMN) will update UUI with valid message and update requestDB.
12. Async response from SDNC
Within Timeout:
Upon reception of success response from SDNC, SO(BPMN) will delete L1 Access service instance in AAI, update requestDB and upadte UUI with valid message.
Upon reception of failure response from SDNC, SO(BPMN) will upadte UUI with valid message and update request DB.
Upon reception of no-response from SDNC, SO(BPMN) will consider this as failure case.
APIs