- Created by David Kinsey, last modified on Jul 02, 2020
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 2 Next »
Sequence Diagram
Click here to view PlantUML Source
@startuml
Autonumber
Skinparam sequenceArrowThickness 2
skinparam ParticipantPadding 5
skinparam BoxPadding 10
Box "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>>
end box
Box "SMO/Non-RT RIC\napplication execution environment " #goldenrod
participant App as "Application" <<RICAPP>>
participant Sidecar as "rAPP Sidecar" <<RICAPP>>
end box
Box "O-Cloud Platform" #lightseagreen
participant IMF as "Cloud Manager"
participant DMS as "Deployment Manager"
End box
== Building Block Identity & Legend ==
note over NFO, DMS #royalblue
**<color: yellow>Building Block : Deploy rAPP </color>**
<color: yellow>Orchestration Use Cases and Requirements for O-RAN Virtualized RAN</color>
<color: yellow>O-RAN-WG6.Orchestration-v03.00; section</color><color: Red> 3.3.3</color>
end note
== Assumptions and Prerequisites ==
note 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 note
== Begin Building Block ==
Group Use Case Data Collection
NFO -> IC : GET ../configurations/<instanceConfigID>
Note Right of NFO
The instance config contains:
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 ../xAPPs/<myAPPID>
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>
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
@enduml
- No labels