Date: Mon, 6 Sep 2004 00:52:49 +0400 From: Gleb Smirnoff <glebius@freebsd.org> To: luigi@freebsd.org Cc: net@freebsd.org Subject: bridge callbacks in if_ed.c? Message-ID: <20040905205249.GA81337@cell.sick.ru>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
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
[-- Attachment #2 --]
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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040905205249.GA81337>
