diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-03-25 12:39:47 +0100 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-03-25 13:07:01 +0100 |
commit | 6c58b00a5a30d783048dc5e1f7aa8961d739e740 (patch) | |
tree | a26196ce6781ffb7b50b7c2234c748e3fa4aae46 /src/hashtables.h | |
parent | e3d5a96bb3391d12e77a9eb7baa7bae1dcad0829 (diff) |
peerlookup: rename from hashtables
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src/hashtables.h')
-rw-r--r-- | src/hashtables.h | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/src/hashtables.h b/src/hashtables.h deleted file mode 100644 index de77537..0000000 --- a/src/hashtables.h +++ /dev/null @@ -1,64 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/* - * Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. - */ - -#ifndef _WG_HASHTABLES_H -#define _WG_HASHTABLES_H - -#include "messages.h" - -#include <linux/hashtable.h> -#include <linux/mutex.h> -#include <linux/siphash.h> - -struct wg_peer; - -struct pubkey_hashtable { - /* TODO: move to rhashtable */ - DECLARE_HASHTABLE(hashtable, 11); - siphash_key_t key; - struct mutex lock; -}; - -struct pubkey_hashtable *wg_pubkey_hashtable_alloc(void); -void wg_pubkey_hashtable_add(struct pubkey_hashtable *table, - struct wg_peer *peer); -void wg_pubkey_hashtable_remove(struct pubkey_hashtable *table, - struct wg_peer *peer); -struct wg_peer * -wg_pubkey_hashtable_lookup(struct pubkey_hashtable *table, - const u8 pubkey[NOISE_PUBLIC_KEY_LEN]); - -struct index_hashtable { - /* TODO: move to rhashtable */ - DECLARE_HASHTABLE(hashtable, 13); - spinlock_t lock; -}; - -enum index_hashtable_type { - INDEX_HASHTABLE_HANDSHAKE = 1U << 0, - INDEX_HASHTABLE_KEYPAIR = 1U << 1 -}; - -struct index_hashtable_entry { - struct wg_peer *peer; - struct hlist_node index_hash; - enum index_hashtable_type type; - __le32 index; -}; - -struct index_hashtable *wg_index_hashtable_alloc(void); -__le32 wg_index_hashtable_insert(struct index_hashtable *table, - struct index_hashtable_entry *entry); -bool wg_index_hashtable_replace(struct index_hashtable *table, - struct index_hashtable_entry *old, - struct index_hashtable_entry *new); -void wg_index_hashtable_remove(struct index_hashtable *table, - struct index_hashtable_entry *entry); -struct index_hashtable_entry * -wg_index_hashtable_lookup(struct index_hashtable *table, - const enum index_hashtable_type type_mask, - const __le32 index, struct wg_peer **peer); - -#endif /* _WG_HASHTABLES_H */ |