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