From 0f201fe961d75b7a920d6c1649f462feb47631a6 Mon Sep 17 00:00:00 2001 From: Pablo de Lara Date: Fri, 4 Sep 2015 10:05:40 +0100 Subject: [PATCH] hash: remove deprecated function and macros The function rte_jhash2() was renamed rte_jhash_32b and macros RTE_HASH_KEY_LENGTH_MAX and RTE_HASH_BUCKET_ENTRIES_MAX were tagged as deprecated, so they can be removed in 2.2. RTE_HASH_KEY_LENGTH is replaced in unit tests by an internal macro for the memory allocation of all keys used. The library version number is incremented. Signed-off-by: Pablo de Lara Signed-off-by: Thomas Monjalon --- app/test/test_hash.c | 7 ++++--- app/test/test_hash_functions.c | 4 ++-- app/test/test_hash_perf.c | 2 +- doc/guides/rel_notes/deprecation.rst | 5 ----- doc/guides/rel_notes/release_2_2.rst | 5 ++++- lib/librte_hash/Makefile | 2 +- lib/librte_hash/rte_hash.h | 6 ------ lib/librte_hash/rte_jhash.h | 15 ++------------- 8 files changed, 14 insertions(+), 32 deletions(-) diff --git a/app/test/test_hash.c b/app/test/test_hash.c index 7f8c0d3914..4f2509d384 100644 --- a/app/test/test_hash.c +++ b/app/test/test_hash.c @@ -66,6 +66,7 @@ static rte_hash_function hashtest_funcs[] = {rte_jhash, rte_hash_crc}; static uint32_t hashtest_initvals[] = {0}; static uint32_t hashtest_key_lens[] = {0, 2, 4, 5, 6, 7, 8, 10, 11, 15, 16, 21, 31, 32, 33, 63, 64}; +#define MAX_KEYSIZE 64 /******************************************************************************/ #define LOCAL_FBK_HASH_ENTRIES_MAX (1 << 15) @@ -238,7 +239,7 @@ test_crc32_hash_alg_equiv(void) static void run_hash_func_test(rte_hash_function f, uint32_t init_val, uint32_t key_len) { - static uint8_t key[RTE_HASH_KEY_LENGTH_MAX]; + static uint8_t key[MAX_KEYSIZE]; unsigned i; @@ -1100,7 +1101,7 @@ test_hash_creation_with_good_parameters(void) static int test_average_table_utilization(void) { struct rte_hash *handle; - uint8_t simple_key[RTE_HASH_KEY_LENGTH_MAX]; + uint8_t simple_key[MAX_KEYSIZE]; unsigned i, j; unsigned added_keys, average_keys_added = 0; int ret; @@ -1154,7 +1155,7 @@ static int test_hash_iteration(void) { struct rte_hash *handle; unsigned i; - uint8_t keys[NUM_ENTRIES][RTE_HASH_KEY_LENGTH_MAX]; + uint8_t keys[NUM_ENTRIES][MAX_KEYSIZE]; const void *next_key; void *next_data; void *data[NUM_ENTRIES]; diff --git a/app/test/test_hash_functions.c b/app/test/test_hash_functions.c index 8c7cf63a63..3ad6d80d6e 100644 --- a/app/test/test_hash_functions.c +++ b/app/test/test_hash_functions.c @@ -85,7 +85,7 @@ static uint32_t hash_values_crc[2][10] = {{ * from the array entries is tested. */ #define HASHTEST_ITERATIONS 1000000 - +#define MAX_KEYSIZE 64 static rte_hash_function hashtest_funcs[] = {rte_jhash, rte_hash_crc}; static uint32_t hashtest_initvals[] = {0, 0xdeadbeef}; static uint32_t hashtest_key_lens[] = { @@ -119,7 +119,7 @@ static void run_hash_func_perf_test(uint32_t key_len, uint32_t init_val, rte_hash_function f) { - static uint8_t key[HASHTEST_ITERATIONS][RTE_HASH_KEY_LENGTH_MAX]; + static uint8_t key[HASHTEST_ITERATIONS][MAX_KEYSIZE]; uint64_t ticks, start, end; unsigned i, j; diff --git a/app/test/test_hash_perf.c b/app/test/test_hash_perf.c index a87fc80d0e..9d53c1412d 100644 --- a/app/test/test_hash_perf.c +++ b/app/test/test_hash_perf.c @@ -140,7 +140,7 @@ shuffle_input_keys(unsigned table_index) { unsigned i; uint32_t swap_idx; - uint8_t temp_key[RTE_HASH_KEY_LENGTH_MAX]; + uint8_t temp_key[MAX_KEYSIZE]; hash_sig_t temp_signature; int32_t temp_position; diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 5f6079ba96..fffad809f2 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -13,11 +13,6 @@ Deprecation Notices There is no backward compatibility planned from release 2.2. All binaries will need to be rebuilt from release 2.2. -* The Macros RTE_HASH_BUCKET_ENTRIES_MAX and RTE_HASH_KEY_LENGTH_MAX are - deprecated and will be removed with version 2.2. - -* The function rte_jhash2 is deprecated and should be removed. - * The following fields have been deprecated in rte_eth_stats: imissed, ibadcrc, ibadlen, imcasts, fdirmatch, fdirmiss, tx_pause_xon, rx_pause_xon, tx_pause_xoff, rx_pause_xoff diff --git a/doc/guides/rel_notes/release_2_2.rst b/doc/guides/rel_notes/release_2_2.rst index abe57b450a..682f4681b2 100644 --- a/doc/guides/rel_notes/release_2_2.rst +++ b/doc/guides/rel_notes/release_2_2.rst @@ -21,6 +21,9 @@ API Changes * The deprecated ACL API ipv4vlan is removed. +* The deprecated hash function rte_jhash2() is removed. + It was replaced by rte_jhash_32b(). + * The deprecated KNI functions are removed: rte_kni_create(), rte_kni_get_port_id() and rte_kni_info_get(). @@ -58,7 +61,7 @@ The libraries prepended with a plus sign were incremented in this version. librte_cmdline.so.1 librte_distributor.so.1 + librte_eal.so.2 - librte_hash.so.1 + + librte_hash.so.2 librte_ip_frag.so.1 librte_ivshmem.so.1 librte_jobstats.so.1 diff --git a/lib/librte_hash/Makefile b/lib/librte_hash/Makefile index 4bb3848a48..7902c2b85a 100644 --- a/lib/librte_hash/Makefile +++ b/lib/librte_hash/Makefile @@ -39,7 +39,7 @@ CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) EXPORT_MAP := rte_hash_version.map -LIBABIVER := 1 +LIBABIVER := 2 # all source are stored in SRCS-y SRCS-$(CONFIG_RTE_LIBRTE_HASH) := rte_cuckoo_hash.c diff --git a/lib/librte_hash/rte_hash.h b/lib/librte_hash/rte_hash.h index 1cddc077a2..175c0bbb89 100644 --- a/lib/librte_hash/rte_hash.h +++ b/lib/librte_hash/rte_hash.h @@ -49,12 +49,6 @@ extern "C" { /** Maximum size of hash table that can be created. */ #define RTE_HASH_ENTRIES_MAX (1 << 30) -/** @deprecated Maximum bucket size that can be created. */ -#define RTE_HASH_BUCKET_ENTRIES_MAX 4 - -/** @deprecated Maximum length of key that can be used. */ -#define RTE_HASH_KEY_LENGTH_MAX 64 - /** Maximum number of characters in hash name.*/ #define RTE_HASH_NAMESIZE 32 diff --git a/lib/librte_hash/rte_jhash.h b/lib/librte_hash/rte_jhash.h index f9a8266cf6..457f225caa 100644 --- a/lib/librte_hash/rte_jhash.h +++ b/lib/librte_hash/rte_jhash.h @@ -267,10 +267,10 @@ rte_jhash_2hashes(const void *key, uint32_t length, uint32_t *pc, uint32_t *pb) } /** - * Same as rte_jhash2, but takes two seeds and return two uint32_ts. + * Same as rte_jhash_32b, but takes two seeds and return two uint32_ts. * pc and pb must be non-null, and *pc and *pb must both be initialized * with seeds. If you pass in (*pb)=0, the output (*pc) will be - * the same as the return value from rte_jhash2. + * the same as the return value from rte_jhash_32b. * * @param k * Key to calculate hash of. @@ -334,17 +334,6 @@ rte_jhash_32b(const uint32_t *k, uint32_t length, uint32_t initval) return initval; } -static inline uint32_t -__attribute__ ((deprecated)) -rte_jhash2(const uint32_t *k, uint32_t length, uint32_t initval) -{ - uint32_t initval2 = 0; - - rte_jhash_32b_2hashes(k, length, &initval, &initval2); - - return initval; -} - static inline uint32_t __rte_jhash_3words(uint32_t a, uint32_t b, uint32_t c, uint32_t initval) { -- 2.20.1