NETCONF Transactional Consistency on Cisco IOS XE

During the Tech Field Day Extra event at Cisco Live Europe 2017 Fabrizio Maccioni, Technical Marketing Engineer at Cisco, described enhanced programmability available in Cisco IOS XE release 16.x. What really got my attention was the claim that they made NETCONF on Cisco IOS transactional (and Fabrizio mentioned the candidate config and commit).

Here's my initial reaction:

It took me a few minutes to start VIRL, start CSR 1000v running IOS-XE 16.4 within VIRL, configure netconf-yang on it, and connect to NETCONF port with SSH. The router sent me a huge list of capabilities, most of them telling me it can send me an SNMP MIB in XML format over NETCONF. The list included a few standard IETF capabilities. Here they are:


Conspicuously missing:


Long story short: Cisco IOS XE still doesn't have candidate configuration or commit capabilities.

What Cisco IOS XE does have is rollback on error: if some arguments in the edit-config request are invalid the whole request is rejected and the configuration is rolled back to what it was before the current request instead of leaving the configuration in messed-up state.

Sad conclusion:

On a more positive note, the device configuration produced by get-config request on Cisco IOS XE release 16.x has properly nested elements, so I upgraded IOS XE from pass (mostly) to pass.


  1. Hi Ivan, the most interesting part, that IOS-XE gives different answers about capabilities on 830 port and 22 port, for unknown for me reason ... But good that 830 port gives you all configuration get-schema capabilities.
  2. Port 22 hosts the legacy netconf agent on IOS-XE, which only supports netconf 1.0 with a Cisco-proprietary payload (same as all other vendors). Port 830, when netconf-yang is enabled, hosts the model-based agent.
  3. Yes, it looks like the port 830 server is an IOS XE implementation of a Tail-F Netconf server.

    It feels kinda like a mini-NCS running on the box and you talk to that to configure IOS models which maybe then uses Tail-F algorithms to compute required model -> native model changes.

    Looks like possibly Including candidate config datastore also.

Add comment