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