freebsd-nq/sys/netinet
Sam Leffler d1dd20be6e Locking for updates to routing table entries. Each rtentry gets a mutex
that covers updates to the contents.  Note this is separate from holding
a reference and/or locking the routing table itself.

Other/related changes:

o rtredirect loses the final parameter by which an rtentry reference
  may be returned; this was never used and added unwarranted complexity
  for locking.
o minor style cleanups to routing code (e.g. ansi-fy function decls)
o remove the logic to bump the refcnt on the parent of cloned routes,
  we assume the parent will remain as long as the clone; doing this avoids
  a circularity in locking during delete
o convert some timeouts to MPSAFE callouts

Notes:

1. rt_mtx in struct rtentry is guarded by #ifdef _KERNEL as user-level
   applications cannot/do-no know about mutex's.  Doing this requires
   that the mutex be the last element in the structure.  A better solution
   is to introduce an externalized version of struct rtentry but this is
   a major task because of the intertwining of rtentry and other data
   structures that are visible to user applications.
2. There are known LOR's that are expected to go away with forthcoming
   work to eliminate many held references.  If not these will be resolved
   prior to release.
3. ATM changes are untested.

Sponsored by:	FreeBSD Foundation
Obtained from:	BSD/OS (partly)
2003-10-04 03:44:50 +00:00
..
libalias Grrr...add the Skinny alias code forgotten in the last commit. 2003-09-23 07:42:33 +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 add /*CONSTCOND*/ to reduce diffs against latest KAME. 2003-09-25 13:40:06 +00:00
icmp_var.h
if_atm.c Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
if_atm.h
if_ether.c Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
if_ether.h Update netisr handling; Each SWI now registers its queue, and all queue 2003-03-04 23:19:55 +00:00
igmp_var.h
igmp.c Remove redundant initialization of rti; SLIST_FOREACH does that for 2003-08-28 22:15:05 +00:00
igmp.h
in_cksum.c
in_gif.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +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 Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
in_pcb.h Add the IP_ONESBCAST option, to enable undirected IP broadcasts to be sent on 2003-08-20 14:46:40 +00:00
in_proto.c hookup ctlinput for fast ipsec versions of esp+ah protocols 2003-10-03 22:06:36 +00:00
in_rmx.c Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
in_systm.h
in_var.h Move from a custom-crafted singly-linked list to the SLIST_* macros 2003-08-20 17:09:01 +00:00
in.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
in.h Add the IP_ONESBCAST option, to enable undirected IP broadcasts to be sent on 2003-08-20 14:46:40 +00:00
ip6.h add /*CONSTCOND*/ to reduce diffs against latest KAME. 2003-09-25 13:40:06 +00:00
ip_divert.c o add locking 2003-09-05 00:00:51 +00:00
ip_dummynet.c Minor fixups + add locking. 2003-09-17 00:54:04 +00:00
ip_dummynet.h place some kernel-specific data structures under #ifdef _KERNEL 2003-10-03 20:58:56 +00:00
ip_ecn.c initialize local variable explicitly 2002-04-11 02:14:21 +00:00
ip_ecn.h
ip_encap.c Remove unused variables. 2003-06-01 09:20:38 +00:00
ip_encap.h
ip_flow.c Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
ip_flow.h add locking 2003-09-01 05:12:36 +00:00
ip_fw2.c Bandaid locking change: mark static rule mutex recursive so re-entry when 2003-09-17 22:06:47 +00:00
ip_fw.h Allow set 31 to be used for rules other than 65535. 2003-07-15 23:07:34 +00:00
ip_gre.c Finish driving a stake through the heart of netns and the associated 2003-03-05 19:24:24 +00:00
ip_gre.h de-__P(). 2002-10-16 22:27:27 +00:00
ip_icmp.c Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
ip_icmp.h Add comments regarding the ICMP timestamp fields. 2003-03-21 15:28:10 +00:00
ip_id.c
ip_input.c o update PFIL_HOOKS support to current API used by netbsd 2003-09-23 17:54:04 +00:00
ip_mroute.c Add locking. 2003-09-06 04:53:43 +00:00
ip_mroute.h 1. Basic PIM kernel support 2003-08-07 18:16:59 +00:00
ip_output.c Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
ip_var.h o update PFIL_HOOKS support to current API used by netbsd 2003-09-23 17:54:04 +00:00
ip.h Back out support for RFC3514. 2003-04-02 20:14:44 +00:00
ipprotosw.h
pim_var.h New PIM header files. 2003-08-07 18:17:43 +00:00
pim.h New PIM header files. 2003-08-07 18:17:43 +00:00
raw_ip.c shuffle code so we don't "continue" and miss a needed unlock operation 2003-09-17 21:13:16 +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
tcp_input.c A number of patches in the last years have created new return paths 2003-08-13 08:46:54 +00:00
tcp_output.c The tcp_trace call needs the length of the header. Unfortunately the 2003-08-13 08:50:42 +00:00
tcp_reass.c A number of patches in the last years have created new return paths 2003-08-13 08:46:54 +00:00
tcp_seq.h Unify the "send high" and "recover" variables as specified in the 2003-07-15 21:49:53 +00:00
tcp_subr.c Fix a bunch of off-by-one errors in the range checking code. 2003-09-11 21:40:21 +00:00
tcp_syncache.c Change instances of callout_init that specify MPSAFE behaviour to 2003-08-19 17:51:11 +00:00
tcp_timer.c Unify the "send high" and "recover" variables as specified in the 2003-07-15 21:49:53 +00:00
tcp_timer.h Remove a panic(); if the zone allocator can't provide more timewait 2003-03-08 22:06:20 +00:00
tcp_timewait.c Fix a bunch of off-by-one errors in the range checking code. 2003-09-11 21:40:21 +00:00
tcp_usrreq.c Remove check for t_state == TCPS_TIME_WAIT and introduce the tw structure. 2003-03-08 22:07:52 +00:00
tcp_var.h Unify the "send high" and "recover" variables as specified in the 2003-07-15 21:49:53 +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 PR: kern/56343 2003-09-03 02:19:29 +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