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
7 @startuml o-ran-sc-i-pm-streaming-sequence
8 title Performance Data Streaming
9 autonumber 1 1 "<b>[00]"
11 box "App layer" #LightBlue
12 participant "rApp" as rApp
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
22 participant "OAM Controller" as sdnr
25 box "Network" #LightPink
26 participant "NetworkFunction\n2401 NTSims" as nf
29 box "Simulation" #LightBlue
30 participant "PM Trigger App" as trigger
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
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
51 == PM Data Streaming ==
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)
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
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!
75 skinparam backgroundColor #fefefe
76 'skinparam handwritten true
77 skinparam roundcorner 15