freebsd-skq/sys/netinet
csjp 9757d6d2e3 This commit adds a shared locking mechanism very similar to the
mechanism used by pfil.  This shared locking mechanism will remove
a nasty lock order reversal which occurs when ucred based rules
are used which results in hard locks while mpsafenet=1.

So this removes the debug.mpsafenet=0 requirement when using
ucred based rules with IPFW.

It should be noted that this locking mechanism does not guarantee
fairness between read and write locks, and that it will favor
firewall chain readers over writers. This seemed acceptable since
write operations to firewall chains protected by this lock tend to
be less frequent than reads.

Reviewed by:	andre, rwatson
Tested by:	myself, seanc
Silence on:	ipfw@
MFC after:	1 month
2004-12-10 02:17:18 +00:00
..
libalias For variables that are only checked with defined(), don't provide 2004-10-24 15:33:08 +00:00
accf_data.c
accf_http.c
icmp6.h
icmp_var.h
if_atm.c
if_atm.h
if_ether.c More fixing of multiple addresses in the same prefix. This time do not try 2004-12-09 00:12:41 +00:00
if_ether.h
igmp_var.h
igmp.c
igmp.h
in_cksum.c
in_gif.c - Make route cacheing optional, configurable via IFF_LINK0 flag. 2004-12-06 19:02:43 +00:00
in_gif.h
in_pcb.c
in_pcb.h Define INP_UNLOCK_ASSERT() to assert that an inpcb is unlocked. 2004-12-05 22:07:14 +00:00
in_proto.c Convert IPDIVERT into a loadable module. This makes use of the dynamic loadability 2004-10-19 21:14:57 +00:00
in_rmx.c Time out routes created by redirect. 2004-12-06 22:27:22 +00:00
in_systm.h
in_var.h Properly declare the "net.inet" sysctl subtree. 2004-10-19 21:06:14 +00:00
in.c Fix host route addition for more than one address to a loopback interface 2004-11-17 23:14:03 +00:00
in.h Pre-emptively define IPPROTO_SPACER to 32767, the same value as PROTO_SPACER 2004-10-19 20:59:01 +00:00
ip6.h
ip_divert.c - Since divert protocol is not connection oriented, remove SS_ISCONNECTED flag 2004-11-18 13:49:18 +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
ip_dummynet.h
ip_ecn.c
ip_ecn.h
ip_encap.c
ip_encap.h
ip_fastfwd.c Fix a double-free in the 'hlen > m->m_len' sanity check. 2004-11-09 09:40:32 +00:00
ip_fw2.c This commit adds a shared locking mechanism very similar to the 2004-12-10 02:17:18 +00:00
ip_fw_pfil.c Check that DUMMYNET_LOADED before seeking dummynet m_tag. 2004-12-09 16:41:47 +00:00
ip_fw.h
ip_gre.c
ip_gre.h
ip_icmp.c
ip_icmp.h
ip_id.c
ip_input.c Support for dynamically loadable and unloadable IP protocols in the ipmux. 2004-10-19 15:45:57 +00:00
ip_mroute.c
ip_mroute.h
ip_output.c Pass the inpcb reference into ip_getmoptions() rather than just the 2004-12-05 22:08:37 +00:00
ip_var.h Support for dynamically loadable and unloadable IP protocols in the ipmux. 2004-10-19 15:45:57 +00:00
ip.h
ipprotosw.h
pim_var.h
pim.h
raw_ip.c Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
tcp_debug.c
tcp_debug.h
tcp_fsm.h s/send/sent/ in comment describing TCPS_SYN_RECEIVED. 2004-11-21 14:38:04 +00:00
tcp_hostcache.c Minor grammer fix in comment. 2004-12-05 22:20:59 +00:00
tcp_input.c Assert the inpcb lock in tcp_xmit_timer() as it performs read-modify- 2004-11-28 11:06:22 +00:00
tcp_output.c Fixes a bug in SACK causing us to send data beyond the receive window. 2004-11-29 18:47:27 +00:00
tcp_reass.c Assert the inpcb lock in tcp_xmit_timer() as it performs read-modify- 2004-11-28 11:06:22 +00:00
tcp_sack.c Add a matching tunable for net.inet.tcp.sack.enable sysctl. 2004-10-26 08:59:09 +00:00
tcp_seq.h Remove RFC1644 T/TCP support from the TCP side of the network stack. 2004-11-02 22:22:22 +00:00
tcp_subr.c Assert inpcb lock in: 2004-12-05 22:27:53 +00:00
tcp_syncache.c Remove RFC1644 T/TCP support from the TCP side of the network stack. 2004-11-02 22:22:22 +00:00
tcp_timer.c Assert the tcptw inpcb lock in tcp_timer_2msl_reset(), as fields in 2004-12-05 22:47:29 +00:00
tcp_timer.h
tcp_timewait.c Assert inpcb lock in: 2004-12-05 22:27:53 +00:00
tcp_usrreq.c Do export the advertised receive window via the tcpi_rcv_space field of 2004-11-27 20:20:11 +00:00
tcp_var.h Remove RFC1644 T/TCP support from the TCP side of the network stack. 2004-11-02 22:22:22 +00:00
tcp.h Do export the advertised receive window via the tcpi_rcv_space field of 2004-11-27 20:20:11 +00:00
tcpip.h
udp_usrreq.c Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
udp_var.h
udp.h