-
Bug
-
Resolution: Done
-
None
-
None
-
None
-
Operating System: All
Platform: All
-
2877
When OpenDaylight tries to open a NETCONF session with a Cisco router, OpenDaylight generates an error during the reception of the <hello> message coming from the router:
io.netty.handler.codec.DecoderException: java.lang.IllegalStateException: Hello message not received, instead received: <hello>
<capabilities>
<capability>urn:ietf:params:netconf:base:1.0</capability>
<capability>urn:ietf:params:netconf:capability:writeable-running:1.0</capability>
<capability>urn:ietf:params:netconf:capability:startup:1.0</capability>
<capability>urn:ietf:params:netconf:capability:url:1.0</capability>
<capability>urn:cisco:params:netconf:capability:pi-data-model:1.0</capability>
<capability>urn:cisco:params:netconf:capability:notification:1.0</capability>
</capabilities>
<session-id>1409770544</session-id>
</hello>
Consequently, the NETCONF session fails to open.
This has been observed with the follwoing Cisco equipments and IOS versions:
- CSR1000V (virtual routeur) with IOS 15.4(1)S
- ASR1001-X with IOS 15.4(2)S0a
- ISR2900 with IOS 15.1(4)M1
Attached is a test program that can be used to reproduce the problem with a Cisco router.
Some investigations in OpenDaylight NETCONF code show that the failure is due to the lack of xmlns attribute in the <hello> message sent by the router. OpenDaylight expects something like:
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
Whether the NETCONF RFC mandates the presence of the xmlns attribute is unclear to me. So I don't know if this is a bug in OpenDaylight or a bug in Cisco routers. Anyway, it can be fixed (or worked around depending on the point of view) in OpenDaylight, and I will propose a patch to do this.