Uploaded image for project: 'Red Hat OpenStack Services on OpenShift'
  1. Red Hat OpenStack Services on OpenShift
  2. OSPRH-21025

[os-net-config][ifcfg] Not able to remove ovs_dpdk_port

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not a Bug
    • Icon: Undefined Undefined
    • None
    • None
    • os-net-config
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • ?
    • None
    • Important

      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+
        

        1. os-net-config_ifcfg_OSPRH-21025.log
          42 kB
          Ricardo Diaz Campos
        2. os-net-config_nmstate_OSPRH-21025.log
          83 kB
          Ricardo Diaz Campos

              ksundara@redhat.com Karthik Sundaravel
              rdiazcam@redhat.com Ricardo Diaz Campos
              rhos-dfg-nfv
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: