7790 Want support for XXV710
[unleashed.git] / usr / src / man / man7d / i40e.7d
blobe7d157b667f3ad587d241103c0b95f3aadd96abe
1 .\"
2 .\" This file and its contents are supplied under the terms of the
3 .\" Common Development and Distribution License ("CDDL"), version 1.0.
4 .\" You may only use this file in accordance with the terms of version
5 .\" 1.0 of the CDDL.
6 .\"
7 .\" A full copy of the text of the CDDL should have accompanied this
8 .\" source.  A copy of the CDDL is also available via the Internet at
9 .\" http://www.illumos.org/license/CDDL.
10 .\"
11 .\"
12 .\" Copyright 2016 Joyent, Inc.
13 .\"
14 .Dd December 16, 2016
15 .Dt I40E 7D
16 .Os
17 .Sh NAME
18 .Nm i40e
19 .Nd Intel 710 Ethernet Device Driver
20 .Sh SYNOPSIS
21 .Pa /dev/i40e*
22 .Sh DESCRIPTION
23 The
24 .Nm
25 driver is a GLDv3, multi-threaded, clonable, loadable device driver that
26 supports the Data Link Provider Interface,
27 .Xr dlpi 7P .
28 The
29 .Nm
30 driver supports the Intel XL710 Ethernet Controller family of networking
31 interface cards which come in 1 GbE, 10 GbE, 25 GbE, and 40 GbE
32 variants.
33 .Pp
34 In addition to basic device initialization and the sending and receiving
35 of frames, it supports the following features:
36 .Bl -dash -offset indent
37 .It
38 Jumbo frames up to 9710 bytes.
39 .It
40 Promiscuous access via
41 .Xr snoop 1M and
42 .Xr dlpi 7P
43 .It
44 IPv4 Checksum Offload
45 .It
46 TCP, UDP, and SCTP checksum offload
47 .El
48 .Pp
49 At this time, the
50 .Nm
51 driver does not enable the use of energy efficient Ethernet (EEE) or
52 support the use of flow control through hardware pause frames.
53 .Sh APPLICATION PROGRAMMING INTERFACE
54 For each device supported by the
55 .Nm
56 installed in the system, a character-special file will be created. This
57 file supports the Data Link Provider Interface (DLPI) which is documented
59 .Xr dlpi 7P .
60 For most consumers, the use of
61 .Xr libdlpi 3LIB ,
62 is recommended.
63 .Pp
64 Each instance is assigned a unique ascending integer identifier. A
65 device which has multiple ports may appear to the system as separate
66 instances. The system does not provide a guarnatee on how these will be
67 presented. Using this instance identifier, one can determine the exact
68 character-special file to open. For example, the first instance
69 enumerated in the system, with id 0, would be named
70 .Sy i40e0 .
71 It exists in the file system at
72 .Pa /dev/i40e0 .
73 .Sh CONFIGURATION
74 The
75 .Nm i40e
76 driver always performs auto-negotiation and depending on the model may
77 negotiate to 40 Gbps, 25 Gbps, 10 Gbps, or 1 Gbps. At this time, the
78 driver requires the use of auto-negotiation.
79 .Pp
80 The
81 .Nm
82 driver is managed by the
83 .Xr dladm 1M
84 utility.
85 .Xr dladm 1M
86 is the preferred interface for setting all properties. While
87 .Xr driver.conf based configuration is possible,
88 .Xr dladm 1M
89 is recommended. The
90 .Nm
91 driver may be joined into an aggregation based on the link aggregation
92 control protocol (LACP) through
93 .Xr dladm 1M .
94 .Sh PROPERTIES
95 The device supports the following properties which may be tuned through
96 its driver.conf file,
97 .Pa /kernel/drv/i40e.conf .
98 Most of these properties cannot be changed after the device has been
99 started. The device is started in response to a DLPI consumer opening
100 the device and binding to it. This happens when an IP interfaces is
101 plumbed or another
102 .Xr dlpi 7P
103 consumer such as
104 .Xr snoop 1M
105 or an LLDP daemon is started.
107 Some properties may be tuned at runtime with the
108 .Xr dladm 1M
109 utility. Properties that can be will have the name of the dladm property
110 called out explicitly.
112 These properties are not considered stable at this time. They may change
113 and should not be relied on. They are considered
114 .Sy Volatile .
115 It is not expected that administrators of the system will have to tune
116 these values.
117 .Bl -hang -width Ds
118 .It Sy default_mtu
119 .Bd -filled -compact
120 Minimum:
121 .Sy 1500 |
122 Maximum:
123 .Sy 9710 |
124 Runtime Property:
125 .Sy mtu
127 .Bd -filled
129 .Sy default_mtu
130 property determines the starting MTU of the various device instances.
131 Note that the device's MTU also determines the upper bound of the MTU of
132 all VNICs created over the device. The default MTU is
133 .Sy 1500 .
135 .It Sy mr_enable
136 .Bd -filled -compact
137 Minimum:
138 .Sy 0 |
139 Maximum:
140 .Sy 1
142 .Bd -filled
144 .Sy mr_enable
145 proeprty determines whether or not support for multiple rings is enabled
146 for the device. The default is always to enable them. It is not
147 recommended to to disable them.
149 .It Sy rx_ring_size
150 .Bd -filled -compact
151 Minimum:
152 .Sy 64 |
153 Maximum:
154 .Sy 4096
156 .Bd -filled
158 .Sy rx_ring_size
159 property determines the number of descriptors that will be used in each
160 receive ring on the card. Administrators should not normally need to
161 tune this value. Hardware requires that the ring size be a multiple of
162 32. The system will round up the set value to the nearest multiple of
165 .It Sy tx_ring_size
166 .Bd -filled -compact
167 Minimum:
168 .Sy 64 |
169 Maximum:
170 .Sy 4096
172 .Bd -filled
174 .Sy tx_ring_size
175 property determines the number of descriptors that will be used in each
176 transmit ring on the card. Administrators should not normally need to
177 tune this value. Hardware requires that the ring size be a multiple of
178 32. The system will round up the set value to the nearest multiple of
181 .It Sy tx_resched_threshold
182 .Bd -filled -compact
183 Minimum:
184 .Sy 8 |
185 Maximum:
186 .Sy Variable
188 .Bd -filled
190 .Sy tx_resched_threshold
191 property determines the number of descriptors that must be available for
192 a frame to be transmitted. The maximum is variable. It is dependent on
193 the value of the
194 .Sy tx_ring_size
195 property. At least eight descriptors must be available for the device to
196 function correctly.
198 .It Sy rx_limit_per_intr
199 .Bd -filled -compact
200 Minimum:
201 .Sy 16 |
202 Maximum:
203 .Sy 4096
205 .Bd -filled
207 .Sy rx_limit_per_intr
208 property determines the maximum number of packets that will be processed
209 on a given ring during a single interrupt. This is done to try and
210 guarantee some amount of liveness in the system. It is not expected
211 that administrators will have to tune this value.
213 .It Sy tx_hcksum_enable
214 .Bd -filled -compact
215 Minimum:
216 .Sy 0 |
217 Maximum:
218 .Sy 1
220 .Bd -filled
222 .Sy tx_hcksum_enable
223 property controls whether or not the device enables support for hardware
224 checksuming of outgoing packets. The default is to always enable support
225 for this. Turning it off will increase latency and decrease throughput
226 when transmitting packets, but should be done if a hardware bug is
227 suspected.
229 .It Sy rx_hcksum_enable
230 .Bd -filled -compact
231 Minimum:
232 .Sy 0 |
233 Maximum:
234 .Sy 1
236 .Bd -filled
238 .Sy rx_hcksum_enable
239 property controls whether or not the device enables support for hardware
240 checksuming of incoming packets. The default is to always enable support
241 for this. Turning it off will increase latency and decrease throughput
242 when receiving packets, but should be done if a hardware bug is
243 suspected.
245 .It Sy rx_dma_threshold
246 .Bd -filled -compact
247 Minimum:
248 .Sy 0 |
249 Maximum:
250 .Sy INT32_MAX |
251 Runtime Property:
252 .Sy _rx_dma_treshold
254 .Bd -filled
256 .Sy rx_dma_treshold
257 indicates the size in bytes of a received frame, including all of its
258 headers, at which the driver should not copy the frame but instead bind
259 DMA memory. By setting this property to its minimum, all frames will be
260 processed with DMA binding. By setting this property to its maximum, all
261 frames will be processed by copying the frame.
264 .Sh ARCHITECTURE
267 driver is only supported on
268 .Sy x86
269 systems at this time.
270 .Sh FILES
271 .Bl -tag -width Pa
272 .It Pa /dev/i40e*
273 Per-instance character device.
274 .It Pa /kernel/drv/i40e
275 32-bit device driver (x86).
276 .It Pa /kernel/drv/amd64/i40e
277 64-bit device driver (x86).
278 .It Pa /kernel/drv/i40e.conf
279 Driver configuration file.
281 .Sh SEE ALSO
282 .Xr dladm 1M ,
283 .Xr snoop 1M ,
284 .Xr driver.conf 4 ,
285 .Xr dlpi 7P