On 17/08/2026 18:25, Nikolay Aleksandrov wrote:
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
Sashiko brought up valid alignment questions (ether_addr_copy expects 2-byte
align).
I'll fix that up before sending v2.
Thanks,
Nik