On Tue, Oct 31, 2017 at 04:39:33PM -0700, Yipeng Wang wrote:
> Cuckoo distributor (CD) is a double-hash function hash table, that helps
> redirect packets to their corresponding subtables to avoid the sequential
> search of megaflow subtables.  This is another layer of cache to cache flows
> and their corresponding subtable indexes.  Different from a hash table, CD
> can have certain false positive rate (since the full key is not stored for
> space efficiency).  Our CD design was partially inspired by earlier concepts
> proposed in "simTable"[1] and "Cuckoo Filter"[2], and DPDK's cuckoo hash
> implementation.
> 
> For the current implementation, the design does not allow displacing items
> when a bucket is full, which is different from the behavior of a cuckoo hash
> table.  The advantage is that we do not need to store two signatures so that
> the struct is more compact.  We use 16 entries per bucket for the
> convenience of vector lookup.
> 
> Each classifier has its own cuckoo distributor.
> 
> [1] H. Lee and B. Lee, Approaches for improving tuple space search-based
> table lookup, ICTC '15
> [2] B. Fan, D. G. Andersen, M. Kaminsky, and M. D. Mitzenmacher,
> Cuckoo Filter: Practically Better Than Bloom, CoNEXT '14
> 
> CC: Darrell Ball <dball at vmware.com>
> CC: Jan Scheurich <jan.scheurich at ericsson.com>
> Signed-off-by: Yipeng Wang <yipeng1.wang at intel.com>
> Signed-off-by: Antonio Fischetti <antonio.fischetti at intel.com>
> Co-authored-by: Antonio Fischetti <antonio.fischetti at intel.com>
> ---
> Evaluation:
> We create set of rules with various src IP. We feed traffic containing 1M
> flows with various src IP and dst IP. All the flows hit 10/20/30
> rules creating 10/20/30 subtables.
> 
> The table below shows the preliminary continuous testing results (full line
> speed test) we collected with a uni-directional phy-to-phy setup. OvS
> runs with 1 PMD. We use Spirent as the hardware traffic generator.
> 
> Scalar CD results:
> 1M flows:
> no.subtable: 10          20          30
> cd-ovs       3658328     3028111     2863329
> orig_ovs     2683455     1646227     1240501
> speedup      1.36x       1.84x       2.31x

Thank you for the evaluation results.  I think that they should be
included in the commit message.  They are helpful in looking through the
commits later.

Did you consider adding the cuckoo distributor as part of a new source
file?  dpif-netdev is very big, which makes it harder to understand.
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to