<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:16:01 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-832] SSH global request returns failure/  unsupported state</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-832</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;It seems that SSH-global-requests / SSH-keepalive mechanisms are not correctly handled and return an error.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#section-4.1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;RFC keepalive@example.com8071&lt;/a&gt;] (s. S7) specifies specific keepalive-mechanisms in order to establish a persisent connection. For a connection, that is established via SSH,&#160; global requests (&#160;&lt;tt&gt;SSH_MSG_GLOBAL_REQUEST&lt;/tt&gt; ) with request-name and want-reply are exchanged. &lt;a href=&quot;#section-4&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;RFC 4254&lt;/a&gt;]specifies these SSH global requests. If the client supports these mechanisms it should return&#160;&lt;tt&gt;SSH_MSG_REQUEST_SUCCESS&lt;/tt&gt; or in failure case / unsupported state &lt;tt&gt;SSH_MSG_REQUEST_FAILURE&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;In general it looks that ODL sends&#160;&lt;tt&gt;SSH_MSG_REQUEST_FAILURE&lt;/tt&gt; and handels the global request&#160;&lt;tt&gt;SSH_MSG_GLOBAL_REQUEST&lt;/tt&gt; as unsupported.&lt;/p&gt;

&lt;p&gt;Scenario:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Netconf-connection is established via callhome. Device is correctly mounted and hello-messages are exchanged.&lt;/li&gt;
	&lt;li&gt;Device sends global requests &lt;tt&gt;SSH_MSG_GLOBAL_REQUEST&lt;/tt&gt;&#160;to the client / ODL.&lt;/li&gt;
	&lt;li&gt;ODL logs these requests as unsupported.&lt;/li&gt;
	&lt;li&gt;Device receives &lt;tt&gt;SSH_MSG_REQUEST_FAILURE&lt;/tt&gt;-response and drops connection because of missing &lt;tt&gt;SSH_MSG_REQUEST_SUCCESS&lt;/tt&gt;-response.&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
