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