[NETCONF-989] Reconnection failure after deleting and re-adding call-home devices Created: 06/Apr/23  Updated: 05/Feb/24

Status: In Review
Project: netconf
Component/s: restconf-nb
Affects Version/s: 2.0.17, 3.0.9, 4.0.5, 5.0.4
Fix Version/s: 7.0.0

Type: Bug Priority: High
Reporter: Yaroslav Lastivka Assignee: Yaroslav Lastivka
Resolution: Unresolved Votes: 0
Labels: pt
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File karaf.log    
Issue Links:
Relates
relates to NETCONF-1161 Callhome Issues with ODL Netconf and ... Open
relates to NETCONF-961 CallHomeSessionContext session cannot... Resolved
relates to NETCONF-681 Netconf Callhome SSH: drop connections Resolved

 Description   

Steps to reproduce the issue:

  • Setup netopeer2 call-home device
  • Add netopeer2 to allowed call-home devices == device is connected successfully
  • Delete all allowed devices
  • Add netopeer2 to allowed call-home devices again == device is connected but failed in call-home configuration

Even after 1 hour, no connection attempts were noticed, netopeer has DISCONNECTED status in callhome topology, although the node in netconf topology is CONNECTED. 

`/rests/data/odl-netconf-callhome-server:netconf-callhome-server` status:

{
    "odl-netconf-callhome-server:netconf-callhome-server": {
        "allowed-devices": {
            "device": [
                {
                    "unique-id": "netopeer",
                    "ssh-client-params": {
                        "credentials": {
                            "username": "root",
                            "passwords": [
                                "root"
                            ]
                        },
                        "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCwqz0kHv7iZdXSqYSaYTyvdtTayJ8Yqu3BhqLWQupsURWnkSJx8XUsUtwSOvTiEiNPCL8UOQaaWL3OLOyKqldCP9uZfSTd/47O27s7OTm10bKsLT3mTk21+bzLslPgWntxrFTZJzpG0HIjUf0WNYZwIE3HY8bZAYddDi38kS20oRrBjdWbC0XUxmyCVDh8oucegOLhHj12w9a5iBSEKosx0T63maIVr8M0IU7HnaQ1sp9/OBJmygI5r+EFWh7ao279W9v/pH5mMSHZnYIFthWpzpO0JMoksSXIktNBFkfAVjZr/+NvNj7tq8Xd6lILHrWBdeqY3kjTH7BiMoNjLa0N"
                    },
                    "callhome-status:device-status": "DISCONNECTED"
                }
            ]
        }
    }
} 

`/rests/data/network-topology:network-topology/topology=topology-netconf` status:

{
    "network-topology:topology": [
        {
            "topology-id": "topology-netconf",
            "node": [
                {
                    "node-id": "netopeer",
                    "netconf-node-topology:port": 51736,
                    "netconf-node-topology:connection-status": "connected",
                    "netconf-node-topology:session-id": 2,
                    "netconf-node-topology:host": "172.17.0.2",
                    "netconf-node-topology:available-capabilities": {
                        "available-capability": [
                            {
                                "capability": "urn:ietf:params:netconf:base:1.1",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "urn:ietf:params:netconf:base:1.0",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "urn:ietf:params:netconf:capability:validate:1.1",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "urn:ietf:params:netconf:capability:startup:1.0",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "urn:ietf:params:netconf:capability:writable-running:1.0",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "urn:ietf:params:netconf:capability:with-defaults:1.0?basic-mode=explicit&also-supported=report-all,report-all-tagged,trim,explicit",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "urn:ietf:params:netconf:capability:confirmed-commit:1.1",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "urn:ietf:params:netconf:capability:rollback-on-error:1.0",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "urn:ietf:params:netconf:capability:yang-library:1.1?revision=2019-01-04&content-id=1",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "urn:ietf:params:netconf:capability:notification:1.0",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "urn:ietf:params:netconf:capability:interleave:1.0",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "urn:ietf:params:netconf:capability:xpath:1.0",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "urn:ietf:params:netconf:capability:candidate:1.0",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-x509-cert-to-name?revision=2014-12-10)ietf-x509-cert-to-name",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount?revision=2019-01-14)ietf-yang-schema-mount"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-datastores?revision=2018-02-14)ietf-datastores"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-netconf-server?revision=2019-07-02)ietf-netconf-server"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-tls-server?revision=2019-07-02)ietf-tls-server"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:1?revision=2022-06-16)yang",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-restconf?revision=2017-01-26)ietf-restconf"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-tcp-server?revision=2019-07-02)ietf-tcp-server"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-keystore?revision=2019-07-02)ietf-keystore"
                            },
                            {
                                "capability": "(http://www.sysrepo.org/yang/sysrepo?revision=2021-10-08)sysrepo"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults?revision=2011-06-01)ietf-netconf-with-defaults",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-netconf-nmda?revision=2019-01-07)ietf-netconf-nmda"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)ietf-subscribed-notifications"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-ssh-server?revision=2019-07-02)ietf-ssh-server"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-ssh-common?revision=2019-07-02)ietf-ssh-common"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-ip?revision=2018-02-22)ietf-ip"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-netconf-acm?revision=2018-02-14)ietf-netconf-acm",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-yang-library?revision=2019-01-04)ietf-yang-library"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring?revision=2010-10-04)ietf-netconf-monitoring",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-yang-patch?revision=2017-02-22)ietf-yang-patch"
                            },
                            {
                                "capability": "(urn:sysrepo:plugind?revision=2022-08-26)sysrepo-plugind",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-yang-push?revision=2019-09-09)ietf-yang-push"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-origin?revision=2018-02-14)ietf-origin"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-tls-common?revision=2019-07-02)ietf-tls-common"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-yang-structure-ext?revision=2020-06-17)ietf-yang-structure-ext"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-inet-types?revision=2013-07-15)ietf-inet-types",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-crypto-types?revision=2019-07-02)ietf-crypto-types"
                            },
                            {
                                "capability": "(http://www.sysrepo.org/yang/sysrepo-monitoring?revision=2022-08-19)sysrepo-monitoring"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:iana-crypt-hash?revision=2014-08-06)iana-crypt-hash",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-tcp-common?revision=2019-07-02)ietf-tcp-common"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-yang-metadata?revision=2016-08-05)ietf-yang-metadata",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-truststore?revision=2019-07-02)ietf-truststore"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)ietf-netconf-notifications",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:netconf:base:1.0?revision=2013-09-29)ietf-netconf",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-tcp-client?revision=2019-07-02)ietf-tcp-client"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-network-instance?revision=2019-01-21)ietf-network-instance"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:netconf:notification:1.0?revision=2008-07-14)notifications",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:netmod:notification?revision=2008-07-14)nc-notifications",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-yang-types?revision=2013-07-15)ietf-yang-types",
                                "capability-origin": "device-advertised"
                            },
                            {
                                "capability": "(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2018-02-20)ietf-interfaces"
                            }
                        ]
                    }
                }
            ]
        }
    ]
} 


 Comments   
Comment by Ivan Hrasko [ 26/Apr/23 ]

When we delete allowed device - there is no interaction with netconf topology. Netconf device is still connected.

When we add allowed device again - there is no interaction with netconf topology. Netconf device is still connected.

CallhomeStatusReporter does not make periodic checking what is the status of device. And maybe that is not even needed.
The problem here is that when user disallow device its still in netconf topology. If device was deleted from netconf topology when disallowed then after allowing again we can get correct status in both callhome configuration and netconf topology.

Comment by Samit Ghosh [ 21/Sep/23 ]

I have filed a bug related to this problem with some more observations that might be helpful and these can be found here: https://jira.opendaylight.org/browse/NETCONF-1161

Was wondering if there is an ETA for this bug fix as there are customers who are asking for this fix.

We are observing this problem in

ONAP Jakarta

Opendaylight Phosphorus SR1 (0.15.1)

ONAP CCSDK version 2.3.0

Comment by Ivan Hrasko [ 21/Sep/23 ]

There is no ETA even no analysis how to fix this issue. IMHO it would be a quite huge effort.

The customers can contact sales@pantheon.tech in order to get support.

Generated at Wed Feb 07 20:16:24 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.