08:43:09.147 TRACE [nioEventLoopGroup-4-2] decode(ClientSessionImpl[admin@/127.0.0.1:35381]) packet #15 [chunk #1](27/27) 50 00 00 00 15 6b 65 65 70 61 6c 69 76 65 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 01                                                                                                                   P....keepalive@example.com.
08:43:09.151 TRACE [nioEventLoopGroup-4-2] doHandleMessage(ClientSessionImpl[admin@/127.0.0.1:35381]) process SSH_MSG_GLOBAL_REQUEST
08:43:09.152 DEBUG [nioEventLoopGroup-4-2] globalRequest(ClientConnectionService[ClientSessionImpl[admin@/127.0.0.1:35381]]) received SSH_MSG_GLOBAL_REQUEST keepalive@example.com want-reply=&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
08:43:09.155 DEBUG [nioEventLoopGroup-4-2] process(ClientConnectionService[ClientSessionImpl[admin@/127.0.0.1:35381]]) request=keepalive@example.com, want-reply=&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
08:43:09.157 TRACE [nioEventLoopGroup-4-2] globalRequest(ClientConnectionService[ClientSessionImpl[admin@/127.0.0.1:35381]]) OpenSshHostKeysHandler#process(keepalive@example.com)[want-reply=&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;] : Unsupported
08:43:09.159 WARN [nioEventLoopGroup-4-2] handleUnknownRequest(ClientConnectionService[ClientSessionImpl[admin@/127.0.0.1:35381]]) unknown global request: keepalive@example.com
08:43:09.162 DEBUG [nioEventLoopGroup-4-2] sendGlobalResponse(ClientConnectionService[ClientSessionImpl[admin@/127.0.0.1:35381]])[keepalive@example.com] result=Unsupported, want-reply=&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
08:43:09.163 DEBUG [nioEventLoopGroup-4-2] encode(ClientSessionImpl[admin@/127.0.0.1:35381]) packet #12 sending command=82[SSH_MSG_REQUEST_FAILURE] len=1
08:43:09.164 TRACE [nioEventLoopGroup-4-2] encode(ClientSessionImpl[admin@/127.0.0.1:35381]) packet #12 [chunk #1](1/1) 52                                                                                                                                                                                                 R
08:43:09.166 TRACE [nioEventLoopGroup-4-2] encode(ClientSessionImpl[admin@/127.0.0.1:35381]) packet #12 command=82[SSH_MSG_REQUEST_FAILURE] len=28, pad=26, mac=BaseMac[HmacSHA256] -  block=32/32 bytes, encrypt-then-mac=&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;
08:43:09.169 TRACE [nioEventLoopGroup-4-2] decode(ClientSessionImpl[admin@/127.0.0.1:35381]) packet #16 [chunk #1](27/27) 50 00 00 00 15 6b 65 65 70 61 6c 69 76 65 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 01                                                                                                                   P....keepalive@example.com.
08:43:09.171 TRACE [nioEventLoopGroup-4-2] doHandleMessage(ClientSessionImpl[admin@/127.0.0.1:35381]) process SSH_MSG_GLOBAL_REQUEST
08:43:09.178 DEBUG [nioEventLoopGroup-4-2] globalRequest(ClientConnectionService[ClientSessionImpl[admin@/127.0.0.1:35381]]) received SSH_MSG_GLOBAL_REQUEST keepalive@example.com want-reply=&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
08:43:09.179 DEBUG [nioEventLoopGroup-4-2] process(ClientConnectionService[ClientSessionImpl[admin@/127.0.0.1:35381]]) request=keepalive@example.com, want-reply=&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
08:43:09.180 TRACE [nioEventLoopGroup-4-2] globalRequest(ClientConnectionService[ClientSessionImpl[admin@/127.0.0.1:35381]]) OpenSshHostKeysHandler#process(keepalive@example.com)[want-reply=&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;] : Unsupported
08:43:09.181 WARN [nioEventLoopGroup-4-2] handleUnknownRequest(ClientConnectionService[ClientSessionImpl[admin@/127.0.0.1:35381]]) unknown global request: keepalive@example.com
08:43:09.182 DEBUG [nioEventLoopGroup-4-2] sendGlobalResponse(ClientConnectionService[ClientSessionImpl[admin@/127.0.0.1:35381]])[keepalive@example.com] result=Unsupported, want-reply=&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
08:43:09.184 DEBUG [nioEventLoopGroup-4-2] encode(ClientSessionImpl[admin@/127.0.0.1:35381]) packet #13 sending command=82[SSH_MSG_REQUEST_FAILURE] len=1
08:43:09.184 TRACE [nioEventLoopGroup-4-2] encode(ClientSessionImpl[admin@/127.0.0.1:35381]) packet #13 [chunk #1](1/1) 52                                                                                                                                                                                                 R
08:43:09.185 TRACE [nioEventLoopGroup-4-2] encode(ClientSessionImpl[admin@/127.0.0.1:35381]) packet #13 command=82[SSH_MSG_REQUEST_FAILURE] len=28, pad=26, mac=BaseMac[HmacSHA256] -  block=32/32 bytes, encrypt-then-mac=&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;
08:43:09.187 DEBUG [nioEventLoopGroup-4-2] close(ClientSessionImpl[admin@/127.0.0.1:35381]) Closing immediately
08:43:09.188 DEBUG [nioEventLoopGroup-4-2] signalAuthFailure(ClientSessionImpl[admin@/127.0.0.1:35381]) type=SshException, signalled=&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;: Session is being closed
08:43:09.190 DEBUG [nioEventLoopGroup-4-2] SSH Session ClientSessionImpl[admin@/127.0.0.1:35381] closed
08:43:09.193 DEBUG [nioEventLoopGroup-4-2] sessionClosed(ClientSessionImpl[admin@/127.0.0.1:35381]) un-tracked
08:43:09.194 TRACE [nioEventLoopGroup-4-2] doClose(org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1@5612e771) closing ParallelCloseable[DefaultCloseFuture[id=ClientSessionImpl[admin@/127.0.0.1:35381]][value=&lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;]] immediately=&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
08:43:09.195 TRACE [nioEventLoopGroup-4-2] doClose(&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;) pending closeables: 2
08:43:09.196 DEBUG [nioEventLoopGroup-4-2] close(ClientConnectionService[ClientSessionImpl[admin@/127.0.0.1:35381]]) Closing immediately
08:43:09.196 DEBUG [nioEventLoopGroup-4-2] stopHeartBeat(ClientSessionImpl[admin@/127.0.0.1:35381]) no heartbeat to stop
08:43:09.197 TRACE [nioEventLoopGroup-4-2] doClose(&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;) pending closeables: 2
08:43:09.198 DEBUG [nioEventLoopGroup-4-2] close(ChannelSubsystem[id=0, recipient=0]-ClientSessionImpl[admin@/127.0.0.1:35381][netconf]) Closing immediately
08:43:09.198 DEBUG [nioEventLoopGroup-4-2] close(ChannelSubsystem[id=0, recipient=0]-ClientSessionImpl[admin@/127.0.0.1:35381][netconf]) prevent sending EOF
08:43:09.199 DEBUG [nioEventLoopGroup-4-2] Closing Window[client/local](ChannelSubsystem[id=0, recipient=0]-ClientSessionImpl[admin@/127.0.0.1:35381][netconf])
08:43:09.199 DEBUG [nioEventLoopGroup-4-2] Closing Window[client/remote](ChannelSubsystem[id=0, recipient=0]-ClientSessionImpl[admin@/127.0.0.1:35381][netconf])
08:43:09.201 TRACE [nioEventLoopGroup-4-2] doClose(org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1@59307114) closing SequentialCloseable[DefaultCloseFuture[id=Builder][value=&lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;]] immediately=&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
08:43:09.201 TRACE [nioEventLoopGroup-4-2] doClose(org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1@4a2d8fab) closing FuturesCloseable[DefaultCloseFuture[id=ChannelSubsystem[id=0, recipient=-1]-ClientSessionImpl[admin@/127.0.0.1:35381][netconf]][value=&lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;]] immediately=&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
08:43:09.202 TRACE [nioEventLoopGroup-4-2] doClose(org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1@4a2d8fab) closing [DefaultCloseFuture[id=ChannelSubsystem[id=0, recipient=0]-ClientSessionImpl[admin@/127.0.0.1:35381][netconf]][value=&lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;]] immediately=&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
08:43:09.203 TRACE [nioEventLoopGroup-4-2] doClose(org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1@4a2d8fab) closing ParallelCloseable[DefaultCloseFuture[id=Builder][value=&lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;]] immediately=&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
08:43:09.205 TRACE [nioEventLoopGroup-4-2] doClose(&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;) pending closeables: 2
08:43:09.205 DEBUG [nioEventLoopGroup-4-2] close([ChannelSubsystem[id=0, recipient=0]-ClientSessionImpl[admin@/127.0.0.1:35381][netconf]] cmd=SSH_MSG_CHANNEL_DATA) Closing immediately
08:43:09.206 DEBUG [nioEventLoopGroup-4-2] close([ChannelSubsystem[id=0, recipient=0]-ClientSessionImpl[admin@/127.0.0.1:35381][netconf]] cmd=SSH_MSG_CHANNEL_DATA)[Immediately] closed
08:43:09.207 TRACE [nioEventLoopGroup-4-2] doClose(&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;) completed pending: 1
08:43:09.207 TRACE [nioEventLoopGroup-4-2] doClose(&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;) pending closeables: 2
08:43:09.208 DEBUG [nioEventLoopGroup-4-2] close(ChannelAsyncInputStream[ChannelSubsystem[id=0, recipient=0]-ClientSessionImpl[admin@/127.0.0.1:35381][netconf]]) Closing immediately
08:43:09.209 DEBUG [nioEventLoopGroup-4-2] Ssh session dropped on channel: netconf
org.opendaylight.netconf.shaded.sshd.common.SshException: Closed
   at org.opendaylight.netconf.shaded.sshd.common.channel.ChannelAsyncInputStream.preClose(ChannelAsyncInputStream.java:97) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.AbstractCloseable.close(AbstractCloseable.java:94) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.ParallelCloseable.doClose(ParallelCloseable.java:65) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SimpleCloseable.close(SimpleCloseable.java:63) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:56) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:45) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.&lt;span class=&quot;code-keyword&quot;&gt;future&lt;/span&gt;.AbstractSshFuture.notifyListener(AbstractSshFuture.java:173) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.&lt;span class=&quot;code-keyword&quot;&gt;future&lt;/span&gt;.DefaultSshFuture.addListener(DefaultSshFuture.java:166) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:57) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:45) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.&lt;span class=&quot;code-keyword&quot;&gt;future&lt;/span&gt;.AbstractSshFuture.notifyListener(AbstractSshFuture.java:173) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.&lt;span class=&quot;code-keyword&quot;&gt;future&lt;/span&gt;.DefaultSshFuture.addListener(DefaultSshFuture.java:166) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:57) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:45) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable.doClose(SequentialCloseable.java:69) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SimpleCloseable.close(SimpleCloseable.java:63) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:56) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:45) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable.doClose(SequentialCloseable.java:69) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SimpleCloseable.close(SimpleCloseable.java:63) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.AbstractInnerCloseable.doCloseImmediately(AbstractInnerCloseable.java:48) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.AbstractCloseable.close(AbstractCloseable.java:95) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.ParallelCloseable.doClose(ParallelCloseable.java:65) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SimpleCloseable.close(SimpleCloseable.java:63) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.AbstractInnerCloseable.doCloseImmediately(AbstractInnerCloseable.java:48) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.AbstractCloseable.close(AbstractCloseable.java:95) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.ParallelCloseable.doClose(ParallelCloseable.java:65) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SimpleCloseable.close(SimpleCloseable.java:63) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:56) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:45) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SequentialCloseable.doClose(SequentialCloseable.java:69) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SimpleCloseable.close(SimpleCloseable.java:63) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.AbstractInnerCloseable.doCloseImmediately(AbstractInnerCloseable.java:48) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.util.closeable.AbstractCloseable.close(AbstractCloseable.java:95) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.common.session.helpers.AbstractSessionIoHandler.sessionClosed(AbstractSessionIoHandler.java:46) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.netty.NettyIoSession.channelInactive(NettyIoSession.java:244) [bundleFile:?]
   at org.opendaylight.netconf.shaded.sshd.netty.NettyIoSession$Adapter.channelInactive(NettyIoSession.java:290) [bundleFile:?]
   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262) [bundleFile:4.1.56.Final]
   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248) [bundleFile:4.1.56.Final]
   at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:241) [bundleFile:4.1.56.Final]
   at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405) [bundleFile:4.1.56.Final]
   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262) [bundleFile:4.1.56.Final]
   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248) [bundleFile:4.1.56.Final]
   at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901) [bundleFile:4.1.56.Final]
   at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:819) [bundleFile:4.1.56.Final]
   at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) [bundleFile:4.1.56.Final]
   at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) [bundleFile:4.1.56.Final]
   at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:497) [bundleFile:4.1.56.Final]
   at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [bundleFile:4.1.56.Final]
   at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [bundleFile:4.1.56.Final]
   at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [bundleFile:4.1.56.Final]
   at java.lang.&lt;span class=&quot;code-object&quot;&gt;Thread&lt;/span&gt;.run(Unknown Source) [?:?]&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="34924">NETCONF-832</key>
            <summary>SSH global request returns failure/  unsupported state</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="ivanhrasko">Ivan Hrasko</assignee>
                                    <reporter username="lenapeuk">Lena Peuker</reporter>
                        <labels>
                            <label>pt</label>
                    </labels>
                <created>Fri, 12 Nov 2021 08:22:05 +0000</created>
                <updated>Wed, 4 May 2022 13:58:22 +0000</updated>
                            <resolved>Wed, 22 Dec 2021 12:52:17 +0000</resolved>
                                                    <fixVersion>1.13.6</fixVersion>
                    <fixVersion>2.0.12</fixVersion>
                                    <component>netconf</component>
                        <due></due>
                            <votes>1</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="70195" author="ivanhrasko" created="Fri, 26 Nov 2021 19:48:05 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=lenapeuk&quot; class=&quot;user-hover&quot; rel=&quot;lenapeuk&quot;&gt;lenapeuk&lt;/a&gt; What is the NETCONF version you are using? Are you able to reproduce this issue with netopeer/netopeer2? Can you reproduce the issue when device is connected &quot;manually&quot; by adding its configuration into netconf topology or the problem appears only when using call-home feature?&lt;/p&gt;</comment>
                            <comment id="70196" author="JIRAUSER14301" created="Mon, 29 Nov 2021 13:45:41 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=ivanhrasko&quot; class=&quot;user-hover&quot; rel=&quot;ivanhrasko&quot;&gt;ivanhrasko&lt;/a&gt;: Thanks for you response. Actually the NetworkFunction we are working with is not using netopeer instead confd is used. The issue / error that the global requests are unsupported also occures if we mount the device manually, but basically the connection is not dropped but this is related to the implementation on the device side.&lt;/p&gt;</comment>
                            <comment id="70197" author="ivanhrasko" created="Mon, 29 Nov 2021 14:48:02 +0000"  >&lt;p&gt;I am afraid it can be a problem on the device. I am running the following command with running ODL Aluminium SR3 (NETCONF version 1.9.3) controller:&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;ssh -vvv -p 2830 -o ServerAliveInterval=2 -o ServerAliveCountMax=3 admin@localhost -s netconf&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;And I am getting the response as follows:&#160;&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;debug3: send packet: type 80
