[ovs-dev] OVS DPDK VF port representors not working

Ravi Kerur rkerur at gmail.com
Sat Apr 18 12:33:23 UTC 2020


On Fri, Apr 17, 2020 at 9:57 AM Ilya Maximets <i.maximets at ovn.org> wrote:

> On 4/16/20 11:00 PM, Ravi Kerur wrote:
> > Hello OvS-DPDK team,
> >
> > We are expanding our usage of OvS-DPDK and want to use VF port
> representors
> > for one use-case. Going through the following document it is unclear how
> > this functionality can be achieved
> >
> > http://docs.openvswitch.org/en/latest/topics/dpdk/phy/
> >
> > I believe following things need to be configured before configuring OvS,
> I
> > am using Intel NICs for evaluation
> >
> > (1) Create VFs on Intel NICs(82599). This can only happen when Intel NIC
> is
> > bound to its respective kernel driver (ixgbe) via
> >
> > echo 2 > /sys/devices/<pci-BDF>/sriov_numvfs
> >
> >
> > It creates 2 VF interfaces bound to ixgbevf driver
> >
> >
> > (2) Using driverctl, bind VF and PF interfaces to vfio-pci. Moment PF
> > device is bound to vfio-pci, VF interfaces vanish
> >
> >
> > Question based on the OvS document shown above
> >
> >
> > (1) Binding PF interface?
> >
> >
> > ovs-vsctl add-port br0 dpdk-pf -- set Interface dpdk-pf type=dpdk
> > options:dpdk-devargs=0000:08:00.0
> >
> >
> > What driver interface <0000:08:00.0> is bound to? igb_uio, vfio-pci or
> > kernel driver?
>
> I believe that it was tested with igb_uio driver, but I never tried it
> myself.
>
> In order to have sr-iov configuration support with vfio-pci driver you need
> a brand new v5.7-rc1 kernel and DPDK changes that are not merged yet:
> https://patchwork.dpdk.org/project/dpdk/list/?series=9356
> Not sure if it will work smoothly with OVS out of the box, though.
>

Thanks Ilya for the link. Will look into it.

Unfortunately igb_uio doesn't work either. Basics of creating VF's out of
PF and assigning them to DPDK driver itself is not working.
My understanding is
(1) In order to create VF's NIC should be bound to its kernel driver.
Cannot create VFs when NIC is bound to igb_uio or vfio-pci
(2) No mechanism exists to bind both PF and VF to igb_uio to use this
feature

Output below shows what I am observing on 0000:18:00.0

(1) PCI device has PF and 1 VF, both assigned to kernel driver

driverctl list-devices network

0000:04:00.0 igb

*0000:18:00.0 ixgbe*

0000:18:00.1 ixgbe

*0000:18:10.0 ixgbevf*

0000:b3:00.0 vfio-pci [*]

0000:b3:00.1 ixgbe

(2) Bind 0000:18:00.0 to igb_uio, VF device is gone
# driverctl set-override 0000:18:00.0 igb_uio

# driverctl list-devices network

0000:04:00.0 igb

*0000:18:00.0 igb_uio [*]*

0000:18:00.1 ixgbe

0000:b3:00.0 vfio-pci [*]

0000:b3:00.1 ixgbe


(3) Try to create VF when bound to igb_uio


echo 1 > /sys/bus/pci/devices/0000\:18\:00.0/sriov_numvfs

bash: echo: write error: No such file or directory


(4) Unset 0000:18:00.0 to kernel driver, can create VF


# driverctl unset-override 0000:18:00.0

# echo 1 > /sys/bus/pci/devices/0000\:18\:00.0/sriov_numvfs

# driverctl list-devices network

0000:04:00.0 igb

*0000:18:00.0 ixgbe*

0000:18:00.1 ixgbe

*0000:18:10.0 ixgbevf*

0000:b3:00.0 vfio-pci [*]

0000:b3:00.1 ixgbe

Without binding both PF and VF to userspace drivers to use DPDK PMD it is
not clear to me how this functionality will work?

>
> >
> >
> > (2) VF interface to representor connection, does representor=[3]
> represent
> > VF device 3?
> >
> >
> > ovs-vsctl add-port br0 dpdk-rep3 -- set Interface dpdk-rep3 type=dpdk
> > options:dpdk-devargs=0000:08:00.0,representor=[3]
> >
> > ovs-vsctl add-port br0 dpdk-rep5 -- set Interface dpdk-rep5 type=dpdk
> > options:dpdk-devargs=0000:08:00.0,representor=[5]
> >
> >
> > Looking into linked DPDK document within OvS is confusing as well.
> >
> >
> > Kindly let me know what I need to do for the setup?
> >
> >
> > Thanks,
> >
> > Ravi
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> >
>
>


More information about the dev mailing list