[ovs-discuss] Why OVS behaves difference between ovs-vswitchd and ovs-vswitchd-dpdk?

Ben Pfaff blp at ovn.org
Fri Jun 4 15:21:59 UTC 2021


On Fri, Jun 04, 2021 at 02:11:23PM +0800, Harry Lee wrote:
> Hello,
> 
> My server is running debian testing. I install two ovs version through apt:
> 
> ```
> openvswitch-switch/testing,unstable,now 2.15.0+ds1-2 amd64 [installed]
>   Open vSwitch switch implementations
> 
> openvswitch-switch-dpdk/testing,unstable,now 2.15.0+ds1-2 amd64 [installed]
>   DPDK enabled Open vSwitch switch implementation
> ```
> 
> Then I found something  difference between them.
> 
> Here's my experience:
> 
> ```
> # switch ovs version to ovs-vswitchd
> update-alternatives --set ovs-vswitchd /usr/lib/openvswitch-common/ovs-vswitchd
> /etc/init.d/openvswitch-switch restart
> ip addr add 10.90.67.148/25 dev br0
> ping 10.90.67.129  # network is ok
> 
> # switch ovs version to ovs-vswitchd-dpdk
> update-alternatives --set ovs-vswitchd /usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk
> /etc/init.d/openvswitch-switch restart
> ip addr add 10.90.67.148/25 dev br0
> ping 10.90.67.129  # unreachable
> ```
> 
> The same configuration, using ovs-vswitchd was reachable while using ovs-vswitchd-dpdk was unreachable.
> 
> Then I used `tcpdump br0` to checkout if there are packets from br0, and I found some ARP packets:
> 
> ```
> root at debian:~# tcpdump -i br0 -nnn
> tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
> listening on br0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
> 02:14:27.010265 ARP, Request who-has 10.90.67.129 tell 10.90.67.148, length 28
> 02:14:28.034127 ARP, Request who-has 10.90.67.129 tell 10.90.67.148, length 28
> 02:14:29.058128 ARP, Request who-has 10.90.67.129 tell 10.90.67.148, length 28
> ```
> 
> But when I ran `ovs-ofctl dump-flows br0`, I saw n_packets is 0:
> 
> ```
> root at debian:~# ovs-ofctl dump-flows br0
>  cookie=0x0, duration=1016.243s, table=0, n_packets=0, n_bytes=0, priority=0 actions=NORMAL
> ```
> 
> Why does ovs-vswitchd-dpdk ignore the packet from br0? Does it need additional configuration?

Did you configure the dpdk version to use DPDK devices and the userspace
datapath?  If you didn't, then these two versions of OVS were using the
same code in the same way, so it's puzzling why there would have been
any difference.


More information about the discuss mailing list