Hi All,

   Need inputs on using rte_hash_table.

Created hash table to store the mbuf as data and the key is sequence number.

Hashtable size is 8096 I have stored the 200packets which was received.

There is no error in during insert.

While I am trying to do lookup using loop (rte_hash_lookup_data) it is only working for first 63 entries .

For 64th time lookup failed to return data for the given key.

This is happen exactly for the 64th entry not for the particular key value .

Whatever keys stored after 63rd I am not able fetch using rte_hash_lookup_data.

 

If I do the rte_hash_iterate() , I able to get the all the entries stored in the hash table.

Could any please tell me why the lookup not returning data even though the data and key is present in the table.

 

 

Hash table details:

#define MAX_INNER_ENTRIES 8096

mempool MEMPOOL3 buffer 2304 pool 4096k cache 128 cpu 0 (create using command line)

 

struct rte_hash_parameters mbuf_hash_params = {

        .name = NULL,

        .entries = MAX_INNER_ENTRIES,

        .key_len = sizeof(uint32_t),

        .hash_func = rte_hash_crc,

        .hash_func_init_val = 0,

        .extra_flag = RTE_HASH_EXTRA_FLAGS_MULTI_WRITER_ADD | RTE_HASH_EXTRA_FLAGS_RW_CONCURRENCY,

};