[NETCONF-1097] NETCONF connection status behavior change Created: 20/Jul/23 Updated: 07/Aug/23 Resolved: 07/Aug/23 |
|
| Status: | Resolved |
| Project: | netconf |
| Component/s: | netconf-topology |
| Affects Version/s: | 6.0.0, 7.0.0 |
| Fix Version/s: | 7.0.0, 6.0.1 |
| Type: | Bug | Priority: | Medium |
| Reporter: | Sangwook Ha | Assignee: | Robert Varga |
| Resolution: | Done | Votes: | 0 |
| Labels: | pt, regression | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||
| Description |
|
Previously, connection-status stayed in the connecting state while reconnection is tried and transitioned to either connected (successful connection) or unable-to-connect (eventual connection failure). But with netconf-6.0.0, when the connection attempt fails connection-status changes to unable-to-connect and stays in the state until connection is successful and the status changes to connected. This makes it impossible to distinguish the following two cases with connection-status:
And since the state transitions from unable-to-connect to connected when the initial connection attempt fails, this may also affect downstream application which expects connection-status changes from connecting to connected - e.g. TransportPCE NetConfTopologyListener. |
| Comments |
| Comment by Guillaume Lambert [ 21/Jul/23 ] |
| Comment by Ivan Hrasko [ 25/Jul/23 ] |
|
We have to ensure that:
All these requirements are satisfied in 5.0.x branch. |
| Comment by Ivan Hrasko [ 25/Jul/23 ] |
|
The option #3 can be tested when running testool (which automatically creates 17830-sim-device) and simultaneously creating another topology node, for example test-device with the same configuration as 17830-sim-device. Now, after turning off and on testtool we are getting incorrect response: 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 {
"network-topology:topology": [
{
"node": [
{
"node-id": "17830-sim-device",
"netconf-node-topology:connection-status": "connected"
},
{
"node-id": "test-device",
"netconf-node-topology:connection-status": "unable-to-connect"
}
]
}
]
}
We expect both devices to be connected. Assuming the devices max_attempt to reconnect are not exceeded. |
| Comment by Ivan Hrasko [ 25/Jul/23 ] |
|
... "netconf-node-topology:max-connection-attempts": 0 ... is used to set unlimited connection attempts. |
| Comment by Ivan Hrasko [ 04/Aug/23 ] |
|
Ready for review, to p[prevent further occurrences of similar issues we will create unit tests in |
| Comment by Robert Varga [ 05/Aug/23 ] |
|
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. |