Versions Compared
compared with
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Table of Contents
Table of Contents |
---|
Scope
This page provides information around gNMI and its possible usage for efficient data steaming from network-functions to data-consumers (e.g. SMO-OAM).
Sequence
PlantUML Macro |
---|
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright 2021 highstreet technologies GmbH
' This work is licensed under a Creative Commons Attribution 4.0 International License.
' SPDX-License-Identifier: CC-BY-4.0
' https://creativecommons.org/licenses/by/4.0/deed.en
@startuml data-streaming-with-gnmi
' Diagram
title
Data Streaming with gNMI: Usage proposal for dicussion
gNMI -> yang based gRPC -> HTTP2, protobuf/yang
(https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md)
end title
box "SMO" #gold
participant "data-collector\ngNMI-client" as client
end box
box “O-RAN” #lightpink
participant "network-function\ndata-provider\ngNMI-server\ntarget" as server
end box
autonumber 1 1 "<b>[00]"
== Subscription ==
client -> server: RPC subscribe\nwith SubscribeRequest
activate server
note right
SubscribeRequest: {
subscribe: [
{
mode: STREAM,
subscription:[
{
path: <xPath0>,
mode: ON_CHANGE
},
...
],
allow_aggregation: TRUE,
updates_only: TRUE,
}
end note
server -> client: RESPONSE SubscribeResponse
note left
SubscribeResponse: {
timestamp: <timestamp>,
update: [{<xPath>, <value>}, ...]
}
The first response with including an error message acts a bases for all later updates.
end note
== Data Stremaing ==
loop ON_CHANGE
server -> client: RESPONSE SubscribeResponse
note left
SubscribeResponse: {
timestamp: <timestamp>,
update: [{<xPath>, <value>}, ...]
}
end note
end loop
== The End ==
client -> server: cancel the HTTP2 session
deactivate server
' End Diagram
' Format
left 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}> Copyright 2021 highstreet technologies USA Corp.
. This work is licensed under a Creative Commons Attribution 4.0 International License.
. SPDX-License-Identifier: CC-BY-4.0
. 2021-10-10 | o-ran-sc.org oam project | Thanks to PlantUML!
end footer
skinparam backgroundColor #fefefe
'skinparam handwritten true
skinparam roundcorner 15
skinparam database {
BorderColor #444444
BackgroundColor #ffffdd
FontColor #444444
}
skinparam note {
BorderColor #444444
BackgroundColor #ffff88
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
|
Links
- https://karneliuk.com/wp-content/uploads/2020/05/197_net_01_proto-1024x573.png.png (I would love to find the originals source on ONF pages)
- https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md
- https://karneliuk.com/2020/05/gnmi-part-1-intro-to-protobuf/