diff options
author | 2024-11-07 16:04:39 +0000 | |
---|---|---|
committer | 2024-11-09 13:22:56 -0800 | |
commit | d7ddee1a522ddf5b28e2a3f7093cf238c96f492a (patch) | |
tree | 4307093b3a4abf802c4085261a73103d32d433c1 | |
parent | neighbour: Add hlist_node to struct neighbour (diff) | |
download | wireguard-linux-d7ddee1a522ddf5b28e2a3f7093cf238c96f492a.tar.xz wireguard-linux-d7ddee1a522ddf5b28e2a3f7093cf238c96f492a.zip |
neighbour: Define neigh_for_each_in_bucket
Introduce neigh_for_each_in_bucket in neighbour.h, to help iterate over
the neighbour table more succinctly.
Signed-off-by: Gilad Naaman <gnaaman@drivenets.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20241107160444.2913124-3-gnaaman@drivenets.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r-- | include/net/neighbour.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/net/neighbour.h b/include/net/neighbour.h index 0402447854c7..4b9068c5e668 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h @@ -277,6 +277,12 @@ static inline void *neighbour_priv(const struct neighbour *n) extern const struct nla_policy nda_policy[]; +#define neigh_for_each_in_bucket(pos, head) hlist_for_each_entry(pos, head, hash) +#define neigh_for_each_in_bucket_rcu(pos, head) \ + hlist_for_each_entry_rcu(pos, head, hash) +#define neigh_for_each_in_bucket_safe(pos, tmp, head) \ + hlist_for_each_entry_safe(pos, tmp, head, hash) + static inline bool neigh_key_eq32(const struct neighbour *n, const void *pkey) { return *(const u32 *)n->primary_key == *(const u32 *)pkey; |