-
Bug
-
Resolution: Not a Bug
-
Undefined
-
None
-
None
-
None
Remove a ovs_dpdk_port using the ifcfg provider raises an error and the kernel driver for the interface cannot be loaded.
This issue only happens for ifcfg, nmstate works fine.
To Reproduce
Load a config like this:
network_config:
- type: ovs_user_bridge
name: br-dpdk
use_dhcp: false
use_dhcpv6: false
members:
- type: ovs_dpdk_bond
name: dpdkbond0
mtu: 9000
ovs_options: "bond_mode=active-backup"
members:
- type: ovs_dpdk_port
name: dpdk0
members:
- type: interface
name: nic5
- type: ovs_dpdk_port
name: dpdk1
members:
- type: interface
name: nic6
The above config is applied successfully.
Then apply this config to remove the ovs_user_bridge and ovs_dpdk_ports:
remove_config:
- remove_type: ovs_user_bridge
remove_name: br-dpdk
- remove_type: ovs_dpdk_port
remove_name: dpdk0
- remove_type: ovs_dpdk_port
remove_name: dpdk1
network_config:
- type: interface
name: nic5
use_dhcp: false
- type: interface
name: nic6
use_dhcp: false
The above config should remove the OVS user bridge (which actually does) and restore the kernel drivers for nic5 and nic6. However, we get this error:
2025-10-20 08:48:35.752 ERROR os_net_config.impl_ifcfg.apply Failure(s) occurred when applying configuration
2025-10-20 08:48:35.753 ERROR os_net_config.impl_ifcfg.apply stdout: ERROR : [/etc/sysconfig/network-scripts/ifup-eth] Device enp130s0f2 does not seem to be present, delaying initialization.
, stderr: WARN : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
WARN : [ifup] 'network-scripts' will be removed from distribution in near future.
WARN : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
2025-10-20 08:48:35.753 ERROR os_net_config.impl_ifcfg.apply stdout: ERROR : [/etc/sysconfig/network-scripts/ifup-eth] Device enp130s0f3 does not seem to be present, delaying initialization.
, stderr: WARN : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
WARN : [ifup] 'network-scripts' will be removed from distribution in near future.
WARN : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
2025-10-20 08:48:35.755 ERROR os_net_config.config_provider ifcfg: ***Failed to configure network_config ***
Failure(s) occurred when applying configuration
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/os_net_config/cli.py", line 648, in config_provider
files_changed = provider.apply(cleanup=cleanup,
File "/usr/lib/python3.9/site-packages/os_net_config/impl_ifcfg.py", line 2435, in apply
raise os_net_config.ConfigurationError(message)
os_net_config.ConfigurationError: Failure(s) occurred when applying configuration
That error is raised because the vfio-pci is still loaded and kernel devices cannot be found:
[root@compute-1 ~]# driverctl list-overrides 0000:82:00.2 vfio-pci 0000:82:00.3 vfio-pci
Expected behavior
The kernel drivers are restored for the target NICs as with nmstate provider.
The same remove configuration is applied without errors (check attached log) and NIC kernel configuration restored:
[root@compute-0 ~]# driverctl list-overrides
driverctl: No overridable devices found. Kernel too old?
[root@compute-0 ~]# lshw -c network -businfo |grep enp130
pci@0000:82:00.0 enp130s0f0 network Ethernet Controller X710 for 10GbE SFP+
pci@0000:82:00.1 enp130s0f1 network Ethernet Controller X710 for 10GbE SFP+
pci@0000:82:00.2 enp130s0f2 network Ethernet Controller X710 for 10GbE SFP+
pci@0000:82:00.3 enp130s0f3 network Ethernet Controller X710 for 10GbE SFP+
[root@compute-0 ~]# nmstatectl show enp130s0f2 |grep driver
[2025-10-20T13:17:29Z INFO nmstatectl] Nmstate version: 2.2.52
driver: i40e
drivers-autoprobe: true
[root@compute-0 ~]# nmstatectl show enp130s0f3 |grep driver
[2025-10-20T13:17:34Z INFO nmstatectl] Nmstate version: 2.2.52
driver: i40e
drivers-autoprobe: true
Workaround
Since we have the network-scripts properly generated:
[root@compute-1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp130s0f2 # This file is autogenerated by os-net-config DEVICE=enp130s0f2 ONBOOT=yes HOTPLUG=no NM_CONTROLLED=no PEERDNS=no BOOTPROTO=none [root@compute-1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp130s0f2 # This file is autogenerated by os-net-config DEVICE=enp130s0f2 ONBOOT=yes HOTPLUG=no NM_CONTROLLED=no PEERDNS=no BOOTPROTO=none
Follow these steps:
- Stop openvswitch service to avoid {{driverctl} to hang:
systemctl stop openvswitch
- Unset vfio-pci driver:
driverctl -v unset-override 0000:82:00.2 driverctl -v unset-override 0000:82:00.3
- Stop openvswitch service:
systemctl stop openvswitch
- Restart network service:
systemctl restart network
- As a result you should see the kernel drivers:
[root@compute-1 ~]# lshw -c network -businfo |grep enp130 pci@0000:82:00.0 enp130s0f0 network Ethernet Controller X710 for 10GbE SFP+ pci@0000:82:00.1 enp130s0f1 network Ethernet Controller X710 for 10GbE SFP+ pci@0000:82:00.2 enp130s0f2 network Ethernet Controller X710 for 10GbE SFP+ pci@0000:82:00.3 enp130s0f3 network Ethernet Controller X710 for 10GbE SFP+