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