xref: /titanic_41/usr/src/man/man7d/i40e.7d (revision ee2803a843fdb53a148e0b1b8bf766e820a87bb9)
1fdc35dd8SRobert Mustacchi.\"
2fdc35dd8SRobert Mustacchi.\" This file and its contents are supplied under the terms of the
3fdc35dd8SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
4fdc35dd8SRobert Mustacchi.\" You may only use this file in accordance with the terms of version
5fdc35dd8SRobert Mustacchi.\" 1.0 of the CDDL.
6fdc35dd8SRobert Mustacchi.\"
7fdc35dd8SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
8fdc35dd8SRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
9fdc35dd8SRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
10fdc35dd8SRobert Mustacchi.\"
11fdc35dd8SRobert Mustacchi.\"
12*ee2803a8SRobert Mustacchi.\" Copyright (c) 2017 Joyent, Inc.
13fdc35dd8SRobert Mustacchi.\"
14*ee2803a8SRobert Mustacchi.Dd September 8, 2017
15fdc35dd8SRobert Mustacchi.Dt I40E 7D
16fdc35dd8SRobert Mustacchi.Os
17fdc35dd8SRobert Mustacchi.Sh NAME
18fdc35dd8SRobert Mustacchi.Nm i40e
19*ee2803a8SRobert Mustacchi.Nd Intel 710/722 Ethernet Device Driver
20fdc35dd8SRobert Mustacchi.Sh SYNOPSIS
21*ee2803a8SRobert Mustacchi.Pa /dev/net/i40e*
22fdc35dd8SRobert Mustacchi.Sh DESCRIPTION
23fdc35dd8SRobert MustacchiThe
24fdc35dd8SRobert Mustacchi.Nm
25fdc35dd8SRobert Mustacchidriver is a GLDv3, multi-threaded, clonable, loadable device driver that
26fdc35dd8SRobert Mustacchisupports the Data Link Provider Interface,
27fdc35dd8SRobert Mustacchi.Xr dlpi 7P .
28fdc35dd8SRobert MustacchiThe
29fdc35dd8SRobert Mustacchi.Nm
30*ee2803a8SRobert Mustacchidriver supports the Intel 710 and 722 Ethernet Controller families of
31*ee2803a8SRobert Mustacchinetworking interface cards which come in 1 GbE, 10 GbE, 25 GbE, and 40
32*ee2803a8SRobert MustacchiGbE variants.
33fdc35dd8SRobert Mustacchi.Pp
34fdc35dd8SRobert MustacchiIn addition to basic device initialization and the sending and receiving
35fdc35dd8SRobert Mustacchiof frames, it supports the following features:
36fdc35dd8SRobert Mustacchi.Bl -dash -offset indent
37fdc35dd8SRobert Mustacchi.It
38fdc35dd8SRobert MustacchiJumbo frames up to 9710 bytes.
39fdc35dd8SRobert Mustacchi.It
40fdc35dd8SRobert MustacchiPromiscuous access via
41fdc35dd8SRobert Mustacchi.Xr snoop 1M and
42fdc35dd8SRobert Mustacchi.Xr dlpi 7P
43fdc35dd8SRobert Mustacchi.It
44fdc35dd8SRobert MustacchiIPv4 Checksum Offload
45fdc35dd8SRobert Mustacchi.It
46fdc35dd8SRobert MustacchiTCP, UDP, and SCTP checksum offload
47fdc35dd8SRobert Mustacchi.El
48fdc35dd8SRobert Mustacchi.Pp
49fdc35dd8SRobert MustacchiAt this time, the
50fdc35dd8SRobert Mustacchi.Nm
51fdc35dd8SRobert Mustacchidriver does not enable the use of energy efficient Ethernet (EEE) or
52fdc35dd8SRobert Mustacchisupport the use of flow control through hardware pause frames.
53fdc35dd8SRobert Mustacchi.Sh APPLICATION PROGRAMMING INTERFACE
54fdc35dd8SRobert MustacchiFor each device supported by the
55fdc35dd8SRobert Mustacchi.Nm
56fdc35dd8SRobert Mustacchiinstalled in the system, a character-special file will be created. This
57fdc35dd8SRobert Mustacchifile supports the Data Link Provider Interface (DLPI) which is documented
58fdc35dd8SRobert Mustacchiin
59fdc35dd8SRobert Mustacchi.Xr dlpi 7P .
60fdc35dd8SRobert MustacchiFor most consumers, the use of
61fdc35dd8SRobert Mustacchi.Xr libdlpi 3LIB ,
62fdc35dd8SRobert Mustacchiis recommended.
63fdc35dd8SRobert Mustacchi.Pp
64fdc35dd8SRobert MustacchiEach instance is assigned a unique ascending integer identifier. A
65fdc35dd8SRobert Mustacchidevice which has multiple ports may appear to the system as separate
66fdc35dd8SRobert Mustacchiinstances. The system does not provide a guarnatee on how these will be
67fdc35dd8SRobert Mustacchipresented. Using this instance identifier, one can determine the exact
68fdc35dd8SRobert Mustacchicharacter-special file to open. For example, the first instance
69fdc35dd8SRobert Mustacchienumerated in the system, with id 0, would be named
70fdc35dd8SRobert Mustacchi.Sy i40e0 .
71fdc35dd8SRobert MustacchiIt exists in the file system at
72*ee2803a8SRobert Mustacchi.Pa /dev/net/i40e0 .
73fdc35dd8SRobert Mustacchi.Sh CONFIGURATION
74fdc35dd8SRobert MustacchiThe
75fdc35dd8SRobert Mustacchi.Nm i40e
76fdc35dd8SRobert Mustacchidriver always performs auto-negotiation and depending on the model may
77f8cad494SRobert Mustacchinegotiate to 40 Gbps, 25 Gbps, 10 Gbps, or 1 Gbps. At this time, the
78f8cad494SRobert Mustacchidriver requires the use of auto-negotiation.
79fdc35dd8SRobert Mustacchi.Pp
80fdc35dd8SRobert MustacchiThe
81fdc35dd8SRobert Mustacchi.Nm
82fdc35dd8SRobert Mustacchidriver is managed by the
83fdc35dd8SRobert Mustacchi.Xr dladm 1M
84fdc35dd8SRobert Mustacchiutility.
85fdc35dd8SRobert Mustacchi.Xr dladm 1M
86fdc35dd8SRobert Mustacchiis the preferred interface for setting all properties. While
87fdc35dd8SRobert Mustacchi.Xr driver.conf based configuration is possible,
88fdc35dd8SRobert Mustacchi.Xr dladm 1M
89fdc35dd8SRobert Mustacchiis recommended. The
90fdc35dd8SRobert Mustacchi.Nm
91fdc35dd8SRobert Mustacchidriver may be joined into an aggregation based on the link aggregation
92fdc35dd8SRobert Mustacchicontrol protocol (LACP) through
93fdc35dd8SRobert Mustacchi.Xr dladm 1M .
94fdc35dd8SRobert Mustacchi.Sh PROPERTIES
95fdc35dd8SRobert MustacchiThe device supports the following properties which may be tuned through
96fdc35dd8SRobert Mustacchiits driver.conf file,
97fdc35dd8SRobert Mustacchi.Pa /kernel/drv/i40e.conf .
98fdc35dd8SRobert MustacchiMost of these properties cannot be changed after the device has been
99fdc35dd8SRobert Mustacchistarted. The device is started in response to a DLPI consumer opening
100fdc35dd8SRobert Mustacchithe device and binding to it. This happens when an IP interfaces is
101fdc35dd8SRobert Mustacchiplumbed or another
102fdc35dd8SRobert Mustacchi.Xr dlpi 7P
103fdc35dd8SRobert Mustacchiconsumer such as
104fdc35dd8SRobert Mustacchi.Xr snoop 1M
105fdc35dd8SRobert Mustacchior an LLDP daemon is started.
106fdc35dd8SRobert Mustacchi.Pp
107fdc35dd8SRobert MustacchiSome properties may be tuned at runtime with the
108fdc35dd8SRobert Mustacchi.Xr dladm 1M
109fdc35dd8SRobert Mustacchiutility. Properties that can be will have the name of the dladm property
110fdc35dd8SRobert Mustacchicalled out explicitly.
111fdc35dd8SRobert Mustacchi.Pp
112fdc35dd8SRobert MustacchiThese properties are not considered stable at this time. They may change
113fdc35dd8SRobert Mustacchiand should not be relied on. They are considered
114fdc35dd8SRobert Mustacchi.Sy Volatile .
115fdc35dd8SRobert MustacchiIt is not expected that administrators of the system will have to tune
116fdc35dd8SRobert Mustacchithese values.
117fdc35dd8SRobert Mustacchi.Bl -hang -width Ds
118fdc35dd8SRobert Mustacchi.It Sy default_mtu
119fdc35dd8SRobert Mustacchi.Bd -filled -compact
120fdc35dd8SRobert MustacchiMinimum:
121fdc35dd8SRobert Mustacchi.Sy 1500 |
122fdc35dd8SRobert MustacchiMaximum:
123fdc35dd8SRobert Mustacchi.Sy 9710 |
124fdc35dd8SRobert MustacchiRuntime Property:
125fdc35dd8SRobert Mustacchi.Sy mtu
126fdc35dd8SRobert Mustacchi.Ed
127fdc35dd8SRobert Mustacchi.Bd -filled
128fdc35dd8SRobert MustacchiThe
129fdc35dd8SRobert Mustacchi.Sy default_mtu
130fdc35dd8SRobert Mustacchiproperty determines the starting MTU of the various device instances.
131fdc35dd8SRobert MustacchiNote that the device's MTU also determines the upper bound of the MTU of
132fdc35dd8SRobert Mustacchiall VNICs created over the device. The default MTU is
133fdc35dd8SRobert Mustacchi.Sy 1500 .
134fdc35dd8SRobert Mustacchi.Ed
135fdc35dd8SRobert Mustacchi.It Sy mr_enable
136fdc35dd8SRobert Mustacchi.Bd -filled -compact
137fdc35dd8SRobert MustacchiMinimum:
138fdc35dd8SRobert Mustacchi.Sy 0 |
139fdc35dd8SRobert MustacchiMaximum:
140fdc35dd8SRobert Mustacchi.Sy 1
141fdc35dd8SRobert Mustacchi.Ed
142fdc35dd8SRobert Mustacchi.Bd -filled
143fdc35dd8SRobert MustacchiThe
144fdc35dd8SRobert Mustacchi.Sy mr_enable
145fdc35dd8SRobert Mustacchiproeprty determines whether or not support for multiple rings is enabled
146fdc35dd8SRobert Mustacchifor the device. The default is always to enable them. It is not
147fdc35dd8SRobert Mustacchirecommended to to disable them.
148fdc35dd8SRobert Mustacchi.Ed
149fdc35dd8SRobert Mustacchi.It Sy rx_ring_size
150fdc35dd8SRobert Mustacchi.Bd -filled -compact
151fdc35dd8SRobert MustacchiMinimum:
152fdc35dd8SRobert Mustacchi.Sy 64 |
153fdc35dd8SRobert MustacchiMaximum:
154fdc35dd8SRobert Mustacchi.Sy 4096
155fdc35dd8SRobert Mustacchi.Ed
156fdc35dd8SRobert Mustacchi.Bd -filled
157fdc35dd8SRobert MustacchiThe
158fdc35dd8SRobert Mustacchi.Sy rx_ring_size
159fdc35dd8SRobert Mustacchiproperty determines the number of descriptors that will be used in each
160fdc35dd8SRobert Mustacchireceive ring on the card. Administrators should not normally need to
161fdc35dd8SRobert Mustacchitune this value. Hardware requires that the ring size be a multiple of
162fdc35dd8SRobert Mustacchi32. The system will round up the set value to the nearest multiple of
163fdc35dd8SRobert Mustacchi32.
164fdc35dd8SRobert Mustacchi.Ed
165fdc35dd8SRobert Mustacchi.It Sy tx_ring_size
166fdc35dd8SRobert Mustacchi.Bd -filled -compact
167fdc35dd8SRobert MustacchiMinimum:
168fdc35dd8SRobert Mustacchi.Sy 64 |
169fdc35dd8SRobert MustacchiMaximum:
170fdc35dd8SRobert Mustacchi.Sy 4096
171fdc35dd8SRobert Mustacchi.Ed
172fdc35dd8SRobert Mustacchi.Bd -filled
173fdc35dd8SRobert MustacchiThe
174fdc35dd8SRobert Mustacchi.Sy tx_ring_size
175fdc35dd8SRobert Mustacchiproperty determines the number of descriptors that will be used in each
176fdc35dd8SRobert Mustacchitransmit ring on the card. Administrators should not normally need to
177fdc35dd8SRobert Mustacchitune this value. Hardware requires that the ring size be a multiple of
178fdc35dd8SRobert Mustacchi32. The system will round up the set value to the nearest multiple of
179fdc35dd8SRobert Mustacchi32.
180fdc35dd8SRobert Mustacchi.Ed
181fdc35dd8SRobert Mustacchi.It Sy tx_resched_threshold
182fdc35dd8SRobert Mustacchi.Bd -filled -compact
183fdc35dd8SRobert MustacchiMinimum:
184fdc35dd8SRobert Mustacchi.Sy 8 |
185fdc35dd8SRobert MustacchiMaximum:
186fdc35dd8SRobert Mustacchi.Sy Variable
187fdc35dd8SRobert Mustacchi.Ed
188fdc35dd8SRobert Mustacchi.Bd -filled
189fdc35dd8SRobert MustacchiThe
190fdc35dd8SRobert Mustacchi.Sy tx_resched_threshold
191fdc35dd8SRobert Mustacchiproperty determines the number of descriptors that must be available for
192fdc35dd8SRobert Mustacchia frame to be transmitted. The maximum is variable. It is dependent on
193fdc35dd8SRobert Mustacchithe value of the
194fdc35dd8SRobert Mustacchi.Sy tx_ring_size
195fdc35dd8SRobert Mustacchiproperty. At least eight descriptors must be available for the device to
196fdc35dd8SRobert Mustacchifunction correctly.
197fdc35dd8SRobert Mustacchi.Ed
198fdc35dd8SRobert Mustacchi.It Sy rx_limit_per_intr
199fdc35dd8SRobert Mustacchi.Bd -filled -compact
200fdc35dd8SRobert MustacchiMinimum:
201fdc35dd8SRobert Mustacchi.Sy 16 |
202fdc35dd8SRobert MustacchiMaximum:
203fdc35dd8SRobert Mustacchi.Sy 4096
204fdc35dd8SRobert Mustacchi.Ed
205fdc35dd8SRobert Mustacchi.Bd -filled
206fdc35dd8SRobert MustacchiThe
207fdc35dd8SRobert Mustacchi.Sy rx_limit_per_intr
208fdc35dd8SRobert Mustacchiproperty determines the maximum number of packets that will be processed
209fdc35dd8SRobert Mustacchion a given ring during a single interrupt. This is done to try and
210fdc35dd8SRobert Mustacchiguarantee some amount of liveness in the system. It is not expected
211fdc35dd8SRobert Mustacchithat administrators will have to tune this value.
212fdc35dd8SRobert Mustacchi.Ed
213fdc35dd8SRobert Mustacchi.It Sy tx_hcksum_enable
214fdc35dd8SRobert Mustacchi.Bd -filled -compact
215fdc35dd8SRobert MustacchiMinimum:
216fdc35dd8SRobert Mustacchi.Sy 0 |
217fdc35dd8SRobert MustacchiMaximum:
218fdc35dd8SRobert Mustacchi.Sy 1
219fdc35dd8SRobert Mustacchi.Ed
220fdc35dd8SRobert Mustacchi.Bd -filled
221fdc35dd8SRobert MustacchiThe
222fdc35dd8SRobert Mustacchi.Sy tx_hcksum_enable
223fdc35dd8SRobert Mustacchiproperty controls whether or not the device enables support for hardware
224fdc35dd8SRobert Mustacchichecksuming of outgoing packets. The default is to always enable support
225fdc35dd8SRobert Mustacchifor this. Turning it off will increase latency and decrease throughput
226fdc35dd8SRobert Mustacchiwhen transmitting packets, but should be done if a hardware bug is
227fdc35dd8SRobert Mustacchisuspected.
228fdc35dd8SRobert Mustacchi.Ed
229fdc35dd8SRobert Mustacchi.It Sy rx_hcksum_enable
230fdc35dd8SRobert Mustacchi.Bd -filled -compact
231fdc35dd8SRobert MustacchiMinimum:
232fdc35dd8SRobert Mustacchi.Sy 0 |
233fdc35dd8SRobert MustacchiMaximum:
234fdc35dd8SRobert Mustacchi.Sy 1
235fdc35dd8SRobert Mustacchi.Ed
236fdc35dd8SRobert Mustacchi.Bd -filled
237fdc35dd8SRobert MustacchiThe
238fdc35dd8SRobert Mustacchi.Sy rx_hcksum_enable
239fdc35dd8SRobert Mustacchiproperty controls whether or not the device enables support for hardware
240fdc35dd8SRobert Mustacchichecksuming of incoming packets. The default is to always enable support
241fdc35dd8SRobert Mustacchifor this. Turning it off will increase latency and decrease throughput
242fdc35dd8SRobert Mustacchiwhen receiving packets, but should be done if a hardware bug is
243fdc35dd8SRobert Mustacchisuspected.
244fdc35dd8SRobert Mustacchi.Ed
245fdc35dd8SRobert Mustacchi.It Sy rx_dma_threshold
246fdc35dd8SRobert Mustacchi.Bd -filled -compact
247fdc35dd8SRobert MustacchiMinimum:
248fdc35dd8SRobert Mustacchi.Sy 0 |
249fdc35dd8SRobert MustacchiMaximum:
250fdc35dd8SRobert Mustacchi.Sy INT32_MAX |
251fdc35dd8SRobert MustacchiRuntime Property:
252fdc35dd8SRobert Mustacchi.Sy _rx_dma_treshold
253fdc35dd8SRobert Mustacchi.Ed
254fdc35dd8SRobert Mustacchi.Bd -filled
255fdc35dd8SRobert MustacchiThe
256fdc35dd8SRobert Mustacchi.Sy rx_dma_treshold
257fdc35dd8SRobert Mustacchiindicates the size in bytes of a received frame, including all of its
258fdc35dd8SRobert Mustacchiheaders, at which the driver should not copy the frame but instead bind
259fdc35dd8SRobert MustacchiDMA memory. By setting this property to its minimum, all frames will be
260fdc35dd8SRobert Mustacchiprocessed with DMA binding. By setting this property to its maximum, all
261fdc35dd8SRobert Mustacchiframes will be processed by copying the frame.
262fdc35dd8SRobert Mustacchi.Ed
263fdc35dd8SRobert Mustacchi.El
264fdc35dd8SRobert Mustacchi.Sh ARCHITECTURE
265fdc35dd8SRobert MustacchiThe
266fdc35dd8SRobert Mustacchi.Nm
267fdc35dd8SRobert Mustacchidriver is only supported on
268fdc35dd8SRobert Mustacchi.Sy x86
269fdc35dd8SRobert Mustacchisystems at this time.
270fdc35dd8SRobert Mustacchi.Sh FILES
271fdc35dd8SRobert Mustacchi.Bl -tag -width Pa
272*ee2803a8SRobert Mustacchi.It Pa /dev/net/i40e*
273fdc35dd8SRobert MustacchiPer-instance character device.
274fdc35dd8SRobert Mustacchi.It Pa /kernel/drv/i40e
275fdc35dd8SRobert Mustacchi32-bit device driver (x86).
276fdc35dd8SRobert Mustacchi.It Pa /kernel/drv/amd64/i40e
277fdc35dd8SRobert Mustacchi64-bit device driver (x86).
278fdc35dd8SRobert Mustacchi.It Pa /kernel/drv/i40e.conf
279fdc35dd8SRobert MustacchiDriver configuration file.
280fdc35dd8SRobert Mustacchi.El
281fdc35dd8SRobert Mustacchi.Sh SEE ALSO
282fdc35dd8SRobert Mustacchi.Xr dladm 1M ,
283fdc35dd8SRobert Mustacchi.Xr snoop 1M ,
284fdc35dd8SRobert Mustacchi.Xr driver.conf 4 ,
285fdc35dd8SRobert Mustacchi.Xr dlpi 7P
286