ENA(4) | Device Drivers Manual | ENA(4) |
ena
—
ena* at pci? dev ? function ?
The ENA device exposes a lightweight management interface with a minimal set of memory mapped registers and extendable command set through an Admin Queue.
The driver supports a range of ENA devices, is link-speed independent (i.e., the same driver is used for 10GbE, 25GbE, 40GbE, etc.), and has a negotiated and extendable feature set.
Some ENA devices support SR-IOV. This driver is used for both the SR-IOV Physical Function (PF) and Virtual Function (VF) devices.
The ENA devices enable high speed and low overhead network traffic processing by providing multiple Tx/Rx queue pairs (the maximum number is advertised by the device via the Admin Queue), a dedicated MSI-X interrupt vector per Tx/Rx queue pair, and CPU cacheline optimized data placement.
The ena
driver supports industry standard
TCP/IP offload features such as checksum offload and TCP transmit
segmentation offload (TSO). Receive-side scaling (RSS) is supported for
multi-core scaling.
The ena
driver and its corresponding
devices implement health monitoring mechanisms such as watchdog, enabling
the device and driver to recover in a manner transparent to the application,
as well as debug logs.
Some of the ENA devices support a working mode called Low-latency Queue (LLQ), which saves several more microseconds. This feature might be implemented for the driver in future releases.
ena
driver was originally written by
Semihalf for FreeBSD. The
driver was ported to NetBSD by Jared
D. McNeill
<jmcneill@NetBSD.org>.
December 1, 2018 | NetBSD 9.4 |