1.\" 2.\" This file and its contents are supplied under the terms of the 3.\" Common Development and Distribution License ("CDDL"), version 1.0. 4.\" You may only use this file in accordance with the terms of version 5.\" 1.0 of the CDDL. 6.\" 7.\" A full copy of the text of the CDDL should have accompanied this 8.\" source. A copy of the CDDL is also available via the Internet at 9.\" http://www.illumos.org/license/CDDL. 10.\" 11.\" 12.\" Copyright 2021 Oxide Computer Company 13.\" 14.Dd Nov 17, 2021 15.Dt ENA 4D 16.Os 17.Sh NAME 18.Nm ena 19.Nd Driver for the AWS Elastic Network Adapter 20.Sh SYNOPSIS 21.Pa /dev/net/ena* 22.Sh DESCRIPTION 23The 24.Sy ena 25driver is a GLDv3 NIC driver for the AWS Elastic Network Adapter 26family of virtual devices. 27The driver supports: 28.Bl -dash -offset indent 29.It 30Jumbo frames up to 9216 bytes. 31.It 32Multiple Rx and Tx rings. 33.El 34.Pp 35By design, this driver does not support VNICs. 36A given ENA device can only ever receive traffic for a single unicast 37MAC address and IP address combination, as determined by the AWS configuration. 38There is no support for promiscuous mode, or for receiving traffic for 39additional unicast or multicast addresses. 40.Sh CONFIGURATION 41The 42.Sy ena.conf 43file contains user configurable parameters, each of which is described 44below. 45This file is read when an ENA device is found and an instance of the 46driver is attached to it. 47Changes made to this file do not affect running instances. 48Only instances attached after the changes will see the effects of 49those changes. 50Therefore, if you want your change to take effect on a running 51instance, you must somehow reload it. 52That could be done by a manual reloading of the driver or a system 53reboot. 54.Sh PROPERTIES 55The configuration file can be found at 56.Pa /kernel/drv/ena.conf . 57.Bl -hang -width Ds 58.It Sy rx_queue_num_descs 59.Bd -filled -compact 60Minimum: 61.Sy 64 | 62Maximum: 63.Sy device dependent 64.Ed 65.Bd -filled -compact 66Default: 67.Sy device maximum 68.Ed 69.Bd -filled 70The 71.Sy rx_queue_num_descs 72property determines the number of descriptors provided by the Rx queue. 73Currently a single descriptor is equal to a single packet, but in the 74future it may be that a single packet consumes multiple descriptors. 75.Ed 76.It Sy rx_queue_intr_limit 77.Bd -filled -compact 78Minimum: 79.Sy 16 | 80Maximum: 81.Sy 4096 82.Ed 83.Bd -filled -compact 84Default: 85.Sy 256 86.Ed 87.Bd -filled 88The 89.Sy rx_queue_intr_limit 90property determines the number frames an Rx interrupt will attempt to 91process before returning and claiming the interrupt. 92This is meant to keep the ENA Rx interrupt handler from consuming too 93much system time. 94In general, when a NIC becomes saturated with packets, the 95.Sy MAC 96layer will switch the driver into polling mode to reduce interrupt 97load. 98.Ed 99.It Sy tx_queue_num_descs 100.Bd -filled -compact 101Minimum: 102.Sy 64 | 103Maximum: 104.Sy device dependent 105.Ed 106.Bd -filled -compact 107Default: 108.Sy device maximum 109.Ed 110.Bd -filled 111The 112.Sy tx_queue_num_descs 113property determines the number of descriptors provided by the Tx queue. 114Currently a single descriptor is equal to a single packet, but in the 115future it may be that a single packet consumes multiple descriptors. 116.Ed 117.El 118.Sh FILES 119.Bl -tag -width Pa 120.It Pa /kernel/drv/amd64/ena 121Device driver (x86) 122.It Pa /kernel/drv/ena.conf 123Driver configuration file containing user-configurable options 124.El 125.Sh INTERFACE STABILITY 126The tunables in 127.Pa ena.conf 128are considered 129.Sy Evolving 130and may change in the future. 131.Sh SEE ALSO 132.Xr dlpi 4P , 133.Xr driver.conf 5 , 134.Xr dladm 8 , 135.Xr snoop 8 136