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.