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\nincludes http target for stream establishment
49 sdnr -> pmCoord: PM Job Created
51 == PM Data Streaming ==
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)
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
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!
73 skinparam backgroundColor #fefefe
74 'skinparam handwritten true
75 skinparam roundcorner 15