freebsd-skq/sys/net
sam b16cb0a948 Correct mbuf packet header propagation. Previously, packet headers
were sometimes propagated using M_COPY_PKTHDR which actually did
something between a "move" and a  "copy" operation.  This is replaced
by M_MOVE_PKTHDR (which copies the pkthdr contents and "removes" it
from the source mbuf) and m_dup_pkthdr which copies the packet
header contents including any m_tag chain.  This corrects numerous
problems whereby mbuf tags could be lost during packet manipulations.

These changes also introduce arguments to m_tag_copy and m_tag_copy_chain
to specify if the tag copy work should potentially block.  This
introduces an incompatibility with openbsd which we may want to revisit.

Note that move/dup of packet headers does not handle target mbufs
that have a cluster bound to them.  We may want to support this;
for now we watch for it with an assert.

Finally, M_COPYFLAGS was updated to include M_FIRSTFRAG|M_LASTFRAG.

Supported by:	Vernier Networks
Reviewed by:	Robert Watson <rwatson@FreeBSD.org>
2002-12-30 20:22:40 +00:00
..
bpf_compat.h o Untangle the confusion with the malloc flags {M_WAITOK, M_NOWAIT} and 2002-12-19 22:58:27 +00:00
bpf_filter.c Turn on BPF_ALIGN for all non-i386 platforms, instead of having an 2002-07-05 00:06:08 +00:00
bpf.c Remove cdevw_add() calls, they are deprecated. 2002-12-28 21:40:20 +00:00
bpf.h o add support for multiple link types per interface (e.g. 802.11 and Ethernet) 2002-11-14 23:24:13 +00:00
bpfdesc.h o add support for multiple link types per interface (e.g. 802.11 and Ethernet) 2002-11-14 23:24:13 +00:00
bridge.c Oops, I misread the purpose of the NULL check in EH_RESTORE() in 2002-12-27 17:15:16 +00:00
bridge.h network interface and link layer changes: 2002-11-15 00:00:15 +00:00
bsd_comp.c Be consistent about functions being static. 2002-10-16 10:45:53 +00:00
ethernet.h general cleanups mostly aimed at improving portability of drivers 2002-11-14 23:28:47 +00:00
fddi.h network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_arc.h s/__attribute__((__packed__))/__packed/g 2002-09-23 06:25:08 +00:00
if_arcsubr.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_arp.h bring in ARP support for variable length link level addresses 2001-10-14 20:17:53 +00:00
if_atm.h Remove __P. 2002-03-19 21:54:18 +00:00
if_atmsubr.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_disc.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_dl.h Move ISO88025 source routing information into sockaddr_dl's sdl_data 2002-05-07 22:14:06 +00:00
if_ef.c SMP locking for ifnet list. 2002-12-22 05:35:03 +00:00
if_ethersubr.c o Untangle the confusion with the malloc flags {M_WAITOK, M_NOWAIT} and 2002-12-19 22:58:27 +00:00
if_faith.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_fddisubr.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_gif.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_gif.h - after gif_set_tunnel(), psrc/pdst may be null. set IFF_RUNNING accordingly. 2002-10-16 19:49:37 +00:00
if_gre.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_gre.h MFS: recognize gre packets used in the WCCP protocol. 2002-12-07 14:22:05 +00:00
if_ieee80211.h Add kernel print bits #define for the IEEE80211_CAPINFO bits. 2002-06-24 04:40:12 +00:00
if_iso88025subr.c Use if_printf(ifp, "blah") instead of 2002-10-21 02:51:56 +00:00
if_llc.h s/__attribute__((__packed__))/__packed/g 2002-09-23 06:25:08 +00:00
if_loop.c Correct mbuf packet header propagation. Previously, packet headers 2002-12-30 20:22:40 +00:00
if_media.c At long last, commit the zero copy sockets code. 2002-06-26 03:37:47 +00:00
if_media.h Add some additional 802.11 media definitions. 2002-07-14 21:58:19 +00:00
if_mib.c The interface index space may be sparsely populated (e.g. when an 2001-10-17 04:12:29 +00:00
if_mib.h
if_ppp.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_ppp.h
if_pppvar.h Make ppp(4) devices clonable and unloadable. 2002-08-09 15:30:48 +00:00
if_sl.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_slvar.h sc_lasttime and sc_starttime are time_t's, not long's. 2001-10-27 20:31:24 +00:00
if_sppp.h Implement an option to administratively disable the negotiation of 2001-12-30 20:42:29 +00:00
if_spppsubr.c Be consistent about functions being static. 2002-10-16 10:45:53 +00:00
if_stf.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_stf.h just merged cosmetic changes from KAME to ease sync between KAME and FreeBSD. 2002-04-19 04:46:24 +00:00
if_tap.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_tap.h
if_tapvar.h Add cloning support for the tap(4) device similar to that in the tun(4) 2001-09-05 01:06:21 +00:00
if_tun.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_tun.h
if_tunvar.h
if_types.h
if_var.h Long chain of calls starting with bridge_on(), going through IPv6, and 2002-12-27 00:24:35 +00:00
if_vlan_var.h o eliminate separate callback interface for h/w tagged input packets; instead 2002-11-14 23:43:16 +00:00
if_vlan.c o eliminate separate callback interface for h/w tagged input packets; instead 2002-11-14 23:43:16 +00:00
if.c SMP locking for radix nodes. 2002-12-24 03:03:39 +00:00
if.h o add IF_*bps macros for netbsd compatibility 2002-11-14 23:16:18 +00:00
intrq.c Initialise the intrq_present fields at runtime, not link time. This allows 2002-01-08 10:34:03 +00:00
intrq.h Remove __P. 2002-03-19 21:54:18 +00:00
iso88025.h use __packed/__aligned rather than GCC-specific __attribute__. 2002-09-23 06:35:33 +00:00
net_osdep.c just merged cosmetic changes from KAME to ease sync between KAME and FreeBSD. 2002-04-19 04:46:24 +00:00
net_osdep.h Lock up ifaddr reference counts. 2002-12-18 11:46:59 +00:00
netisr.c Moved netisr code from kern/kern_intr.c to net/netisr.c as threatened in a 2002-09-22 05:56:41 +00:00
netisr.h Slight whitespace cleanup. Whitespace sync to MAC tree. 2002-07-27 19:53:02 +00:00
pfil.c Remove __P. 2002-03-19 21:54:18 +00:00
pfil.h Fixed some style bugs in the removal of __P(()). The main ones were 2002-03-24 09:34:04 +00:00
pfkeyv2.h add definitions for RIPEMD-160 HMAC and Skipjack encryption algorithms, 2002-10-16 02:18:56 +00:00
ppp_comp.h Fixed some style bugs in the removal of __P(()). The main ones were 2002-03-24 09:34:04 +00:00
ppp_deflate.c Be consistent about functions being static. 2002-10-16 10:45:53 +00:00
ppp_defs.h
ppp_tty.c Use if_printf(ifp, "blah") instead of printf("ppp%d: blah", ifp->if_unit). 2002-10-21 03:41:58 +00:00
radix.c Typo in function name. 2002-12-25 11:40:53 +00:00
radix.h SMP locking for radix nodes. 2002-12-24 03:03:39 +00:00
raw_cb.c o Untangle the confusion with the malloc flags {M_WAITOK, M_NOWAIT} and 2002-12-19 22:58:27 +00:00
raw_cb.h Remove __P. 2002-03-19 21:54:18 +00:00
raw_usrreq.c Remove useless local variable from raw_input(). 2002-12-28 02:29:19 +00:00
route.c I'm not sure what was the problem at the time of revision 1.37 2002-12-25 10:55:44 +00:00
route.h Fixed some style bugs in the removal of __P(()). The main ones were 2002-03-24 09:34:04 +00:00
rtsock.c Disable radix node locking for sysctl until we fix the sysctl infrastructure 2002-12-26 03:35:57 +00:00
slcompress.c Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
slcompress.h Remove __P. 2002-03-19 21:54:18 +00:00
slip.h
zlib.c Fix instances of macros with improperly parenthasized arguments. 2002-11-09 12:55:07 +00:00
zlib.h Add one copy of crc32() and crc32_tab[] in libkern, and remove it two other 2002-05-29 20:24:09 +00:00