... 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>> 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 |
...