We’ve got a service that produces the following configuration I want to apply to an IOS devices:
admin@ncs(config)# commit dry-run out format native Device lab03 interface Port-channel200
switchport trunk allowed vlan 100,971,2924 exit
interface Vlan2924
description Acme-111
xconnect vfi Acme-2924
no ip address
no shutdown
exit
l2 vfi Acme-2924 manual
vpn id 222
neighbor 10.7.7.7 encapsulation mpls
!
When I commit the transaction I get the following error:
"Aborted: Network Element Driver error ned_prepare_cli for device lab03:
command: xconnect vfi Acme-2924: VFI Acme-2924 must be configured first with a valid vpn id”
Is there a way to force NCS to produce the configuration such that the ‘l2’ section is run before the ‘Vlan’. I think the ordering of commands is why I’m getting this error.
Solved! Go to Solution.
> Yes, template-based. Xml attached. I’ve tried to re-order the XML but
> it seems the NED always re-orders it during commit.
Yes, we’re talking about (network-wide) transactions here. A transaction is a set of changes, not a sequence. This is actually one of the beauties with transactions. As a client, you don’t need to know the correct sequence, or that there is any sequencing constraint at all. The network operating system is responsible for dealing with that.
In this case, it may be that the information about the dependency is missing in the NED, so the commands are sent to the device in the wrong order. There’s nothing you can do about that in the template, the NED needs to be fixed/updated with the dependency.
Talk to the Tail-f NED team.
Silly question perhaps but is this a template-based service? If so, can you share the .xml file? I had the impression that the order came from there.
Yes, template-based. Xml attached. I’ve tried to re-order the XML but it seems the NED always re-orders it during commit.
This is done in the NED via the following extension:
tailf:cli-diff-dependency path
Tells the 'show configuration' command, and the diff generator that this node depends on another node.
When removing the node with this declaration, it should be removed before the node it depends on is removed, ie the declaration controlls the ordering of the commands in the 'show configuration' output.
You should ask your Solutions Architect to fill-up a ticket for your customer to fix the production NED. You can also modify your lab NED to get going right away.
There are 100s of examples in the Cisco-IOS NED YANG file as dependencies and lack to atomisation is lets say ³common² in Cisco IOS.
> Yes, template-based. Xml attached. I’ve tried to re-order the XML but
> it seems the NED always re-orders it during commit.
Yes, we’re talking about (network-wide) transactions here. A transaction is a set of changes, not a sequence. This is actually one of the beauties with transactions. As a client, you don’t need to know the correct sequence, or that there is any sequencing constraint at all. The network operating system is responsible for dealing with that.
In this case, it may be that the information about the dependency is missing in the NED, so the commands are sent to the device in the wrong order. There’s nothing you can do about that in the template, the NED needs to be fixed/updated with the dependency.
Talk to the Tail-f NED team.