forked from Minki/linux
142 lines
4.7 KiB
ReStructuredText
142 lines
4.7 KiB
ReStructuredText
|
.. SPDX-License-Identifier: GPL-2.0+
|
||
|
|
||
|
Linux* Base Driver for Intel(R) Ethernet Multi-host Controller
|
||
|
==============================================================
|
||
|
|
||
|
August 20, 2018
|
||
|
Copyright(c) 2015-2018 Intel Corporation.
|
||
|
|
||
|
Contents
|
||
|
========
|
||
|
- Identifying Your Adapter
|
||
|
- Additional Configurations
|
||
|
- Performance Tuning
|
||
|
- Known Issues
|
||
|
- Support
|
||
|
|
||
|
Identifying Your Adapter
|
||
|
========================
|
||
|
The driver in this release is compatible with devices based on the Intel(R)
|
||
|
Ethernet Multi-host Controller.
|
||
|
|
||
|
For information on how to identify your adapter, and for the latest Intel
|
||
|
network drivers, refer to the Intel Support website:
|
||
|
http://www.intel.com/support
|
||
|
|
||
|
|
||
|
Flow Control
|
||
|
------------
|
||
|
The Intel(R) Ethernet Switch Host Interface Driver does not support Flow
|
||
|
Control. It will not send pause frames. This may result in dropped frames.
|
||
|
|
||
|
|
||
|
Virtual Functions (VFs)
|
||
|
-----------------------
|
||
|
Use sysfs to enable VFs.
|
||
|
Valid Range: 0-64
|
||
|
|
||
|
For example::
|
||
|
|
||
|
echo $num_vf_enabled > /sys/class/net/$dev/device/sriov_numvfs //enable VFs
|
||
|
echo 0 > /sys/class/net/$dev/device/sriov_numvfs //disable VFs
|
||
|
|
||
|
NOTE: Neither the device nor the driver control how VFs are mapped into config
|
||
|
space. Bus layout will vary by operating system. On operating systems that
|
||
|
support it, you can check sysfs to find the mapping.
|
||
|
|
||
|
NOTE: When SR-IOV mode is enabled, hardware VLAN filtering and VLAN tag
|
||
|
stripping/insertion will remain enabled. Please remove the old VLAN filter
|
||
|
before the new VLAN filter is added. For example::
|
||
|
|
||
|
ip link set eth0 vf 0 vlan 100 // set vlan 100 for VF 0
|
||
|
ip link set eth0 vf 0 vlan 0 // Delete vlan 100
|
||
|
ip link set eth0 vf 0 vlan 200 // set a new vlan 200 for VF 0
|
||
|
|
||
|
|
||
|
Additional Features and Configurations
|
||
|
======================================
|
||
|
|
||
|
Jumbo Frames
|
||
|
------------
|
||
|
Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU)
|
||
|
to a value larger than the default value of 1500.
|
||
|
|
||
|
Use the ifconfig command to increase the MTU size. For example, enter the
|
||
|
following where <x> is the interface number::
|
||
|
|
||
|
ifconfig eth<x> mtu 9000 up
|
||
|
|
||
|
Alternatively, you can use the ip command as follows::
|
||
|
|
||
|
ip link set mtu 9000 dev eth<x>
|
||
|
ip link set up dev eth<x>
|
||
|
|
||
|
This setting is not saved across reboots. The setting change can be made
|
||
|
permanent by adding 'MTU=9000' to the file:
|
||
|
|
||
|
- For RHEL: /etc/sysconfig/network-scripts/ifcfg-eth<x>
|
||
|
- For SLES: /etc/sysconfig/network/<config_file>
|
||
|
|
||
|
NOTE: The maximum MTU setting for Jumbo Frames is 15342. This value coincides
|
||
|
with the maximum Jumbo Frames size of 15364 bytes.
|
||
|
|
||
|
NOTE: This driver will attempt to use multiple page sized buffers to receive
|
||
|
each jumbo packet. This should help to avoid buffer starvation issues when
|
||
|
allocating receive packets.
|
||
|
|
||
|
|
||
|
Generic Receive Offload, aka GRO
|
||
|
--------------------------------
|
||
|
The driver supports the in-kernel software implementation of GRO. GRO has
|
||
|
shown that by coalescing Rx traffic into larger chunks of data, CPU
|
||
|
utilization can be significantly reduced when under large Rx load. GRO is an
|
||
|
evolution of the previously-used LRO interface. GRO is able to coalesce
|
||
|
other protocols besides TCP. It's also safe to use with configurations that
|
||
|
are problematic for LRO, namely bridging and iSCSI.
|
||
|
|
||
|
|
||
|
|
||
|
Supported ethtool Commands and Options for Filtering
|
||
|
----------------------------------------------------
|
||
|
-n --show-nfc
|
||
|
Retrieves the receive network flow classification configurations.
|
||
|
|
||
|
rx-flow-hash tcp4|udp4|ah4|esp4|sctp4|tcp6|udp6|ah6|esp6|sctp6
|
||
|
Retrieves the hash options for the specified network traffic type.
|
||
|
|
||
|
-N --config-nfc
|
||
|
Configures the receive network flow classification.
|
||
|
|
||
|
rx-flow-hash tcp4|udp4|ah4|esp4|sctp4|tcp6|udp6|ah6|esp6|sctp6 m|v|t|s|d|f|n|r
|
||
|
Configures the hash options for the specified network traffic type.
|
||
|
|
||
|
- udp4: UDP over IPv4
|
||
|
- udp6: UDP over IPv6
|
||
|
- f Hash on bytes 0 and 1 of the Layer 4 header of the rx packet.
|
||
|
- n Hash on bytes 2 and 3 of the Layer 4 header of the rx packet.
|
||
|
|
||
|
|
||
|
Known Issues/Troubleshooting
|
||
|
============================
|
||
|
|
||
|
Enabling SR-IOV in a 64-bit Microsoft* Windows Server* 2012/R2 guest OS under Linux KVM
|
||
|
---------------------------------------------------------------------------------------
|
||
|
KVM Hypervisor/VMM supports direct assignment of a PCIe device to a VM. This
|
||
|
includes traditional PCIe devices, as well as SR-IOV-capable devices based on
|
||
|
the Intel Ethernet Controller XL710.
|
||
|
|
||
|
|
||
|
Support
|
||
|
=======
|
||
|
For general information, go to the Intel support website at:
|
||
|
|
||
|
https://www.intel.com/support/
|
||
|
|
||
|
or the Intel Wired Networking project hosted by Sourceforge at:
|
||
|
|
||
|
https://sourceforge.net/projects/e1000
|
||
|
|
||
|
If an issue is identified with the released source code on a supported kernel
|
||
|
with a supported adapter, email the specific information related to the issue
|
||
|
to e1000-devel@lists.sf.net.
|