bf5e5942f28da27d65084efe9edc35f29d1fb5a3
[muen/linux.git] / Documentation / networking / device_drivers / intel / fm10k.rst
1 .. SPDX-License-Identifier: GPL-2.0+
2
3 Linux* Base Driver for Intel(R) Ethernet Multi-host Controller
4 ==============================================================
5
6 August 20, 2018
7 Copyright(c) 2015-2018 Intel Corporation.
8
9 Contents
10 ========
11 - Identifying Your Adapter
12 - Additional Configurations
13 - Performance Tuning
14 - Known Issues
15 - Support
16
17 Identifying Your Adapter
18 ========================
19 The driver in this release is compatible with devices based on the Intel(R)
20 Ethernet Multi-host Controller.
21
22 For information on how to identify your adapter, and for the latest Intel
23 network drivers, refer to the Intel Support website:
24 http://www.intel.com/support
25
26
27 Flow Control
28 ------------
29 The Intel(R) Ethernet Switch Host Interface Driver does not support Flow
30 Control. It will not send pause frames. This may result in dropped frames.
31
32
33 Virtual Functions (VFs)
34 -----------------------
35 Use sysfs to enable VFs.
36 Valid Range: 0-64
37
38 For example::
39
40     echo $num_vf_enabled > /sys/class/net/$dev/device/sriov_numvfs //enable VFs
41     echo 0 > /sys/class/net/$dev/device/sriov_numvfs //disable VFs
42
43 NOTE: Neither the device nor the driver control how VFs are mapped into config
44 space. Bus layout will vary by operating system. On operating systems that
45 support it, you can check sysfs to find the mapping.
46
47 NOTE: When SR-IOV mode is enabled, hardware VLAN filtering and VLAN tag
48 stripping/insertion will remain enabled. Please remove the old VLAN filter
49 before the new VLAN filter is added. For example::
50
51     ip link set eth0 vf 0 vlan 100      // set vlan 100 for VF 0
52     ip link set eth0 vf 0 vlan 0        // Delete vlan 100
53     ip link set eth0 vf 0 vlan 200      // set a new vlan 200 for VF 0
54
55
56 Additional Features and Configurations
57 ======================================
58
59 Jumbo Frames
60 ------------
61 Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU)
62 to a value larger than the default value of 1500.
63
64 Use the ifconfig command to increase the MTU size. For example, enter the
65 following where <x> is the interface number::
66
67     ifconfig eth<x> mtu 9000 up
68
69 Alternatively, you can use the ip command as follows::
70
71     ip link set mtu 9000 dev eth<x>
72     ip link set up dev eth<x>
73
74 This setting is not saved across reboots. The setting change can be made
75 permanent by adding 'MTU=9000' to the file:
76
77 - For RHEL: /etc/sysconfig/network-scripts/ifcfg-eth<x>
78 - For SLES: /etc/sysconfig/network/<config_file>
79
80 NOTE: The maximum MTU setting for Jumbo Frames is 15342. This value coincides
81 with the maximum Jumbo Frames size of 15364 bytes.
82
83 NOTE: This driver will attempt to use multiple page sized buffers to receive
84 each jumbo packet. This should help to avoid buffer starvation issues when
85 allocating receive packets.
86
87
88 Generic Receive Offload, aka GRO
89 --------------------------------
90 The driver supports the in-kernel software implementation of GRO. GRO has
91 shown that by coalescing Rx traffic into larger chunks of data, CPU
92 utilization can be significantly reduced when under large Rx load. GRO is an
93 evolution of the previously-used LRO interface. GRO is able to coalesce
94 other protocols besides TCP. It's also safe to use with configurations that
95 are problematic for LRO, namely bridging and iSCSI.
96
97
98
99 Supported ethtool Commands and Options for Filtering
100 ----------------------------------------------------
101 -n --show-nfc
102   Retrieves the receive network flow classification configurations.
103
104 rx-flow-hash tcp4|udp4|ah4|esp4|sctp4|tcp6|udp6|ah6|esp6|sctp6
105   Retrieves the hash options for the specified network traffic type.
106
107 -N --config-nfc
108   Configures the receive network flow classification.
109
110 rx-flow-hash tcp4|udp4|ah4|esp4|sctp4|tcp6|udp6|ah6|esp6|sctp6 m|v|t|s|d|f|n|r
111   Configures the hash options for the specified network traffic type.
112
113 - udp4: UDP over IPv4
114 - udp6: UDP over IPv6
115 - f Hash on bytes 0 and 1 of the Layer 4 header of the rx packet.
116 - n Hash on bytes 2 and 3 of the Layer 4 header of the rx packet.
117
118
119 Known Issues/Troubleshooting
120 ============================
121
122 Enabling SR-IOV in a 64-bit Microsoft* Windows Server* 2012/R2 guest OS under Linux KVM
123 ---------------------------------------------------------------------------------------
124 KVM Hypervisor/VMM supports direct assignment of a PCIe device to a VM. This
125 includes traditional PCIe devices, as well as SR-IOV-capable devices based on
126 the Intel Ethernet Controller XL710.
127
128
129 Support
130 =======
131 For general information, go to the Intel support website at:
132
133 https://www.intel.com/support/
134
135 or the Intel Wired Networking project hosted by Sourceforge at:
136
137 https://sourceforge.net/projects/e1000
138
139 If an issue is identified with the released source code on a supported kernel
140 with a supported adapter, email the specific information related to the issue
141 to e1000-devel@lists.sf.net.