1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-19 10:53:58 +00:00
freebsd/sys/netinet
Bruce M Simpson ec002fee99 Implement reference counting for ifmultiaddr, in_multi, and in6_multi
structures. Detect when ifnet instances are detached from the network
stack and perform appropriate cleanup to prevent memory leaks.

This has been implemented in such a way as to be backwards ABI compatible.
Kernel consumers are changed to use if_delmulti_ifma(); in_delmulti()
is unable to detect interface removal by design, as it performs searches
on structures which are removed with the interface.

With this architectural change, the panics FreeBSD users have experienced
with carp and pfsync should be resolved.

Obtained from:	p4 branch bms_netdev
Reviewed by:	andre
Sponsored by:	Garance A Drosehn
Idea from:	NetBSD
MFC after:	1 month
2007-03-20 00:36:10 +00:00
..
libalias o made in kernel libalias mpsafe 2006-12-15 12:50:06 +00:00
accf_data.c
accf_http.c
icmp6.h
icmp_var.h
if_atm.c
if_atm.h
if_ether.c Comply with RFC 3927, by forcing ARP replies which contain a source 2007-02-02 20:31:44 +00:00
if_ether.h
igmp_var.h
igmp.c Improve style(9) conformance of igmp.c. 2006-12-04 00:41:48 +00:00
igmp.h
in_cksum.c
in_gif.c With exception of the if_name() macro, all definitions in net_osdep.h 2006-08-04 21:27:40 +00:00
in_gif.h
in_pcb.c #ifdef INET6 printing of inpcb IPv6 addresses in DDB. Patch committed 2007-02-18 08:57:23 +00:00
in_pcb.h Add "show inpcb", "show tcpcb" DDB commands, which should come in handy 2007-02-17 21:02:38 +00:00
in_proto.c Build PIM by default as part of the IPv4 multicast forwarding path. 2007-02-10 13:59:13 +00:00
in_rmx.c Complete timebase (time_second -> time_uptime) conversion. 2006-07-05 23:37:21 +00:00
in_systm.h
in_var.h Implement reference counting for ifmultiaddr, in_multi, and in6_multi 2007-03-20 00:36:10 +00:00
in.c Implement reference counting for ifmultiaddr, in_multi, and in6_multi 2007-03-20 00:36:10 +00:00
in.h Add INADDR_ALLRPTS_GROUP define for 224.0.0.22 for future IGMPv3 support. 2007-02-27 14:45:37 +00:00
ip6.h
ip_carp.c Since rev. 1.94 of netinet/in.c, the netinet layer frees all its 2007-02-02 09:39:09 +00:00
ip_carp.h Make sure that carp_header is 36 bytes long 2006-12-01 18:37:41 +00:00
ip_divert.c Some whitespace nits and remove a few casts. 2006-12-29 14:58:18 +00:00
ip_divert.h
ip_dummynet.c - Use non-recursive mutex. MTX_RECURSE is unnecessary since rev. 1.70 2006-10-29 12:09:24 +00:00
ip_dummynet.h
ip_ecn.c
ip_ecn.h
ip_encap.c With exception of the if_name() macro, all definitions in net_osdep.h 2006-08-04 21:27:40 +00:00
ip_encap.h
ip_fastfwd.c In IPv4 fast forwarding path, send ICMP unreachable messages for 2007-03-18 23:05:20 +00:00
ip_fw2.c Include opt_ipdivert.h so that the message announcing ipfw correctly 2007-02-03 22:11:53 +00:00
ip_fw_pfil.c Summer of Code 2005: improve libalias - part 2 of 2 2006-12-29 21:59:17 +00:00
ip_fw.h Summer of Code 2005: improve libalias - part 2 of 2 2006-12-29 21:59:17 +00:00
ip_gre.c Fix the following bpf(4) race condition which can result in a panic: 2006-06-02 19:59:33 +00:00
ip_gre.h
ip_icmp.c Complete break-out of sys/sys/mac.h into sys/security/mac/mac_framework.h 2006-10-22 11:52:19 +00:00
ip_icmp.h
ip_id.c
ip_input.c Match up SYSCTL declaration style. 2007-03-19 19:00:51 +00:00
ip_ipsec.c Remove unneeded mac.h include. 2006-07-06 13:25:01 +00:00
ip_ipsec.h
ip_mroute.c Diff reduction with NetBSD; use IN_LOCAL_GROUP() to check if an address 2007-03-15 08:44:22 +00:00
ip_mroute.h Store the cached route in vifp in the normal send_packet() case. 2007-02-08 23:05:08 +00:00
ip_options.c Complete break-out of sys/sys/mac.h into sys/security/mac/mac_framework.h 2006-10-22 11:52:19 +00:00
ip_options.h
ip_output.c Fix undirected broadcast sends for the case where SO_DONTROUTE has also 2007-03-01 13:29:30 +00:00
ip_var.h Fix a long-standing limitation in IPv4 multicast group membership. 2006-05-14 14:22:49 +00:00
ip.h Marking this as __packed was needed to get the alignment and offset of 2007-01-12 07:23:31 +00:00
ipprotosw.h
pim_var.h
pim.h
raw_ip.c Summer of Code 2005: improve libalias - part 2 of 2 2006-12-29 21:59:17 +00:00
sctp_asconf.c - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_asconf.h - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_auth.c - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_auth.h - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_bsd_addr.c - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_bsd_addr.h - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_constants.h - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_crc32.c - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_crc32.h - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_header.h - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_indata.c - errno -> becomes error in sctp_output.c and sctputil.c 2007-03-19 06:53:02 +00:00
sctp_indata.h - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_input.c - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_input.h - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_lock_bsd.h - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_os_bsd.h Adds a hash table to speed local address lookup 2007-03-19 11:11:16 +00:00
sctp_os.h - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_output.c - errno -> becomes error in sctp_output.c and sctputil.c 2007-03-19 06:53:02 +00:00
sctp_output.h - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_pcb.c Adds a hash table to speed local address lookup 2007-03-19 11:11:16 +00:00
sctp_pcb.h Adds a hash table to speed local address lookup 2007-03-19 11:11:16 +00:00
sctp_peeloff.c - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_peeloff.h - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_structs.h - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_sysctl.c - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_sysctl.h - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_timer.c - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_timer.h - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_uio.h - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctp_usrreq.c - errno -> becomes error in sctp_output.c and sctputil.c 2007-03-19 06:53:02 +00:00
sctp_var.h - errno -> becomes error in sctp_output.c and sctputil.c 2007-03-19 06:53:02 +00:00
sctp.h - Sysctl's move to seperate file 2007-03-15 11:27:14 +00:00
sctputil.c Adds a hash table to speed local address lookup 2007-03-19 11:11:16 +00:00
sctputil.h Adds a hash table to speed local address lookup 2007-03-19 11:11:16 +00:00
tcp_debug.c
tcp_debug.h
tcp_fsm.h
tcp_hostcache.c MFp4: 92972, 98913 + one more change 2006-12-12 12:17:58 +00:00
tcp_input.c Match up SYSCTL declaration style. 2007-03-19 19:00:51 +00:00
tcp_output.c Match up SYSCTL_INT declarations in style. 2007-03-19 18:42:27 +00:00
tcp_reass.c Match up SYSCTL declaration style. 2007-03-19 19:00:51 +00:00
tcp_sack.c Match up SYSCTL declaration style. 2007-03-19 19:00:51 +00:00
tcp_seq.h Remove T/TCP RFC1644 Connection Count comparison macros. They are no longer 2006-06-18 14:24:12 +00:00
tcp_subr.c Match up SYSCTL declaration style. 2007-03-19 19:00:51 +00:00
tcp_syncache.c Unbreak IPv6 after consolidation of TCP options insertion. 2007-03-17 11:52:54 +00:00
tcp_timer.c Match up SYSCTL declaration style. 2007-03-19 19:00:51 +00:00
tcp_timer.h Reap FIN_WAIT_2 connections marked SOCANTRCVMORE faster. This mitigate 2007-02-26 22:25:21 +00:00
tcp_timewait.c Match up SYSCTL declaration style. 2007-03-19 19:00:51 +00:00
tcp_usrreq.c Reap FIN_WAIT_2 connections marked SOCANTRCVMORE faster. This mitigate 2007-02-26 22:25:21 +00:00
tcp_var.h Consolidate insertion of TCP options into a segment from within tcp_output() 2007-03-15 15:59:28 +00:00
tcp.h Consolidate insertion of TCP options into a segment from within tcp_output() 2007-03-15 15:59:28 +00:00
tcpip.h
udp_usrreq.c Fix IP_SENDSRCADDR semantics. 2007-03-08 15:26:54 +00:00
udp_var.h Rename two identically named log_in_vain variables: tcp_input.c's static 2007-02-20 10:20:03 +00:00
udp.h Gratuitous UDP restyling toward style(9) in 7.x. 2007-02-20 10:13:11 +00:00