Currently DPDK has a special implementation of a hash table for 4 byte keys which is called FBK hash. Unfortunately its main drawback is that it only supports 2 byte values. The new implementation called DWK (double word key) hash supports 8 byte values, which is enough to store a pointer.
It would also be nice to get feedback on whether to leave the old FBK and new DWK implementations, or whether to deprecate the old one? Vladimir Medvedkin (3): hash: add dwk hash library test: add dwk hash autotests test: add dwk perf tests app/test/Makefile | 1 + app/test/meson.build | 1 + app/test/test_dwk_hash.c | 229 +++++++++++++++++++++++++++++ app/test/test_hash_perf.c | 81 +++++++++++ lib/Makefile | 2 +- lib/librte_hash/Makefile | 4 +- lib/librte_hash/meson.build | 5 +- lib/librte_hash/rte_dwk_hash.c | 271 +++++++++++++++++++++++++++++++++++ lib/librte_hash/rte_dwk_hash.h | 178 +++++++++++++++++++++++ lib/librte_hash/rte_hash_version.map | 5 + 10 files changed, 773 insertions(+), 4 deletions(-) create mode 100644 app/test/test_dwk_hash.c create mode 100644 lib/librte_hash/rte_dwk_hash.c create mode 100644 lib/librte_hash/rte_dwk_hash.h -- 2.7.4