debug3: receive packet: type 81
debug3: send packet: type 80
debug3: receive packet: type 81
debug3: send packet: type 80
debug3: receive packet: type 81
debug3: send packet: type 80
debug3: receive packet: type 81
debug3: send packet: type 80
debug3: receive packet: type 81
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;If my assumptions are correct then 80 stands for &lt;font color=&quot;#ed94ff&quot;&gt;SSH_MSG_GLOBAL_REQUEST&lt;/font&gt; and 81 stands for &lt;font color=&quot;#ed94ff&quot;&gt;SSH_MSG_REQUEST_SUCCESS&lt;/font&gt;. Thus I think that ODL controller works as expected.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="70198" author="JIRAUSER14301" created="Mon, 29 Nov 2021 15:37:22 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=ivanhrasko&quot; class=&quot;user-hover&quot; rel=&quot;ivanhrasko&quot;&gt;ivanhrasko&lt;/a&gt; Thanks for the info. I will also check this on our side and analyze in more details &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; &lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="70200" author="ivanhrasko" created="Mon, 29 Nov 2021 18:01:24 +0000"  >&lt;p&gt;Thanks, it would really help if you are able to check the versions you&apos;re using.&lt;/p&gt;</comment>
                            <comment id="70201" author="rovarga" created="Mon, 29 Nov 2021 19:27:57 +0000"  >&lt;p&gt;&lt;a href=&quot;https://datatracker.ietf.org/doc/html/rfc4254#section-9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://datatracker.ietf.org/doc/html/rfc4254#section-9&lt;/a&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;            SSH_MSG_GLOBAL_REQUEST                  80
            SSH_MSG_REQUEST_SUCCESS                 81
            SSH_MSG_REQUEST_FAILURE                 82
            SSH_MSG_CHANNEL_OPEN                    90
            SSH_MSG_CHANNEL_OPEN_CONFIRMATION       91
            SSH_MSG_CHANNEL_OPEN_FAILURE            92
            SSH_MSG_CHANNEL_WINDOW_ADJUST           93
            SSH_MSG_CHANNEL_DATA                    94
            SSH_MSG_CHANNEL_EXTENDED_DATA           95
            SSH_MSG_CHANNEL_EOF                     96
            SSH_MSG_CHANNEL_CLOSE                   97
            SSH_MSG_CHANNEL_REQUEST                 98
            SSH_MSG_CHANNEL_SUCCESS                 99
            SSH_MSG_CHANNEL_FAILURE                100 &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="70302" author="JIRAUSER14301" created="Tue, 30 Nov 2021 09:51:41 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=ivanhrasko&quot; class=&quot;user-hover&quot; rel=&quot;ivanhrasko&quot;&gt;ivanhrasko&lt;/a&gt; It is version 1.0&lt;/p&gt;</comment>
                            <comment id="70303" author="ivanhrasko" created="Tue, 30 Nov 2021 10:49:22 +0000"  >&lt;p&gt;So NETCONF version is 1.0.0-Beryllium? Are you still using ODL Beryllium?&lt;/p&gt;</comment>
                            <comment id="70304" author="rovarga" created="Tue, 30 Nov 2021 13:14:14 +0000"  >&lt;p&gt;Is that the version of the VNF or the version of OpenDaylight stack (or ONAP SDNC, or what is it?)&lt;/p&gt;</comment>
                            <comment id="70305" author="JIRAUSER14301" created="Tue, 30 Nov 2021 13:29:20 +0000"  >&lt;p&gt;This is the version of the NF-device. We actually use ONAP SDNC istanbul release with ODL silicon-version.&lt;/p&gt;</comment>
                            <comment id="70306" author="ivanhrasko" created="Tue, 30 Nov 2021 14:24:58 +0000"  >&lt;p&gt;I have checked and the command:&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;ssh -vvv -p 2830 -o ServerAliveInterval=2 -o ServerAliveCountMax=3 admin@localhost -s netconf&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;works as expected also with ODL Silicon SR2.&lt;/p&gt;</comment>
                            <comment id="70318" author="ivanhrasko" created="Thu, 2 Dec 2021 20:10:47 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=lenapeuk&quot; class=&quot;user-hover&quot; rel=&quot;lenapeuk&quot;&gt;lenapeuk&lt;/a&gt; Sure, some configuration has to be done on both the controller and the device to setup the call-home correctly. For example the controller needs to have device&apos;s SSH public key and device needs to have call-home feature enabled as well. Do you remember the steps how you configured the both? Which requests have you send to ODL?&lt;/p&gt;

