<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:16:56 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[NETCONF-1213] Make connection timeout and keep-alive configurable for Call-Home services</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-1213</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;In order to integrate with topology service (CallHomeTopology extends AbstractNetconfTopology) CallHomeMountService substitutes the netconf client related artifacts with own simplified implementations, omitting transport layer. See:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/opendaylight/netconf/blob/9cbca25f05f9db667293ee8de85c22073ac646f4/apps/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeMountService.java#L153&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;CallHomeMountService.createClientConfigurationBuilderFactory()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/opendaylight/netconf/blob/9cbca25f05f9db667293ee8de85c22073ac646f4/apps/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeMountService.java#L164&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;CallHomeMountService.createClientFactory()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This results connection parameters like connection timeout and keep-alive options are not configurable but hard-coded.&lt;/p&gt;

&lt;p&gt;&lt;ins&gt;&lt;b&gt;Connection timeout&lt;/b&gt;&lt;/ins&gt; is used by Netconf session negotiation logic which terminates connection in case the hello message was not accepted during expected period. The timeout value is set via NetconfClientSessionNetiatorFactory constructor with default via&#160;&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;SSH: &lt;a href=&quot;https://github.com/opendaylight/netconf/blob/9cbca25f05f9db667293ee8de85c22073ac646f4/netconf/callhome-server/src/main/java/org/opendaylight/netconf/callhome/server/ssh/CallHomeSshServer.java#L163&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;CallHomeSshServer.Builder.build()&lt;/a&gt; invoked from &lt;a href=&quot;https://github.com/opendaylight/netconf/blob/9cbca25f05f9db667293ee8de85c22073ac646f4/apps/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/IetfZeroTouchCallHomeServerProvider.java#L57&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;IetfZeroTouchCallHomeServerProvider&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;TLS: &lt;a href=&quot;https://github.com/opendaylight/netconf/blob/9cbca25f05f9db667293ee8de85c22073ac646f4/netconf/callhome-server/src/main/java/org/opendaylight/netconf/callhome/server/tls/CallHomeTlsServer.java#L89&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;CallHomeTlsServer.Builder.build()&lt;/a&gt; invoked from &lt;a href=&quot;https://github.com/opendaylight/netconf/blob/9cbca25f05f9db667293ee8de85c22073ac646f4/apps/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/tls/NetconfCallHomeTlsService.java#L62&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;NetconfCallHomeTlsService&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Suggestion is to pass configured connection timeout parametr to corresponding server builder (already implemented for TLS case) then build default NetconfClientSessionNegotiatorFactory based on this parameter, not the default one.&lt;/p&gt;

&lt;p&gt;&lt;ins&gt;&lt;b&gt;Keep-alive delay&lt;/b&gt;&lt;/ins&gt; and &lt;ins&gt;&lt;b&gt;request timeout&lt;/b&gt;&lt;/ins&gt; parameters are used by &lt;a href=&quot;https://github.com/opendaylight/netconf/blob/9cbca25f05f9db667293ee8de85c22073ac646f4/apps/netconf-topology/src/main/java/org/opendaylight/netconf/topology/spi/NetconfNodeHandler.java#L153&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;NetconfNodeHandler&lt;/a&gt; in order to perform periodic sending keep-alive messages over netconf layer. For call-home service these values are hard-coded on building synthetic node instance which substitutes netconf-topology node -&amp;gt; see &#160;&lt;a href=&quot;https://github.com/opendaylight/netconf/blob/9cbca25f05f9db667293ee8de85c22073ac646f4/apps/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeMountService.java#L183&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;CallHomeMountService.asNode()&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Suggested to add configuration with parameters mentioned to CallHomeMountService service.&#160;&lt;/p&gt;

&lt;p&gt;Taking into account CallHomeMountService is used as reference in both TLS and SSH services it makes sense to join all&#160; the configurations into single one to be used by all the services within &lt;b&gt;callhome-provider&lt;/b&gt; bundle.&lt;/p&gt;</description>
                <environment></environment>
        <key id="37733">NETCONF-1213</key>
            <summary>Make connection timeout and keep-alive configurable for Call-Home services</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="10001" iconUrl="https://jira.opendaylight.org/" description="">In Review</status>
                    <statusCategory id="4" key="indeterminate" colorName="yellow"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="SamoSchneider">Samuel Schneider</assignee>
                                    <reporter username="rkashapov">Ruslan Kashapov</reporter>
                        <labels>
                            <label>pt</label>
                    </labels>
                <created>Tue, 12 Dec 2023 14:20:21 +0000</created>
                <updated>Mon, 15 Jan 2024 11:56:48 +0000</updated>
                                                                            <component>netconf</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                        <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i0472f:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>