NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/18035 IFF_SIMPLEX vs bridge(4)



The following reply was made to PR kern/18035; it has been noted by GNATS.

From: der Mouse <mouse%Rodents-Montreal.ORG@localhost>
To: tech-net%netbsd.org@localhost
Cc: 
Subject: Re: kern/18035 IFF_SIMPLEX vs bridge(4)
Date: Fri, 15 Aug 2008 00:03:26 -0400 (EDT)

 > I think "bridge doesn't learn MACs from broadcast packets" is a
 > reasonable approximation to a fix.
 
 It is.  I tried that and, while I still see the ARP request duplicated
 when tcpdumping vr0, I no longer see bridge1 learning MAC addresses on
 the wrong interface.
 
 The patch I got this effect with is almost ludicrously simple:
 
 --- /dev/fd/4  Tue Dec  9 16:18:08 2003
 +++ /dev/fd/5  Tue Dec  9 16:18:08 2003
 @@ -1360,10 +1360,12 @@
        /*
         * If the interface is learning, and the source
         * address is valid and not multicast, record
 -       * the address.
 +       * the address.  But don't do this if the destination
 +       * is broadcast; such packets are looped back too often.
         */
        if ((bif->bif_flags & IFBIF_LEARNING) != 0 &&
            ETHER_IS_MULTICAST(eh->ether_shost) == 0 &&
 +          
memcmp(etherbroadcastaddr,eh->ether_dhost,sizeof(etherbroadcastaddr)) &&
            (eh->ether_shost[0] == 0 &&
             eh->ether_shost[1] == 0 &&
             eh->ether_shost[2] == 0 &&
 
 I'm sending a bcc of this mail, too, to the PR, so's to ensure the
 patch is there for anyone who wants it.  (The above is relative to
 stock 4.0 source, if_bridge.c,v 1.46.)
 
 /~\ The ASCII                          der Mouse
 \ / Ribbon Campaign
  X  Against HTML               mouse%rodents-montreal.org@localhost
 / \ Email!          7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B
 


Home | Main Index | Thread Index | Old Index