When connecting a to a Juniper EX-2200 device using the netconf connector, it reports a non RFC compliant candidate capability in the hello message:
<hello>
<capabilities>
<capability>urn:ietf:params:xml:ns:netconf:base:1.0</capability>
<capability>urn:ietf:params:xml:ns:netconf:capability:candidate:1.0</capability>
<capability>urn:ietf:params:xml:ns:netconf:capability:confirmed-commit:1.0</capability>
<capability>urn:ietf:params:xml:ns:netconf:capability:validate:1.0</capability>
<capability>urn:ietf:params:xml:ns:netconf:capability:url:1.0?protocol=http,ftp,file</capability>
<capability>http://xml.juniper.net/netconf/junos/1.0</capability>
<capability>http://xml.juniper.net/dmi/system/1.0</capability>
</capabilities>
<session-id>63940</session-id>
</hello>
The Juniper reports: urn:ietf:params:xml:ns:netconf:capability:candidate:1.0
While it should be: urn:ietf:params:netconf:capability:candidate:1.0
When executing a change using a restconf call, ODL tries to change using the writable-runnning approach, because it does not detect the candidate capability. This is not supported by Juniper, and the request fails.
Attached is a log file, which shows the request, starting from line 2657.
It would be very helpful if ODL has a feature which allows more flexible checking for the candidate capability, or a fallback method for accepting the specific 'Juniper-style' candidate capability.
The same issue might apply for the confirmed-commit capability, but I am unable to check this yet.