freebsd-nq/sys/net
Robert Watson a152f8a361 Change semantics of socket close and detach. Add a new protocol switch
function, pru_close, to notify protocols that the file descriptor or
other consumer of a socket is closing the socket.  pru_abort is now a
notification of close also, and no longer detaches.  pru_detach is no
longer used to notify of close, and will be called during socket
tear-down by sofree() when all references to a socket evaporate after
an earlier call to abort or close the socket.  This means detach is now
an unconditional teardown of a socket, whereas previously sockets could
persist after detach of the protocol retained a reference.

This faciliates sharing mutexes between layers of the network stack as
the mutex is required during the checking and removal of references at
the head of sofree().  With this change, pru_detach can now assume that
the mutex will no longer be required by the socket layer after
completion, whereas before this was not necessarily true.

Reviewed by:	gnn
2006-07-21 17:11:15 +00:00
..
bpf_compat.h
bpf_filter.c Avoid unwanted sign extension of indexed byte load in bpf code. 2006-05-28 20:00:02 +00:00
bpf_jitter.c Add BPF Just-In-Time compiler support for ng_bpf(4). 2005-12-07 21:30:47 +00:00
bpf_jitter.h Add BPF Just-In-Time compiler support for ng_bpf(4). 2005-12-07 21:30:47 +00:00
bpf.c Adjust descriptor locking to tell the kqueue subsystem that our descriptor is 2006-07-03 20:02:06 +00:00
bpf.h If bpf(4) has not been compiled into the kernel, initialize the bpf interface 2006-06-14 02:23:28 +00:00
bpfdesc.h Fix the following bpf(4) race condition which can result in a panic: 2006-06-02 19:59:33 +00:00
bridgestp.c If we miss the LINK_UP event from the network interface then the bridge port 2006-03-06 02:28:41 +00:00
bsd_comp.c Eliminate MAC entry point mac_create_mbuf_from_mbuf(), which is 2005-07-05 23:39:51 +00:00
ethernet.h
fddi.h - Make IFP2ENADDR() a pointer to IF_LLADDR() rather than another 2005-11-11 07:36:14 +00:00
firewire.h Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
if_arc.h Use ANSI C function protypes and declarations for if_arcsubr. 2006-04-12 07:44:31 +00:00
if_arcsubr.c Use ANSI C function protypes and declarations for if_arcsubr. 2006-04-12 07:44:31 +00:00
if_arp.h - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
if_atm.h Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
if_atmsubr.c There is a consensus that ifaddr.ifa_addr should never be NULL, 2006-06-29 19:22:05 +00:00
if_bridge.c Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
if_bridgevar.h If we miss the LINK_UP event from the network interface then the bridge port 2006-03-06 02:28:41 +00:00
if_clone.c Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
if_clone.h Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
if_disc.c Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
if_dl.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
if_ef.c Return mbuf pointer or NULL from ip_fastforward() as the mbuf pointer 2006-01-18 14:24:39 +00:00
if_enc.c Catch up with the revised network interface cloning which takes an optional 2006-07-10 05:24:06 +00:00
if_ethersubr.c Unbreak byte counters when network interfaces are in monitor mode by 2006-03-03 17:21:08 +00:00
if_faith.c Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
if_fddisubr.c Return mbuf pointer or NULL from ip_fastforward() as the mbuf pointer 2006-01-18 14:24:39 +00:00
if_fwsubr.c add missed calls to bpf_peers_present 2006-06-02 23:14:40 +00:00
if_gif.c Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
if_gif.h Add some initial locking to gif(4). It doesn't covers the whole driver, 2006-01-30 08:39:09 +00:00
if_gre.c Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
if_gre.h Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
if_iso88025subr.c Return mbuf pointer or NULL from ip_fastforward() as the mbuf pointer 2006-01-18 14:24:39 +00:00
if_llc.h Add hooks into the networking layer to support if_bridge. This changes struct 2005-06-05 03:13:13 +00:00
if_loop.c Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
if_media.c - Introduce ifmedia_baudrate(), which returns correct baudrate of the 2006-02-14 12:10:03 +00:00
if_media.h - Add definition for IFM_10G_CX4. 2006-06-02 07:50:58 +00:00
if_mib.c Add a new leaf to the net.link.generic.ifdata.%d sysctl to retrieve 2006-01-04 12:57:09 +00:00
if_mib.h Add a new leaf to the net.link.generic.ifdata.%d sysctl to retrieve 2006-01-04 12:57:09 +00:00
if_ppp.c Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
if_ppp.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
if_pppvar.h Axe ppp_for_tty(). Use tty->t_lsc pointer to store sc. This 2005-08-12 08:27:15 +00:00
if_sl.c Fix the following bpf(4) race condition which can result in a panic: 2006-06-02 19:59:33 +00:00
if_slvar.h Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
if_sppp.h Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
if_spppfr.c Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
if_spppsubr.c Use TAILQ_FOREACH instead of poking around in the guts of the list 2006-07-15 02:49:35 +00:00
if_stf.c Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
if_stf.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
if_tap.c Drop a pointless cast of ifp->if_softc to (struct tap_softc *). 2006-07-15 02:13:05 +00:00
if_tap.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
if_tapvar.h Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
if_tun.c There is a consensus that ifaddr.ifa_addr should never be NULL, 2006-06-29 19:22:05 +00:00
if_tun.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
if_types.h Add a pseudo interface for packet filtering IPSec connections before or after 2006-06-26 22:30:08 +00:00
if_var.h Import interface groups from OpenBSD. This allows to group interfaces in 2006-06-19 22:20:45 +00:00
if_vlan_var.h Merge the //depot/user/yar/vlan branch into CVS. It contains some collective 2006-01-30 13:45:15 +00:00
if_vlan.c Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
if.c Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
if.h Import interface groups from OpenBSD. This allows to group interfaces in 2006-06-19 22:20:45 +00:00
iso88025.h - Make IFP2ENADDR() a pointer to IF_LLADDR() rather than another 2005-11-11 07:36:14 +00:00
net_osdep.h Remove ip6fw. Since ipfw has full functional IPv6 support now and - in 2006-05-12 20:39:23 +00:00
netisr.c - Don't pollute opt_global.h with DEVICE_POLLING and introduce 2005-10-05 10:09:17 +00:00
netisr.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
pfil.c Somewhat re-factor the read/write locking mechanism associated with the packet 2006-02-02 03:13:16 +00:00
pfil.h define lock.h before rwlock.h for DEBUG_LOCKS 2006-02-02 20:33:10 +00:00
pfkeyv2.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ppp_comp.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ppp_deflate.c This patch fixes a problem, which exists if you have IPSEC in your kernel 2006-02-27 16:56:22 +00:00
ppp_defs.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ppp_tty.c Use new (inline) functions for calls into driver. 2005-10-16 20:44:18 +00:00
radix.c The code in rn_walktree_from() that checks if we backed up too far 2006-02-07 20:25:39 +00:00
radix.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
raw_cb.c raw_disconnect() now disconnects but does not detach the raw pcb. As a 2006-06-02 08:27:15 +00:00
raw_cb.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
raw_usrreq.c Change semantics of socket close and detach. Add a new protocol switch 2006-07-21 17:11:15 +00:00
route.c Assuming the interface has an address of x.x.x.195, a mask of 2006-06-05 21:20:21 +00:00
route.h - Fill in the correct rtm_index for RTM_ADD and RTM_CHANGE messages. 2006-03-15 19:39:09 +00:00
rtsock.c Change semantics of socket close and detach. Add a new protocol switch 2006-07-21 17:11:15 +00:00
slcompress.c
slcompress.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
slip.h
zlib.c Forward declare z_errmsg with static linkage since it is defined 2005-09-11 16:13:02 +00:00
zlib.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00