mirror of
https://github.com/openwrt/openwrt.git
synced 2026-06-17 14:50:15 +04:00
4c942c06b8
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.18.27 Manually rebased: pending-6.18/151-net-bridge-do-not-send-arp-replies-if-src-and-target.patch All other patches automatically rebased via update_kernel.sh Build system: x86/64 Build-tested: x86/64-glibc Run-tested: x86/64-glibc Signed-off-by: John Audia <therealgraysky@proton.me> Link: https://github.com/openwrt/openwrt/pull/23252 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
38 lines
1.3 KiB
Diff
38 lines
1.3 KiB
Diff
From: Felix Fietkau <nbd@nbd.name>
|
|
Date: Thu, 4 Jan 2024 15:21:21 +0100
|
|
Subject: [PATCH] net: bridge: do not send arp replies if src and target hw
|
|
addr is the same
|
|
|
|
There are broken devices in the wild that handle duplicate IP address
|
|
detection by sending out ARP requests for the IP that they received from a
|
|
DHCP server and refuse the address if they get a reply.
|
|
When proxyarp is enabled, they would go into a loop of requesting an address
|
|
and then NAKing it again.
|
|
|
|
Link: https://github.com/openwrt/openwrt/issues/14309
|
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
---
|
|
|
|
--- a/net/bridge/br_arp_nd_proxy.c
|
|
+++ b/net/bridge/br_arp_nd_proxy.c
|
|
@@ -208,7 +208,10 @@ void br_do_proxy_suppress_arp(struct sk_
|
|
if ((p && (p->flags & BR_PROXYARP)) ||
|
|
(dst && (dst->flags & BR_PROXYARP_WIFI)) ||
|
|
br_is_neigh_suppress_enabled(dst, vid)) {
|
|
- if (!vid)
|
|
+ replied = true;
|
|
+ if (!memcmp(n->ha, sha, dev->addr_len))
|
|
+ replied = false;
|
|
+ else if (!vid)
|
|
br_arp_send(br, p, skb->dev, sip, tip,
|
|
sha, n->ha, sha, 0, 0);
|
|
else
|
|
@@ -216,7 +219,6 @@ void br_do_proxy_suppress_arp(struct sk_
|
|
sha, n->ha, sha,
|
|
skb->vlan_proto,
|
|
skb_vlan_tag_get(skb));
|
|
- replied = true;
|
|
}
|
|
|
|
/* If we have replied or as long as we know the
|