summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/if_rdp.c
diff options
context:
space:
mode:
authorarchie <archie@FreeBSD.org>2000-05-14 02:18:43 +0000
committerarchie <archie@FreeBSD.org>2000-05-14 02:18:43 +0000
commitfa21035b4e2f11d2c8f90174690853600b670e2d (patch)
tree9afb8dacfff6d7607064d8aa2bbf2da5069e8be6 /sys/i386/isa/if_rdp.c
parentd066b073153b986a54fd18a31d6bcc5d697933a2 (diff)
downloadFreeBSD-src-fa21035b4e2f11d2c8f90174690853600b670e2d.zip
FreeBSD-src-fa21035b4e2f11d2c8f90174690853600b670e2d.tar.gz
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
Diffstat (limited to 'sys/i386/isa/if_rdp.c')
-rw-r--r--sys/i386/isa/if_rdp.c24
1 files changed, 1 insertions, 23 deletions
diff --git a/sys/i386/isa/if_rdp.c b/sys/i386/isa/if_rdp.c
index 5c7d761..5b45c0f 100644
--- a/sys/i386/isa/if_rdp.c
+++ b/sys/i386/isa/if_rdp.c
@@ -1093,8 +1093,7 @@ rdp_rint(struct rdp_softc *sc)
/*
* Retreive packet from NIC memory and send to the next level up via
- * ether_input(). If there is a BPF listener, give a copy to BPF,
- * too.
+ * ether_input().
*/
static void
rdp_get_packet(struct rdp_softc *sc, unsigned len)
@@ -1154,33 +1153,12 @@ rdp_get_packet(struct rdp_softc *sc, unsigned len)
WrNib(sc, CMR1, CMR1_RDPAC);
/*
- * Check if there's a BPF listener on this interface. If so, hand off
- * the raw packet to bpf.
- */
- if (sc->arpcom.ac_if.if_bpf) {
- bpf_mtap(&sc->arpcom.ac_if, m);
-
- /*
- * Note that the interface cannot be in promiscuous mode if
- * there are no BPF listeners. And if we are in promiscuous
- * mode, we have to check if this packet is really ours.
- */
- if ((sc->arpcom.ac_if.if_flags & IFF_PROMISC) &&
- bcmp(eh->ether_dhost, sc->arpcom.ac_enaddr,
- sizeof(eh->ether_dhost)) != 0) {
- m_freem(m);
- return;
- }
- }
-
- /*
* Remove link layer address.
*/
m->m_pkthdr.len = m->m_len = len - sizeof(struct ether_header);
m->m_data += sizeof(struct ether_header);
ether_input(&sc->arpcom.ac_if, eh, m);
- return;
}
/*
OpenPOWER on IntegriCloud