74 #ifndef _RTE_MEMBER_H_
75 #define _RTE_MEMBER_H_
86 #define RTE_MEMBER_NO_MATCH 0
88 #define RTE_MEMBER_ENTRIES_MAX (1 << 30)
90 #define RTE_MEMBER_LOOKUP_BULK_MAX 64
92 #define RTE_MEMBER_BUCKET_ENTRIES 16
94 #define RTE_MEMBER_NAMESIZE 32
97 #if defined(RTE_ARCH_X86) || defined(RTE_MACHINE_CPUFLAG_CRC32)
99 #define MEMBER_HASH_FUNC rte_hash_crc
102 #define MEMBER_HASH_FUNC rte_jhash
105 extern int librte_member_logtype;
107 #define RTE_MEMBER_LOG(level, fmt, args...) \
108 rte_log(RTE_LOG_ ## level, librte_member_logtype, "%s(): " fmt, \
112 struct rte_member_setsum;
135 enum rte_member_sig_compare_function {
136 RTE_MEMBER_COMPARE_SCALAR = 0,
137 RTE_MEMBER_COMPARE_AVX2,
138 RTE_MEMBER_COMPARE_NUM
142 struct rte_member_setsum {
145 uint32_t prim_hash_seed;
146 uint32_t sec_hash_seed;
150 uint32_t bucket_mask;
152 enum rte_member_sig_compare_function sig_cmp_fn;
304 struct rte_member_setsum *
319 struct rte_member_setsum *
340 member_set_t *set_id);
364 const void **keys, uint32_t num_keys,
365 member_set_t *set_ids);
393 const void *key, uint32_t max_match_per_key,
394 member_set_t *set_id);
424 const void **keys, uint32_t num_keys,
425 uint32_t max_match_per_key,
426 uint32_t *match_count,
427 member_set_t *set_ids);
459 rte_member_add(
const struct rte_member_setsum *setsum,
const void *key,
460 member_set_t set_id);
507 member_set_t set_id);
#define RTE_MEMBER_NAMESIZE
int rte_member_delete(const struct rte_member_setsum *setsum, const void *key, member_set_t set_id)
int rte_member_add(const struct rte_member_setsum *setsum, const void *key, member_set_t set_id)
int rte_member_lookup_multi(const struct rte_member_setsum *setsum, const void *key, uint32_t max_match_per_key, member_set_t *set_id)
struct rte_mbuf __rte_cache_aligned
int rte_member_lookup_multi_bulk(const struct rte_member_setsum *setsum, const void **keys, uint32_t num_keys, uint32_t max_match_per_key, uint32_t *match_count, member_set_t *set_ids)
void rte_member_free(struct rte_member_setsum *setsum)
int rte_member_lookup_bulk(const struct rte_member_setsum *setsum, const void **keys, uint32_t num_keys, member_set_t *set_ids)
struct rte_member_setsum * rte_member_find_existing(const char *name)
int rte_member_lookup(const struct rte_member_setsum *setsum, const void *key, member_set_t *set_id)
void rte_member_reset(const struct rte_member_setsum *setsum)
struct rte_member_setsum * rte_member_create(const struct rte_member_parameters *params)
float false_positive_rate
enum rte_member_setsum_type type