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