1 I40E(7D) Devices I40E(7D) 2 3 NAME 4 i40e - Intel 710/722 Ethernet Device Driver 5 6 SYNOPSIS 7 /dev/net/i40e* 8 9 DESCRIPTION 10 The i40e driver is a GLDv3, multi-threaded, clonable, loadable device 11 driver that supports the Data Link Provider Interface, dlpi(7P). The 12 i40e driver supports the Intel 710 and 722 Ethernet Controller families 13 of networking interface cards which come in 1 GbE, 10 GbE, 25 GbE, and 40 14 GbE variants. 15 16 In addition to basic device initialization and the sending and receiving 17 of frames, it supports the following features: 18 19 - Jumbo frames up to 9710 bytes. 20 21 - Promiscuous access via snoop(1M) and dlpi(7P) 22 23 - IPv4 Checksum Offload 24 25 - TCP, UDP, and SCTP checksum offload 26 27 At this time, the i40e driver does not enable the use of energy efficient 28 Ethernet (EEE) or support the use of flow control through hardware pause 29 frames. 30 31 APPLICATION PROGRAMMING INTERFACE 32 For each device supported by the i40e installed in the system, a 33 character-special file will be created. This file supports the Data Link 34 Provider Interface (DLPI) which is documented in dlpi(7P). For most 35 consumers, the use of libdlpi(3LIB), is recommended. 36 37 Each instance is assigned a unique ascending integer identifier. A 38 device which has multiple ports may appear to the system as separate 39 instances. The system does not provide a guarantee on how these will be 40 presented. Using this instance identifier, one can determine the exact 41 character-special file to open. For example, the first instance 42 enumerated in the system, with id 0, would be named i40e0. It exists in 43 the file system at /dev/net/i40e0. 44 45 CONFIGURATION 46 The i40e driver always performs auto-negotiation and depending on the 47 model may negotiate to 40 Gbps, 25 Gbps, 10 Gbps, or 1 Gbps. At this 48 time, the driver requires the use of auto-negotiation. 49 50 The i40e driver is managed by the dladm(1M) utility. dladm(1M) is the 51 preferred interface for setting all properties. While driver.conf(4) 52 based configuration is possible, dladm(1M) is recommended. The i40e 53 driver may be joined into an aggregation based on the link aggregation 54 control protocol (LACP) through dladm(1M). 55 56 PROPERTIES 57 The device supports the following properties which may be tuned through 58 its driver.conf file, /kernel/drv/i40e.conf. Most of these properties 59 cannot be changed after the device has been started. The device is 60 started in response to a DLPI consumer opening the device and binding to 61 it. This happens when an IP interfaces is plumbed or another dlpi(7P) 62 consumer such as snoop(1M) or an LLDP daemon is started. 63 64 Some properties may be tuned at runtime with the dladm(1M) utility. 65 Properties that can be will have the name of the dladm property called 66 out explicitly. 67 68 These properties are not considered stable at this time. They may change 69 and should not be relied on. They are considered Volatile. It is not 70 expected that administrators of the system will have to tune these 71 values. 72 73 default_mtu 74 Minimum: 1500 | Maximum: 9710 | Runtime Property: mtu 75 76 The default_mtu property determines the starting MTU of the 77 various device instances. Note that the device's MTU also 78 determines the upper bound of the MTU of all VNICs created over 79 the device. The default MTU is 1500. 80 81 mr_enable 82 Minimum: 0 | Maximum: 1 83 84 The mr_enable property determines whether or not support for 85 multiple rings is enabled for the device. The default is always 86 to enable them. It is not recommended to to disable them. 87 88 rx_ring_size 89 Minimum: 64 | Maximum: 4096 90 91 The rx_ring_size property determines the number of descriptors 92 that will be used in each receive ring on the card. 93 Administrators should not normally need to tune this value. 94 Hardware requires that the ring size be a multiple of 32. The 95 system will round up the set value to the nearest multiple of 32. 96 97 tx_ring_size 98 Minimum: 64 | Maximum: 4096 99 100 The tx_ring_size property determines the number of descriptors 101 that will be used in each transmit ring on the card. 102 Administrators should not normally need to tune this value. 103 Hardware requires that the ring size be a multiple of 32. The 104 system will round up the set value to the nearest multiple of 32. 105 106 tx_resched_threshold 107 Minimum: 8 | Maximum: Variable 108 109 The tx_resched_threshold property determines the number of 110 descriptors that must be available for a frame to be transmitted. 111 The maximum is variable. It is dependent on the value of the 112 tx_ring_size property. At least eight descriptors must be 113 available for the device to function correctly. 114 115 rx_limit_per_intr 116 Minimum: 16 | Maximum: 4096 117 118 The rx_limit_per_intr property determines the maximum number of 119 packets that will be processed on a given ring during a single 120 interrupt. This is done to try and guarantee some amount of 121 liveness in the system. It is not expected that administrators 122 will have to tune this value. 123 124 tx_hcksum_enable 125 Minimum: 0 | Maximum: 1 126 127 The tx_hcksum_enable property controls whether or not the device 128 enables support for hardware checksumming of outgoing packets. 129 The default is to always enable support for this. Turning it off 130 will increase latency and decrease throughput when transmitting 131 packets, but should be done if a hardware bug is suspected. 132 133 rx_hcksum_enable 134 Minimum: 0 | Maximum: 1 135 136 The rx_hcksum_enable property controls whether or not the device 137 enables support for hardware checksumming of incoming packets. 138 The default is to always enable support for this. Turning it off 139 will increase latency and decrease throughput when receiving 140 packets, but should be done if a hardware bug is suspected. 141 142 rx_dma_threshold 143 Minimum: 0 | Maximum: INT32_MAX | Runtime Property: 144 _rx_dma_threshold 145 146 The rx_dma_threshold indicates the size in bytes of a received 147 frame, including all of its headers, at which the driver should 148 not copy the frame but instead bind DMA memory. By setting this 149 property to its minimum, all frames will be processed with DMA 150 binding. By setting this property to its maximum, all frames 151 will be processed by copying the frame. 152 153 tx_lso_enable 154 Minimum: 0 | Maximum: 1 155 156 The tx_lso_enable property controls whether or not the device 157 enables support for Large Segment Offloand (LSO) when 158 transmitting packets. The default is to always enable support 159 for this. Turning it off will decrease throughput when 160 transmitting packets, but should be done if a hardware bug is 161 suspected. 162 163 ARCHITECTURE 164 The i40e driver is only supported on x86 systems at this time. 165 166 FILES 167 /dev/net/i40e* Per-instance character device. 168 169 /kernel/drv/amd64/i40e Device driver (x86) 170 171 /kernel/drv/i40e.conf Driver configuration file 172 173 SEE ALSO 174 dladm(1M), snoop(1M), driver.conf(4), dlpi(7P) 175 176 illumos January 10, 2020 illumos