Dear experts,
I’m experiencing problem regarding order definition of commands to be executed on the target device (driven by template file).
to configure MPLS Traffing Engineering (this problem could be easily found under other features like ‘ipv6 unicast routing’ and so on….) under IOS is my priority place a global command mpls traffic-eng tunnels before starting configure TE directives under interfaces to avoid a warning command
R14(config)#int GigabitEthernet0/1.614
R14(config-subif)#mpls traffic-eng tunnels
LSP tunnels are not enabled on this router.
warning because the command is actually accepted
interface GigabitEthernet0/1.614
encapsulation dot1Q 614
ip address 10.6.14.14 255.255.255.0
ip router isis
mpls traffic-eng tunnels <<<<
mpls ip
isis network point-to-point
end
R14#sh run | i mpls traffic-eng tunnels
mpls traffic-eng tunnels <<<<
R14#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R14(config)#interface GigabitEthernet0/1.614
R14(config-subif)#no mpls traffic-eng tunnels
when I defined the service template file I placed xml directive on the top of the file
<config-template xmlns="http://tail-f.com/ns/config/1.0"
servicepoint="te">
<devices xmlns="http://tail-f.com/ns/ncs">
<device>
<name>{/device}</name>
<config>
<mpls xmlns="urn:ios"> <<<<<
<traffic-eng> <<<<<
<tunnels/> <<<<<
</traffic-eng> <<<<<
</mpls> <<<<<
<interface xmlns="urn:ios">
<GigabitEthernet xmlns="urn:ios">
<name>{/interfaces/cisco_ios/mod-ge}</name>
<mpls>
<traffic-eng>
<tunnels/>
</traffic-eng>
</mpls>
<ip>
<rsvp>
...
after recompilation and pkgs reload ops I populate my service data and try a commit DR native
admin@ncs(config)# services te dev-R14
admin@ncs(config-te-dev-R14)# topological-protocol-info protocol isis cisco_ios Loopback 0
admin@ncs(config-te-dev-R14)# interfaces 2 cisco_ios int GigabitEthernet mod-ge 0/1.114
admin@ncs(config-interfaces-2)# interfaces 3 cisco_ios int GigabitEthernet mod-ge 0/1.614
admin@ncs(config-interfaces-3)#
admin@ncs(config-interfaces-3)#
admin@ncs(config-interfaces-3)# commit dry-run outformat native
native {
device {
name dev-R14
data interface GigabitEthernet0/1.114
mpls traffic-eng tunnels
ip rsvp bandwidth 10000
exit
interface GigabitEthernet0/1.614
mpls traffic-eng tunnels
ip rsvp bandwidth 10000
exit
mpls traffic-eng tunnels <<<<<
router ospf 1
log-adjacency-changes
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0
mpls traffic-eng multicast-intact
!
router isis
mpls traffic-eng level-2
mpls traffic-eng multicast-intact
mpls traffic-eng router-id Loopback0
!
}
}
now, seems that the global command (placed in red) will be executed after the interface command and this lead to an error and a rollback
admin@ncs(config-interfaces-3)# commit
Aborted: External error in the NED implementation for device dev-R14: mpls traffic-eng tunnels:
LSP tunnels are not enabled on this router.
I tried to find a tag in XML to specify an order (nso_development/ch11s03s07.html suggest a similar situation but is not possible to apply them in here) with no success.
could you suggest me some tips to handle this situation?
additional data:
nso 4.3
ios neds 4.1.1
Francesco
Hi Francesco,
The order of commands within a transaction is determined by the NED. The issue you are seeing is a typical scenario where you should open a TAC case. TAC will work with the Tail-f NED team to resolve your issue.
Best Regards,
.:|:.:|:. Michel Papiashvili
If this is IOS (or even IOS-XR) and you’re seeing a “warning” that is not covered by the NED, you may be able to _add_
Check the README file in the cisco-ios NED for details… in part:
-------------------------------------------------
After having sent a config command to the device the NED will treat
any text reply as an error and abort the transaction. The config
command that caused the failed transaction will be shown together
with the error message returned by the device. Sometimes the text
message is not an actual error. It could be a warning that should be
ignored. The NED has a static list of known warnings, presently these:
(skip)…
If you stumble upon a warning not in the list above, which is quite
likely due to the large number of warnings, you can configure the
NED to ignore them under ned-settings in the cisco-ios-config-warning
list. The list resides in three places and you can configure a
warning in any of these:
devices device iosdev ned-settings cisco-ios-config-warning
devices global-settings ned-settings cisco-ios-config-warning
devices profiles profile cisco-ios ned-settings cisco-ios-config-warning
cisco-ios-config-warning is a regular expression string list of
warnings that should also be ignored.
For example, to add a new warning exception:
admin@ncs(config)# devices profiles profile cisco-ios ned-settings
cisco-ios-config-warning "Address .* may not be up"
admin@ncs(config-profile-cisco-ios)# commit
Commit complete.
admin@ncs(config-profile-cisco-ios)# devices device iosdev disconnect
admin@ncs(config-profile-cisco-ios)# devices device iosdev connect
result true
info (admin) Connected to iosdev
Note that in order for the warning exception to take effect, you
must disconnect and connect again.
perhaps this helps - i have not tested this (for you) nor tried this myself - but did notice it as a possible feature i might need
cheers
gregg
Hi Gregg
it worksss!!!!
thank you very much for your time
Francesco