Sam Leffler 9967cafc49 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
..
2002-11-14 05:08:22 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-11-27 17:30:41 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-09-20 18:15:40 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-11-11 10:28:44 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-11-06 22:58:55 +00:00
2002-11-14 23:54:55 +00:00
2002-10-18 12:06:01 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-09-23 18:54:32 +00:00
2002-11-07 22:21:38 +00:00
2002-11-14 23:54:55 +00:00
2002-11-28 01:13:58 +00:00
2002-11-14 23:54:55 +00:00
2002-11-28 01:09:29 +00:00
2002-11-28 01:00:40 +00:00
2002-11-14 23:54:55 +00:00
2002-03-23 15:36:13 +00:00
2002-12-30 19:45:30 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-09-21 21:43:49 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-11-02 04:18:10 +00:00
2002-11-14 23:54:55 +00:00
2002-11-28 01:15:01 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00
2002-11-14 23:54:55 +00:00