DRAFT!
Open: All the details about the NetConf operation (rpc, edit-config (Create-MOI, Modify-MOI)).
Scope
A new function should be defined by WG1 for O-RAN-OAM-Interface specification (O1-interface) version 2.
The function should provide the ability by the Management-Service-Consumer (MnS Consumer, NMS) to subscribe and unsubscribe for VES events.
O1 Component Architecture
According to the O-RAN-OAM-interface specification (O1) each MnS Provider (ME) implements a (TLS/)NetConf interface for Configuration Management and consumes TLS/HTTP-POST messages with a json body in VES message format.
The method for the VES subscription/un-subscription must be performed via NetConf, because VES itself does not provide such function. The MnS Consumer will use the NetConf interface for such an operation.
Figure
PlantUml
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright 2019 highstreet technologies GmbH
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
' http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.
'
' Author: martin.skorupski@highstreet-technologies.com
@startuml
' Diagram
title
O-RAN-SC
O1-Interface: VES Subscription architecture
end title
node "\nManagement-Service (MnS) Consumer\nOAMController" #8064A2 {
interface "TLS/HTTP" as http
[VES Server] -down-> http: provides
[NetConf Client] as ncc
}
node "\nManagement-Service (MnS) Provider\nManagedElement" #ED7D31 {
interface "TLS/NetConf" as nc
[NetConf Server] -up-> nc: provides
[VES Client] .up.> http: <font color=#222222>use
[VES Client] -[hidden]left- [NetConf Server]
}
ncc .down.> nc: <font color=#222222>use
' End Diagram
' Format
header
<b><font color=#8888ff>License</font></b>
<b><font color=#8888ff>Apache 2.0</font></b>
end header
'caption "\n UML Formatting"
right footer
VES Subscription
Thanks to plantUml!
2019-07-16 | o-ran-sc.org
end footer
skinparam backgroundColor #fefefe
skinparam backgroundColor #fefefe
'skinparam handwritten true
skinparam roundcorner 15
skinparam componentStyle uml2
skinparam component {
BorderColor #666666
BackgroundColor #fefefe
}
skinparam interface {
BorderColor #666666
BackgroundColor #fefefe
FontColor #fefefe
}
skinparam databaseBorderColor #666666
skinparam databaseBackgroundColor #fefefe
skinparam databaseFontColor #666666
skinparam node {
FontColor #ffffff
}
skinparam sequence {
MessageAlign left
ArrowColor #fefefe
ArrowFontColor #fefefe
ArrowThickness 2.5
ActorBorderColor #666666
LifeLineBorderColor #666666
LifeLineBackgroundColor #eeeeee
BoxBorderColor #666666
GroupBorderColor #666666
GroupBackgroundColor #eeeeee
ParticipantBorderColor #666666
ParticipantBackgroundColor #ffffdd
'ParticipantFontName Impact
'ParticipantFontSize 17
ParticipantFontColor #666666
ActorBackgroundColor #ffffdd
'ActorFontColor DeepSkyBlue
'ActorFontSize 17
'ActorFontName Aapex
}
@enduml
Design guidelines
- Each NetConf session should be terminated as soon as possible. Therefore any solution requiring a permanent NetConf session (e.g. for NetConf Notification) should be avoided.
(TODO: add here the reasons for such requirement/expectation. It may have something to do with avoiding TCP connection for better scale. However, for the required event streaming functionality, a permanent session is necessary. To be continued) - The NetConf client should be informed about the status of the VES connection. In the case of misconfiguration, alarm events can not be sent to the MnS Consumer (alarm blindness). The only channel to troubleshoot such situation is via NetConf.
Subscription
Message flow
- Establish a NetConf session
A secure communication channel is required to establish a NetConf session. This can be done via Secure Shell (SSH) connection (RFC6242) or via Transport Layer Security (TLS) (RFC5539).
Due to the fact that O-RAN-Alliance requires TLS for HTTP traffic, it is preferred and recommended to use also TLS for NetConf. - Subscribe for VES events
Please note: The details about the NetConf operation and the exact data structure are currently (2019-07-28) under discussion. The results of this discussion will be updated later here. - Inform about a new subscription
An MnS Provider internal mechanism is necessary to verify the VES configuration. - Check VES connectivity
The verification of the VES communication channel id done by sending a VES heartbeat. - TO BE CONTINUED
Figure
PlantUml
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright 2019 highstreet technologies GmbH
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
' http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.
'
' Author: martin.skorupski@highstreet-technologies.com
@startuml
' Diagram
title
O-RAN-SC
O1-Interface: VES Subscription procedure
end title
box "\nManagement-Service (MnS) Provider\nManagedElement" #ED7D31
participant "<b>Client</b>" as vesc <<VES>>
participant "<b>Server</b>" as ncs <<NetConf>>
end box
box "\nManagement-Service (MnS) Consumer\nOAMController" #8064A2
participant "<b>Client</b>" as ncc <<NetConf>>
participant "<b>Server</b>" as vess <<VES>>
end box
autonumber "<b>[00]"
group VES Subscription
ncc <-> ncs: tcp/tls/netconf/830\nEstablish NetConf Session (hello, ...)
ncc -> ncs: subscribe for VES events
activate ncs
ncs -> vesc: inform about a new subscription
vesc -> vess: Check connectivity (e.g. tcp/tls/http/ves/heartbeat)
vesc <- vess: expected response "SUCCESS" (http status: 200)
vesc-> ncs: inform about status of the VES connection
ncs -> ncc: Response (expected: success, unexpected: failure)
deactivate ncs
ncc -> ncs: Terminate NetConf Session
end group
' End Diagram
' Format
header
<b><font color=#8888ff>License</font></b>
<b><font color=#8888ff>Apache 2.0</font></b>
end header
'caption "\n UML Formatting"
right footer
VES Subscription
Thanks to plantUml!
2019-07-27 | o-ran-sc.org
end footer
skinparam backgroundColor #fefefe
skinparam backgroundColor #fefefe
'skinparam handwritten true
skinparam roundcorner 15
skinparam databaseBorderColor #666666
skinparam databaseBackgroundColor #fefefe
skinparam databaseFontColor #666666
skinparam sequence {
MessageAlign left
ArrowColor #2277dd
ArrowFontColor #666666
ActorBorderColor #666666
LifeLineBorderColor #666666
LifeLineBackgroundColor #eeeeee
BoxFontColor #ffffff
BoxBorderColor #666666
GroupBorderColor #666666
GroupBackgroundColor #eeeeee
ParticipantBorderColor #666666
ParticipantBackgroundColor #ffffdd
'ParticipantFontName Impact
'ParticipantFontSize 17
ParticipantFontColor #666666
ActorBackgroundColor #ffffdd
'ActorFontColor DeepSkyBlue
'ActorFontSize 17
'ActorFontName Aapex
}
@enduml
Un-subscription
Workflow
Figure
PlantUml
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright 2019 highstreet technologies GmbH
' Licensed under the Apache License, Version 2.0 (the"License");
' you may not use this file except in compliance withthe License.
' You may obtain a copy of the License at
'
' http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to inwriting, software
' distributed under the License is distributed on an"AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, eitherexpress or implied.
' See the License for the specific language governingpermissions and
' limitations under the License.
'
' Author: martin.skorupski@highstreet-technologies.com
@startuml
' Diagram
title
O-RAN-SC
O1-Interface: VES Un-subscription procedure
end title
box "\nManagement-Service (MnS)Provider\nManagedElement" #ED7D31
participant "<b>Client</b>" as vesc <<VES>>
participant "<b>Server</b>" as ncs <<NetConf>>
end box
box "\nManagement-Service (MnS) Consumer\nOAMController" #8064A2
participant "<b>Client</b>" as ncc <<NetConf>>
participant "<b>Server</b>" as vess <<VES>>
end box
autonumber "<b>[00]"
group VES Un-subscription
ncc <-> ncs: tcp/tls/netconf/830\nEstablish NetConf Session (hello, ...)
ncc -> ncs: unsubscribe (which operation)
activate ncs
ncs -> vesc: inform about the deleted subscription
vesc -> vess: send cooresponding event (which domain?)
vesc <- vess: http status: 200
vesc -> ncs: successful unsubscription
ncs -> ncc: Done!
deactivate ncs
ncc -> ncs: Terminate NetConf session
end group
' End Diagram
' Format
header
<b><font color=#8888ff>License</font></b>
<b><font color=#8888ff>Apache 2.0</font></b>
end header
'caption "\n UML Formatting"
right footer
VES Unsubscription
Thanks to plantUml!
2019-07-27 | o-ran-sc.org
end footer
skinparam backgroundColor #fefefe
skinparam backgroundColor #fefefe
'skinparam handwritten true
skinparam roundcorner 15
skinparam databaseBorderColor #666666
skinparam databaseBackgroundColor #fefefe
skinparam databaseFontColor #666666
skinparam sequence {
MessageAlign left
ArrowColor #2277dd
ArrowFontColor #666666
ActorBorderColor #666666
LifeLineBorderColor #666666
LifeLineBackgroundColor #eeeeee
BoxFontColor #ffffff
BoxBorderColor #666666
GroupBorderColor #666666
GroupBackgroundColor #eeeeee
ParticipantBorderColor #666666
ParticipantBackgroundColor #ffffdd
'ParticipantFontName Impact
'ParticipantFontSize 17
ParticipantFontColor #666666
ActorBackgroundColor #ffffdd
'ActorFontColor DeepSkyBlue
'ActorFontSize 17
'ActorFontName Aapex
}
@enduml