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 |
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.
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.
... 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."; ... |