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
49 sdnr -> pmCoord: PM Job Created
50
51 == PM Data Streaming ==
52
53 alt not needed, because streamTarget of the PM Job is the ConnectionId value
54   nf -> pmCollect : <<HTTP/TLS>> establish Streaming Connection
55   pmCollect -> nf : <<HTTP/TLS>> Connection Established returns ConnectionId (wss:url)
56 end 
57
58 loop while performance job is active
59   trigger -> sdnr: <<RESTCONF/TLS>> Trigger PM stream,\nwhen UEs are entering, leaving the cell
60   sdnr -> nf: <<NETCONF/TLS>> trigger
61   nf -> pmCollect : <<WebSocket>> report PM data via stream unit (wss:url)
62   pmCollect -> pmCollect: convert GPB into json (or SQL)
63   pmCollect -> pmDb: store pm data
64   pmCollect -> mr: inform about new pm data (don't send data - to be discussed)\n{jobId,sender,pm-database-query-command}
65   mr -> rApp: new PM data available!
66   rApp -> pmDb: GET new (filtered) PM data 
67   rApp <- pmDb: send new (filtered) PM data
68
69 end
70
71 ' End Diagram
72 ' Format
73 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!
74
75 skinparam backgroundColor #fefefe
76 'skinparam handwritten true
77 skinparam roundcorner 15
78
79 @enduml