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>> box "O-Cloud Platform" #lightseagreen participant IMFIMS as "Cloud Manager" participant DMS as "Deployment Manager" box "O-RAN" #NavajoWhite Participant AppMgr as "xAPPMgr" <<RICPLT>> box "Near-RT RIC\napplication execution environment " #PapayaWhip participant App as "Application" <<RICAPP>> participant Sidecar as "rAPP Sidecar" <<RICAPP>> box Building Block Identity & Legend ==
over NFO, Sidecar #royalblue
yellow>Building Block : Deploy rAPP: xAPP Startup </color>** <color: yellow>O-RAN-WG6.Orchestration-v03.00; section</color><color: Red> 3.3.3</color> end note Assumptions and Prerequisites == over NFO, SidecarDMS #darkorange xAPP Standard Software Package has been onboarded and a configuration for xAPP deployment is installed via Application LCM Use Case Step 4. end
Begin Building Block == Group Use Case Data Collection NFO -> IC : GET ../configurations/<instanceConfigID>
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\t../OClouds/<hostingOcloudID>/\n\tResourcePools?location=<hostedOCloudLocation> Note Right of NFO The O-Cloud Inventory record contains: ocloudID ResourcePoolID location end note NFO -> VI : GET\t../OClouds/<hostingOcloudID>/\n\tDMS/<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\t../applications/<applicationID>/\n\tdeployments/<deploymentID>/\n\timages Loop for each image in images NFO -> MC : GET\t../applications/<applicationID>/\n]tdeployments/<deploymentID>/\n\timages/<imageID> NFO -> IMF : <<O2-M>> PUT https://<IMDEndPoint>/api/v1/images {resourcePoolID, imageURL} Note over 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 : Get Image from URL Store Image in repository 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 over 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 alt if xAPPRestarts > 0 and ConfigurationID is not null then Sidecar -> AppMgr : GET ../configs/<configurationdID> Sidecar -> App : Config(configuration) Else if 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} AppMgr -> AppMgr : Note left: xAPPMgr needs to incorporate xAPP YANG leafs into RIC Config Sidecar -> AppMgr : POST ../configurations {configMap.configuration} AppMgr -> AppMgr : Note Left : Create MOI and populate ConfigDB Opt Stretch goal for CM Notify AppMgr -> NFO : <<O1>> MOI Create Notification End Else Sidecar -> App : Restart App -> DMS : Internal Error, restart Sidecar -> DMS : Internal Error, restart End if End if End
|