Add support for Amazon Elastic Network Adapter (ENA) NICENA is a networking interface designed to make good use of modern CPUfeatures and system architectures.The ENA device exposes a lightweigh
Add support for Amazon Elastic Network Adapter (ENA) NICENA is a networking interface designed to make good use of modern CPUfeatures and system architectures.The ENA device exposes a lightweight management interface with aminimal set of memory mapped registers and extendable command setthrough 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 hasa negotiated and extendable feature set.Some ENA devices support SR-IOV. This driver is used for both theSR-IOV Physical Function (PF) and Virtual Function (VF) devices.ENA devices enable high speed and low overhead network trafficprocessing by providing multiple Tx/Rx queue pairs (the maximum numberis advertised by the device via the Admin Queue), a dedicated MSI-Xinterrupt vector per Tx/Rx queue pair, and CPU cacheline optimizeddata placement.The ENA driver supports industry standard TCP/IP offload features suchas 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 healthmonitoring mechanisms such as watchdog, enabling the device and driverto recover in a manner transparent to the application, as well asdebug logs.Some of the ENA devices support a working mode called Low-latencyQueue (LLQ), which saves several more microseconds. This feature willbe implemented for driver in future releases.Submitted by: Michal Krawczyk <[email protected]> Jakub Palider <[email protected]> Jan Medala <[email protected]>Obtained from: SemihalfSponsored by: Amazon.com Inc.Differential revision: https://reviews.freebsd.org/D10427
show more ...