&lt;p&gt;&#160;&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;POST /restconf/config/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
{
 &lt;span class=&quot;code-quote&quot;&gt;&quot;device&quot;&lt;/span&gt;: {
 &lt;span class=&quot;code-quote&quot;&gt;&quot;unique-id&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;ssh-device-to-discover&quot;&lt;/span&gt;,
 &lt;span class=&quot;code-quote&quot;&gt;&quot;ssh-client-params&quot;&lt;/span&gt;: {
 &lt;span class=&quot;code-quote&quot;&gt;&quot;host-key&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;device&apos;s &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; key here&quot;&lt;/span&gt;
 }
 }
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="70319" author="JIRAUSER14301" created="Fri, 3 Dec 2021 07:38:18 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=ivanhrasko&quot; class=&quot;user-hover&quot; rel=&quot;ivanhrasko&quot;&gt;ivanhrasko&lt;/a&gt;, thanks for the info. We have exactly used these Endpoint to add the the device to the allowed device by passing the required parameters (SSH-public-key, id). Basically this works fine as expected, so we can see that hello-capabilities are exchanged, yand-models are loaded and that the device is mounted under the specified unique-id. But after a few minutes / seconds we run into this exception, that the ssh-session is closed.&lt;/p&gt;

&lt;p&gt;Actually we try to validate if it is possible to reproduce it via ssh / other netconf-client.&lt;/p&gt;</comment>
                            <comment id="70320" author="ivanhrasko" created="Fri, 3 Dec 2021 14:23:11 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=lenapeuk&quot; class=&quot;user-hover&quot; rel=&quot;lenapeuk&quot;&gt;lenapeuk&lt;/a&gt; I have setup SSH Call-Home session with Netopeer2 device and I have observed the logs like this:&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;2021-12-03T14:55:21,530 | DEBUG | nioEventLoopGroup-4-2 | AsyncSshHandlerReader | 281 - org.opendaylight.netconf.netty-util - 1.13.4 | Ssh session dropped on channel: netconf
org.opendaylight.netconf.shaded.sshd.common.SshException: Closed
 at org.opendaylight.netconf.shaded.sshd.common.channel.ChannelAsyncInputStream.preClose(ChannelAsyncInputStream.java:97) ~[bundleFile:?]
 at org.opendaylight.netconf.shaded.sshd.common.util.closeable.AbstractCloseable.close(AbstractCloseable.java:94) ~[bundleFile:?]
 at org.opendaylight.netconf.shaded.sshd.common.util.closeable.ParallelCloseable.doClose(ParallelCloseable.java:65) ~[bundleFile:?]
 at org.opendaylight.netconf.shaded.sshd.common.util.closeable.SimpleCloseable.close(SimpleCloseable.java:63) ~[bundleFile:?]&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;To appear every 10 minutes. Every 10 minutes the connection is terminated and established new one on different port.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;I expect you hit this idle timeout/disconnection and the fact that you see SSH global requests unsupported/failed is:&lt;/p&gt;

&lt;p&gt;a) not related to the disconnection itself&lt;/p&gt;

