FILE NAME: hp-be2net-4.0.479.0-2.src.rpm
TITLE: HP NC-Series Emulex 10GbE Driver for Linux
VERSION: 4.0.479.0
Release: 2
LANGUAGE: English
CATEGORY: Software Solutions
DIVISIONS: Enterprise and Mainstream Servers
EFFECTIVE DATE: 12/14/2011
SUPERSEDES: 4.0.359.0
Products Affected
==================
HP Flex-10 2-port 553M Adapter
HP FlexFabric 10Gb 2-port 554FLB Adapter
HP FlexFabric 10Gb 2-port 554M Adapter
HP FlexFabric 10Gb 2-port 554FLR-SFP+ Adapter
HP StorageWorks CN1100E Dual Port Converged Network Adapter
HP StorageWorks CN1000E Dual Port Converged Network Adapter
HP NC552SFP Dual Port 10GbE Server Adapter
HP NC550SFP Dual Port 10GbE Server Adapter
HP NC553m 10Gb 2-port FlexFabric Converged Network Adapter
HP NC553i 10Gb 2-port FlexFabric Converged Network Adapter
HP NC552m Dual Port Flex-10 10GbE BL-c Adapter
HP NC551m Dual Port FlexFabric 10Gb Adapter
HP NC551i Dual Port FlexFabric 10Gb Adapter
HP NC550m Dual Port Flex-10 10GbE BL-c Adapter
Operating Systems
==================
Red Hat Enterprise Linux 6 Update 2 for AMD64/EM64T
Red Hat Enterprise Linux 6 Update 2 for x86
Red Hat Enterprise Linux 6 Update 1 for AMD64/EM64T
Red Hat Enterprise Linux 6 Update 1 for x86
Red Hat Enterprise Linux 6 for AMD64/EM64T
Red Hat Enterprise Linux 6 for x86
Red Hat Enterprise Linux 5 Update 7 for AMD64/EM64T
Red Hat Enterprise Linux 5 Update 7 for x86
Red Hat Enterprise Linux 5 Update 6 for AMD64/EM64T
Red Hat Enterprise Linux 5 Update 6 for x86
SUSE LINUX Enterprise Server 11 Service Pack 1 for AMD64/EM64T
SUSE LINUX Enterprise Server 11 Service Pack 1 for x86
SUSE LINUX Enterprise Server 11 for AMD64/EM64T
SUSE LINUX Enterprise Server 11 for x86
SUSE LINUX Enterprise Server 10 Service Pack 4 for AMD64/EM64T
SUSE LINUX Enterprise Server 10 Service Pack 4 for x86
SUSE LINUX Enterprise Server 10 Service Pack 3 for AMD64/EM64T
SUSE LINUX Enterprise Server 10 Service Pack 3 for x86
Note: Due to the very recent release of RedHat 5 Update 7, customers
may still be using RedHat 5 Update 5 in their production environment.
HP will support the use of this driver for RedHat 5 Update 5 and will
remove support in the next release.
Pre-requisites
===============
ProLiant server supporting above operating systems
256 MB RAM minimum
Latest HP System ROM
Build Environment Setup
NOTE: Visit the following URL and download latest System ROM
http://welcome.hp.com/country/us/en/support.html
Select "Download drivers and software"
Description
============
This RPM contains HP tested and approved Ethernet driver for use
with network adapters mentioned in the PRODUCTS AFFECTED section
of this document.
Enhancements/Fixes
===================
1) Added support for HP FlexFabric 10Gb 2-port 554FLB Adapter
2) Added support for HP FlexFabric 10Gb 2-port 554M Adapter
3) Added support for HP FlexFabric 10Gb 2-port 554FLR-SFP+ Adapter
4) Added support for HP Flex-10 2-port 553M Adapter
5) Added KMP build support for RHEL6 Update 2
Table of Contents
=================
Introduction
Packaging
Build Environment Setup
Installing the RPM Package
Uninstalling the RPM Package
Driver Messages
Driver settings
Caveats
Introduction
============
This file describes how to build and install the Ethernet driver
for network adapters mentioned in the PRODUCTS AFFECTED section.
User guides and additional HP Network Adapter information can be found at:
http://h18004.www1.hp.com/products/servers/networking/index-nic.html
Packaging
=========
The driver is released in Kernel Module Package (KMP) source RPM format.
KMP packages use macros that determine kernel flavors for which binary
need to be built based on spec file rules.
It is important to have the right build environment set up in order to
compile a binary RPM from source package. See "Build Environment Setup"
section below for more details.
Build Environment Setup
========================
This package requires the presence of certain other packages that provide
the right build environment to enable building a KMP binary rpm from the
source rpm. These packages provide kernel headers, makefiles and symbol
files. Please ensure that the following are installed:
RHEL installation:
1. redhat-rpm-config package
2. kernel-devel-<kernel_version> package
3. kernel-<flavor>-devel-<kernel_version> package
Eg: kernel-2.6.18.92.el5 requires kernel-devel-2.6.18-92.el5
kernel-PAE-2.6.18.92.el5 requires kernel-PAE-devel-2.6.18-92.el5
See the "Caveats" section below for more details.
SLES Installation:
1. kernel-source-<kernel_version> package
2. kernel-syms-<kernel_version> package
3. SLES11 requires kernel-<flavor>-devel-<kernel_version> package
in addition to the above two mentioned
Installing the RPM Package
=============================
1. This package requires a specific build environment. Please refer the
"Build Environment Setup" section above before proceeding.
2. Install the source RPM package.
# rpm -ivh hp-be2net-<version>.src.rpm
3. Build the binary RPM for be2net driver.
RHEL 5:
# rpmbuild -bb /usr/src/redhat/SPECS/hp-benet.kmp.spec
RHEL 6:
# rpmbuild -bb ~/rpmbuild/SPECS/hp-benet.kmp.spec
SLES:
# rpmbuild -bb /usr/src/packages/SPECS/hp-benet.kmp.spec
If you get an error during the build process, refer to the
"Build Environment Setup" section.
NOTE: One can build binary RPM for a specfic kernel flavor as follows:
# rpmbuild -bb SPECS/hp-be2net.kmp.spec --define "KVER <kver>"
NOTE: RHEL 5 x86 installations require the "--target" switch
when building on Intel compatible machines. Please see the
"Caveats" section below for more details.
# rpmbuild --target=i686 -bb /usr/src/redhat/SPECS/hp-benet.kmp.spec
4. Check for the existence of a current version of the be2net package
as follows:
RHEL
# rpm -q kmod-hp-be2net-<flavor>
SLES
# rpm -q hp-be2net-kmp-<flavor>
If an old version of the package exists, the RPM package should
be removed.
RHEL
# rpm -e kmod-hp-be2net-<flavor>
SLES
# rpm -e hp-be2net-kmp-<flavor>
Verify if the old hp-be2net package has been removed as follows:
RHEL
# rpm -q kmod-hp-be2net-<kernel flavor>
SLES
# rpm -q hp-be2net-kmp-<kernel flavor>
5. If an older version of be2net.ko is loaded into the kernel, remove
it as follows.
Note: If you are installing the package over network you may want to be
careful. It is not absolutely necessary to remove the modules. This step
is necessary if you are doing the upgrade on the physical console and
you intend to see the new drivers taking over immediately
# lsmod | grep be2net
Bring down the interfaces controlled by be2net
# ifconfig eth<n> down
Uninstall the existing active driver
# modprobe -r be2net
6. Install the new binary RPM package.
RHEL 5
# rpm -ivh \
/usr/src/redhat/RPMS/<arch>/kmod-hp-be2net-<flavor>-<version>.<arch>.rpm
RHEL 6
# rpm -ivh \
~/rpmbuild/RPMS/<arch>/kmod-hp-be2net-<flavor>-<version>.<arch>.rpm
The modules are installed in the following directory:
/lib/modules/<kernel_version>/extra/hp-be2net
Note: The "--nodeps" switch is required when installing to RHEL
5.4 and RHEL 5.5. See the "Caveats" section below for more
details.
# rpm -ivh \
/usr/src/redhat/RPMS/<arch>/kmod-hp-be2net-<flavor>-<version>.<arch>.rpm --nodeps
SLES
# rpm -ivh RPMS/<arch>/hp-be2net-kmp-<version>-<flavor>.<arch>.rpm
The modules are installed in the following directory:
/lib/modules/<kernel_version>/updates/hp-be2net
7. Run "modinfo be2net | grep version" and verify that the driver
version is latest
8. Run "modprobe be2net" to install latest "be2net" driver module
9. Configure your network setting and address. You may need to refer
to your Linux vendor documentation. Helpful network configuration
tools such as "yast2" in SLES or linuxconf/redhat-config-network/
netconfig in Red Hat exist for easy configuration.
10. Ensure that the /etc/modules.conf file is configured similar to the
example listed below. The example below is presented as if more than
one adapter is present. If so, one eth# instance should exist for
each ethernet port. Refer to the modules.conf man page for more
information.
alias eth0 be2net
alias eth1 be2net
For SLES, the configuration file is /etc/modprobe.conf or
/etc/modprobe.conf.local
Note: If the above entry does not exist, add it in the configuration
file.
11. Reboot the server or restart the network services. Upon reboot the
network should start with be2net driver loaded to verify that the
driver is loaded, use the following command.
# lsmod
You should find be2net listed.
Uninstalling the RPM Package
=============================
The following command will uninstall the RPM.
RHEL
# rpm -e kmod-hp-be2net-<kernel flavor>
SLES
# rpm -e hp-be2net-kmp-<kernel flavor>
Driver Messages
===============
When successfully loaded, the driver logs a message similar to the
following one in the kernel log:
be2net 0000:01:00.0: Emulex OneConnect 10Gbps NIC (be3) port 0
be2net 0000:01:00.1: Emulex OneConnect 10Gbps NIC (be3) port 1
Driver settings
================
Offloading
The following offload features are supported. All these features
are enabled by default. They can be disabled or modified using
ethtool.
- TCP checksum offload
- TCP segmentation offload (TSO) for IPv4
- Large receive offload / Generic receive offload.
- VLAN offload
- Ethernet multicast filtering
MSI-X interrupts
By default, be2net tries to use MSI-X interrupts where ever pos-
sible. A separate interrupt vector is used for RX and TX for
each interface. This helps with load distribution of Rx and Tx
interrupt processing across different CPUs. The driver falls
back to using INT-X on platforms that do not support MSI-X.
be2net can be directed to use only INT-X interrupts instead of
MSI-X by specifying the module parameter msix=0.
NAPI
be2net uses NAPI for servicing completion interrupts from NIC.
MTU
By default be2net uses an MTU of 1500. MTU can be changed to
any value between 256 and 9000 using ifconfig command.
Interrupt mitigation
Interrupt delay for RX and TX interrupts can be configured.
Smaller delay will help achiever better latency;but increase
the number of interrupts and CPU utilization. The driver also
supports adaptive interrupt coalescing (AIC) for RX interrupts.
AIC helps to vary the interrupt delay based on the traffic
condition and tries to achieve lower CPU utilization during high
network load and lower latency during lighter network load. AIC
is supported only for RX interrupts and is enabled by default.
AIC can be can be disabled using the -C option in ethtool.
Receive buffer size
The size of each receive buffer made available to the NIC to DMA
received ether frames can be set to either 2048, 4096 or 8192
bytes using the "rx_frag_size" module parameter. The default
rx_frag_size is 2048 and it is optimal size for 1500 byte MTU.
A higher value may improve CPU performance for larger MTU.
Bonding
All bonding modes are supported.
PCI error recovery
This feature is supported in platforms that implement PCI error
detection (EEH).
Link level flow control
Link level flow control is supported using pause frames for RX
and TX. In adapters with FCoE function, pause is always off
since it could interfere with the priority flow control required
for FCoE.
Configuration and reporting
The following configuration options are available via ethtool
command. Please refer to the ethtool man page for details.
- TX and RX flow control using -A option
- Checksum offload using -K option
- TCP segmentation offload using -K option
- Generic receive offload using -K option
- Interrupt delay and AIC parameters using -C option
- Get port parameters
- Get driver and firmware versions using -i option
- Run diagnostics using -t option
- Firmware update using -f option (only in newer distributions)
- Statistics reporting using -S option
Caveats
============
1. The rpmbuild will fail the dependency check when building the non
base(xen,pae,etc) kernel when the kernel-devel package is not
installed.
Example: If the OS installed only the PAE kernel, then the user
would need to install the kernel-pae-devel and kernel-devel
packages.
2. The use of a "--target" switch is required so that rpmbuild does not
try to find an i386 kernel on the system. If the "--target" switch
is not used then the build will fail with bizarre messages stating
that specific kernel packages are not installed on the machine yet
these pacakges do not exist.
3. The rpmbuild will fail if the redhat-rpm-config package is not
installed because it cannot resolve the
kernel_module_package_buildreqs macro. The error will be similar to
the following:
error:
line xx: Dependency tokens must begin with alphaumeric,'_'or'/':
BuildRequires: kernel_module_package_buildreqs
4. RPM uses KMP packaging dependency data to ensure the dependencies
are met before installing the binary RPM. Red Hat maintains a
whitelist of kernel symbols which RPM uses to validate against the
KMP binaries. Some symbols may be in the kernel but not on the
whitelist which results in a failed binary RPM install. The user
will need to use the "--nodeps" switch when installing the binary.
The be2net packaged drivers uses the following symbols on Red Hat EL
5 Update 4 and Update 5 that are not on the whitelist:
ksym(pci_enable_msi)
ksym(pci_disable_msi)
(C) Copyright 2011 Hewlett-Packard Development Company, L.P.
Product names mentioned herein may be trademarks and/or registered trademarks
of their respective companies.