diff options
author | sam <sam@FreeBSD.org> | 2002-11-14 23:49:09 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2002-11-14 23:49:09 +0000 |
commit | 10eb947d277840d02ef35d6c6303b64329d53806 (patch) | |
tree | 372bb632d763ce1dd7c8d223701c4caeb192eea9 /sys/dev/de | |
parent | ad30a004454fdbce77e4ea74fce4280cee5cf184 (diff) | |
download | FreeBSD-src-10eb947d277840d02ef35d6c6303b64329d53806.zip FreeBSD-src-10eb947d277840d02ef35d6c6303b64329d53806.tar.gz |
o track either_ifattach/ether_ifdetach API changes
o use if_input for input packet processing
o don't strip the Ethernet header for input packets
o use BPF_* macros bpf tapping
o call ether_ioctl to handle default ioctl case
o track vlan changes
Reviewed by: many
Approved by: re
Diffstat (limited to 'sys/dev/de')
-rw-r--r-- | sys/dev/de/if_de.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/sys/dev/de/if_de.c b/sys/dev/de/if_de.c index dc10916..88280d1 100644 --- a/sys/dev/de/if_de.c +++ b/sys/dev/de/if_de.c @@ -3567,8 +3567,7 @@ tulip_rx_intr( #if !defined(TULIP_COPY_RXDATA) ms->m_pkthdr.len = total_len; ms->m_pkthdr.rcvif = ifp; - m_adj(ms, sizeof(struct ether_header)); - ether_input(ifp, &eh, ms); + (*ifp->if_input)(ifp, ms); #else #ifdef BIG_PACKET #error BIG_PACKET is incompatible with TULIP_COPY_RXDATA @@ -3577,8 +3576,7 @@ tulip_rx_intr( m_copydata(ms, 0, total_len, mtod(m0, caddr_t)); m0->m_len = m0->m_pkthdr.len = total_len; m0->m_pkthdr.rcvif = ifp; - m_adj(m0, sizeof(struct ether_header)); - ether_input(ifp, &eh, m0); + (*ifp->if_input)(ifp, m0); m0 = ms; #endif /* ! TULIP_COPY_RXDATA */ } @@ -4334,8 +4332,7 @@ tulip_txput( /* * bounce a copy to the bpf listener, if any. */ - if (sc->tulip_if.if_bpf != NULL) - bpf_mtap(&sc->tulip_if, m); + BPF_MTAP(&sc->tulip_if, m); /* * The descriptors have been filled in. Now get ready @@ -4558,12 +4555,6 @@ tulip_ifioctl( s = splimp(); #endif switch (cmd) { - case SIOCSIFADDR: - case SIOCGIFADDR: { - error = ether_ioctl(ifp, cmd, data); - break; - } - case SIOCSIFFLAGS: { tulip_addr_filter(sc); /* reinit multicast filter */ tulip_init(sc); @@ -4621,7 +4612,7 @@ tulip_ifioctl( } #endif default: { - error = EINVAL; + error = ether_ioctl(ifp, cmd, data); break; } } @@ -4813,7 +4804,7 @@ tulip_attach( tulip_reset(sc); - ether_ifattach(&(sc)->tulip_if, ETHER_BPF_SUPPORTED); + ether_ifattach(&(sc)->tulip_if, sc->tulip_enaddr); ifp->if_snd.ifq_maxlen = ifqmaxlen; } |