freebsd-dev/sys/netinet
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
..
libalias Zap now-unused SHLIB_MINOR 2002-09-28 00:25:32 +00:00
accf_data.c Remove so*_locked(), which were backed out by mistake. 2002-06-18 07:42:02 +00:00
accf_http.c Remove so*_locked(), which were backed out by mistake. 2002-06-18 07:42:02 +00:00
icmp6.h s/__attribute__((__packed__))/__packed/g 2002-09-23 06:25:08 +00:00
icmp_var.h Remove __P. 2002-03-19 21:25:46 +00:00
if_atm.c - Change the newly turned INVARIANTS #ifdef blocks (they were changed from 2002-05-21 18:52:24 +00:00
if_atm.h Remove __P. 2002-03-19 21:25:46 +00:00
if_ether.c Introduce support for Mandatory Access Control and extensible 2002-07-31 16:45:16 +00:00
if_ether.h Fixed some style bugs in the removal of __P(()). Continuation lines 2002-03-24 10:19:10 +00:00
igmp_var.h Remove __P. 2002-03-19 21:25:46 +00:00
igmp.c Back out some style changes. They are not urgent, 2002-11-20 19:00:54 +00:00
igmp.h
in_cksum.c
in_gif.c last arg of in6?_gif_output() is not used any more. 2002-10-17 17:47:55 +00:00
in_gif.h last arg of in6?_gif_output() is not used any more. 2002-10-17 17:47:55 +00:00
in_pcb.c temporarily disallow FAST_IPSEC and INET6 to avoid potential panics; 2002-11-08 23:50:32 +00:00
in_pcb.h Turn off duplicate lock checking for inp locks because udp_input() 2002-11-12 20:44:38 +00:00
in_proto.c FAST_IPSEC fixups: 2002-11-08 23:37:50 +00:00
in_rmx.c SMP locking for radix nodes. 2002-12-24 03:03:39 +00:00
in_systm.h Remove __P. 2002-03-19 21:25:46 +00:00
in_var.h Fixed some style bugs in the removal of __P(()). Continuation lines 2002-03-24 10:19:10 +00:00
in.c Lock up ifaddr reference counts. 2002-12-18 11:46:59 +00:00
in.h Renumber IPPROTO_DIVERT out of the range of valid IP protocol numbers. 2002-10-29 16:46:13 +00:00
ip6.h s/__attribute__((__packed__))/__packed/g 2002-09-23 06:25:08 +00:00
ip_divert.c Renumber IPPROTO_DIVERT out of the range of valid IP protocol numbers. 2002-10-29 16:46:13 +00:00
ip_dummynet.c o De-anonymity dummynet(4) and ipfw(4) messages, prepend them 2002-12-24 13:45:24 +00:00
ip_dummynet.h o Trim EOL whitespaces. 2002-12-15 10:24:36 +00:00
ip_ecn.c initialize local variable explicitly 2002-04-11 02:14:21 +00:00
ip_ecn.h Remove __P. 2002-03-19 21:25:46 +00:00
ip_encap.c o Untangle the confusion with the malloc flags {M_WAITOK, M_NOWAIT} and 2002-12-19 22:58:27 +00:00
ip_encap.h Remove __P. 2002-03-19 21:25:46 +00:00
ip_flow.c
ip_flow.h
ip_fw2.c Bridged packets are supplied to the firewall with their IP header 2002-12-27 17:43:25 +00:00
ip_fw.c Bridged packets are supplied to the firewall with their IP header 2002-12-27 17:43:25 +00:00
ip_fw.h Oops, forgot to commit this file. This is part of the fix 2002-10-24 22:32:13 +00:00
ip_gre.c MFS: recognize gre packets used in the WCCP protocol. 2002-12-07 14:22:05 +00:00
ip_gre.h de-__P(). 2002-10-16 22:27:27 +00:00
ip_icmp.c correct style bogons 2002-12-30 18:45:31 +00:00
ip_icmp.h Fix two instances of variant struct definitions in sys/netinet: 2002-10-20 22:52:07 +00:00
ip_id.c Remove __P. 2002-03-19 21:25:46 +00:00
ip_input.c Correct mbuf packet header propagation. Previously, packet headers 2002-12-30 20:22:40 +00:00
ip_mroute.c Massive cleanup of the ip_mroute code. 2002-11-15 22:53:53 +00:00
ip_mroute.h Massive cleanup of the ip_mroute code. 2002-11-15 22:53:53 +00:00
ip_output.c Back out the ip_fragment() code -- it is not urgent to have it in now, 2002-11-20 18:56:25 +00:00
ip_var.h Back out the ip_fragment() code -- it is not urgent to have it in now, 2002-11-20 18:56:25 +00:00
ip.h Fix two instances of variant struct definitions in sys/netinet: 2002-10-20 22:52:07 +00:00
ipprotosw.h
raw_ip.c Back out some style changes. They are not urgent, 2002-11-20 19:00:54 +00:00
tcp_debug.c It's now sufficient to rely on a nested include of _label.h to make sure 2002-08-15 14:34:45 +00:00
tcp_debug.h make the strings for tcptimers, tanames and prurequests const to silence 2002-08-16 09:07:59 +00:00
tcp_fsm.h WARNS=n and lint(1) silencer. Declare an array of (const) strings 2002-02-03 11:57:32 +00:00
tcp_input.c Remove the PAWS ack-on-ack debugging printf(). 2002-12-30 19:31:04 +00:00
tcp_output.c Fix oops in my last commit, I was calculating a new length but then not 2002-10-16 19:16:33 +00:00
tcp_reass.c Remove the PAWS ack-on-ack debugging printf(). 2002-12-30 19:31:04 +00:00
tcp_seq.h
tcp_subr.c Validate inp to prevent an use after free. 2002-12-24 21:00:31 +00:00
tcp_syncache.c Remove forgotten INP_UNLOCK(inp) in my previous commit. 2002-12-22 13:04:08 +00:00
tcp_timer.c Validate inp to prevent an use after free. 2002-12-24 21:00:31 +00:00
tcp_timer.h make the strings for tcptimers, tanames and prurequests const to silence 2002-08-16 09:07:59 +00:00
tcp_timewait.c Validate inp to prevent an use after free. 2002-12-24 21:00:31 +00:00
tcp_usrreq.c Unbreak the automatic remapping of an INADDR_ANY destination address 2002-10-24 02:02:34 +00:00
tcp_var.h Implement TCP bandwidth delay product window limiting, similar to (but 2002-08-17 18:26:02 +00:00
tcp.h Include <sys/cdefs.h> so the visibility conditionals are available. 2002-10-02 04:22:34 +00:00
tcpip.h
udp_usrreq.c Back out some style changes. They are not urgent, 2002-11-20 19:00:54 +00:00
udp_var.h Notify functions can destroy the pcb, so they have to return an 2002-06-14 08:35:21 +00:00
udp.h