Dear All, 

 

I am trying to create multiple dpdk-netdev based data paths with OVS 2.9 and
DPDK 16.11 running on CentOS 7.4. I am able to create multiple data paths
using "ovs-appctl dpctl/add-dp netdev@netdev1" and I can see a new data path
created with "ovs-appctl dpctl/show". However I cannot add any interfaces
(dpdk or otherwise), and I cannot set this data path as datapath_type to any
bridge. 

 

Just a precap to why I am trying to do this, I am working with a lot of OVS
OpenFlow rules (around 0.5 million) matching layer 3 and layer 4 fields. The
incoming traffic is more than 40G (4 x10G Intel x520s), and has multiple
parallel flows (over a million IPs). With this the OVS performance decreases
and each port is forwarding only around 250 Mb/s. I am using multiple RX
queues (4-6), with single RX queue it drops to 70 Mb/s. Now if I shutdown
three 10G interfaces, an interesting thing happen, and OVS starts forwarding
over 7Gb/s for that single interface. That got me thinking, maybe the reason
for low performance is 40 G traffic hitting a single bridges flow tables,
how about creating multiple bridges with multiple flow tables. With this
setup the situation remained same, and now the only common thing between the
4 interfaces is the data path. They are not sharing anything else. They are
polled by dedicated vCPUs, and they are in different tables. 

 

Can anyone explain this bizarre scenario of why the OVS is able to forward
more traffic over single interface polled by 6 vCPUs, compared to 4
interfaces polled by 24 vCPUs.

Also is there a way to create multiple data paths and remove this dependency
also.  

 

Regards,

 

Alp Arslan

 

_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to