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