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