When interface newly presented, until some configuration is present (even a description), its definition is missing from the running config, even after a clean bootup, This is likely the root cause.
bbabich@pauseq4rcor1# set vpp settings interface eth3 driver 'dpdk'
Configuration path: [vpp settings interface eth3 driver dpdk] already exists
[edit]
bbabich@pauseq4rcor1# commit
[ vpp ]
Traceback (most recent call last):
File "/usr/libexec/vyos/services/vyos-configd", line 144, in run_script
c = script.get_config(config)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/libexec/vyos/conf_mode/vpp.py", line 267, in get_config
iface_filter_eth(conf, iface)
File "/usr/lib/python3/dist-packages/vyos/vpp/config_filter.py", line 46, in iface_filter_eth
iface_nodes = config._session_config.list_nodes(['interfaces', 'ethernet', iface])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/vyos/configtree.py", line 373, in list_nodes
raise ConfigTreeError("Path [{}] doesn't exist".format(path_str))
vyos.configtree.ConfigTreeError: Path [b'interfaces ethernet eth3'] doesn't exist
[[vpp]] failed
Commit failed
[edit]Can see here, eth3 definition is missing:
bbabich@pauseq4rcor1# sh int
ethernet eth0 {
address 192.168.104.21/24
hw-id bc:24:11:c1:d3:b4
offload {
gro
gso
sg
tso
}
vrf MGMT
}
ethernet eth1 {
hw-id bc:24:11:1e:67:cb
}
ethernet eth2 {
description dm-bdr1-et2-vl181
}
loopback lo {
}Adding a description to it, creates the definition in the config, then committing the VPP change works perfectly.
bbabich@pauseq4rcor1# set interfaces ethernet eth3 description dm-bdr1-et2-vl181
[edit]
bbabich@pauseq4rcor1# compare
[interfaces ethernet]
+ eth3 {
+ description "dm-bdr1-et2-vl181"
+ }
[vpp settings interface]
+ eth3 {
+ driver "dpdk"
+ }
[edit]
bbabich@pauseq4rcor1# commit
[edit]
bbabich@pauseq4rcor1#