... specified by O-RAN Working Group 4 - Open Fronthaul
UML:
PlantUML Macro |
---|
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright 2020 highstreet technologies GmbH
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
' http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.
'
@startuml
' Diagram
title
Software Inventory
end title
hide empty fields
hide empty methods
hide <<case>> circle
hide <<augment>> circle
hide <<choice>> circle
hide <<leafref>> stereotype
hide <<leafref>> circle
package "inet:ietf-inet-types" as inet_ietf_inet_types {
}
package "hw:ietf-hardware" as hw_ietf_hardware {
}
package "o-ran-hw:o-ran-hardware" as o_ran_hw_o_ran_hardware {
}
package "o-ran-fm:o-ran-file-management" as o_ran_fm_o_ran_file_management {
}
note top of o_ran_swm_o_ran_software_management : <b>Namespace: </b> urn:o-ran:software-management:1.0 \n<b>Prefix: </b> o-ran-swm \n<b>Organization : </b>\nO-RAN Alliance \n<b>Contact : </b>\nwww.o-ran.org \n<b>Revision : </b> 2019-07-03 \n
package "o-ran-swm:o-ran-software-management" as o_ran_swm_o_ran_software_management {
inet_ietf_inet_types +-- o_ran_swm_o_ran_software_management
hw_ietf_hardware +-- o_ran_swm_o_ran_software_management
o_ran_hw_o_ran_hardware +-- o_ran_swm_o_ran_software_management
o_ran_fm_o_ran_file_management +-- o_ran_swm_o_ran_software_management
class "o-ran-software-management" as o_ran_software_management << (M, #33CCFF) module>>
class "slot-group" as o_ran_software_management_I_slot_group_grouping <<(G,Lime) grouping>>
class "software-slot" as o_ran_software_management_I_slot_group_I_software_slot << (L, #FF7700) list>>
o_ran_software_management_I_slot_group_grouping *-- "2..N" o_ran_software_management_I_slot_group_I_software_slot
o_ran_software_management_I_slot_group_I_software_slot : +name : string {key}
o_ran_software_management_I_slot_group_I_software_slot : status : enumeration : {VALID,INVALID,EMPTY,} {mandatory} {Config : false}
o_ran_software_management_I_slot_group_I_software_slot : active : boolean {Config : false}
note bottom of o_ran_software_management_I_slot_group_I_software_slot
<b>Must</b> (active):
../status = 'VALID'
end note
o_ran_software_management_I_slot_group_I_software_slot : running : boolean {Config : false}
note bottom of o_ran_software_management_I_slot_group_I_software_slot
<b>Must</b> (running):
../status = 'VALID'
end note
o_ran_software_management_I_slot_group_I_software_slot : access : enumeration : {READ_ONLY,READ_WRITE,} = READ_WRITE {Config : false}
o_ran_software_management_I_slot_group_I_software_slot : product-code : leafref : /hw:hardware/hw:component/o-ran-hw:product-code {Config : false}
o_ran_software_management_I_slot_group_I_software_slot : vendor-code : string {length = 1..2} {Config : false}
o_ran_software_management_I_slot_group_I_software_slot : build-id : string {Config : false}
o_ran_software_management_I_slot_group_I_software_slot : build-name : string {Config : false}
o_ran_software_management_I_slot_group_I_software_slot : build-version : string
class "files" as o_ran_software_management_I_slot_group_I_software_slot_I_files << (L, #FF7700) list>>
o_ran_software_management_I_slot_group_I_software_slot *-- "0..N" o_ran_software_management_I_slot_group_I_software_slot_I_files
note bottom of o_ran_software_management_I_slot_group_I_software_slot_I_files
<b>Config = </b>false
end note
o_ran_software_management_I_slot_group_I_software_slot_I_files : +name : string {key}
o_ran_software_management_I_slot_group_I_software_slot_I_files : version : string
o_ran_software_management_I_slot_group_I_software_slot_I_files : local-path : string {mandatory}
o_ran_software_management_I_slot_group_I_software_slot_I_files : integrity : enumeration : {OK,NOK,} {Config : false}
class "download-input" as o_ran_software_management_I_download_input_grouping <<(G,Lime) grouping>>
o_ran_software_management_I_download_input_grouping : remote-file-path : inet:uri {mandatory}
o_ran_software_management_I_download_input_grouping : o-ran-fm:credential-information {uses}
class "download-output" as o_ran_software_management_I_download_output_grouping <<(G,Lime) grouping>>
o_ran_software_management_I_download_output_grouping : status : enumeration : {STARTED,FAILED,} {mandatory}
o_ran_software_management_I_download_output_grouping : error-message : string
note bottom of o_ran_software_management_I_download_output_grouping
<b>When</b> (error-message):
../status = 'FAILED'
end note
o_ran_software_management_I_download_output_grouping : notification-timeout : int32 = 30 {seconds}
class "install-input" as o_ran_software_management_I_install_input_grouping <<(G,Lime) grouping>>
o_ran_software_management_I_install_input_grouping : slot-name : leafref : /software-inventory/software-slot/name {mandatory}
note bottom of o_ran_software_management_I_install_input_grouping
<b>Must</b> (slot-name):
/software-inventory/software-slot[name = current()][active = 'false' and running = 'false']
end note
o_ran_software_management_I_install_input_grouping : file-names []: string
class "install-output" as o_ran_software_management_I_install_output_grouping <<(G,Lime) grouping>>
o_ran_software_management_I_install_output_grouping : status : enumeration : {STARTED,FAILED,} {mandatory}
o_ran_software_management_I_install_output_grouping : error-message : string
note bottom of o_ran_software_management_I_install_output_grouping
<b>When</b> (error-message):
../status = 'FAILED'
end note
class "activate-input" as o_ran_software_management_I_activate_input_grouping <<(G,Lime) grouping>>
o_ran_software_management_I_activate_input_grouping : slot-name : leafref : /software-inventory/software-slot/name {mandatory}
note bottom of o_ran_software_management_I_activate_input_grouping
<b>Must</b> (slot-name):
/software-inventory/software-slot[name = current()][status = 'VALID']
end note
class "activate-output" as o_ran_software_management_I_activate_output_grouping <<(G,Lime) grouping>>
o_ran_software_management_I_activate_output_grouping : status : enumeration : {STARTED,FAILED,} {mandatory}
o_ran_software_management_I_activate_output_grouping : error-message : string
note bottom of o_ran_software_management_I_activate_output_grouping
<b>When</b> (error-message):
../status = 'FAILED'
end note
o_ran_software_management_I_activate_output_grouping : notification-timeout : int32 = 30 {seconds}
class "download-notification" as o_ran_software_management_I_download_notification_grouping <<(G,Lime) grouping>>
o_ran_software_management_I_download_notification_grouping : file-name : string {mandatory}
o_ran_software_management_I_download_notification_grouping : status : enumeration : {COMPLETED,AUTHENTICATION_ERROR,PROTOCOL_ERROR,...}
o_ran_software_management_I_download_notification_grouping : error-message : string
note bottom of o_ran_software_management_I_download_notification_grouping
<b>When</b> (error-message):
../status != 'COMPLETED'
end note
class "install-notification" as o_ran_software_management_I_install_notification_grouping <<(G,Lime) grouping>>
o_ran_software_management_I_install_notification_grouping : slot-name : leafref : /software-inventory/software-slot/name
o_ran_software_management_I_install_notification_grouping : status : enumeration : {COMPLETED,FILE_ERROR,INTEGRITY_ERROR,...}
o_ran_software_management_I_install_notification_grouping : error-message : string
note bottom of o_ran_software_management_I_install_notification_grouping
<b>When</b> (error-message):
../status != 'COMPLETED'
end note
class "activation-notification" as o_ran_software_management_I_activation_notification_grouping <<(G,Lime) grouping>> page 1x1
o_ran_software_management_I_activation_notification_grouping : slot-name : leafref : /software-inventory/software-slot/name
o_ran_software_management_I_activation_notification_grouping : status : enumeration : {COMPLETED,APPLICATION_ERROR,}
o_ran_software_management_I_activation_notification_grouping : return-code : uint8
o_ran_software_management_I_activation_notification_grouping : error-message : string
note bottom of o_ran_software_management_I_activation_notification_grouping
<b>When</b> (error-message):
../status != 'COMPLETED'
end note
class "software-inventory" as o_ran_software_management_I_software_inventory <<container>>
o_ran_software_management *-- "1" o_ran_software_management_I_software_inventory
note bottom of o_ran_software_management_I_software_inventory
<b>Config = </b>false
end note
o_ran_software_management_I_software_inventory : slot-group {uses}
o_ran_software_management : software-download( in: download_input out: download_output)
o_ran_software_management : software-install( in: install_input out: install_output)
o_ran_software_management : software-activate( in: activate_input out: activate_output)
class "download-event" as o_ran_software_management_I_download_event << (N,#00D1B2) notification>>
o_ran_software_management -- o_ran_software_management_I_download_event : notification
o_ran_software_management_I_download_event : download-notification {uses}
class "install-event" as o_ran_software_management_I_install_event << (N,#00D1B2) notification>>
o_ran_software_management -- o_ran_software_management_I_install_event : notification
o_ran_software_management_I_install_event : install-notification {uses}
class "activation-event" as o_ran_software_management_I_activation_event << (N,#00D1B2) notification>>
o_ran_software_management -- o_ran_software_management_I_activation_event : notification
o_ran_software_management_I_activation_event : activation-notification {uses}
}
o_ran_software_management_I_software_inventory --> o_ran_software_management_I_slot_group_grouping : uses
o_ran_software_management --> o_ran_software_management_I_download_input_grouping : uses
o_ran_software_management --> o_ran_software_management_I_download_output_grouping : uses
o_ran_software_management --> o_ran_software_management_I_install_input_grouping : uses
o_ran_software_management --> o_ran_software_management_I_install_output_grouping : uses
o_ran_software_management --> o_ran_software_management_I_activate_input_grouping : uses
o_ran_software_management --> o_ran_software_management_I_activate_output_grouping : uses
o_ran_software_management_I_download_event --> o_ran_software_management_I_download_notification_grouping : uses
o_ran_software_management_I_install_event --> o_ran_software_management_I_install_notification_grouping : uses
o_ran_software_management_I_activation_event --> o_ran_software_management_I_activation_notification_grouping : uses
' End Diagram
' Format
header
<b><font color=#8888ff>License</font></b>
<b><font color=#8888ff>Apache 2.0</font></b>
end header
right footer
Thanks to plantUml!
2020-06-17 | onap.org | o-ran-sc.org
end footer
skinparam backgroundColor #fefefe
skinparam backgroundColor #fefefe
'skinparam handwritten true
skinparam roundcorner 15
skinparam database {
BorderColor #444444
BackgroundColor #ffffdd
FontColor #444444
}
skinparam sequence {
MessageAlign left
ArrowColor #2277dd
ArrowFontColor #444444
ArrowThickness 2
ActorBorderColor #444444
LifeLineBorderColor #444444
LifeLineBackgroundColor #eeeeee
LifeLineBackgroundColor #eeeeee
BoxBorderColor #444444
GroupBorderColor #444444
GroupBackgroundColor #eeeeee
ParticipantBorderColor #444444
ParticipantBackgroundColor #ffffdd
ParticipantFontColor #444444
ActorBackgroundColor #ffffdd
'ActorFontColor DeepSkyBlue
'ActorFontSize 17
'ActorFontName Aapex
}
@enduml
|
...