summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2006-06-09 00:33:30 +0000
committerthompsa <thompsa@FreeBSD.org>2006-06-09 00:33:30 +0000
commite3103df96797adb2a5baaea347617d1e748782f8 (patch)
tree159bb51cb04825e5fc3154e177ec861c4ba3f6d7 /sys/netinet
parentba4d1fc19e7cc006990130215e62b3109151634e (diff)
downloadFreeBSD-src-e3103df96797adb2a5baaea347617d1e748782f8.zip
FreeBSD-src-e3103df96797adb2a5baaea347617d1e748782f8.tar.gz
Enable proxy ARP answers on any of the bridged interfaces if proxy record
belongs to another interface within the bridge group. PR: kern/94408 Submitted by: Eygene A. Ryabinkin MFC after: 1 month
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/if_ether.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c
index ad5de6c..1b154df 100644
--- a/sys/netinet/if_ether.c
+++ b/sys/netinet/if_ether.c
@@ -863,10 +863,13 @@ reply:
} else {
/*
* Return proxied ARP replies only on the interface
- * where this network resides. Otherwise we may
- * conflict with the host we are proxying for.
+ * or bridge cluster where this network resides.
+ * Otherwise we may conflict with the host we are
+ * proxying for.
*/
- if (rt->rt_ifp != ifp) {
+ if (rt->rt_ifp != ifp &&
+ (rt->rt_ifp->if_bridge != ifp->if_bridge ||
+ ifp->if_bridge == NULL)) {
RT_UNLOCK(rt);
goto drop;
}
OpenPOWER on IntegriCloud