summaryrefslogtreecommitdiffstats
path: root/sys/net
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2006-11-04 10:40:59 +0000
committerthompsa <thompsa@FreeBSD.org>2006-11-04 10:40:59 +0000
commit7d77b4e35faa299425c10e8671a8b46bb9cf26ae (patch)
tree180fd0dd144675bce9a43998f09113f85f7c40e7 /sys/net
parent58ee199a419988c031c7713e8038e30543ee113f (diff)
downloadFreeBSD-src-7d77b4e35faa299425c10e8671a8b46bb9cf26ae.zip
FreeBSD-src-7d77b4e35faa299425c10e8671a8b46bb9cf26ae.tar.gz
When the packet is for the bridge then note which interface to send the reply
to, previously it was always broadcast to all interfaces (a bug). This is useful when the bridge is the default gateway and vlans are used to isolate each client, the reply is now kept private to the vlan which the client resides. Reported by: Jon Otterholm Tested by: Jon Otterholm MFC after: 3 days
Diffstat (limited to 'sys/net')
-rw-r--r--sys/net/if_bridge.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c
index 5314b6f..da77d97 100644
--- a/sys/net/if_bridge.c
+++ b/sys/net/if_bridge.c
@@ -2054,6 +2054,11 @@ bridge_input(struct ifnet *ifp, struct mbuf *m)
* local processing.
*/
+ /* Note where to send the reply to */
+ if (bif->bif_flags & IFBIF_LEARNING)
+ (void) bridge_rtupdate(sc,
+ eh->ether_shost, ifp, 0, IFBAF_DYNAMIC);
+
/* Mark the packet as arriving on the bridge interface */
m->m_pkthdr.rcvif = bifp;
BPF_MTAP(bifp, m);
OpenPOWER on IntegriCloud