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

Mats Liljegren liljegren.mats2 at gmail.com
Mon Feb 17 12:05:25 CET 2014

>> 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?
> You wouldn't be able to call ifconfig on your VF device if you have bound your guest VF device to igb_uio driver. Have you bound your VF device to igb_uio? Or you have enabled automatic port unbinding (which is disabled by default in recent releases)?

The guest starts with loading the igbvf kernel driver, uses ifconfig
<dev> up, then loads and binds to igb_uio. After that, DPDK works. If
I skip any step here it doesn't work. Skipping "ifconfig" step
resulted in packets being received but I couldn't send them, they just
got queued up but was never sent.

>> 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 interfaces.
>> 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.
> Are you referring to two different VM's each having a separate VF device, or are you trying to run two primary processes on one VM with different VF devices?

It's the latter, i.e. two primary processes running DPDK on the same
VM but different VF devices. The VF devices belongs to the same
physical devices though.

Mats Liljegren

More information about the dev mailing list