ENA(4) | Device Drivers Manual | ENA(4)

# NAME

`ena` —
NetBSD kernel driver for Elastic Network Adapter (ENA) family

# SYNOPSIS

`ena* at pci? dev ? function ?`

# DESCRIPTION

The ENA is a networking interface designed to make good use of modern CPU features and system architectures.

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.

# HARDWARE

Supported PCI vendor ID/device IDs:

- 1d0f:0ec2 - ENA PF
- 1d0f:1ec2 - ENA PF with LLQ support
- 1d0f:ec20 - ENA VF
- 1d0f:ec21 - ENA VF with LLQ support

# SEE ALSO

arp(4), ifmedia(4), netintro(4), pci(4), ifconfig(8)

# AUTHORS

The `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.0