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 <pablo.de.lara.guarch@intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
This commit is contained in:
Pablo de Lara 2015-09-04 10:05:40 +01:00 committed by Thomas Monjalon
parent 2b9c06e78b
commit 0f201fe961
8 changed files with 14 additions and 32 deletions

View 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];

View 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;

View 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;

View 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

View 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

View 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

View 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

View 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)
{