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