freebsd-skq/sys/netgraph
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
..
atm Don't use data after free. 2006-09-30 12:37:43 +00:00
bluetooth o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
netflow Recognize 802.1q frames in Ethernet input and process them. 2006-10-11 15:27:13 +00:00
netgraph.h - ng_address_ID() has already freed the message, don't do double free. 2006-10-17 10:59:39 +00:00
ng_async.c
ng_async.h
ng_atmllc.c
ng_atmllc.h
ng_base.c Prefer more traditional spellings of some words in comments. 2007-03-18 16:49:50 +00:00
ng_bpf.c Fix build without BPF_JITTER option. 2005-12-07 21:41:45 +00:00
ng_bpf.h
ng_bridge.c
ng_bridge.h Use variable-sized arrays where appropriate. 2005-10-28 14:41:28 +00:00
ng_cisco.c
ng_cisco.h
ng_deflate.c Whitespace cleanup. 2007-01-15 05:55:56 +00:00
ng_deflate.h A node that implements the Deflate sub-protocols of the Compression Control 2006-12-28 15:44:05 +00:00
ng_device.c Rename m_getm() to m_getm2() and rewrite it to allocate up to page sized 2006-11-02 17:37:22 +00:00
ng_device.h
ng_echo.c
ng_echo.h
ng_eiface.c ng_send_fn() can return with an error, the function of interest 2007-03-08 21:10:53 +00:00
ng_eiface.h
ng_etf.c
ng_etf.h
ng_ether.c Implement reference counting for ifmultiaddr, in_multi, and in6_multi 2007-03-20 00:36:10 +00:00
ng_ether.h
ng_fec.c Fix input byte counting. Now the sum of the ipackets/ibytes counters 2006-09-15 20:17:45 +00:00
ng_fec.h
ng_frame_relay.c Initialize variable. 2006-01-14 21:49:31 +00:00
ng_frame_relay.h
ng_gif_demux.c
ng_gif_demux.h
ng_gif.c
ng_gif.h
ng_hole.c Fix memory leak. 2005-12-09 07:09:44 +00:00
ng_hole.h
ng_hub.c
ng_hub.h
ng_iface.c add missed calls to bpf_peers_present 2006-06-02 23:14:40 +00:00
ng_iface.h
ng_ip_input.c
ng_ip_input.h
ng_ipfw.c Unbreak this. 2006-02-14 15:22:24 +00:00
ng_ipfw.h Remove unused now field. 2006-02-17 09:42:49 +00:00
ng_ksocket.c In the output path, mask off M_BCAST|M_MCAST so as to prevent incorrect 2007-02-09 12:35:29 +00:00
ng_ksocket.h Use variable-sized arrays where appropriate. 2005-10-28 14:41:28 +00:00
ng_l2tp.c
ng_l2tp.h
ng_lmi.c Remove dead code. 2006-01-14 14:17:27 +00:00
ng_lmi.h
ng_message.h Make ng_ID_t fixed size, so that its maximum value is platform independent. 2006-10-17 11:01:20 +00:00
ng_mppc.c In preparation for making the modules actually use opt_*.h files 2005-10-14 23:17:45 +00:00
ng_mppc.h
ng_nat.c Return value PKT_ALIAS_FOUND_HEADER_FRAGMENT isn't an error case. The 2006-12-21 10:26:01 +00:00
ng_nat.h
ng_one2many.c
ng_one2many.h
ng_parse.c Fix two accesses to uninitialized variables that a revision 1.27 2006-01-18 16:09:00 +00:00
ng_parse.h Use variable-sized arrays where appropriate. 2005-10-28 14:41:28 +00:00
ng_ppp.c - Create ng_ppp_bypass() function, that prepares a packet 2007-01-25 21:16:50 +00:00
ng_ppp.h Before this commit, if the compression is enabled the, ng_ppp(4) 2006-12-28 13:21:54 +00:00
ng_pppoe.c Some perfectionizm against last revision. 2006-08-10 11:07:11 +00:00
ng_pppoe.h Fix ng_pppoe(4) after turning off "autosrc feature" on ng_ether(4). 2006-08-09 09:56:58 +00:00
ng_pptpgre.c Quoting Alexander: 2007-02-02 09:45:23 +00:00
ng_pptpgre.h
ng_pred1.c Whitespace cleanup. 2007-01-15 05:55:56 +00:00
ng_pred1.h A node that implements Predictor-1 compression for PPP. 2006-12-29 09:54:32 +00:00
ng_rfc1490.c
ng_rfc1490.h
ng_sample.c
ng_sample.h
ng_socket.c Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ng_socket.h Make the sg_len and sg_family members of the sockaddr_ng the same type 2006-10-17 11:03:55 +00:00
ng_socketvar.h
ng_source.c Ensure message passed to "settimestamp" and "setcounter" is the right 2007-03-02 14:36:19 +00:00
ng_source.h Add "setcounter" and "getcounter" messages, providing the the ability 2007-03-02 01:44:04 +00:00
ng_split.c
ng_split.h Make the cookie constant name canonical. 2005-10-25 20:56:12 +00:00
ng_sppp.c Various bpf(4) related fixes to catch places up to the new bpf(4) 2006-12-29 13:59:50 +00:00
ng_sppp.h
ng_tag.c A netgraph node that can do different manipulations with 2006-06-27 12:45:28 +00:00
ng_tag.h A netgraph node that can do different manipulations with 2006-06-27 12:45:28 +00:00
ng_tcpmss.c Update ip and tcp pointers after m_pullup(). 2007-01-15 05:01:31 +00:00
ng_tcpmss.h
ng_tee.c
ng_tee.h
ng_tty.c Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ng_tty.h
ng_UI.c
ng_UI.h
ng_vjc.c Use __LP64__ to check for the 64-bit pointer type, and fix -Wundef. 2005-12-04 00:25:03 +00:00
ng_vjc.h
ng_vlan.c Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
ng_vlan.h Use variable-sized arrays where appropriate. 2005-10-28 14:41:28 +00:00
NOTES