This patchset implements the table APIs for cuckoo hash.
This will enable any dpdk application to use the cuckoo hash table apis 
instead of the direct apis from lib/librte_hash

The dosig version of the cuckoo hash is implemented in this patch 
with the following APIs
        rte_table_hash_cuckoo_create
        rte_table_hash_cuckoo_free
        rte_table_hash_cuckoo_entry_add
        rte_table_hash_cuckoo_entry_delete
        rte_table_hash_cuckoo_lookup_dosig
        rte_table_hash_cuckoo_stats_read

The cuckoo hash library has been used by test-pipeline application 
to benchmark the performance of the table lookup.
The test-pipeline application supports the following table-type for 
cuckoo hash
        hash-cuckoo-8
        hash-cuckoo-16
        hash-cuckoo-32
        hash-cuckoo-48
        hash-cuckoo-64
        hash-cuckoo-80
        hash-cuckoo-96
        hash-cuckoo-112
        hash-cuckoo-128
The key-sizes 8, 16 and 32 are already tested.

The table APIs are tested for basic functionality using 
table_autotest and the results are OK.

Sankar Chokkalingam (3):
  lib/librte_table: enabling cuckoo hash into table library
  app/test-pipeline: added cuckoo hash for benchmarking
  app/test: adding cuckoo hash table for testing

 app/test-pipeline/config.c               |  20 +-
 app/test-pipeline/main.c                 |  12 +-
 app/test-pipeline/main.h                 |  12 +-
 app/test-pipeline/pipeline_hash.c        |  58 +++++
 app/test/test_table_combined.c           |  72 +++++-
 app/test/test_table_combined.h           |   3 +-
 app/test/test_table_tables.c             | 157 +++++++++++-
 app/test/test_table_tables.h             |   3 +-
 lib/librte_table/Makefile                |   4 +-
 lib/librte_table/rte_table_hash.h        |  31 ++-
 lib/librte_table/rte_table_hash_cuckoo.c | 416 +++++++++++++++++++++++++++++++
 lib/librte_table/rte_table_version.map   |   7 +
 12 files changed, 786 insertions(+), 9 deletions(-)
 create mode 100644 lib/librte_table/rte_table_hash_cuckoo.c

-- 
2.5.0

Reply via email to