FILE NAME:         bonding-1.0.4h-1.src.rpm

TITLE:             HP Tested and Approved Linux Bonding Driver

VERSION:           1.0.4h-1

LANGUAGE:          English

CATEGORY:          Software Solutions

DIVISIONS:         Enterprise and Mainstream Servers

PRODUCTS AFFECTED:
                   HP NC1020 Fast Ethernet Adapter   (bcm5700)
                   HP NC3120 Fast Ethernet Adapter   (e100)
                   HP NC3121 Fast Ethernet Adapter   (e100)
                   HP NC3122 Fast Ethernet Adapter   (e100)
                   HP NC3123 Fast Ethernet Adapter   (e100)
                   HP NC3131 Fast Ethernet Adapter   (e100)
                   HP NC3132 Fast Ethernet Adapter   (e100)
                   HP NC3133 Fast Ethernet Adapter   (e100)
                   HP NC3134 Fast Ethernet Adapter   (e100)
                   HP NC3135 Fast Ethernet Adapter   (e100)
                   HP NC3163 Fast Ethernet Adapter   (e100)
                   HP NC6132 Gigabit Server Adapter  (e1000)
                   HP NC6133 Gigabit Server Adapter  (e1000)
                   HP NC6134 Gigabit Server Adapter  (e1000)
                   HP NC6136 Gigabit Server Adapter  (e1000)
                   HP NC6170 Gigabit Server Adapter  (e1000)
                   HP NC6770 Gigabit Server Adapter  (bcm5700)
                   HP NC7131 Gigabit Server Adapter  (e1000)
                   HP NC7132 Gigabit Server Adapter  (e1000)
                   HP NC7170 Gigabit Server Adapter  (e1000)
                   HP NC7760 Gigabit Server Adapter  (bcm5700)
                   HP NC7761 Gigabit Server Adapter  (bcm5700)
                   HP NC7770 Gigabit Server Adapter  (bcm5700)
                   HP NC7771 Gigabit Server Adapter  (bcm5700)
                   HP NC7780 Gigabit Server Adapter  (bcm5700)
                   HP NC7781 Gigabit Server Adapter  (bcm5700)
                   HP NC7782 Gigabit Server Adapter  (bcm5700)

                                   
OPERATING SYSTEM:
                   Red Hat Linux 7.2 Professional
                        - Errata kernel 2.4.20-20 (SMP, UP)
                   Red Hat Linux 7.3 Professional
                        - Errata kernel 2.4.20-20 (SMP, UP, and BigMem)
                   Red Hat Linux 8.0 Professional
                        - Errata kernel 2.4.20-20 (SMP, UP, and BigMem)
                   Red Hat Enterprise Linux 2.1 - QU2
                        - Errata kernel 2.4.9-e.27 (SMP, UP, and Enterprise)
                   SuSE Linux Enterprise Server 7 (SLES-7)
                        - Errata kernel 2.4.18-280 (SMP)
                        - Errata kernel 2.4.18-280 (UP)
                   Conective Linux Enterprise Edition, SCO Linux 4.0, 
                        SuSE Linux Enterprise 8, and Turbolinux 8 all 
                        powered by UnitedLinux 1.0
                        - Service Pack 3

                   NOTE: For Red Hat Linux 7.2 Professional BigMem 
                         installations, the system needs to be 
                         pre-configured before setting up the kernel 
                         source and building the NIC and intermediate 
                         drivers. Refer to Customer Advisory EU030812_CW01 
                         for details of how to pre-configure the system. 
                         To access the Customer Advisory, visit www.hp.com 
                         and search for EU030812_CW01.


PREREQUISITES:  Pentium-based computer
                256MB RAM minimum
                Latest HP system ROM
                bcm5700 driver version 7.1.9c
                e100 driver version 2.3.27b
                e1000 driver version 5.2.16b

                NOTE: Visit the following URL to upgrade the ROM
                      http://h18000.www1.hp.com/support/files (select
                      ProLiant from the server column)


EFFECTIVE DATE: 03/31/2004

SUPERSEDES:     bonding-1.0.4g-1.src.rpm

DESCRIPTION:    This package contains the bonding driver for HP ProLiant 
                NC series NICs running under the Linux distributions listed 
                above. This driver allows you to combine multiple HP ProLiant 
                NIC ports to behave as one.

                All Ethernet devices listed in the PRODUCTS AFFECTED section
                may be teamed together regardless of the manufacturer of
                the MAC or PHY. This is commonly referred to as "multivendor 
                teaming".

ENHANCEMENTS/FIXES:
                - Fixed RPM build problems 
                  (rpmbuild: corrupted program header size)


Table of Contents
=================
  Introduction
  Packaging
  Kernel Source Code Setup
  Installing the RPM Package
  Bond Configuration
  Module Parameters
  Uninstalling the RPM
  Known Issues

                       
Introduction
============
This package provides a driver module (bonding.o) and the ifenslave utility
used to configure teaming. After installation, additional information can be
found in the bonding.txt file located at:

For Red Hat: /usr/share/doc/bonding-1.0.4/bonding.txt
For SuSE and UnitedLinux: /usr/share/doc/packages/bonding/bonding.txt


Packaging
=========
The driver is released in the source RPM format. The file name for the package
is bonding-<version>.src.rpm and is dependent on the kernel source code.


