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