<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:16:40 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-1097] NETCONF connection status behavior change</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-1097</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/browse/NETCONF-1070&quot; title=&quot;Rework client reconnection logic&quot; class=&quot;issue-link&quot; data-issue-key=&quot;NETCONF-1070&quot;&gt;&lt;del&gt;NETCONF-1070&lt;/del&gt;&lt;/a&gt; which implements a new NETCONF device connection mechanism introduced changes in how &lt;tt&gt;connection-status&lt;/tt&gt; is updated during reconnection attempts.&lt;/p&gt;

&lt;p&gt;Previously, &lt;tt&gt;connection-status&lt;/tt&gt; stayed in the &lt;tt&gt;connecting&lt;/tt&gt; state while reconnection is tried and transitioned to either &lt;tt&gt;connected&lt;/tt&gt; (successful connection) or &lt;tt&gt;unable-to-connect&lt;/tt&gt; (eventual connection failure).&lt;/p&gt;

&lt;p&gt;But with netconf-6.0.0, when the connection attempt fails &lt;tt&gt;connection-status&lt;/tt&gt; changes to &lt;tt&gt;unable-to-connect&lt;/tt&gt; and stays in the state until connection is successful and the status changes to &lt;tt&gt;connected&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;This makes it impossible to distinguish the following two cases with &lt;tt&gt;connection-status&lt;/tt&gt;:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Reconnection is still being tried&lt;/li&gt;
	&lt;li&gt;Reconnection attempts were exhausted and device cannot be connected&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;And since the state transitions from &lt;tt&gt;unable-to-connect&lt;/tt&gt; to &lt;tt&gt;connected&lt;/tt&gt; when the initial connection attempt fails, this may also affect downstream application which expects &lt;tt&gt;connection-status&lt;/tt&gt; changes from &lt;tt&gt;connecting&lt;/tt&gt; to  &lt;tt&gt;connected&lt;/tt&gt; - e.g. &lt;a href=&quot;https://github.com/opendaylight/transportpce/blob/master/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetConfTopologyListener.java#L90&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;TransportPCE NetConfTopologyListener&lt;/a&gt;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="37127">NETCONF-1097</key>
            <summary>NETCONF connection status behavior change</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="rovarga">Robert Varga</assignee>
                                    <reporter username="sangwookha">Sangwook Ha</reporter>
                        <labels>
                            <label>pt</label>
                            <label>regression</label>
                    </labels>
                <created>Thu, 20 Jul 2023 23:17:43 +0000</created>
                <updated>Mon, 7 Aug 2023 09:23:24 +0000</updated>
                            <resolved>Mon, 7 Aug 2023 09:23:24 +0000</resolved>
                                    <version>6.0.0</version>
                    <version>7.0.0</version>
                                    <fixVersion>7.0.0</fixVersion>
                    <fixVersion>6.0.1</fixVersion>
                                    <component>netconf-topology</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="72416" author="guillaume.lambert@orange.com" created="Fri, 21 Jul 2023 05:21:09 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=gthouenon&quot; class=&quot;user-hover&quot; rel=&quot;gthouenon&quot;&gt;gthouenon&lt;/a&gt; &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=orenais&quot; class=&quot;user-hover&quot; rel=&quot;orenais&quot;&gt;orenais&lt;/a&gt; FYI&lt;/p&gt;</comment>
                            <comment id="72421" author="ivanhrasko" created="Tue, 25 Jul 2023 08:01:22 +0000"  >&lt;p&gt;We have to ensure that:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;when we are below max_attempts the device status is &lt;b&gt;connecting&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;when we are exceeding max_attempts the device status is &lt;b&gt;unable-to-connect&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;when device is turned off and on again we need to ensure transition from &lt;b&gt;connecting&lt;/b&gt; to &lt;b&gt;connected&lt;/b&gt;&lt;/li&gt;
	&lt;li&gt;when device is turned off and on again we need to ensure that device stays in &lt;b&gt;unable-to-connect&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;b&gt;All these requirements are satisfied in 5.0.x branch.&lt;/b&gt;&lt;/p&gt;</comment>
                            <comment id="72422" author="ivanhrasko" created="Tue, 25 Jul 2023 08:05:02 +0000"  >&lt;p&gt;The option #3 can be tested when running testool (which automatically creates &lt;b&gt;17830-sim-device&lt;/b&gt;) and simultaneously creating another topology node, for example &lt;b&gt;test-device&lt;/b&gt; with the same configuration as &lt;b&gt;17830-sim-device&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;Now, after turning off and on testtool we are getting incorrect response:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;GET http://192.168.56.25:8181/rests/data/network-topology:network-topology/topology=topology-netconf?fields=node/node-id;node/netconf-node-topology:connection-status&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;{
&#160; &#160; &quot;network-topology:topology&quot;: [
&#160; &#160; &#160; &#160; {
&#160; &#160; &#160; &#160; &#160; &#160; &quot;node&quot;: [
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; {
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &quot;node-id&quot;: &quot;17830-sim-device&quot;,
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &quot;netconf-node-topology:connection-status&quot;: &quot;connected&quot;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; },
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; {
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &quot;node-id&quot;: &quot;test-device&quot;,
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &quot;netconf-node-topology:connection-status&quot;: &quot;unable-to-connect&quot;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; &#160; &#160; ]
&#160; &#160; &#160; &#160; }
&#160; &#160; ]
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;We expect both devices to be &lt;b&gt;connected&lt;/b&gt;. Assuming the devices max_attempt to reconnect are not exceeded.&lt;/p&gt;</comment>
                            <comment id="72423" author="ivanhrasko" created="Tue, 25 Jul 2023 09:11:01 +0000"  >&lt;p&gt;...&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;&quot;netconf-node-topology:max-connection-attempts&quot;: 0&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;is used to set unlimited connection attempts.&lt;/p&gt;</comment>
                            <comment id="72435" author="ivanhrasko" created="Fri, 4 Aug 2023 06:55:05 +0000"  >&lt;p&gt;Ready for review, to p[prevent further occurrences of similar issues we will create unit tests in &lt;a href=&quot;https://jira.opendaylight.org/browse/NETCONF-1119&quot; title=&quot;Create unit tests for NETCONF connection status behavior change&quot; class=&quot;issue-link&quot; data-issue-key=&quot;NETCONF-1119&quot;&gt;&lt;del&gt;NETCONF-1119&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="72436" author="rovarga" created="Sat, 5 Aug 2023 22:49:24 +0000"  >&lt;p&gt;This issue shows that we are quite lacking in terms of API definition. The callbacks in RemoteDeviceHandler have no attached meaning, but implementation experience shows there is an implicit lifecycle contract expressed therein.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10300">
                    <name>Issue split</name>
                                            <outwardlinks description="split to">
                                        <issuelink>
            <issuekey id="37177">NETCONF-1119</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="37179">NETCONF-1121</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="37031">NETCONF-1070</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <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|i045un:</customfieldvalue>

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