LibE1000 is a user-space library for Intel Gigabit Ethernet adapters. It implements an "OS bypass" mechanism, where fast path processing and rx/tx data transfers are performed without kernel assistance (i.e. no system calls). This method reduces SW overhead of the data transfers to virtually zero.
The library is designed for hard realtime, and high performance applications with strict low latency and overhead requirements.
Application manipulates hardware rx and tx descriptors directly (through the library API). Data is transfered via DMA directly to/from user accessible memory, which is mapped only once and therefor does not require expensive remapping for each transfer. For example to trigger the transmission of an Ethernet frame application has to perform a single 32bit MMIO (memory mapped IO) write (assuming that data resides in the buffer allocated by libe1000). The rest (DMA transfer, etc) will be done by the HW.See README and ChangeLog for more information.