FD.io VPP
v20.09-64-g4f7b92f0a
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | clib_cuckoo_path_t |
struct | CVT |
Macros | |
#define | CV(a) __cv (a, CLIB_CUCKOO_TYPE) |
#define | CVT(a) __cvt (a, CLIB_CUCKOO_TYPE) |
#define | CLIB_CUCKOO_USE_COUNT_BIT_WIDTH (1 + CLIB_CUCKOO_LOG2_KVP_PER_BUCKET) |
#define | PATH_BITS_REQ (CLIB_CUCKOO_BFS_MAX_PATH_LENGTH * CLIB_CUCKOO_LOG2_KVP_PER_BUCKET) |
#define | clib_cuckoo_bucket_foreach_idx(var) for (var = 0; var < CLIB_CUCKOO_KVP_PER_BUCKET; var++) |
#define | clib_cuckoo_bucket_foreach_idx_unrolled(var, body) |
#define | clib_cuckoo_bucket_foreach_elt_index(var, bucket) for (var = 0; var < CLIB_CUCKOO_KVP_PER_BUCKET; ++i) |
#define | clib_cuckoo_foreach_bucket(var, h, body) |
Typedefs | |
typedef u64 | clib_cuckoo_bucket_aux_t |
typedef u8 | path_data_t |
#define clib_cuckoo_bucket_foreach_elt_index | ( | var, | |
bucket | |||
) | for (var = 0; var < CLIB_CUCKOO_KVP_PER_BUCKET; ++i) |
Definition at line 233 of file cuckoo_template.h.
#define clib_cuckoo_bucket_foreach_idx | ( | var | ) | for (var = 0; var < CLIB_CUCKOO_KVP_PER_BUCKET; var++) |
Definition at line 168 of file cuckoo_template.h.
#define clib_cuckoo_bucket_foreach_idx_unrolled | ( | var, | |
body | |||
) |
Definition at line 226 of file cuckoo_template.h.
#define clib_cuckoo_foreach_bucket | ( | var, | |
h, | |||
body | |||
) |
Definition at line 236 of file cuckoo_template.h.
#define CLIB_CUCKOO_USE_COUNT_BIT_WIDTH (1 + CLIB_CUCKOO_LOG2_KVP_PER_BUCKET) |
Definition at line 73 of file cuckoo_template.h.
#define CV | ( | a | ) | __cv (a, CLIB_CUCKOO_TYPE) |
Definition at line 65 of file cuckoo_template.h.
#define CVT | ( | a | ) | __cvt (a, CLIB_CUCKOO_TYPE) |
Definition at line 69 of file cuckoo_template.h.
#define PATH_BITS_REQ (CLIB_CUCKOO_BFS_MAX_PATH_LENGTH * CLIB_CUCKOO_LOG2_KVP_PER_BUCKET) |
Definition at line 127 of file cuckoo_template.h.
typedef u64 clib_cuckoo_bucket_aux_t |
Definition at line 71 of file cuckoo_template.h.
typedef u8 path_data_t |
Definition at line 131 of file cuckoo_template.h.
int CV() clib_cuckoo_add_del | ( | CVT(clib_cuckoo) * | h, |
CVT(clib_cuckoo_kv) * | add_v, | ||
int | is_add, | ||
int | dont_overwrite | ||
) |
Definition at line 820 of file cuckoo_template.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 110 of file cuckoo_template.h.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
search for key within bucket
Definition at line 360 of file cuckoo_template.h.
|
inlinestatic |
Definition at line 334 of file cuckoo_template.h.
Definition at line 188 of file cuckoo_template.c.
perform garbage collection
this function assumes there is no other thread touching the cuckoo hash, not even a reader, it's meant to be called from main thread in a stop-the-world situation
Definition at line 694 of file cuckoo_template.c.
void CV() clib_cuckoo_init | ( | CVT(clib_cuckoo) * | h, |
const char * | name, | ||
uword | nbuckets, | ||
void(*)(CVT(clib_cuckoo) *, void *) | garbage_callback, | ||
void * | garbage_ctx | ||
) |
Definition at line 163 of file cuckoo_template.c.
int CV() clib_cuckoo_search | ( | CVT(clib_cuckoo) * | h, |
CVT(clib_cuckoo_kv) * | search_v, | ||
CVT(clib_cuckoo_kv) * | return_v | ||
) |
Definition at line 25 of file cuckoo_template.c.
|
inlinestatic |
Definition at line 443 of file cuckoo_template.h.
|
inlinestatic |
Definition at line 408 of file cuckoo_template.h.
struct CV | ( | clib_cuckoo | ) |
vector of elements containing key-value pairs and auxiliary data
garbage to be freed once its safe to do so ..
hash table name
pool of cuckoo paths (reused when doing bfd search)
vector used as queue when doing cuckoo path searches - holds offsets in paths pool
writer lock - whether this lock is taken or not has zero effect on readers
caller context passed to callback with garbage notification
garbage notify function - called when some garbage needs to be collected in main thread while other threads are stopped
Definition at line 247 of file cuckoo_template.h.
format_function_t CV | ( | format_cuckoo | ) |
format_function_t CV | ( | format_cuckoo_kvp | ) |
CVT | ( | clib_cuckoo | ) |
STATIC_ASSERT | ( | CLIB_CUCKOO_KVP_PER_BUCKET | = =(1<< CLIB_CUCKOO_LOG2_KVP_PER_BUCKET) | ) |