From 2e2de7f23f09ed445e6d2503174e890cc64b9a7c Mon Sep 17 00:00:00 2001 From: Archie Cobbs Date: Sun, 14 May 2000 02:18:43 +0000 Subject: Move code to handle BPF and bridging for incoming Ethernet packets out of the individual drivers and into the common routine ether_input(). Also, remove the (incomplete) hack for matching ethernet headers in the ip_fw code. The good news: net result of 1016 lines removed, and this should make bridging now work with *all* Ethernet drivers. The bad news: it's nearly impossible to test every driver, especially for bridging, and I was unable to get much testing help on the mailing lists. Reviewed by: freebsd-net --- sys/dev/usb/usb_ethersubr.c | 18 ------------------ 1 file changed, 18 deletions(-) (limited to 'sys/dev/usb/usb_ethersubr.c') diff --git a/sys/dev/usb/usb_ethersubr.c b/sys/dev/usb/usb_ethersubr.c index c712bd6f0edc..da2328c37186 100644 --- a/sys/dev/usb/usb_ethersubr.c +++ b/sys/dev/usb/usb_ethersubr.c @@ -96,26 +96,8 @@ Static void usbintr() q = (struct usb_qdat *)m->m_pkthdr.rcvif; ifp = q->ifp; m->m_pkthdr.rcvif = ifp; - /* - * Handle BPF listeners. Let the BPF user see the packet, but - * don't pass it up to the ether_input() layer unless it's - * a broadcast packet, multicast packet, matches our ethernet - * address or the interface is in promiscuous mode. - */ - if (ifp->if_bpf) { - bpf_mtap(ifp, m); - if (ifp->if_flags & IFF_PROMISC && - (bcmp(eh->ether_dhost, - ((struct arpcom *)ifp->if_softc)->ac_enaddr, - ETHER_ADDR_LEN) && !(eh->ether_dhost[0] & 1))) { - m_freem(m); - goto done; - } - } - m_adj(m, sizeof(struct ether_header)); ether_input(ifp, eh, m); -done: /* Re-arm the receiver */ (*q->if_rxstart)(ifp); -- cgit v1.2.3