DPDK  19.05.0
Data Fields
rte_hash Struct Reference

#include <rte_cuckoo_hash.h>

Data Fields

char name [RTE_HASH_NAMESIZE]
uint32_t entries
uint32_t num_buckets
struct rte_ringfree_slots
struct lcore_cache * local_free_slots
uint32_t key_len __rte_cache_aligned
uint8_t hw_trans_mem_support
uint8_t use_local_cache
uint8_t readwrite_concur_support
uint8_t ext_table_support
uint8_t no_free_on_del
uint8_t readwrite_concur_lf_support
uint8_t writer_takes_lock
rte_hash_function hash_func
uint32_t hash_func_init_val
rte_hash_cmp_eq_t rte_hash_custom_cmp_eq
enum cmp_jump_table_case cmp_jump_table_idx
enum rte_hash_sig_compare_function sig_cmp_fn
uint32_t bucket_bitmask
uint32_t key_entry_size
void * key_store
struct rte_hash_bucketbuckets
rte_rwlock_treadwrite_lock
struct rte_hash_bucketbuckets_ext
struct rte_ringfree_ext_bkts
uint32_t * tbl_chng_cnt

Detailed Description

A hash table structure.

Examples:
examples/ipsec-secgw/ipsec-secgw.c, examples/l3fwd-power/main.c, examples/l3fwd-vf/main.c, examples/l3fwd/l3fwd_em.c, examples/performance-thread/l3fwd-thread/main.c, and examples/server_node_efd/node/node.c.

Definition at line 160 of file rte_cuckoo_hash.h.

Field Documentation

char name[RTE_HASH_NAMESIZE]

Name of the hash.

Examples:
examples/server_node_efd/node/node.c.

Definition at line 161 of file rte_cuckoo_hash.h.

uint32_t entries

Total table entries.

Definition at line 162 of file rte_cuckoo_hash.h.

uint32_t num_buckets

Number of buckets in table.

Definition at line 163 of file rte_cuckoo_hash.h.

struct rte_ring* free_slots

Ring that stores all indexes of the free slots in the key table

Definition at line 165 of file rte_cuckoo_hash.h.

struct lcore_cache* local_free_slots

Local cache per lcore, storing some indexes of the free slots

Definition at line 168 of file rte_cuckoo_hash.h.

uint32_t key_len __rte_cache_aligned

Length of hash key.

Definition at line 174 of file rte_cuckoo_hash.h.

uint8_t hw_trans_mem_support

If hardware transactional memory is used.

Definition at line 176 of file rte_cuckoo_hash.h.

uint8_t use_local_cache

If multi-writer support is enabled, use local cache to allocate key-store slots.

Definition at line 178 of file rte_cuckoo_hash.h.

uint8_t readwrite_concur_support

If read-write concurrency support is enabled

Definition at line 182 of file rte_cuckoo_hash.h.

uint8_t ext_table_support

Enable extendable bucket table

Definition at line 183 of file rte_cuckoo_hash.h.

uint8_t no_free_on_del

If key index should be freed on calling rte_hash_del_xxx APIs. If this is set, rte_hash_free_key_with_position must be called to free the key index associated with the deleted entry. This flag is enabled by default.

Definition at line 185 of file rte_cuckoo_hash.h.

uint8_t readwrite_concur_lf_support

If read-write concurrency lock free support is enabled

Definition at line 191 of file rte_cuckoo_hash.h.

uint8_t writer_takes_lock

Indicates if the writer threads need to take lock

Definition at line 193 of file rte_cuckoo_hash.h.

rte_hash_function hash_func

Function used to calculate hash.

Definition at line 194 of file rte_cuckoo_hash.h.

uint32_t hash_func_init_val

Init value used by hash_func.

Definition at line 195 of file rte_cuckoo_hash.h.

rte_hash_cmp_eq_t rte_hash_custom_cmp_eq

Custom function used to compare keys.

Definition at line 197 of file rte_cuckoo_hash.h.

enum cmp_jump_table_case cmp_jump_table_idx

Indicates which compare function to use.

Definition at line 198 of file rte_cuckoo_hash.h.

enum rte_hash_sig_compare_function sig_cmp_fn

Indicates which signature compare function to use.

Definition at line 200 of file rte_cuckoo_hash.h.

uint32_t bucket_bitmask

Bitmask for getting bucket index from hash signature.

Definition at line 203 of file rte_cuckoo_hash.h.

uint32_t key_entry_size

Size of each key entry.

Definition at line 204 of file rte_cuckoo_hash.h.

void* key_store

Table storing all keys and data

Definition at line 206 of file rte_cuckoo_hash.h.

struct rte_hash_bucket* buckets

Table with buckets storing all the hash values and key indexes to the key table.

Definition at line 207 of file rte_cuckoo_hash.h.

rte_rwlock_t* readwrite_lock

Read-write lock thread-safety.

Definition at line 211 of file rte_cuckoo_hash.h.

struct rte_hash_bucket* buckets_ext

Extra buckets array

Definition at line 212 of file rte_cuckoo_hash.h.

struct rte_ring* free_ext_bkts

Ring of indexes of free buckets

Definition at line 213 of file rte_cuckoo_hash.h.

uint32_t* tbl_chng_cnt

Indicates if the hash table changed from last read.

Definition at line 222 of file rte_cuckoo_hash.h.


The documentation for this struct was generated from the following file: