[ovs-discuss] ovs dpdk vxlan does NOT work

gowrishankar gowrishankar.m at linux.vnet.ibm.com
Fri Sep 25 07:11:12 UTC 2015

On Friday 25 September 2015 04:10 AM, Pravin Shelar wrote:
> On Wed, Sep 23, 2015 at 9:03 PM, Na Zhu <zhunatuzi at gmail.com> wrote:
>> Hi Pravin,
>> I can ping
>> Can i tcpdump eth0 to get the vxlan packets?
>> Yesterday, another engineer said i can not tcpdump eth0, do you know why?
> If eth0 is dpdk device AFAIK there is no way to do tcpdump on it since
> tcpdump expect kernel networking device.

dpdk driver that you use bypass kernel network stack. So, libpcap can 
not help you
as it operates only on any registered netdev for kernel stack (eg tap, 
lo or any virtual interface and
phy nic). In dpdk case, tcpdump would not even know such device exists.

But I use ovs feature - port mirroring -  to inspect dpdk port. Idea is 
just to mirror all
traffic from ovs internal port into a dummy port that kernel stack can 
recognise and
run tcpdump over dummy. You can refer ovs manual or some online tutorial 
for more info.

So, in your case you can try (assuming dpdk0 is dpdk port).

ip link add name pcap0 type dummy
ip link set dev pcap0 up
ovs-vsctl add-port br-vxlan pcap0
ovs-vsctl -- set bridge br-vxlan mirrors=@m -- --id=@pcap0 get port 
pcap0 -- --id=@dpdk0 get port dpdk0 -- --id=@m create mirror 
name=mirror0 select-dst-port=@dpdk0 select-src-port=@dpdk0 
output-port=@pcap0 select_all=1
ovs-vsctl list mirror

tcpdump -i pcap0

ovs-vsctl clear bridge br-vxlan mirrors
ip link delete dev pcap0

You can move dummy port to other bridge as well and create mirror 
accordingly to further
capture packets.

Gowrishankar M

More information about the discuss mailing list