1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-23 11:18:54 +00:00
freebsd/sys/netgraph
Gleb Smirnoff 687adb703d Refactor the name hash and the ID hash, that are used to address nodes:
- Make hash sizes growable, to satisfy users running large mpd
  installations, having thousands of nodes.
- NG_NAMEHASH() proved to give a very bad distribution in real life
  name sets, while generic hash32_str(name, HASHINIT) proved to give
  an even one, so you the latter for name hash.
- Do not store unnamed nodes in slot 0 of name hash, no reason for that.
- Use the ID hash in cases when we need to run through all nodes: the
  NGM_LISTNODES command and in the vnet_netgraph_uninit().
- Implement NGM_LISTNODES and NGM_LISTNAMES as separate code, the former
  iterates through the ID hash, and the latter through the name hash.
- Keep count of all nodes and of named nodes, so that we don't need
  to count nodes in NGM_LISTNODES and NGM_LISTNAMES. The counters are
  also used to estimate whether we need to grow hashes.
- Close a race between two threads running ng_name_node() assigning same
  name to different nodes.
2012-02-16 19:10:01 +00:00
..
atm Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
bluetooth Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
netflow Add missing unlocks. 2011-07-06 09:43:25 +00:00
netgraph.h Refactor the name hash and the ID hash, that are used to address nodes: 2012-02-16 19:10:01 +00:00
ng_async.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_async.h
ng_atmllc.c - Fix potential double mbuf free: M_PREPEND may free mbuf chain and return 2011-11-06 05:24:54 +00:00
ng_atmllc.h
ng_base.c Refactor the name hash and the ID hash, that are used to address nodes: 2012-02-16 19:10:01 +00:00
ng_bpf.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_bpf.h
ng_bridge.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +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 Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_car.h
ng_cisco.c - Use fixed-width integer types. 2012-02-12 05:14:12 +00:00
ng_cisco.h - Use fixed-width integer types. 2012-02-12 05:14:12 +00:00
ng_deflate.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_deflate.h
ng_device.c Remove direct access to si_name. 2012-02-10 12:35:57 +00:00
ng_device.h
ng_echo.c
ng_echo.h
ng_eiface.c Provide fake link status information in an attempt to let ng_eiface(4) 2011-05-24 14:10:33 +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 Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_etf.h
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_ether.c remove RESTARTABLE_PANICS option 2011-07-25 09:12:48 +00:00
ng_ether.h
ng_fec.c In r191367 the need for if_free_type() was removed and a new member 2011-11-11 22:57:52 +00:00
ng_fec.h
ng_frame_relay.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_frame_relay.h
ng_gif_demux.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_gif_demux.h
ng_gif.c Rework global locks for interface list and index management, correcting 2009-08-23 20:40:19 +00:00
ng_gif.h
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
ng_hub.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +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 Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +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
ng_ipfw.c Add missing static. 2012-01-16 12:33:55 +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 Use strchr() and strrchr(). 2012-01-02 12:12:10 +00:00
ng_ksocket.h
ng_l2tp.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_l2tp.h
ng_lmi.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_lmi.h
ng_message.h World now builds without these defines, so eliminate them. 2009-06-09 07:07:20 +00:00
ng_mppc.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_mppc.h
ng_nat.c Sync ng_nat with recent (r222806) ipfw_nat changes: 2011-06-07 06:48:42 +00:00
ng_nat.h
ng_one2many.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_one2many.h Add XMIT_FAILOVER transmit algorithm to ng_one2many node. Packets are 2011-03-01 13:10:56 +00:00
ng_parse.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_parse.h
ng_patch.c Use M_WAITOK flag instead M_WAIT for malloc. 2011-04-18 09:10:27 +00:00
ng_patch.h Style(9) fixes: 2010-06-10 16:45:30 +00:00
ng_pipe.c Assume the link to be dead if bit error rate (BER) parameter is set to 1. 2011-05-24 14:36:32 +00:00
ng_pipe.h Start copyright notice with /*- 2010-04-07 16:29:10 +00:00
ng_ppp.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_ppp.h
ng_pppoe.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_pppoe.h Make Netgraph compile with Clang. 2009-03-03 18:47:33 +00:00
ng_pptpgre.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_pptpgre.h
ng_pred1.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_pred1.h
ng_rfc1490.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_rfc1490.h
ng_sample.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_sample.h
ng_socket.c In ng_getsockaddr() allocate memory prior to obtaining lock. 2012-02-16 14:44:52 +00:00
ng_socket.h
ng_socketvar.h In ng_socket(4) expose less kernel internals to userland. This commit 2012-01-23 15:39:45 +00:00
ng_source.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_source.h Remove defunct email address from header as well. 2010-07-06 16:55:39 +00:00
ng_split.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_split.h
ng_sppp.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ng_sppp.h
ng_tag.c The newhook method can be called in ISR context at 2012-01-17 18:10:25 +00:00
ng_tag.h
ng_tcpmss.c Remove alignment constraints. 2010-04-01 10:41:01 +00:00
ng_tcpmss.h
ng_tee.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_tee.h
ng_tty.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +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 Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_UI.h
ng_vjc.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_vjc.h
ng_vlan.c Node constructor methods are supposed to be called in syscall 2011-04-18 09:12:27 +00:00
ng_vlan.h
NOTES Spell DIAGNOSTIC correctly. 2009-10-24 18:49:17 +00:00