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