Sequence Diagram
Expand | ||
---|---|---|
| ||
@startuml sequenceArrowThickness 2 ParticipantPadding 5 BoxPadding 10 "SMO/Non-RT RIC Framework" #gold participant NFO as "NF Orchestration" <<INT OTF>> Boundary MC as "Model Catalog" <<SMO MVC State Manager>> Boundary VI as "Virtual Inventory" <<SMO MVC State Manager>> Boundary IC as "Instance Config" <<SMO MVC State Manager>> Participant AppMgr as "rAPPMgr" <<NRTRIC>> box "SMO/Non-RT RIC\napplication execution environment " #goldenrod participant App as "Application" <<RICAPP>> participant Sidecar as "rAPP Sidecar" <<RICAPP>> box "O-Cloud Platform" #lightseagreen participant IMFIMS as "Cloud Manager" participant DMS as "Deployment Manager" box Building Block Identity & Legend ==
over NFO, DMS #royalblue
yellow>Building Block : DeployrAPP Startup </color>** <color: yellow>Orchestration Use Cases and Requirements for O-RAN Virtualized RAN</color> end note Assumptions and Prerequisites == over NFO, DMS #darkorange xAPP Standard Software Package has been onboarded and a configuration for rAPP deployment is installed via Application LCM Use Case Step 4. end
Begin Building Block == Group Use Case Data Collection
Right of NFO instanceConfigID frameworkID applicationID deploymentID deploymentParameters applicationConfigSchema end note NFO -> VI : GET ../frameworks/<frameworkID> Note Right of NFO The Framework Inventory record contains: frameworkID appType deploymentID deploymentTenant hostingOcloudID hostingOcloudDMSID hostedOCloudLocation end note NFO -> VI : GET ../OClouds/<hostingOcloudID> Note Right of NFO The O-Cloud Inventory record contains: ocloudID IMFEndPoint DMSList ResourcePools with Location attributes end note NFO -> VI : GET ../OClouds/<hostingOcloudID>/ResourcePools?location=<hostedOCloudLocation> Note Right of NFO The O-Cloud Inventory record contains: ocloudID ResourcePoolID location end note NFO -> VI : GET ../OClouds/<hostingOcloudID>/DMS/<hostingOcloudDMSID> Note Right of NFO The O-Cloud DMS Inventory record contains: OcloudID OcloudDMSID DMSEndPoint ResourcePools with Location attributes end note End Group Install Images in O-Cloud NFO -> MC : GET ../applications/<applicationID>/deployments/<deploymentID>/images Loop for each image in images NFO -> MC : GET ../applications/<applicationID>/deployments/<deploymentID>/images/<imageID> NFO -> IMF : <<O2-M>> PUT https://<IMDEndPoint>/api/v1/images {resourcePoolID, imageURL} Note left of IMF The Resource pool where the image is expected to be deployed should be specified, this could be a list of locations. The O-Cloud being distributed may have its own strategy for image repository distribution. End note IMF -> IMF : Note left : Check if ImageInstanceExists Alt if ImageInstance Exists then IMF --> NFO : Return 200 OK Else IMF -> IMF : Note Left : Store Image IMF --> NFO : Return 202 Created End if end End Group Application deployment to O-Cloud NFO -> DMS : <<O2-D>> POST https://<DMSEndPoint>/api/v1/deployments {\n\tlocation, \n\tdeploymentDescriptor, \n\tinstanceConfig.deploymentParameters} Note left of DMS Normally the O-Cloud would iterate through all deployments in the descriptor In this example we remove the iteration for the two known workloads that will be in the descriptor End note DMS -> App ** : create DMS -> Sidecar ** : create DMS --> NFO : <<O2-D>> notify Workload created NFO -> VI : PUT ../deployments Note right of NFO The Deployment Inventory record contains: deploymentID, deploymentTenant, configInstanceID, hostingOcloudID, hostingOcloudDMSID, hostedOCloudLocation end note End Group Application Startup and Registration Sidecar <-> App : connect Sidecar -> AppMgr : PUT Message numbers are discontinous Note right of AppMgr Registration returns record contain: xAPPID, xAPPRegistrationTime, xAPPRestarts, configurationID end note
if xAPPRestarts > 0 and ConfigurationID is not null then Sidecar -> AppMgr : GET ../configs/<configurationdID> AppMgr -> IC : GET ../configurations/< configurationdID> Sidecar -> App : Config(configuration) Else of ConfigurationID is Null and xAPPRestarts > MaxStartAttempts then Sidecar -> DMS : Fatal Error, don't restart Else Sidecar -> App : Config(configMap.configuration) Alt If successful then Sidecar -> AppMgr : POST ../configSchemas {configMap.configurationSchema} Note left : AppMgr simply returns success, nothing for it to do Sidecar -> AppMgr : POST ../configurations {configMap.configuration} Note left : rAppMgr simply returns success, nothing for it to do Else Sidecar -> App : Restart App -> DMS : Internal Error, restart Sidecar -> DMS : Internal Error, restart End if End if End
|