xref: /illumos-gate/usr/src/man/man4d/ena.4d (revision 0c1b95bef39aa56a594619ae1fa17557c8a8b8ab)
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