&lt;p&gt;b) it is a consequence of terminated connection.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Is this explanation applicable to your problem? Do you see anything else/different happening?&lt;/p&gt;</comment>
                            <comment id="70321" author="ivanhrasko" created="Fri, 3 Dec 2021 15:10:48 +0000"  >&lt;p&gt;Other netconf clients work?&lt;/p&gt;</comment>
                            <comment id="70322" author="ivanhrasko" created="Fri, 3 Dec 2021 15:11:36 +0000"  >&lt;p&gt;Its also possible that timeout appears as a consequence of not correctly implemented heart-beat as you said &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/biggrin.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="70323" author="ivanhrasko" created="Fri, 3 Dec 2021 15:16:09 +0000"  >&lt;p&gt;Anyway, I think that also unsupported response should be enough as heart-beat and it can be a problem of the device that it does not accept it.&lt;/p&gt;</comment>
                            <comment id="70331" author="JIRAUSER14402" created="Mon, 6 Dec 2021 07:01:37 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=lenapeuk&quot; class=&quot;user-hover&quot; rel=&quot;lenapeuk&quot;&gt;lenapeuk&lt;/a&gt;&#160;. I assume the CALL HOME is coming from devices behind NAT. Can you please check with your router admin to validate the default NAT entries timeout. It could be related to NAT entries being timed out which consequently terminates the TCP sessions for every 10 minutes also. I guess, we can consider increasing the NAT timeout and check if that helps here. &lt;/p&gt;

