16 #undef BIHASH_KVP_PER_PAGE 18 #define BIHASH_TYPE _vec8_8 19 #define BIHASH_KVP_PER_PAGE 4 21 #ifndef __included_bihash_vec8_8_h__ 22 #define __included_bihash_vec8_8_h__ 43 if (v->
key == ~0ULL && v->
value == ~0ULL)
56 #ifdef clib_crc32c_uses_intrinsics 57 return clib_crc32c (keyp,
vec_len (keyp));
63 for (i = 0, j = 0; i <
vec_len (keyp); i++)
65 sum ^= keyp[
i] << (j * 8);
86 s =
format (s,
"key %U value %llu",
101 if (a_arg == ~0ULL || b_arg == ~0ULL)
107 return memcmp (a, b,
vec_len (a)) == 0;
110 #undef __included_bihash_template_h__
Fixed length block allocator.
static u64 clib_xxhash(u64 key)
static u8 * format_bihash_kvp_vec8_8(u8 *s, va_list *args)
Format a clib_bihash_kv_vec8_8_t instance.
static int clib_bihash_is_free_vec8_8(clib_bihash_kv_vec8_8_t *v)
Decide if a clib_bihash_kv_vec8_8_t instance is free.
8 octet key, 8 octet key value pair
static int clib_bihash_key_compare_vec8_8(u64 a_arg, u64 b_arg)
Compare two clib_bihash_kv_vec8_8_t instances.
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
static u64 clib_bihash_hash_vec8_8(clib_bihash_kv_vec8_8_t *v)
Hash a clib_bihash_kv_vec8_8_t instance.