Related Jira



OAM interface specification

The figure below shows the generic principals of reading and writing operations via TLS/NetConf/Yang for configuration management. 

Subject of this discussion is about implementing a mechanisme, which ensures that the NetConf session is closed after NetConf operations.

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright 2020 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: Terminate NetConf Session
end title

box "\nManagement-Service (MnS) Provider\nManagedElement" #lightpink
participant "<b>Server</b>" as ncs <<NetConf>>
end box

box "\nManagement-Service (MnS) Consumer\nOAM Controller" #gold
participant "<b>Client</b>" as ncc <<NetConf>>
end box

autonumber "<b>[00]"

group NetConf Operations (simplyfied)

ncc <-> ncs: tcp/tls/netconf/830\nEstablish NetConf Session (hello, ...)
ncc -> ncs: NETCONF <rpc><edit-config> or others
ncs -> ncc: NETCONF <rpc-reply><OK> or <rpc-reply><rpc-error><error-xxx>
ncc -> ncs: <font color=red><b>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 
Terminate NetConf Session
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 #666666
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

Typical NetConf client behavior

Usually NetConf clients do not terminate the NetConf session automatically. With respect to ONAP-CCSDK/OpenDaylight; once ODL is aware of a NetConf server by creating a mountpoint in odl-netconf-topology, it has an automated mechanism trying to connect that NetConf server. In case the NetConf session is lost, it automatically will re-connect. 

Such mechanism needs to be "disabled" and the NetConf Session termination request must be implemented.

Proposed solution

Add an optional attribute called 'permanet-connection' to the netconf-node-topology.yang to grouping 'netconf-node-connection-parameters' with type BOOLEAN and default value TRUE. 

This way applications controlling the NetConf connection can distinguish between the currently existing behavior and the new O1-interface-behavior. Old implementations are not affected, because the new attribute is optional and its default value is according to the current behavior. 


Proposed modification on network-node-topology.yang:


 ...
 149         }
 new
 new         leaf permanent-connection {
 new             config true;
 new             type boolean;
 new             default true;
 new             description "If false, the connector disconnects, by sending <close-session> 
                              after a transaction is completed - usually after the response 
							  of <unlock>." 
 new         }
 150 
 151         leaf connection-timeout-millis {
 152             description "Specifies timeout in milliseconds after which connection must be established.";
 ...