&lt;p&gt;Most router settings will change NAT&#160;default timer to few seconds to few minutes. This will end up closing existing TCP connections behind NAT. It seems to be the case with your device for every 10 minutes also.&lt;/p&gt;</comment>
                            <comment id="70339" author="ivanhrasko" created="Thu, 9 Dec 2021 09:32:49 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=lenapeuk&quot; class=&quot;user-hover&quot; rel=&quot;lenapeuk&quot;&gt;lenapeuk&lt;/a&gt; I have tried call home with ConfD Basic (for free) and I have observed that it sends no SSH_MSG_GLOBAL_REQUEST. Have you configured it to send it somehow?&lt;/p&gt;

&lt;p&gt;In general, every device is different, nor Netopeer2 nor ConfD in default configuration sends SSH_MSG_GLOBAL_REQUEST.&lt;br/&gt;
I believe this is the reason why NETCONF solves the problem of keeping the connection to device alive by its own mechanism.&lt;/p&gt;

&lt;p&gt;This mechanism was turned off for call home mounted devices - I have enabled it by the gerrit change: &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/netconf/+/98872&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/c/netconf/+/98872&lt;/a&gt;&lt;br/&gt;
With gerrit change NETCONF sends keep-alive message to the call home device every two minutes.&lt;/p&gt;

