aboutsummaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README794
1 files changed, 794 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..d327239
--- /dev/null
+++ b/README
@@ -0,0 +1,794 @@
+e1000e Linux* Base Driver for Intel(R) Network Connection
+
+=========================================================
+
+May 15, 2019
+
+=====================
+
+Contents
+========
+- Overview
+- Identifying Your Adapter
+- Building and Installation
+- Command Line Parameters
+- Additional Features and Configurations
+- Speed and Duplex Configuration
+- Known Issues
+- Support
+- License
+
+
+Overview
+========
+This driver supports kernel versions 2.4.x, 2.6.x and later.
+
+Driver information can be obtained using ethtool, lspci, and ifconfig.
+Instructions on updating ethtool can be found in the section Additional
+Configurations later in this document.
+This driver is only supported as a loadable module at this time. Intel is not
+supplying patches against the kernel source to allow for static linking of the
+drivers.
+
+For questions related to hardware requirements, refer to the documentation
+supplied with your Intel adapter. All hardware requirements listed apply to use
+with Linux.
+
+
+NOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100
+support.
+
+
+Upgrading
+---------
+
+If you currently have the e1000 driver installed and need to install e1000e,
+perform the following:
+
+- If your version of e1000 is 7.6.15.5 or less, upgrade to e1000 version
+ 8.x, using the instructions in the e1000 README.
+- Install the e1000e driver using the instructions in the Building and
+ Installation section below.
+- Modify /etc/modprobe.conf to point your PCIe devices to use the new e1000e
+ driver using alias <ethX> e1000e, or use your distribution's specific method
+ for configuring network adapters like RedHat's setup/system-config-network
+ or SuSE's yast2.
+
+
+Identifying Your Adapter
+========================
+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
+
+
+Building and Installation
+=========================
+
+To build a binary RPM package of this driver
+--------------------------------------------
+Note: RPM functionality has only been tested in Red Hat distributions.
+
+1. Run the following command, where <x.x.x> is the version number for the
+ driver tar file.
+
+ # rpmbuild -tb e1000e-<x.x.x>.tar.gz
+
+ NOTE: For the build to work properly, the currently running kernel MUST
+ match the version and configuration of the installed kernel sources. If
+ you have just recompiled the kernel, reboot the system before building.
+
+2. After building the RPM, the last few lines of the tool output contain the
+ location of the RPM file that was built. Install the RPM with one of the
+ following commands, where <RPM> is the location of the RPM file:
+
+ # rpm -Uvh <RPM>
+ or
+ # dnf/yum localinstall <RPM>
+
+NOTES:
+- To compile the driver on some kernel/arch combinations, you may need to
+install a package with the development version of libelf (e.g. libelf-dev,
+libelf-devel, elfutilsl-libelf-devel).
+- When compiling an out-of-tree driver, details will vary by distribution.
+However, you will usually need a kernel-devel RPM or some RPM that provides the
+kernel headers at a minimum. The RPM kernel-devel will usually fill in the link
+at /lib/modules/'uname -r'/build.
+
+
+To manually build the driver
+----------------------------
+1. Move the base driver tar file to the directory of your choice.
+ For example, use '/home/username/e1000e' or '/usr/local/src/e1000e'.
+
+2. Untar/unzip the archive, where <x.x.x> is the version number for the
+ driver tar file:
+
+ # tar zxf e1000e-<x.x.x>.tar.gz
+
+3. Change to the driver src directory, where <x.x.x> is the version number
+ for the driver tar:
+
+ # cd e1000e-<x.x.x>/src/
+
+4. Compile the driver module:
+
+ # make install
+
+ The binary will be installed as:
+ /lib/modules/<KERNEL VER>/updates/drivers/net/ethernet/intel/e1000e/e1000e.ko
+
+ The install location listed above is the default location. This may differ
+ for various Linux distributions.
+
+5. Load the module using the modprobe command.
+
+ To check the version of the driver and then load it:
+
+ # modinfo e1000e
+ # modprobe e1000e [parameter=port1_value,port2_value]
+
+ Alternately, make sure that any older e1000e drivers are removed from the
+ kernel before loading the new module:
+
+ # rmmod e1000e; modprobe e1000e
+
+6. Assign an IP address to the interface by entering the following,
+ where <ethX> is the interface name that was shown in dmesg after modprobe:
+
+ # ip address add <IP_address>/<netmask bits> dev <ethX>
+
+7. Verify that the interface works. Enter the following, where IP_address
+ is the IP address for another machine on the same subnet as the interface
+ that is being tested:
+
+ # ping <IP_address>
+
+Note: For certain distributions like (but not limited to) Red Hat Enterprise
+Linux 7 and Ubuntu, once the driver is installed, you may need to update the
+initrd/initramfs file to prevent the OS loading old versions of the e1000e
+driver. Use the dracut utility on Red Hat distributions:
+ # dracut --force
+
+ For Ubuntu:
+ # update-initramfs -u
+
+
+
+Command Line Parameters
+=======================
+If the driver is built as a module, the following optional parameters are used
+by entering them on the command line with the modprobe command using this
+syntax:
+
+# modprobe e1000e [<option>=<VAL1>,<VAL2>,...]
+
+There needs to be a <VAL#> for each network port in the system supported by
+this driver. The values will be applied to each instance, in function order.
+For example:
+
+# modprobe e1000e InterruptThrottleRate=16000,16000
+
+In this case, there are two network ports supported by e1000e in the system.
+The default value for each parameter is generally the recommended setting,
+unless otherwise noted.
+
+NOTE: For more information about the command line parameters, see the
+application note at: http://www.intel.com/design/network/applnots/ap450.htm.
+
+NOTE: A descriptor describes a data buffer and attributes related to the data
+buffer. This information is accessed by the hardware.
+
+
+InterruptThrottleRate
+---------------------
+Valid Range:
+0=off
+1=dynamic
+4=simplified balancing
+<min_ITR>-<max_ITR>
+Interrupt Throttle Rate controls the number of interrupts each interrupt
+vector can generate per second. Increasing ITR lowers latency at the cost of
+increased CPU utilization, though it may help throughput in some circumstances.
+0 = Setting InterruptThrottleRate to 0 turns off any interrupt moderation
+ and may improve small packet latency. However, this is generally not
+ suitable for bulk throughput traffic due to the increased CPU utilization
+ of the higher interrupt rate.
+1 = Setting InterruptThrottleRate to Dynamic mode attempts to moderate
+ interrupts per vector while maintaining very low latency. This can
+ sometimes cause extra CPU utilization. If planning on deploying e1000e
+ in a latency sensitive environment, this parameter should be considered.
+<min_ITR>-<max_ITR> =
+ Setting InterruptThrottleRate to a value greater or equal to <min_ITR>
+ will program the adapter to send at most that many interrupts
+ per second, even if more packets have come in. This reduces interrupt load
+ on the system and can lower CPU utilization under heavy load, but will
+ increase latency as packets are not processed as quickly.
+
+NOTE:
+- InterruptThrottleRate takes precedence over the TxAbsIntDelay and
+ RxAbsIntDelay parameters. In other words, minimizing the receive and/or
+ transmit absolute delays does not force the controller to generate more
+ interrupts than what the Interrupt Throttle Rate allows.
+
+
+RxIntDelay
+----------
+Valid Range: 0-65535 (0=off)
+This value delays the generation of receive interrupts in units of 1.024
+microseconds. Receive interrupt reduction can improve CPU efficiency if
+properly tuned for specific network traffic. Increasing this value adds extra
+latency to frame reception and can end up decreasing the throughput of TCP
+traffic. If the system is reporting dropped receives, this value may be set
+too high, causing the driver to run out of available receive descriptors.
+CAUTION: When setting RxIntDelay to a value other than 0, adapters may hang
+(stop transmitting) under certain network conditions. If this occurs a NETDEV
+WATCHDOG message is logged in the system event log. In addition, the
+controller is automatically reset, restoring the network connection. To
+eliminate the potential for the hang ensure that RxIntDelay is set to 0.
+
+RxAbsIntDelay
+-------------
+Valid Range: 0-65535 (0=off)
+This value, in units of 1.024 microseconds, limits the delay in which a
+receive interrupt is generated. This value ensures that an interrupt is
+generated after the initial packet is received within the set amount of time,
+which is useful only if RxIntDelay is non-zero. Proper tuning, along with
+RxIntDelay, may improve traffic throughput in specific network conditions.
+
+
+TxIntDelay
+----------
+Valid Range: 0-65535 (0=off)
+This value delays the generation of transmit interrupts in units of 1.024
+microseconds. Transmit interrupt reduction can improve CPU efficiency if
+properly tuned for specific network traffic. If the system is reporting
+dropped transmits, this value may be set too high causing the driver to run
+out of available transmit descriptors.
+
+
+TxAbsIntDelay
+-------------
+Valid Range: 0-65535 (0=off)
+This value, in units of 1.024 microseconds, limits the delay in which a
+transmit interrupt is generated. It is useful only if TxIntDelay is non-zero.
+It ensures that an interrupt is generated after the initial Packet is sent on
+the wire within the set amount of time. Proper tuning, along with TxIntDelay,
+may improve traffic throughput in specific network conditions.
+
+
+copybreak
+---------
+Valid Range: 0-xxxxxxx (0=off)
+The driver copies all packets below or equaling this size to a fresh receive
+buffer before handing it up the stack.
+This parameter differs from other parameters because it is a single (not 1,1,1
+etc.) parameter applied to all driver instances and it is also available
+during runtime at /sys/module/e1000e/parameters/copybreak.
+
+To use copybreak, type:
+
+# modprobe e1000e.ko copybreak=128
+
+
+SmartPowerDownEnable
+--------------------
+Valid Range: 0-1
+Allows Phy to turn off in lower power states. The user can turn off this
+parameter in supported chipsets.
+
+
+KumeranLockLoss
+---------------
+Valid Range: 0-1
+This workaround skips resetting the Phy at shutdown for the initial silicon
+releases of ICH8 systems.
+
+
+IntMode
+-------
+Valid Range: 0-2 (0 = Legacy Int, 1 = MSI and 2 = MSI-X)
+IntMode controls the allowed load time control over the type of interrupt
+registered for by the driver. MSI-X is required for multiple queue
+support, and some kernels and combinations of kernel .config options
+will force a lower level of interrupt support.
+'cat /proc/interrupts' will show different values for each type of interrupt.
+
+
+CrcStripping
+------------
+Valid Range: 0-1
+Strip the CRC from received packets before sending up the network stack. If
+you have a machine with a BMC enabled but cannot receive IPMI traffic after
+loading or enabling the driver, try disabling this feature.
+
+
+EEE (Energy Efficient Ethernet)
+-------------------------------
+Valid Range: 0-1
+0 = Disables EEE
+1 = Enables EEE
+
+A link between two EEE-compliant devices will result in periodic bursts of data
+followed by periods where the link is in an idle state. This Low Power Idle
+(LPI) state is supported at 1 Gbps and 100 Mbps link speeds.
+
+NOTES:
+- EEE support requires auto-negotiation.
+- Both link partners must support EEE.
+- EEE is not supported on all Intel(R) Ethernet Network devices or at all link
+speeds.
+
+Example:
+
+# ethtool --show-eee <ethX>
+# ethtool --set-eee <ethX> [eee on|off]
+
+
+Node
+----
+Valid Range: 0-n
+0 - n: where n is the number of the NUMA node that should be used to allocate
+memory for this adapter port.
+-1: uses the driver default of allocating memory on whichever processor is
+running modprobe.
+The Node parameter allows you to choose which NUMA node you want to have the
+adapter allocate memory from. All driver structures, in-memory queues, and
+receive buffers will be allocated on the node specified. This parameter is
+only useful when interrupt affinity is specified; otherwise, part of the
+interrupt time could run on a different core than where the memory is
+allocated causing slower memory access and impacting throughput, CPU, or both.
+
+
+Additional Features and Configurations
+======================================
+
+ethtool
+-------
+The driver utilizes the ethtool interface for driver configuration and
+diagnostics, as well as displaying statistical information. The latest ethtool
+version is required for this functionality. Download it at:
+https://kernel.org/pub/software/network/ethtool/
+
+NOTE: When validating enable/disable tests on some parts (for example, 82578),
+it is necessary to add a few seconds between tests when working with ethtool.
+
+
+Viewing Link Messages
+---------------------
+Link messages will not be displayed to the console if the distribution is
+restricting system messages. In order to see network driver link messages on
+your console, set dmesg to eight by entering the following:
+
+# dmesg -n 8
+
+NOTE: This setting is not saved across reboots.
+
+
+IEEE 1588 Precision Time Protocol (PTP) Hardware Clock (PHC)
+------------------------------------------------------------
+Precision Time Protocol (PTP) is used to synchronize clocks in a computer
+network. PTP support varies among Intel devices that support this driver. Use
+'ethtool -T <ethX>' to get a definitive list of PTP capabilities supported by
+the device.
+
+E1000E_PTP is a compile time flag. The user can enable it at compile time to
+add support for PTP from the driver. The flag is used by editing the make file
+as follows when it is being compiled:
+
+# make CFLAGS_EXTRA="-DE1000E_PTP" install
+
+
+Configuring the Driver on Different Distributions
+-------------------------------------------------
+Configuring a network driver to load properly when the system is started is
+distribution dependent. Typically, the configuration process involves adding an
+alias line to /etc/modules.conf or /etc/modprobe.conf as well as editing other
+system startup scripts and/or configuration files. Many popular Linux
+distributions ship with tools to make these changes for you. To learn the
+proper way to configure a network device for your system, refer to your
+distribution documentation. If during this process you are asked for the driver
+or module name, the name for the Base Driver is e1000e.
+
+For example, if you install the e1000e driver for two adapters (eth0 and eth1)
+and want to set the interrupt mode to MSI-X and MSI, respectively, add the
+following to modules.conf or /etc/modprobe.conf:
+ alias eth0 e1000e
+ alias eth1 e1000e
+ options e1000e IntMode=2,1
+
+
+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 <ethX> is the interface number:
+
+# ifconfig <ethX> mtu 9000 up
+
+Alternatively, you can use the ip command as follows:
+
+# ip link set mtu 9000 dev <ethX>
+# ip link set up dev <ethX>
+
+This setting is not saved across reboots. The setting change can be made
+permanent by adding 'MTU=9000' to the following file:
+ /etc/sysconfig/network-scripts/ifcfg-<ethX> for RHEL
+ or
+ /etc/sysconfig/network/<config_file> for SLES
+
+NOTE: The maximum MTU setting for jumbo frames is 8996. This corresponds to the
+maximum jumbo frame size of 9018 bytes.
+
+NOTE: Using jumbo frames at 10 or 100 Mbps is not supported and may result in
+poor performance or loss of link.
+
+NOTE: Packet loss may have a greater impact on throughput when you use jumbo
+frames. If you observe a drop in performance after enabling jumbo frames,
+enabling flow control may mitigate the issue.
+
+NOTE: The following adapters limit jumbo frames sized packets to a maximum of
+4088 bytes:
+ - Intel(R) 82578DM Gigabit Network Connection
+ - Intel(R) 82577LM Gigabit Network Connection
+- The following adapters do not support jumbo frames:
+ - Intel(R) PRO/1000 Gigabit Server Adapter
+ - Intel(R) PRO/1000 PM Network Connection
+ - Intel(R) 82562G 10/100 Network Connection
+ - Intel(R) 82562G-2 10/100 Network Connection
+ - Intel(R) 82562GT 10/100 Network Connection
+ - Intel(R) 82562GT-2 10/100 Network Connection
+ - Intel(R) 82562V 10/100 Network Connection
+ - Intel(R) 82562V-2 10/100 Network Connection
+ - Intel(R) 82566DC Gigabit Network Connection
+ - Intel(R) 82566DC-2 Gigabit Network Connection
+ - Intel(R) 82566DM Gigabit Network Connection
+ - Intel(R) 82566MC Gigabit Network Connection
+ - Intel(R) 82566MM Gigabit Network Connection
+ - Intel(R) 82567V-3 Gigabit Network Connection
+ - Intel(R) 82577LC Gigabit Network Connection
+ - Intel(R) 82578DC Gigabit Network Connection
+- Jumbo frames cannot be configured on an 82579-based Network device if
+ MACSec is enabled on the system.
+
+
+Speed and Duplex Configuration
+------------------------------
+In addressing speed and duplex configuration issues, you need to distinguish
+between copper-based adapters and fiber-based adapters.
+
+In the default mode, an Intel(R) Ethernet Network Adapter using copper
+connections will attempt to auto-negotiate with its link partner to determine
+the best setting. If the adapter cannot establish link with the link partner
+using auto-negotiation, you may need to manually configure the adapter and link
+partner to identical settings to establish link and pass packets. This should
+only be needed when attempting to link with an older switch that does not
+support auto-negotiation or one that has been forced to a specific speed or
+duplex mode. Your link partner must match the setting you choose. 1 Gbps speeds
+and higher cannot be forced. Use the autonegotiation advertising setting to
+manually set devices for 1 Gbps and higher.
+
+Speed, duplex, and autonegotiation advertising are configured through the
+ethtool* utility. ethtool is included with all versions of Red Hat after Red
+Hat 7.2. For the latest version, download and install ethtool from the
+following website:
+
+ https://kernel.org/pub/software/network/ethtool/
+
+To see the speed configurations your device supports, run the following:
+
+# ethtool <ethX>
+
+Caution: Only experienced network administrators should force speed and duplex
+or change autonegotiation advertising manually. The settings at the switch must
+always match the adapter settings. Adapter performance may suffer or your
+adapter may not operate if you configure the adapter differently from your
+switch.
+
+An Intel(R) Ethernet Network Adapter using fiber-based connections, however,
+will not attempt to auto-negotiate with its link partner since those adapters
+operate only in full duplex and only at their native speed.
+
+
+Wake on LAN (WoL) Support
+-------------------------
+Some adapters do not support Wake on LAN (WoL). To determine if your adapter
+supports WoL, run the following command:
+
+# ethtool <ethX>
+
+WoL is configured through the ethtool utility. ethtool is included with all
+versions of Red Hat after Red Hat 7.2. For other Linux distributions, download
+and install ethtool from the following website:
+https://kernel.org/pub/software/network/ethtool/.
+
+For instructions on enabling WoL with ethtool, refer to the website listed
+above.
+
+WoL will be enabled on the system during the next shutdown or reboot. For this
+driver version, in order to enable WoL, the e1000e driver must be loaded prior
+to shutting down or suspending the system.
+
+NOTE: Wake on LAN is only supported on port A for the following devices:
+- Intel(R) PRO/1000 PT Dual Port Network Connection
+- Intel(R) PRO/1000 PT Dual Port Server Connection
+- Intel(R) PRO/1000 PT Dual Port Server Adapter
+- Intel(R) PRO/1000 PF Dual Port Server Adapter
+- Intel(R) PRO/1000 PT Quad Port Server Adapter
+- Intel(R) Gigabit PT Quad Port Server ExpressModule
+
+
+NAPI
+----
+This driver supports NAPI (Rx polling mode).
+To disable NAPI, compile the driver module, passing in a configuration option:
+# make CFLAGS_EXTRA=-DE1000E_NO_NAPI install
+For more information on NAPI, see
+https://www.linuxfoundation.org/collaborate/workgroups/networking/napi
+
+
+Known Issues/Troubleshooting
+============================
+
+Hardware Issues
+---------------
+For known hardware and troubleshooting issues, either refer to the "Release
+Notes" in your User Guide, or for more detailed information, go to
+http://www.intel.com.
+
+In the search box enter your devices controller ID followed by "spec update"
+(i.e., 82599 spec update). The specification update file has complete
+information on known hardware issues.
+
+
+Software Issues
+---------------
+NOTE: After installing the driver, if your Intel Ethernet Network Connection
+is not working, verify that you have installed the correct driver.
+
+Intel(R) Active Management Technology 2.0, 2.1, 2.5 are not supported in
+conjunction with the linux driver.
+
+
+Detected Tx Unit Hang in Quad Port Adapters
+-------------------------------------------
+In some cases ports 3 and 4 don't pass traffic and report 'Detected Tx Unit
+Hang' followed by 'NETDEV WATCHDOG: <ethX>: transmit timed out' errors. Ports 1
+and 2 do not show any errors and will pass traffic.
+
+This issue may be resolved by updating to the latest kernel and BIOS. You
+should use an OS that fully supports Message Signaled Interrupts (MSI) and make
+sure that MSI is enabled in your system's BIOS.
+
+
+Adapters with 4 Ports Behind a PCIe Bridge
+------------------------------------------
+Adapters that have 4 ports behind a PCIe bridge may be incompatible with some
+systems. The user should run the Linux firmware kit from
+http://www.linuxfirmwarekit.org/ to test their BIOS, if they have interrupt or
+"missing interface" problems, especially with older kernels.
+
+
+82573(V/L/E) TX Unit Hang Messages
+----------------------------------
+Several adapters with the 82573 chipset display "TX unit hang" messages during
+normal operation with the e1000e driver. The issue appears both with TSO
+enabled and disabled and is caused by a power management function that is
+enabled in the EEPROM. Early releases of the chipsets to vendors had the EEPROM
+bit that enabled the feature. After the issue was discovered newer adapters
+were released with the feature disabled in the EEPROM.
+
+If you encounter the problem in an adapter, and the chipset is an 82573-based
+one, you can verify that your adapter needs the fix by using ethtool:
+
+ # ethtool -e <ethX>
+
+Offset Values
+------ ------
+0x0000 00 12 34 56 fe dc 30 0d 46 f7 f4 00 ff ff ff ff
+0x0010 ff ff ff ff 6b 02 8c 10 d9 15 8c 10 86 80 de 83
+ ^^
+
+The value at offset 0x001e (de) has bit 0 unset. This enables the problematic
+power saving feature. In this case, the EEPROM needs to read "df" at offset
+0x001e.
+
+A one-time EEPROM fix is available as a shell script. This script will verify
+that the adapter is applicable to the fix and if the fix is needed or not. If
+the fix is required, it applies the change to the EEPROM and updates the
+checksum. The user must reboot the system after applying the fix if changes
+were made to the EEPROM.
+
+Example output of the script:
+
+# bash fixeep-82573-dspd.sh eth0
+eth0: is a "82573E Gigabit Ethernet Controller"
+This fixup is applicable to your hardware executing command:
+# ethtool -E eth0 magic 0x109a8086 offset 0x1e value 0xdf
+Change made. You *MUST* reboot your machine before changes take effect!
+The script can be downloaded at
+http://e1000.sourceforge.net/files/fixeep-82573-dspd.sh.
+
+
+Dropped Receive Packets on Half-duplex 10/100 Networks
+------------------------------------------------------
+If you have an Intel PCI Express adapter running at 10mbps or 100mbps,
+half-duplex, you may observe occasional dropped receive packets. There are no
+workarounds for this problem in this network configuration. The network must be
+updated to operate in full-duplex, and/or 1000mbps only.
+
+
+Compiling the Driver
+--------------------
+When trying to compile the driver by running make install, the following error
+may occur: "Linux kernel source not configured - missing version.h"
+
+To solve this issue, create the version.h file by going to the Linux source
+tree and entering:
+
+# make include/linux/version.h
+
+
+Performance Degradation with Jumbo Frames
+-----------------------------------------
+Degradation in throughput performance may be observed in some Jumbo frames
+environments. If this is observed, increasing the application's socket buffer
+size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values may help.
+See the specific application manual and
+/usr/src/linux*/Documentation/networking/ip-sysctl.txt for more details.
+
+
+Jumbo Frames on Foundry BigIron 8000 switch
+-------------------------------------------
+There is a known issue using Jumbo frames when connected to a Foundry BigIron
+8000 switch. This is a 3rd party limitation. If you experience loss of
+packets, lower the MTU size.
+
+
+Allocating Rx Buffers When Using Jumbo Frames
+---------------------------------------------
+Allocating Rx buffers when using Jumbo Frames on 2.6.x kernels may fail if the
+available memory is heavily fragmented. This issue may be seen with PCI-X
+adapters or with packet split disabled. This can be reduced or eliminated by
+changing the amount of available memory for receive buffer allocation, by
+increasing /proc/sys/vm/min_free_kbytes.
+
+
+Multiple Interfaces on Same Ethernet Broadcast Network
+------------------------------------------------------
+Due to the default ARP behavior on Linux, it is not possible to have one system
+on two IP networks in the same Ethernet broadcast domain (non-partitioned
+switch) behave as expected. All Ethernet interfaces will respond to IP traffic
+for any IP address assigned to the system. This results in unbalanced receive
+traffic.
+
+If you have multiple interfaces in a server, either turn on ARP filtering by
+entering the following:
+
+# echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
+
+This only works if your kernel's version is higher than 2.4.5.
+
+NOTE: This setting is not saved across reboots. The configuration change can be
+made permanent by adding the following line to the file /etc/sysctl.conf:
+
+ net.ipv4.conf.all.arp_filter = 1
+
+Another alternative is to install the interfaces in separate broadcast domains
+(either in different switches or in a switch partitioned to VLANs).
+
+
+Disable Rx Flow Control with ethtool
+------------------------------------
+In order to disable receive flow control using ethtool, you must turn off
+auto-negotiation on the same command line:
+
+# ethtool -A <ethX> autoneg off rx off
+
+
+Unplugging Network Cable While ethtool -p is Running
+----------------------------------------------------
+In kernel versions 2.5.50 and newer, unplugging the network cable while ethtool
+-p is running will cause the system to become unresponsive to keyboard
+commands, except for control-alt-delete. Restarting the system should resolve
+the issue.
+
+
+Rx Page Allocation Errors
+-------------------------
+'Page allocation failure. order:0' errors may occur under stress with kernels
+2.6.25 and newer. This is caused by the way the Linux kernel reports this
+stressed condition.
+
+Network Throughput Degradation Observed with Onboard Video Versus Add-in Video
+Card on 82579LM Gigabit Network Connection When Used with Some Older Kernels
+
+This issue can be worked around by specifying "pci=nommconf" in the kernel boot
+parameter or by using another kernel boot parameter "memmap=128M$0x100000000",
+which marks 128 MB region at 4 GB as reserved so that the OS will not use these
+RAM pages.
+
+This issue is fixed in kernel version 2.6.21, where the kernel dynamically
+detects the mmconfig size by looking at the number of buses that the mmconfig
+segment maps to.
+
+This issue will not be seen on the 32-bit version of EL5. In that case, the
+kernel sees that RAM is located around the 256 MB window and avoids using the
+mmconfig space.
+
+
+Activity LED Blinks Unexpectedly
+--------------------------------
+If a system based on the 82577, 82578, or 82579 controller is connected to a
+hub, the Activity LED will blink for all network traffic present on the hub.
+Connecting the system to a switch or router will filter out most traffic not
+addressed to the local port.
+
+
+Link may take longer than expected
+----------------------------------
+
+With some Phy and switch combinations, link can take longer than expected.
+This can be an issue on Linux distributions that timeout when checking for
+link prior to acquiring a DHCP address; however there is usually a way to work
+around this (for example, set LINKDELAY in the interface configuration on
+RHEL).
+
+
+Tx flow control is disabled by default on 82577 and 82578-based adapters
+------------------------------------------------------------------------
+
+
+Possible performance degradation on certain 82566 and 82577 devices
+-------------------------------------------------------------------
+
+Internal stress testing with jumbo frames shows the reliability on some 82566
+and 82567 devices is improved in certain corner cases by disabling the Early
+Receive feature. Doing so can impact Tx performance. To reduce the impact, the
+packet buffer sizes and relevant flow control settings are modified
+accordingly.
+
+
+Support
+=======
+For general information, go to the Intel support website at:
+http://www.intel.com/support/
+
+or the Intel Wired Networking project hosted by Sourceforge at:
+http://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.
+
+
+License
+=======
+This program is free software; you can redistribute it and/or modify it under
+the terms and conditions of the GNU General Public License, version 2, as
+published by the Free Software Foundation.
+
+This program is distributed in the hope it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
+St - Fifth Floor, Boston, MA 02110-1301 USA.
+
+The full GNU General Public License is included in this distribution in the
+file called "COPYING".
+
+Copyright(c) 1999 - 2019 Intel Corporation.
+
+
+Trademarks
+==========
+Intel is a trademark or registered trademark of Intel Corporation or its
+subsidiaries in the United States and/or other countries.
+
+* Other names and brands may be claimed as the property of others.
+
+