opnsense-src/sys/netgraph
Marko Zec 57ce8ebf8c Simplify ng_pipe locking model by relying on the netgraph framework
to provide serialization of calls into the node, which is accomplished
by markng the node as single-threaded (NGF_FORCE_WRITER).

The price we pay is that each ng_pipe instance now has its own callout
handler which polls for queued frames on each clock tick, as long as
the pipe has any frames in its internal queues.  OTOH, we got rid of
the global ng_pipe mutex, so from now on multiple ng_pipe instances
can operate in parallel.  This change also fixes counting of forwarded
frames when an ng_pipe node is not enforcing any packet impairments.

While here, attempt to improve adherance to style(9) throughout
otherwise mostly unreadable code.

MFC after:	3 days
2010-11-24 16:02:58 +00:00
..
atm (S)LIST_HEAD_INITIALIZER takes a (S)LIST_HEAD as an argument. 2009-12-28 22:56:30 +00:00
bluetooth Fix typo 2010-08-02 22:26:08 +00:00
netflow Zero padding fields of netflow records. This helps to reduce 2010-07-26 13:48:35 +00:00
netgraph.h Introduce and use a sysinit-based initialization scheme for virtual 2009-07-23 20:46:49 +00:00
ng_async.c When calling panic(), always pass a format string. 2010-10-13 17:21:21 +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 After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +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 Add an optional "persistent" flag to ng_hub and ng_bridge, which if set, 2010-05-05 22:06:05 +00:00
ng_bridge.h Add an optional "persistent" flag to ng_hub and ng_bridge, which if set, 2010-05-05 22:06:05 +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 Remove alignment constraints. 2010-04-01 16:18:16 +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 After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
ng_eiface.h Allow for MTU sizes of up to ETHER_MAX_LEN_JUMBO (i.e. 9018) bytes to be 2010-11-22 12:32:19 +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 Declare a new EVENTHANDLER called iflladdr_event which signals that the L2 2010-01-18 20:34:00 +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 Add new tunable 'net.link.ifqmaxlen' to set default send interface 2010-05-03 07:32:50 +00:00
ng_fec.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_frame_relay.c When calling panic(), always pass a format string. 2010-10-13 17:21:21 +00:00
ng_frame_relay.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_gif.c Rework global locks for interface list and index management, correcting 2009-08-23 20:40:19 +00:00
ng_gif.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_gif_demux.c When calling panic(), always pass a format string. 2010-10-13 17:21:21 +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 Add an optional "persistent" flag to ng_hub and ng_bridge, which if set, 2010-05-05 22:06:05 +00:00
ng_hub.h Add an optional "persistent" flag to ng_hub and ng_bridge, which if set, 2010-05-05 22:06:05 +00:00
ng_iface.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +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 Introduce a mechanism for detecting calls from outbound path of the 2009-06-11 16:50:49 +00:00
ng_ip_input.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ng_ipfw.c Fix operation of "netgraph" action in conjunction with the 2010-07-27 14:26:34 +00:00
ng_ipfw.h bring the NGM_IPFW_COOKIE back into ng_ipfw.h, libnetgraph expects 2009-12-28 12:29:13 +00:00
ng_ksocket.c Fix an invalid parameter detected by INVARIANT and confirmed by r193272. 2010-05-06 20:58:23 +00:00
ng_ksocket.h Use variable-sized arrays where appropriate. 2005-10-28 14:41:28 +00:00
ng_l2tp.c Make ng_l2tp irrelevant to data alignment. 2010-03-31 22:11:06 +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 World now builds without these defines, so eliminate them. 2009-06-09 07:07:20 +00:00
ng_mppc.c Remove some more alignment constraints. 2010-03-31 22:47:55 +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_patch.c * Include sys/systm.h for KASSERT() 2010-06-15 08:53:13 +00:00
ng_patch.h Style(9) fixes: 2010-06-10 16:45:30 +00:00
ng_pipe.c Simplify ng_pipe locking model by relying on the netgraph framework 2010-11-24 16:02:58 +00:00
ng_pipe.h Start copyright notice with /*- 2010-04-07 16:29:10 +00:00
ng_ppp.c Remove some more alignment constraints. 2010-03-31 22:47:55 +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 Remove some dead and incorrect code. 2010-06-05 10:16:23 +00:00
ng_pppoe.h Make Netgraph compile with Clang. 2009-03-03 18:47:33 +00:00
ng_pptpgre.c Remove alignment constraints. 2010-04-01 16:20:36 +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 When calling panic(), always pass a format string. 2010-10-13 17:21:21 +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 When calling panic(), always pass a format string. 2010-10-13 17:21:21 +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 Now fix functionality of 'netstat -f netgraph' that hasn't worked 2010-03-12 15:04:59 +00:00
ng_source.c Remove email address that no longer exists. 2010-07-06 16:42:11 +00:00
ng_source.h Remove defunct email address from header as well. 2010-07-06 16:55:39 +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 Take a step towards removing if_watchdog/if_timer. Don't explicitly set 2009-11-06 14:55:01 +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 Remove alignment constraints. 2010-04-01 10:41:01 +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 When calling panic(), always pass a format string. 2010-10-13 17:21:21 +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 When calling panic(), always pass a format string. 2010-10-13 17:21:21 +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 Spell DIAGNOSTIC correctly. 2009-10-24 18:49:17 +00:00