hash: remove deprecated function and macros
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Fri, 4 Sep 2015 09:05:40 +0000 (10:05 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 4 Sep 2015 13:56:58 +0000 (15:56 +0200)
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 <pablo.de.lara.guarch@intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
app/test/test_hash.c
app/test/test_hash_functions.c
app/test/test_hash_perf.c
doc/guides/rel_notes/deprecation.rst
doc/guides/rel_notes/release_2_2.rst
lib/librte_hash/Makefile
lib/librte_hash/rte_hash.h
lib/librte_hash/rte_jhash.h

index 7f8c0d3..4f2509d 100644 (file)
@@ -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];
index 8c7cf63..3ad6d80 100644 (file)
@@ -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;
 
index a87fc80..9d53c14 100644 (file)
@@ -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;
 
index 5f6079b..fffad80 100644 (file)
@@ -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
index abe57b4..682f468 100644 (file)
@@ -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
index 4bb3848..7902c2b 100644 (file)
@@ -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
index 1cddc07..175c0bb 100644 (file)
@@ -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
 
index f9a8266..457f225 100644 (file)
@@ -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)
 {