freebsd-dev/sys/net
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
..
bpf_compat.h Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
bpf_filter.c
bpf.c add a stub for bpfattach2 so bpf is not required with the 802.11 2003-10-04 01:32:28 +00:00
bpf.h o add BIOCGDLTLIST and BIOCSDLT ioctls to get the data link type list 2003-01-20 19:08:46 +00:00
bpfdesc.h add support for using kqueue to watch bpf sockets. 2003-08-05 07:12:49 +00:00
bridge.c Correct pfil_run_hooks return handling: if the return value is non-zero 2003-09-30 04:46:08 +00:00
bridge.h network interface and link layer changes: 2002-11-15 00:00:15 +00:00
bsd_comp.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +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 - add support for IPX (tested with mount -t nwfs and mars_nwe), 2003-01-24 01:32:20 +00:00
if_arcsubr.c Update netisr handling; Each SWI now registers its queue, and all queue 2003-03-04 23:19:55 +00:00
if_arp.h - Use if_broadcastaddr from struct ifnet rather than relying on 2003-03-21 17:53:16 +00:00
if_atm.h Remove the ATMIOCENA and ATMIOCDIS ioctl. Everyting has been converted 2003-08-06 14:53:27 +00:00
if_atmsubr.c Implement a mechanism by which ATM drivers can inform interested 2003-07-29 13:04:52 +00:00
if_disc.c Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
if_dl.h
if_ef.c Remove break after return. 2003-05-31 20:06:27 +00:00
if_ethersubr.c Introduce error checking for calls to M_PREPEND(): 2003-08-29 19:12:18 +00:00
if_faith.c Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
if_fddisubr.c - Use IFP2AC(). 2003-03-16 00:17:44 +00:00
if_gif.c Update netisr handling; Each SWI now registers its queue, and all queue 2003-03-04 23:19:55 +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 Finish driving a stake through the heart of netns and the associated 2003-03-05 19:24:24 +00:00
if_gre.h MFS: recognize gre packets used in the WCCP protocol. 2002-12-07 14:22:05 +00:00
if_iso88025subr.c Enable IPv6 for Token Ring. 2003-09-14 02:32:31 +00:00
if_llc.h s/__attribute__((__packed__))/__packed/g 2002-09-23 06:25:08 +00:00
if_loop.c Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
if_media.c Add media types and options for ATM. While on most ATM cards media cannot 2003-04-29 17:23:23 +00:00
if_media.h add monitor mode 2003-07-21 02:49:42 +00:00
if_mib.c
if_mib.h
if_ppp.c o netisr_queue() returns 1 on success and 0 on failure, 2003-03-27 12:52:57 +00:00
if_ppp.h
if_pppvar.h
if_sl.c Update netisr handling; Each SWI now registers its queue, and all queue 2003-03-04 23:19:55 +00:00
if_slvar.h
if_sppp.h
if_spppsubr.c Use M_WAITOK instead of M_WAIT in sppp_attach(). 2003-07-26 21:58:06 +00:00
if_stf.c Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
if_stf.h
if_tap.c Gigacommit to improve device-driver source compatibility between 2003-03-03 12:15:54 +00:00
if_tap.h
if_tapvar.h
if_tun.c Correctly name r_unit member tun_unit. 2003-09-27 21:43:16 +00:00
if_tun.h
if_tunvar.h Correctly name r_unit member tun_unit. 2003-09-27 21:43:16 +00:00
if_types.h
if_var.h Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
if_vlan_var.h - In vlan_input(), always mask off all but the VLID bits from tags 2003-07-08 21:54:20 +00:00
if_vlan.c Add locking. We use a single lock to guard the global vlan list and also 2003-09-05 20:58:59 +00:00
if.c Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
if.h By popular demand, added the "static ARP" per-interface option. 2003-10-01 08:32:37 +00:00
iso88025.h Fix whitespace issues. 2003-03-15 23:55:33 +00:00
net_osdep.c
net_osdep.h Lock up ifaddr reference counts. 2002-12-18 11:46:59 +00:00
netisr.c When direct dispatching an netisr (net.isr.enable=1), if there are already 2003-10-03 18:27:24 +00:00
netisr.h Finish driving a stake through the heart of netns and the associated 2003-03-05 19:24:24 +00:00
pfil.c o update PFIL_HOOKS support to current API used by netbsd 2003-09-23 17:54:04 +00:00
pfil.h o update PFIL_HOOKS support to current API used by netbsd 2003-09-23 17:54: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
ppp_deflate.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
ppp_defs.h
ppp_tty.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
radix.c While cleaning out my tree, fix another strict alias warning that would 2003-09-22 23:24:18 +00:00
radix.h add R_Zalloc definition that returns pre-zero'd memory 2003-08-19 17:23:07 +00:00
raw_cb.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
raw_cb.h
raw_usrreq.c Fix a bunch of off-by-one errors in the range checking code. 2003-09-11 21:40:21 +00:00
route.c Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
route.h Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
rtsock.c Locking for updates to routing table entries. Each rtentry gets a mutex 2003-10-04 03:44:50 +00:00
slcompress.c Don't use ovbcopy(); use void * instead of char *. 2003-04-04 12:11:46 +00:00
slcompress.h
slip.h
zlib.c chase more of the MIN/MAX mess. *sigh* 2003-02-02 13:52:25 +00:00
zlib.h