Kernel Source Code Setup
========================
The bonding driver requires the presence of the kernel source code and the
configuration of the kernel source before building the bonding driver. The 
following steps need to be done once for each kernel that is booted. For 
example, if the current kernel is UP (uni-processor) and an SMP 
(symmetrical-multi-processor) kernel is booted, these steps must be performed 
again to configure the kernel source for SMP before building the bonding driver
for the SMP kernel.

        Red Hat installations
        If the /usr/src/linux-<kernel-version> directory does not exist,
        install the kernel source code per Red Hat instructions.  Once 
        installed, follow the commands listed below to configure the 
        kernel source to match the running kernel.

                  # cd /usr/src/linux-<kernel_version>
                  # make mrproper
                  # make -e KERNELRELEASE=`uname -r` oldconfig
                  # make -e KERNELRELEASE=`uname -r` dep


        UnitedLinux 1.0 installation:
        If the /usr/src/linux-<kernel-version> directory does not
        exist, install the kernel source code per SuSE instructions. 
        Once installed, follow the commands listed below to set up 
        the kernel source tree.
 
                  # cd /usr/src/linux-<kernel_version>.SuSE
                  # make mrproper
                  # make cloneconfig
                  # make dep


        SuSE Linux Enterprise Server 7 installation:
        If the /usr/src/linux-<kernel-version> directory does not exist,
        install the kernel source code per SuSE or UnitedLinux instructions.
        Once installed, follow the commands listed below to configure the 
        kernel source to match the running kernel.

                  # cd /usr/src/linux-<kernel_version>.SuSE
                  # cp /boot/vmlinuz.config .config
                  # cp /boot/vmlinuz.version.h include/linux/version.h
                  # cp /boot/vmlinuz.autoconf.h include/linux/autoconf.h
                  # make oldconfig
                  # make dep



Installing the RPM Package
==========================
1. Check for the existence of a current version of the bonding package as 
   follows:

        # rpm -q bonding

        If an old version of the package exists, the RPM package should be 
        removed.

        # rpm -e bonding

        Then remove the loaded bonding module.
 
        # rmmod bonding

        Verify that the old bonding package has been removed as follows:

        # rpm -q bonding

2. Install the RPM source package.

        # rpm -ivh bonding-<version>.src.rpm

3. Change to the following directory and build the binary RPM for the bonding
   driver.

        For Red Hat:
        # cd /usr/src/redhat
        # rpmbuild -bb SPECS/bonding.spec

        For SuSE and UnitedLinux:
        # cd /usr/src/packages
        # rpm -bb SPECS/bonding.spec

        NOTE: If an error is encountered while building the driver or this 
        directory does not exist, refer to the "Kernel Source Code Setup" 
        section of this document.

4. Install the new binary RPM package using the following command. Do not use 
   the U (Upgrade) flag in the RPM command below - previous bonding drivers 
   must be removed as described in step one above before installing this 
   version.

        # rpm -ivh RPMS/i386/bonding-<version>.i386.rpm

5. The bonding.o module is installed in the 
   /lib/modules/<kernel_version>/kernel/drivers/net directory.


Bond Configuration
==================
Refer to the "Bond Configuration" and "Configuring Multiple Bonds" 
sections in bonding.txt to get more details on configuring single and multiple 
teams using the bonding driver. The "Switch Configuration" section gives 
details about configuring the switch to support the load balancing modes of the 
bonding driver. The "Verifying Bond Configuration" section gives details on 
how to verify the teaming configuration. 

Special Note on Configuring Teams on Red Hat 7.2 Professional Installations
---------------------------------------------------------------------------
On Red Hat 7.2 Professional Installations, configuring teams as shown in the 
following example does not work.

alias bondX bonding
options bondX miimon=<value> mode=<value>

Modify as shown below to have a working configuration

alias bondX bonding
options bonding miimon=<value> mode=<value>

When configuring multiple teams, the /etc/modules.conf file should
resemble the following:

alias bond0 bonding
alias bond1 bonding
options bonding miimon=<value> mode=<value>
options bond1 -o bonding1 miimon=<value> mode=<value>

Where bond0 and bond1 are the two teams

Module Parameters
=================
Refer to the "Module Parameters" section in bonding.txt to get more
details on the module parameters supported by the bonding driver.


Uninstalling the RPM Package
============================
The following command will uninstall the bonding RPM.
 
     rpm -e bonding


Known Issues
============
1) If jumbo frames are used (MTU size greater than 1500 bytes), every network 
   driver controlling a teamed NIC must support setting of the MTU size 
   (SIOCSIFMTU IOCTL). A method to determine if your network driver/adapter 
   supports this IOCTL is to run the following command on the interface (eth0
   used in this example):

        /sbin/ifconfig eth0 mtu 9000

   If the command completes without error, ensure the MTU size was changed with
   the following command:

        /sbin/ifconfig eth0 | grep MTU

   You should see a line similar to the following if the driver/adapter
   supports jumbo frames:

        UP BROADCAST RUNNING MULTICAST  MTU:9000  Metric:1

   You may also monitor /var/log/messages for possible error/confirmation
   messages.


2) When using the arp_interval module parameter, the "Link Failure Count" 
   reported in /proc/net/bondN/info will often show at least one link failure 
   for each interface. This issue can safely be ignored.


Copyright 2002, 2003  Hewlett-Packard Development Company, L.P.
Product names mentioned herein may be trademarks and/or registered trademarks
of their respective companies
