[dpdk-dev] How to debug packet sends to virtual functions

Mats Liljegren liljegren.mats2 at gmail.com
Thu Feb 13 16:32:20 CET 2014

On Tue, Feb 4, 2014 at 2:40 PM, Burakov, Anatoly
<anatoly.burakov at intel.com> wrote:
> Hi Mats
> Technically, you can use igb_uio on the host as well (DPDK PMD supports creating virtual devices since at least release 1.5.0), it's just that you'll have to set everything up yourself inside your host DPDK application (you can't use "ip net" to set up VF devices if you're using DPDK drivers). Unfortunately, I'm not familiar enough with that part of the code to comment on what exactly you should do to make it work with igb_uio, but I can certainly ask around if you want.
> I also noticed that you are running KVM with virsh. We always run our VM's by passing QEMU command line directly, without using virsh, so unfortunately I cannot be of much help here as I'm not familiar with virsh. Your best bet would be to get whatever parameters virsh passes to QEMU and modify them to suit your needs and according to DPDK documentation.

Hi Anatoly,

I finally got things working. I apparently missed an "ifconfig <dev>
up" in the guest, before starting dpdk. I'm still confused why this
would be needed. Is dpdk unable to do a full initialization of the
virtual function from the guest?

I'm also curious whether this is how it is intended to work, or am I
experiencing a strange type of bug? If not, is it documented that
ifconfig is needed in the guest? I thought I've read all documentation
thoroughly, but sometimes it is easy to miss the obvious anyway...

While I got one instance of DPDK running, I got a problem when
starting two instances of DPDK running against different virtual
functions. These virtual functions stems from the same physical

Starting them one or the other works fine. I have to adapt my static
arp entries since they have different MAC addresses, but this is only
expected. When starting them both however, I receive no packets. If
one is running and currently processing packets, it will stop doing so
the instance the second instance starts.

Anyone knowing what could cause such behavior?

Mats Liljegren

More information about the dev mailing list