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

[os-net-config][nmstate] Error attaching SR-IOV VF as DPDK port to OVS user brige

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • None
    • None
    • os-net-config
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • ?
    • rhos-connectivity-nfv
    • None
    • Critical

      To Reproduce
      This error happens only for nmstate provider.

      Load a config like this:

      network_config:
      - type: sriov_pf
        name: nic5
        mtu: 9000
        numvfs: 5
        use_dhcp: false
        defroute: false
        nm_controlled: true
        hotplug: true
        drivers_autoprobe: false
      - type: ovs_user_bridge
        name: br0
        use_dhcp: false
        use_dhcpv6: false
        members:
        - type: ovs_dpdk_port
          name: dpdk0
          members:
          - type: sriov_vf
            device: nic5
            vfid: 0
            vlan_id: 137
      

      Notice the error: "Error attaching device '0000:82:0a.0' to DPDK" in the ovs-vsctl output:

      [root@compute-0 ~]# ovs-vsctl show
      bf9dfa0a-663a-4af5-a860-0e08c8da34ac
          Bridge br0
              fail_mode: standalone
              datapath_type: netdev
              Port dpdk0
                  Interface dpdk0
                      type: dpdk
                      options: {dpdk-devargs="0000:82:0a.0"}
                      error: "Error attaching device '0000:82:0a.0' to DPDK"
              Port br0
                  Interface br0
                      type: internal
          ovs_version: "3.5.2-33.el9fdp"
      

      The appropriate driver vfio-pci doesn't seem to be set:

      [root@compute-0 ~]# driverctl list-overrides
      0000:82:0a.0 iavf
      

      Expected behavior
      ifcfg provider seems to work fine.

      No error present in the ovs-vsctl output:

      [root@compute-1 ~]# ovs-vsctl show
      f5fae7d2-ea5d-4859-af5d-5a05a26a8f1c
          Bridge br0
              fail_mode: standalone
              datapath_type: netdev
              Port dpdk0
                  Interface dpdk0
                      type: dpdk
                      options: {dpdk-devargs="0000:82:0a.0"}
              Port br0
                  Interface br0
                      type: internal
          ovs_version: "3.5.2-33.el9fdp"
      

      And vfio-pci driver set:

      [root@compute-1 ~]# driverctl list-overrides
      0000:82:0a.0 vfio-pci
      

      Bug impact
      No SR-IOV VFs properly added as DPDK ports.

      Known workaround
      The error can be manually fixed with:

      [root@compute-0 ~]# systemctl stop openvswitch
      [root@compute-0 ~]# driverctl unset-override 0000:82:0a.0
      driverctl: failed to bind device 0000:82:0a.0 to driver 
      [root@compute-0 ~]# driverctl set-override 0000:82:0a.0 vfio-pci
      [root@compute-0 ~]# systemctl start openvswitch
      [root@compute-0 ~]# ovs-vsctl show
      bf9dfa0a-663a-4af5-a860-0e08c8da34ac
          Bridge bond0
              fail_mode: standalone
              datapath_type: netdev
              Port dpdk0
                  Interface dpdk0
                      type: dpdk
                      options: {dpdk-devargs="0000:82:0a.0"}
              Port bond0
                  Interface bond0
                      type: internal
          ovs_version: "3.5.2-33.el9fdp"
      

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

                Created:
                Updated:
                Resolved: