freebsd-skq/sys/netinet
markj 0e9bbe2171 Lock the ND prefix list and add refcounting for prefixes.
This change extends the nd6 lock to protect the ND prefix list as well
as the list of advertising routers associated with each prefix. To handle
cases where the nd6 lock must be dropped while iterating over either the
prefix or default router lists, a generation counter is used to track
modifications to the lists. Additionally, a new mutex is used to serialize
prefix on-link/off-link transitions. This mutex must be acquired before
the nd6 lock and is held while updating the routing table in
nd6_prefix_onlink() and nd6_prefix_offlink().

Reviewed by:	ae, tuexen (SCTP bits)
Tested by:	Jason Wolfe <jason@llnw.com>,
		Larry Rosenman <ler@lerctr.org>
MFC after:	2 months
Differential Revision:	https://reviews.freebsd.org/D8125
2016-10-07 21:10:53 +00:00
..
cc Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
khelp Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
libalias sys/net*: minor spelling fixes. 2016-05-03 18:05:43 +00:00
tcp_stacks Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
accf_data.c
accf_dns.c
accf_http.c
icmp6.h Add missing constants from RFCs 4443 and 6550 2016-06-06 00:35:45 +00:00
icmp_var.h
if_atm.c
if_atm.h
if_ether.c Add GARP retransmit capability 2016-10-02 01:42:45 +00:00
if_ether.h This change re-adds L2 caching for TCP and UDP, as originally added in D4306 2016-06-02 17:51:29 +00:00
igmp_var.h
igmp.c With clang 3.9.0, compiling sys/netinet/igmp.c results in the following 2016-09-04 17:23:10 +00:00
igmp.h
in_cksum.c
in_debug.c
in_fib.c MFP r287070,r287073: split radix implementation and route table structure. 2016-01-25 06:33:15 +00:00
in_fib.h Merge helper fib* functions used for basic lookups. 2015-12-08 10:50:03 +00:00
in_gif.c Merge helper fib* functions used for basic lookups. 2015-12-08 10:50:03 +00:00
in_jail.c Move IPv4-specific jail functions to new file netinet/in_jail.c 2016-08-09 02:16:21 +00:00
in_kdtrace.c Fix style issues around existing SDT probes. 2015-12-16 23:39:27 +00:00
in_kdtrace.h Fix style issues around existing SDT probes. 2015-12-16 23:39:27 +00:00
in_mcast.c sys/net*: minor spelling fixes. 2016-05-03 18:05:43 +00:00
in_pcb.c This change re-adds L2 caching for TCP and UDP, as originally added in D4306 2016-06-02 17:51:29 +00:00
in_pcb.h Add spares to struct ifnet and socket for packet pacing and/or general 2016-06-23 21:07:15 +00:00
in_pcbgroup.c Unbreak the RSS/PCBGROUp build. 2016-03-31 00:53:23 +00:00
in_prot.c Remove BSD and USL copyright and update license block in in_prot.c, as the 2016-07-28 18:39:30 +00:00
in_proto.c The pr_destroy field does not allow us to run the teardown code in a 2016-06-01 10:14:04 +00:00
in_rmx.c Merge SVN r295220 (bz) from projects/vnet/ 2016-02-11 17:07:19 +00:00
in_rss.c
in_rss.h
in_systm.h Prepare for network stack as a module 2016-07-27 20:34:09 +00:00
in_var.h Add GARP retransmit capability 2016-10-02 01:42:45 +00:00
in.c Add GARP retransmit capability 2016-10-02 01:42:45 +00:00
in.h Don't iterate over the ifnet addr list in ip_output() 2016-08-18 22:59:00 +00:00
ip6.h
ip_carp.c Revert r292275 & r292379 2015-12-17 14:41:30 +00:00
ip_carp.h
ip_divert.c The pr_destroy field does not allow us to run the teardown code in a 2016-06-01 10:14:04 +00:00
ip_divert.h
ip_dummynet.h Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
ip_ecn.c
ip_ecn.h
ip_encap.c Remove sys/eventhandler.h from net/route.h 2016-01-09 09:34:39 +00:00
ip_encap.h
ip_fastfwd.c Cleanup unneded include "opt_ipfw.h". 2016-06-09 05:48:34 +00:00
ip_fw.h Add stats reset command implementation to NPTv6 module 2016-08-13 16:45:14 +00:00
ip_gre.c
ip_icmp.c When sending in ICMP response to an SCTP packet, 2016-05-25 22:16:11 +00:00
ip_icmp.h Add support for handling ICMP and ICMP6 messages sent in response 2016-04-29 20:22:01 +00:00
ip_id.c Replace a number of conflations of mp_ncpus and mp_maxid with either 2016-07-06 14:09:49 +00:00
ip_input.c Remove the 4.3BSD compatible macro m_copy(), use m_copym() instead. 2016-09-15 07:41:48 +00:00
ip_ipsec.c Remove the kernel optoion for IPSEC_FILTERTUNNEL, which was deprecated 2016-08-21 18:55:30 +00:00
ip_ipsec.h
ip_mroute.c Remove the 4.3BSD compatible macro m_copy(), use m_copym() instead. 2016-09-15 07:41:48 +00:00
ip_mroute.h
ip_options.c sys/net*: minor spelling fixes. 2016-05-03 18:05:43 +00:00
ip_options.h
ip_output.c Don't iterate over the ifnet addr list in ip_output() 2016-08-18 22:59:00 +00:00
ip_reass.c
ip_var.h The pr_destroy field does not allow us to run the teardown code in a 2016-06-01 10:14:04 +00:00
ip.h sys/net*: minor spelling fixes. 2016-05-03 18:05:43 +00:00
pim_var.h
pim.h
raw_ip.c Remove the 4.3BSD compatible macro m_copy(), use m_copym() instead. 2016-09-15 07:41:48 +00:00
sctp_asconf.c Add the UDP encaps port as a parameter to sctp_add_remote_addr(). 2016-04-30 14:25:00 +00:00
sctp_asconf.h
sctp_auth.c Address a potential memory leak found a the clang static code analyzer 2016-07-16 07:48:01 +00:00
sctp_auth.h
sctp_bsd_addr.c Remove an alias if_list, use if_link consistently. 2016-10-06 00:51:27 +00:00
sctp_bsd_addr.h
sctp_cc_functions.c netinet/sctp*: minor spelling fixes in comments. 2016-05-02 20:56:11 +00:00
sctp_constants.h Fix the PR-SCTP behaviour. 2016-07-17 13:14:51 +00:00
sctp_crc32.c
sctp_crc32.h
sctp_dtrace_declare.h
sctp_dtrace_define.h This is work done by Michael Tuexen and myself at the IETF. This 2016-04-07 09:10:34 +00:00
sctp_header.h Fix the PR-SCTP behaviour. 2016-07-17 13:14:51 +00:00
sctp_indata.c Fix the handling of unordered fragmented user messages using DATA chunks. 2016-09-21 08:28:18 +00:00
sctp_indata.h A couple of minor changes that I missed that Michael had done, most noted 2016-04-07 09:34:41 +00:00
sctp_input.c Fix a bug, where no SACK is sent when receiving a FORWARD-TSN or 2016-08-26 07:49:23 +00:00
sctp_input.h
sctp_lock_bsd.h netinet/sctp*: minor spelling fixes in comments. 2016-05-02 20:56:11 +00:00
sctp_os_bsd.h A couple of minor changes that I missed that Michael had done, most noted 2016-04-07 09:34:41 +00:00
sctp_os.h
sctp_output.c Lock the ND prefix list and add refcounting for prefixes. 2016-10-07 21:10:53 +00:00
sctp_output.h Don't allow a remote encapsulation port change during the 2016-01-30 12:58:38 +00:00
sctp_pcb.c Remove stream queue entry consistently from wheel. 2016-08-07 12:51:13 +00:00
sctp_pcb.h netinet/sctp*: minor spelling fixes in comments. 2016-05-02 20:56:11 +00:00
sctp_peeloff.c
sctp_peeloff.h
sctp_ss_functions.c Mark an unused parameter as such. 2016-08-06 12:51:07 +00:00
sctp_structs.h Fix various bugs in relation to the I-DATA chunk support 2016-08-06 12:33:15 +00:00
sctp_syscalls.c capsicum: propagate rights on accept(2) 2016-09-22 09:58:46 +00:00
sctp_sysctl.c netstat and sockstat expect the IPv6 link local addresses to 2016-07-19 09:48:08 +00:00
sctp_sysctl.h Retire net.inet.sctp.strict_sacks and net.inet.sctp.strict_data_order 2016-05-12 16:34:59 +00:00
sctp_timer.c Cleanup a comment. 2016-05-09 16:35:05 +00:00
sctp_timer.h Code cleanup which will silence a warning in PVS / D5245. 2016-02-17 18:04:22 +00:00
sctp_uio.h Add a constant required by RFC 7496. 2016-07-17 13:33:35 +00:00
sctp_usrreq.c Remove duplicate code, which is not protected by the appropriate locks. 2016-08-22 00:40:45 +00:00
sctp_var.h The pr_destroy field does not allow us to run the teardown code in a 2016-06-01 10:14:04 +00:00
sctp.h This is work done by Michael Tuexen and myself at the IETF. This 2016-04-07 09:10:34 +00:00
sctputil.c When aborting an association, send the ABORT before notifying the upper 2016-08-24 06:22:53 +00:00
sctputil.h Remove a function, which is not used anymore. 2016-04-23 09:15:58 +00:00
siftr.c Use SI_SUB_LAST instead of SI_SUB_SMP as the "catch-all" subsystem. 2016-03-11 23:18:06 +00:00
tcp_debug.c Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
tcp_debug.h
tcp_fastopen.c Fix kernel build with TCP_RFC7413 option 2016-08-11 23:52:24 +00:00
tcp_fastopen.h Implementation of server-side TCP Fast Open (TFO) [RFC7413]. 2015-12-24 19:09:48 +00:00
tcp_fsm.h Update TCPS_HAVERCVDFIN() macro to correctly include all states a connection 2016-08-26 17:48:54 +00:00
tcp_hostcache.c Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
tcp_hostcache.h Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
tcp_input.c Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
tcp_lro.c Pass the number of segments coalesced by LRO up the stack by repurposing the 2016-08-25 13:33:32 +00:00
tcp_lro.h tcp/lro: Implement hash table for LRO entries. 2016-08-02 06:36:47 +00:00
tcp_offload.c Augment struct tcpstat with tcps_states[], which is used for book-keeping 2016-01-27 00:45:46 +00:00
tcp_offload.h
tcp_output.c Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
tcp_pcap.c The TCPPCAP debugging feature caches recently-used mbufs for use in 2016-07-06 16:17:13 +00:00
tcp_pcap.h The TCPPCAP debugging feature caches recently-used mbufs for use in 2016-07-06 16:17:13 +00:00
tcp_reass.c Remove sys/eventhandler.h from net/route.h 2016-01-09 09:34:39 +00:00
tcp_sack.c sys/net*: minor spelling fixes. 2016-05-03 18:05:43 +00:00
tcp_seq.h Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
tcp_subr.c Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
tcp_syncache.c Fix an issue with accept_filter introduced with r261242: 2016-09-29 11:18:48 +00:00
tcp_syncache.h Grab a snap amount of TCP connections in syncache from tcpstat. 2016-01-27 00:48:05 +00:00
tcp_timer.c A few more wording tweaks as suggested (with some modifications 2016-08-16 15:17:36 +00:00
tcp_timer.h This cleans up the timer code in TCP and also makes it so we do not 2016-08-16 12:40:56 +00:00
tcp_timewait.c No longer mark TCP TW zone NO_FREE. 2016-06-23 00:32:58 +00:00
tcp_usrreq.c Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
tcp_var.h Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
tcp.h Provide new socket option TCP_CCALGOOPT, which stands for TCP congestion 2016-01-22 02:07:48 +00:00
tcpip.h
toecore.c This change re-adds L2 caching for TCP and UDP, as originally added in D4306 2016-06-02 17:51:29 +00:00
toecore.h
udp_usrreq.c r297225 broke udp_output() for the case where the "addr" argument 2016-10-01 19:39:09 +00:00
udp_var.h The pr_destroy field does not allow us to run the teardown code in a 2016-06-01 10:14:04 +00:00
udp.h
udplite.h