Netgraph

netgraph is the graph based kernel networking subsystem of FreeBSD since 3.4 and DragonFly BSD since the fork from FreeBSD. Netgraph provides support for L2TP, PPTP, ATM, Bluetooth using a modular set of nodes that are the graph.

Netgraph has also been ported on other Operating Systems:
 * NetBSD kernel 1.5V (not integrated into mainline kernel)
 * Linux kernel 2.4 and 2.6 by 6WIND (Commercial closed source port)
 * Linux kernel 3.0 by LANA

History
Netgraph was originally designed and implemented at Whistle Communications by Julian Elischer and Archie Cobbs for the Whistle InterJet small office router product. The purpose of the project was to create a flexible framework for implementing new networking protocols. Key requirements included the ability to prototype with user-space programs while still retaining the ability to interact with data flows normally hidden within the kernel.