Create PM Data Sequence diagram
[oam.git] / spec / pm-streaming / o-ran-sc-i-pm-streaming-sequence.puml
1 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
2 ' Copyright 2021 highstreet technologies GmbH
3 ' This work is licensed under a Creative Commons Attribution 4.0 International License.
4 ' SPDX-License-Identifier: CC-BY-4.0
5 ' https://creativecommons.org/licenses/by/4.0/deed.en
6
7 @startuml o-ran-sc-i-pm-streaming-sequence
8 title Performance Data Streaming
9 autonumber 1 1 "<b>[00]"
10
11 box "App layer" #LightBlue
12   participant "rApp" as rApp
13 end box
14
15 box "SMO OAM" #gold
16   participant "Message Router" as mr
17   database "PM Database" as pmDb
18   participant "PM Coordination" as pmCoord
19   participant "PM Collector" as pmCollect
20   participant "VES Collector" as ves
21   
22   participant "OAM Controller" as sdnr
23 end box
24
25 box "Network" #LightPink
26   participant "NetworkFunction\n2401 NTSims" as nf
27 end box
28
29 box "Simulation" #LightBlue
30   participant "PM Trigger App" as trigger
31 end box
32
33 == init ==
34 rApp -> mr: pm data streaming subscription
35 mr -> pmCoord:  pm data streaming subscription
36 pmCoord -> pmCoord: analyze subscription
37 nf -> ves: <<HTTP/TLS>> VES pnfRegistration
38 ves -> mr: forward VES pnfRegistration
39 mr -> sdnr: grep VES pnfRegistration
40 sdnr -> sdnr: create Mount Point
41 sdnr -> nf: <<NETCONF/TLS>> establish connection 
42 sdnr-> mr: Connected!
43
44 == PM JOB Configuration ==
45 mr -> pmCoord: Connection to NF established
46 pmCoord -> sdnr: PM Job Creation
47 sdnr -> nf: <<NETCONF/TLS>> PM Job Creation
48 nf -> sdnr: PM Job Created\nincludes http target for stream establishment
49 sdnr -> pmCoord: PM Job Created
50
51 == PM Data Streaming ==
52
53 nf -> pmCollect : <<HTTP/TLS>> establish Streaming Connection \nincludes mapping from streamId to jobId
54 pmCollect -> nf : <<HTTP/TLS>> Connection Established returns ConnectionId (wss:url)
55
56 loop while performance job is active
57   trigger -> sdnr: <<RESTCONF/TLS>> Trigger PM stream,\nwhen UEs are entering, leaving the cell
58   sdnr -> nf: <<NETCONF/TLS>> trigger
59   nf -> pmCollect : <<WebSocket>> report PM data via stream unit (wss:url)
60   pmCollect -> pmCollect: convert GPB into json (or SQL)
61   pmCollect -> pmDb: store pm data
62   pmCollect -> mr: inform about new pm data (don't send data - to be discussed)\n{jobId,sender,pm-database-query-command}
63   mr -> rApp: new PM data available!
64   rApp -> pmDb: GET new (filtered) PM data 
65   rApp <- pmDb: send new (filtered) PM data
66
67 end
68
69 ' End Diagram
70 ' Format
71 right footer <img:https://media-exp1.licdn.com/dms/image/C560BAQH0qSJJi67N4g/company-logo_200_200/0/1606867328974?e=2159024400&v=beta&t=OybMqHsK24YCp_WeGC10qJWJp-tsHu2GnjuF5gEeGSM{scale=0.2}> \lCopyright 2023 highstreet technologies USA Corp.\lThis work is licensed under a Creative Commons Attribution 4.0\l International License.\lSPDX-License-Identifier: CC-BY-4.0\n2023-08-13 | o-ran-sc.org oam project | Thanks to PlantUML!
72
73 skinparam backgroundColor #fefefe
74 'skinparam handwritten true
75 skinparam roundcorner 15
76
77 @enduml