Luigi,

I see that bridge callbacks are still living in if_ed.c
from FreeBSD 2.x times. See if_ed.c:2816. I think this is
not correct.

Bridge code is called from ether_input(), which is
indirectly called from if_ed.c:2836.

Any objections about attached patch?

[ccing hackers@ and net@ to get more eyes reviewing]

-- 
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE
Index: if_ed.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ed/if_ed.c,v
retrieving revision 1.233
diff -u -r1.233 if_ed.c
--- if_ed.c     13 Aug 2004 23:04:23 -0000      1.233
+++ if_ed.c     5 Sep 2004 20:48:19 -0000
@@ -2810,26 +2810,9 @@
        eh = mtod(m, struct ether_header *);
 
        /*
-        * Don't read in the entire packet if we know we're going to drop it
-        * and no bpf is active.
+        * Get packet, including link layer address, from interface.
         */
-       if (!ifp->if_bpf && BDG_ACTIVE( (ifp) ) ) {
-               struct ifnet *bif;
-
-               ed_ring_copy(sc, buf, (char *)eh, ETHER_HDR_LEN);
-               bif = bridge_in_ptr(ifp, eh) ;
-               if (bif == BDG_DROP) {
-                       m_freem(m);
-                       return;
-               }
-               if (len > ETHER_HDR_LEN)
-                       ed_ring_copy(sc, buf + ETHER_HDR_LEN,
-                               (char *)(eh + 1), len - ETHER_HDR_LEN);
-       } else
-               /*
-                * Get packet, including link layer address, from interface.
-                */
-               ed_ring_copy(sc, buf, (char *)eh, len);
+       ed_ring_copy(sc, buf, (char *)eh, len);
 
        m->m_pkthdr.len = m->m_len = len;
 
_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to