A device node is both a netgraph node and a system device interface. When a device node is created, a new device entry appears which is accessible via the regular file operators such as open(2), close(2), read(2), write(2), etc.
The first node is created as /dev/ngd0, all subsequent nodes /dev/ngd1, /dev/ngd2, etc.
A device node has a single hook with an arbitrary name. All data coming in over the hook will be presented to the device for read(2). All data coming in from the device entry by write(2) will be forwarded to the hook.
The device node supports one non-generic control message: