On 17/08/2026 17:36, Nikolay Aleksandrov wrote:
Hi,
Neigh ha address must be read using the seqlock to get a stable snapshot.
Both the bridge and vxlan read it directly and can see partial updates.
I reproduced both issues with running neigh updates and exercising these
paths in parallel and saw partial addresses, e.g. updating between
neigh A: 02:00:00:00:00:00 neigh B: fe:ff:ff:ff:ff:ff was able to observe
02:00:ff:ff:ff:ff and fe:ff:00:00:00:00 in packets. Noticed this initially
in the bridge, then checked vxlan and its arp/neigh_reduce functions have
the same bug, route_shortcircuit is doing the right thing already.

Cheers,
  Nik

Nikolay Aleksandrov (2):
   net: bridge: arp/nd proxy: fix reading neigh ha
   vxlan: fix reading neigh ha

  drivers/net/vxlan/vxlan_core.c | 20 +++++++++++++-------
  net/bridge/br_arp_nd_proxy.c   | 24 ++++++++++++++----------
  2 files changed, 27 insertions(+), 17 deletions(-)


(-CC bouncing emails)

Hmm perhaps it's better to use ETH_ALEN instead of MAX_ADDR_LEN to explicitly
show the expected len everywhere, it cannot be different anyway.
I'll do it for v2 after 24h.

Cheers,
 Nik




Reply via email to