&lt;p&gt;IMO the SSH_MSG_REQUEST_FAILURE response is good enough according to Section 4 of RFC 4254. Its just not needed/supported - that&apos;s not reason for the device to drop connection.&lt;/p&gt;

&lt;p&gt;When you apply the proposed fix you can turn off sending SSH_MSG_GLOBAL_REQUEST and connection stays alive.&lt;/p&gt;

&lt;p&gt;If you anyway would to use SSH_MSG_GLOBAL_REQUEST instead of NETCONF own keep-alive mechanism - let me know - we need to discuss it - because it is a new feature then.&lt;/p&gt;</comment>
                            <comment id="70340" author="ivanhrasko" created="Thu, 9 Dec 2021 09:35:43 +0000"  >&lt;p&gt;Yes, that is one of the reasons why we need some keep-alive - heartbeats mechanism to keep connection alive. The current 10 minutes in ODL are configured here: &lt;a href=&quot;https://github.com/apache/mina-sshd/blob/2772c7c8f6afb8c53546ca803501f52118bd0491/sshd-core/src/main/java/org/apache/sshd/core/CoreModuleProperties.java#L319&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/apache/mina-sshd/blob/2772c7c8f6afb8c53546ca803501f52118bd0491/sshd-core/src/main/java/org/apache/sshd/core/CoreModuleProperties.java#L319&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="70341" author="JIRAUSER14301" created="Thu, 9 Dec 2021 09:44:27 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=ivanhrasko&quot; class=&quot;user-hover&quot; rel=&quot;ivanhrasko&quot;&gt;ivanhrasko&lt;/a&gt; Thanks you very much for the update. From our understanding it is configured on Device-side. Actually we try to check the device in more details.&#160; With regards to Section 4 of RFC 4254, we have a simular understanding, so maybe there might be some issues on device side.&lt;/p&gt;</comment>
                            <comment id="70401" author="JIRAUSER14301" created="Tue, 4 Jan 2022 13:07:21 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=ivanhrasko&quot; class=&quot;user-hover&quot; rel=&quot;ivanhrasko&quot;&gt;ivanhrasko&lt;/a&gt;, after some detailed testing and some further investigations, we found out the issue seems not be related to ODL or confd and we had some deeper problems with network setup of the netconf-device. It took some time to identify this because e.g. with python netconf-client it works probably and we could only see this behaviour and the drop of the connection inside ODL. So with the fix on network side after the callhome was triggered, the connection remains stable (we still see the warnings related to the global-requests, but we see it just as a warning but nothing related to our inital problem). Thank you very much for you support and your investigations &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="32632">NETCONF-681</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_10202" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Priority</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10301"><![CDATA[Normal]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i040nr:</customfieldvalue>

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