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};
 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)
 
 /******************************************************************************/
 #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 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;
 
 
        unsigned i;
 
 
@@ -1100,7 +1101,7 @@ test_hash_creation_with_good_parameters(void)
 static int test_average_table_utilization(void)
 {
        struct rte_hash *handle;
 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;
        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;
 {
        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];
        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
  * 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[] = {
 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)
 {
 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;
 
        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;
 {
        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;
 
        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.
 
   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
 * 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 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().
 
 * 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_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
      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
 
 
 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
 
 # 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)
 
 /** 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
 
 /** 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
  * 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.
  *
  * @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;
 }
 
        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)
 {
 static inline uint32_t
 __rte_jhash_3words(uint32_t a, uint32_t b, uint32_t c, uint32_t initval)
 {