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
