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
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.
12 .\" Copyright 2016 Joyent, Inc.
19 .Nd Intel 710 Ethernet Device Driver
25 driver is a GLDv3, multi-threaded, clonable, loadable device driver that
26 supports the Data Link Provider Interface,
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
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
38 Jumbo frames up to 9710 bytes.
40 Promiscuous access via
46 TCP, UDP, and SCTP checksum offload
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
56 installed in the system, a character-special file will be created.
57 This file supports the Data Link Provider Interface (DLPI) which is documented
60 For most consumers, the use of
64 Each instance is assigned a unique ascending integer identifier.
65 A device which has multiple ports may appear to the system as separate
67 The system does not provide a guarnatee on how these will be presented.
68 Using this instance identifier, one can determine the exact character-special
70 For example, the first instance enumerated in the system, with id 0, would be
73 It exists in the file system at
78 driver always performs auto-negotiation and depending on the model may
79 negotiate to 40 Gbps, 25 Gbps, 10 Gbps, or 1 Gbps.
80 At this time, the driver requires the use of auto-negotiation.
84 driver is managed by the
88 is the preferred interface for setting all properties.
91 based configuration is possible,
96 driver may be joined into an aggregation based on the link aggregation
97 control protocol (LACP) through
100 The device supports the following properties which may be tuned through
101 its driver.conf file,
102 .Pa /kernel/drv/i40e.conf .
103 Most of these properties cannot be changed after the device has been started.
104 The device is started in response to a DLPI consumer opening the device and
106 This happens when an IP interfaces is plumbed or another
110 or an LLDP daemon is started.
112 Some properties may be tuned at runtime with the
115 Properties that can be will have the name of the dladm property called out
118 These properties are not considered stable at this time.
119 They may change and should not be relied on.
122 It is not expected that administrators of the system will have to tune
137 property determines the starting MTU of the various device instances.
138 Note that the device's MTU also determines the upper bound of the MTU of
139 all VNICs created over the device.
153 proeprty determines whether or not support for multiple rings is enabled
155 The default is always to enable them.
156 It is not recommended to to disable them.
168 property determines the number of descriptors that will be used in each
169 receive ring on the card.
170 Administrators should not normally need to tune this value.
171 Hardware requires that the ring size be a multiple of 32.
172 The system will round up the set value to the nearest multiple of 32.
184 property determines the number of descriptors that will be used in each
185 transmit ring on the card.
186 Administrators should not normally need to tune this value.
187 Hardware requires that the ring size be a multiple of 32.
188 The system will round up the set value to the nearest multiple of 32.
190 .It Sy tx_resched_threshold
199 .Sy tx_resched_threshold
200 property determines the number of descriptors that must be available for
201 a frame to be transmitted.
202 The maximum is variable.
203 It is dependent on the value of the
206 At least eight descriptors must be available for the device to function
209 .It Sy rx_limit_per_intr
218 .Sy rx_limit_per_intr
219 property determines the maximum number of packets that will be processed
220 on a given ring during a single interrupt.
221 This is done to try and guarantee some amount of liveness in the system.
222 It is not expected that administrators will have to tune this value.
224 .It Sy tx_hcksum_enable
234 property controls whether or not the device enables support for hardware
235 checksuming of outgoing packets.
236 The default is to always enable support for this.
237 Turning it off will increase latency and decrease throughput when transmitting
238 packets, but should be done if a hardware bug is suspected.
240 .It Sy rx_hcksum_enable
250 property controls whether or not the device enables support for hardware
251 checksuming of incoming packets.
252 The default is to always enable support for this.
253 Turning it off will increase latency and decrease throughput when receiving
254 packets, but should be done if a hardware bug is suspected.
256 .It Sy rx_dma_threshold
268 indicates the size in bytes of a received frame, including all of its
269 headers, at which the driver should not copy the frame but instead bind
271 By setting this property to its minimum, all frames will be processed with DMA
273 By setting this property to its maximum, all frames will be processed by copying
280 driver is only supported on
282 systems at this time.
286 Per-instance character device.
287 .It Pa /kernel/drv/i40e
288 32-bit device driver (x86).
289 .It Pa /kernel/drv/amd64/i40e
290 64-bit device driver (x86).
291 .It Pa /kernel/drv/i40e.conf
292 Driver configuration file.