Hello everyone,

On 02/07/2019 19:43, Ian Stokes wrote:
On 7/2/2019 6:00 PM, Ben Pfaff wrote:
Hi Ilya and Ian.  Please allow me to introduce Michal Orsak, a grad
student currently looking at packet classifiers.  He's implemented a
novel classifier that is faster than the one already in OVS in the
benchmarks that he's run.  His classifier is tree-based, like most
high-performance classifiers, but also incremental so that flows can be
inserted and deleted individually without undue delay. Ultimately, it
might make sense to replace the OVS userspace datapath classifier by one
based on the concepts that he's come up with.

Thanks for the introduction Ben. I wasn't aware of Michals work. The timing is quite apt as currently I've been looking at Harrys (CCd) approach to improving performance for the current DPCLS.

https://mail.openvswitch.org/pipermail/ovs-dev/2019-May/358790.html

I was hoping to have this approach in place for OVS 2.12 as there's been ongoing testing/reviews across the community with general improvements of ~ 15% or more for both x86 and ARM architectures which looks promising.

I'd be interested in seeing Michals proposals if there are patches available that would be great.

Now I am implementing the DPCLS API so we can test the thing. There are also some differences and problems like:

* support for priority of the rules

* only single matching rule

* c++

* my limited knowledge of DPCLS



A difficulty with classifiers, however, is coming up with an appropriate
set of benchmarks to compare them fairly.  The userspace datapath
focuses on performance, so do you have a set of benchmarks that you
recommend for comparison?  Are there other criteria that would be
important (besides correctness)?

Agreed, that's something we've been looking for feedback on from the community to date. Most testing we have seen have been performance focused.

There are so many corner cases... Any test is appreciated.
The areas I think that would be good to measure would be flow addition/flow deletion overhead in CPU cycles. Also memory and time complexity comparisons for existing and proposed techniques might be nice to see.

Currently I do have comparison with OVS TSS, DPDK librte_acl, PartitionSort, HyperSplit, HyperCuts and few others. (C based benchmarks. Some of them not optimized implementations. Originally for devel. of hardware based classifier.). All previously mentioned except TSS do have worst case complexities from the same class. However it is more complicated as it depends on size of the matching field and other factors which have different meanings between algs. I do not have understandable and short definitions yet.


Thanks
Ian


(I'd take answers from anyone, not just Ian and Ilya!)

Thanks,

Ben.


Thanks,

Michal

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

Reply via email to