based on netlink, which should be available in kernels v2.0 and v2.2+
Note, however, that netlink is considered an unreliable communication channel, and that events may be dropped in two situations: 1) global memory exhaustion, or 2) receiver queue buffer overrun.
to check if netlink is enabled in your kernel, confirm that /proc/net/netlink exists