diff options
| author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2026-06-21 12:41:39 +0200 |
|---|---|---|
| committer | Sander Vrijders <sander@ouroboros.rocks> | 2026-06-29 08:32:59 +0200 |
| commit | 64792da0de8724bb85e9e3cf114c452995c24140 (patch) | |
| tree | c051f3e7a2d55de8a2632049c5cbf84d43c0c39c /src/ipcpd/unicast/pff/pft.c | |
| parent | b46359c11b879d610997eb1e9069e943e19c4244 (diff) | |
| download | ouroboros-64792da0de8724bb85e9e3cf114c452995c24140.tar.gz ouroboros-64792da0de8724bb85e9e3cf114c452995c24140.zip | |
ipcpd: Use hash_mix64 for pft keys
Drops the per-table hash_key flag and the local MD5 hash() helper.
The calc_key function now folds the key with hash_mix64
unconditionally. Simplifies pft_create, which no longer takes a bool.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/ipcpd/unicast/pff/pft.c')
| -rw-r--r-- | src/ipcpd/unicast/pff/pft.c | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/src/ipcpd/unicast/pff/pft.c b/src/ipcpd/unicast/pff/pft.c index a0d70799..d0e562d6 100644 --- a/src/ipcpd/unicast/pff/pft.c +++ b/src/ipcpd/unicast/pff/pft.c @@ -43,12 +43,10 @@ struct pft_entry { struct pft { struct list_head * buckets; - bool hash_key; uint64_t buckets_size; }; -struct pft * pft_create(uint64_t buckets, - bool hash_key) +struct pft * pft_create(uint64_t buckets) { struct pft * tmp; unsigned int i; @@ -69,7 +67,6 @@ struct pft * pft_create(uint64_t buckets, if (tmp == NULL) return NULL; - tmp->hash_key = hash_key; tmp->buckets_size = buckets; tmp->buckets = malloc(buckets * sizeof(*tmp->buckets)); @@ -113,22 +110,10 @@ void pft_flush(struct pft * pft) } } -static uint64_t hash(uint64_t key) -{ - uint64_t res[2]; - - mem_hash(HASH_MD5, res, (uint8_t *) &key, sizeof(key)); - - return res[0]; -} - static uint64_t calc_key(struct pft * pft, uint64_t dst) { - if (pft->hash_key) - dst = hash(dst); - - return (dst & (pft->buckets_size - 1)); + return hash_mix64(dst) & (pft->buckets_size - 1); } int pft_insert(struct pft * pft, |
