freebsd-nq/sys/netinet
Robert Watson b1c53bc9c0 Take a first cut at cleaning up ifnet removal and multicast socket
panics, which occur when stale ifnet pointers are left in struct
moptions hung off of inpcbs:

- Add in_ifdetach(), which matches in6_ifdetach(), and allows the
  protocol to perform early tear-down on the interface early in
  if_detach().

- Annotate that if_detach() needs careful consideration.

- Remove calls to in_pcbpurgeif0() in the handling of SIOCDIFADDR --
  this is not the place to detect interface removal!  This also
  removes what is basically a nasty (and now unnecessary) hack.

- Invoke in_pcbpurgeif0() from in_ifdetach(), in both raw and UDP
  IPv4 sockets.

It is now possible to run the msocket_ifnet_remove regression test
using HEAD without panicking.

MFC after:	3 days
2005-09-18 17:36:28 +00:00
..
libalias Libalias incorrectly applies proxy rules to the global divert 2005-06-27 22:21:42 +00:00
accf_data.c add missing #include <sys/module.h> 2004-05-30 20:27:19 +00:00
accf_http.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
icmp6.h scope cleanup. with this change 2005-07-25 12:31:43 +00:00
icmp_var.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
if_atm.c Add newline to debuging printf. 2005-08-26 15:27:18 +00:00
if_atm.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
if_ether.c - Do not hold route entry lock, when calling arprequest(). One such 2005-09-09 10:06:27 +00:00
if_ether.h Add CARP (Common Address Redundancy Protocol), which allows multiple 2005-02-22 13:04:05 +00:00
igmp_var.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
igmp.c Introduce in_multi_mtx, which will protect IPv4-layer multicast address 2005-08-03 19:29:47 +00:00
igmp.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
in_cksum.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
in_gif.c Fix IP(v6) over IP tunneling most likely broken with ifnet changes. 2005-06-20 08:39:30 +00:00
in_gif.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
in_pcb.c Remove no-op spl references in in_pcb.c, since in_pcb locking has been 2005-07-19 12:24:27 +00:00
in_pcb.h Add socketoption IP_MINTTL. May be used to set the minimum acceptable 2005-08-22 16:13:08 +00:00
in_proto.c Match IPv6 and use a static struct pr_usrreqs nousrreqs. 2005-08-10 06:41:04 +00:00
in_rmx.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
in_systm.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
in_var.h Introduce in_multi_mtx, which will protect IPv4-layer multicast address 2005-08-03 19:29:47 +00:00
in.c Take a first cut at cleaning up ifnet removal and multicast socket 2005-09-18 17:36:28 +00:00
in.h Take a first cut at cleaning up ifnet removal and multicast socket 2005-09-18 17:36:28 +00:00
ip6.h move RFC3542 related definitions into ip6.h. 2005-07-20 10:30:52 +00:00
ip_carp.c When a carp(4) interface is being destroyed and is in a promiscous mode, 2005-09-09 08:41:39 +00:00
ip_carp.h Add CARP (Common Address Redundancy Protocol), which allows multiple 2005-02-22 13:04:05 +00:00
ip_divert.c In div_output() explicitly set m->m_nextpkt to NULL. If divert socket 2005-05-13 11:44:37 +00:00
ip_divert.h Convert IPDIVERT into a loadable module. This makes use of the dynamic loadability 2004-10-19 21:14:57 +00:00
ip_dummynet.c Add dummynet(4) support to if_bridge, this code is largely based on bridge.c. 2005-06-10 01:25:22 +00:00
ip_dummynet.h Add dummynet(4) support to if_bridge, this code is largely based on bridge.c. 2005-06-10 01:25:22 +00:00
ip_ecn.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ip_ecn.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ip_encap.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ip_encap.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ip_fastfwd.c Handle pure layer 2 broad- and multicasts properly and simplify related 2005-08-22 12:06:26 +00:00
ip_fw2.c Fix panic when kernel compiled without INET6 by rejecting 2005-09-14 07:53:54 +00:00
ip_fw_pfil.c Add IPv6 support to IPFW and Dummynet. 2005-04-18 18:35:05 +00:00
ip_fw.h * Add dynamic sysctl for net.inet6.ip6.fw. 2005-08-13 11:02:34 +00:00
ip_gre.c Add support for IPv6 over GRE [1]. PR kern/80340 includes the 2005-08-01 08:14:21 +00:00
ip_gre.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ip_icmp.c o Fix a logic error when not doing mbuf cluster allocation. 2005-08-22 22:13:41 +00:00
ip_icmp.h Pass icmp_error() the MTU argument directly instead of 2005-05-04 13:09:19 +00:00
ip_id.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ip_input.c Use the correct mbuf type for MGET(). 2005-08-30 16:35:27 +00:00
ip_mroute.c Add back missing copyright and license statement. This is identical 2005-06-23 18:42:58 +00:00
ip_mroute.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ip_output.c Use the correct mbuf type for MGET(). 2005-08-30 16:35:27 +00:00
ip_var.h Check the alignment of the IP header before passing the packet up to the 2005-07-02 23:13:31 +00:00
ip.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ipprotosw.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
pim_var.h Remove public declarations of variables that were forgotten when they were 2005-08-10 07:10:02 +00:00
pim.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
raw_ip.c Add socketoption IP_MINTTL. May be used to set the minimum acceptable 2005-08-22 16:13:08 +00:00
tcp_debug.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
tcp_debug.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
tcp_fsm.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
tcp_hostcache.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
tcp_input.c Remove a KASSERT in the sack path that fails because of a interaction 2005-08-24 02:48:45 +00:00
tcp_output.c Replace t_force with a t_flag (TF_FORCEDATA). 2005-05-21 00:38:29 +00:00
tcp_reass.c Remove a KASSERT in the sack path that fails because of a interaction 2005-08-24 02:48:45 +00:00
tcp_sack.c Remove unnecessary IPSEC includes. 2005-08-23 14:42:40 +00:00
tcp_seq.h - Tighten up the Timestamp checks to prevent a spoofed segment from 2005-04-10 05:24:59 +00:00
tcp_subr.c In tcp_ctlinput() do not swap ip->ip_len a second time. It 2005-09-10 07:43:29 +00:00
tcp_syncache.c Do not ignore all other TCP options (eg. timestamp, window scaling) 2005-09-14 15:06:22 +00:00
tcp_timer.c Remove no-op spl's and most comment references to spls, as TCP locking 2005-07-19 12:21:26 +00:00
tcp_timer.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
tcp_timewait.c In tcp_ctlinput() do not swap ip->ip_len a second time. It 2005-09-10 07:43:29 +00:00
tcp_usrreq.c Remove unnecessary IPSEC includes. 2005-08-23 14:42:40 +00:00
tcp_var.h - Postpone SACK option processing until after PAWS checks. SACK option 2005-06-27 22:27:42 +00:00
tcp.h Fix up the comment for MAX_SACK_BLKS. 2005-08-24 02:47:16 +00:00
tcpip.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
udp_usrreq.c Add socketoption IP_MINTTL. May be used to set the minimum acceptable 2005-08-22 16:13:08 +00:00
udp_var.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
udp.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00