opnsense-src/sys/netgraph
Marko Zec bc29160df3 Introduce an infrastructure for dismantling vnet instances.
Vnet modules and protocol domains may now register destructor
functions to clean up and release per-module state.  The destructor
mechanisms can be triggered by invoking "vimage -d", or a future
equivalent command which will be provided via the new jail framework.

While this patch introduces numerous placeholder destructor functions,
many of those are currently incomplete, thus leaking memory or (even
worse) failing to stop all running timers.  Many of such issues are
already known and will be incrementaly fixed over the next weeks in
smaller incremental commits.

Apart from introducing new fields in structs ifnet, domain, protosw
and vnet_net, which requires the kernel and modules to be rebuilt, this
change should have no impact on nooptions VIMAGE builds, since vnet
destructors can only be called in VIMAGE kernels.  Moreover,
destructor functions should be in general compiled in only in
options VIMAGE builds, except for kernel modules which can be safely
kldunloaded at run time.

Bump __FreeBSD_version to 800097.
Reviewed by:	bz, julian
Approved by:	rwatson, kib (re), julian (mentor)
2009-06-08 17:15:40 +00:00
..
atm Make Netgraph compile with Clang. 2009-03-03 18:47:33 +00:00
bluetooth Rework socket upcalls to close some races with setup/teardown of upcalls. 2009-06-01 21:17:03 +00:00
netflow Fix copy-paste bug in NGM_NETFLOW_SETCONFIG argument size verification. 2009-05-13 02:26:34 +00:00
netgraph.h Change the curvnet variable from a global const struct vnet *, 2009-05-05 10:56:12 +00:00
ng_async.c Fix a number of style issues in the MALLOC / FREE commit. I've tried to 2008-10-23 20:26:15 +00:00
ng_async.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_atmllc.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_atmllc.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_base.c Introduce an infrastructure for dismantling vnet instances. 2009-06-08 17:15:40 +00:00
ng_bpf.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_bpf.h Fix typo in a comment. 2005-02-12 18:10:26 +00:00
ng_bridge.c Conditionally compile out V_ globals while instantiating the appropriate 2008-12-10 23:12:39 +00:00
ng_bridge.h Use variable-sized arrays where appropriate. 2005-10-28 14:41:28 +00:00
ng_car.c - Account all node stats at the shape mode. 2008-03-30 07:53:51 +00:00
ng_car.h Add option to set packets per second limits instead of default 2007-12-19 22:50:14 +00:00
ng_cisco.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_cisco.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_deflate.c Use m_unshare()+m_copyback() instead of m_freem()+m_devget() to keep 2009-01-18 19:25:36 +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 Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_device.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_echo.c - Return error, if there was one. 2005-04-15 10:14:00 +00:00
ng_echo.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_eiface.c In preparation to make options VIMAGE operational, where needed, 2009-04-26 07:14:50 +00:00
ng_eiface.h Added ASCII version of the NGM_EIFACE_GET_IFNAME message, "getifname". 2005-02-03 11:52:42 +00:00
ng_etf.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_etf.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_ether.c In preparation to make options VIMAGE operational, where needed, 2009-04-26 07:14:50 +00:00
ng_ether.h Add new netgraph control message NGM_ETHER_DETACH, which actually 2005-02-14 12:01:09 +00:00
ng_ether_echo.c Add a trivial node to reflect ethernet frames to whence they came. 2008-12-25 00:01:29 +00:00
ng_ether_echo.h Add a trivial node to reflect ethernet frames to whence they came. 2008-12-25 00:01:29 +00:00
ng_fec.c Change if_output to take a struct route as its fourth argument in order 2009-04-16 20:30:28 +00:00
ng_fec.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_frame_relay.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_frame_relay.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_gif.c For all files including net/vnet.h directly include opt_route.h and 2009-02-27 14:12:05 +00:00
ng_gif.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_gif_demux.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_gif_demux.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_hole.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_hole.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_hub.c Having moved metadata usage to mbuf tags, remove code that supports 2004-06-26 22:24:16 +00:00
ng_hub.h A simple packet distribution node type that acts like an Ethernet hub. 2004-04-17 12:42:17 +00:00
ng_iface.c In preparation to make options VIMAGE operational, where needed, 2009-04-26 07:14:50 +00:00
ng_iface.h Check for infinite recursion possible on some broken PPTP/L2TP/... VPN setups. 2009-01-20 22:26:09 +00:00
ng_ip_input.c Back out r180370. It was not discussed with subsystem maintainers. 2008-07-08 20:19:43 +00:00
ng_ip_input.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_ipfw.c Conditionally compile out V_ globals while instantiating the appropriate 2008-12-10 23:12:39 +00:00
ng_ipfw.h Remove unused now field. 2006-02-17 09:42:49 +00:00
ng_ksocket.c Rework socket upcalls to close some races with setup/teardown of upcalls. 2009-06-01 21:17:03 +00:00
ng_ksocket.h Use variable-sized arrays where appropriate. 2005-10-28 14:41:28 +00:00
ng_l2tp.c Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
ng_l2tp.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_lmi.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_lmi.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_message.h Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_mppc.c If source mbuf chain consists of only one mbuf, use it directly as source 2009-01-18 21:09:34 +00:00
ng_mppc.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_nat.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_nat.h Fix incorrect field name. 2008-03-04 11:10:54 +00:00
ng_one2many.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_one2many.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_parse.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_parse.h Use variable-sized arrays where appropriate. 2005-10-28 14:41:28 +00:00
ng_pipe.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_pipe.h Add Marko's pipe node. 2008-09-03 18:17:45 +00:00
ng_ppp.c Remove strict limitation on minimal multilink MRRU. RFC claims that MRRU 2009-01-18 12:03:43 +00:00
ng_ppp.h Add 64bit statistic counters to the ng_ppp node. 2007-08-01 20:49:35 +00:00
ng_pppoe.c Make Netgraph compile with Clang. 2009-03-03 18:47:33 +00:00
ng_pppoe.h Make Netgraph compile with Clang. 2009-03-03 18:47:33 +00:00
ng_pptpgre.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_pptpgre.h Rewrite node to support multiple hooks, alike to ng_l2tp, to use one pair 2008-03-24 22:55:22 +00:00
ng_pred1.c Use m_unshare()+m_copyback() instead of m_freem()+m_devget() to keep 2009-01-18 19:25:36 +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 Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_rfc1490.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_sample.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_sample.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_socket.c Remove unused variable. 2008-11-22 16:55:55 +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 In the splnet times, netgraph was functional and synchronous. Nowadays, 2005-07-05 17:35:20 +00:00
ng_source.c Fix error message content. 2008-09-21 07:33:33 +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 Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_split.h Make the cookie constant name canonical. 2005-10-25 20:56:12 +00:00
ng_sppp.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_sppp.h Parse "getifname" using the standard parse string type. 2005-02-03 13:03:31 +00:00
ng_tag.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +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 Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_tcpmss.h Add ng_tcpmss node, which alters MSS options of TCP packets. Useful to 2005-06-10 08:02:34 +00:00
ng_tee.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_tee.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_tty.c Remove node shutdown on tty close. This could be easily done by user-level 2008-12-13 22:05:46 +00:00
ng_tty.h Assign new cookie to the node to reflect API change. 2008-11-08 02:05:41 +00:00
ng_UI.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_UI.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_vjc.c Mark ng_vjc node as FORCE_WRITER to protect slcompress state. 2009-01-08 17:51:15 +00:00
ng_vjc.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_vlan.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ng_vlan.h Use variable-sized arrays where appropriate. 2005-10-28 14:41:28 +00:00
NOTES