bonding: alternate agg selection policies for 802.3ad
authorJay Vosburgh <fubar@us.ibm.com>
Wed, 5 Nov 2008 01:51:16 +0000 (17:51 -0800)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 6 Nov 2008 05:49:47 +0000 (00:49 -0500)
commitfd989c83325cb34795bc4d4aa6b13c06f90eac99
treeba6a0589847a45cd558cf2273dae423a4ab78dcc
parent6146b1a4da98377e4abddc91ba5856bef8f23f1e
bonding: alternate agg selection policies for 802.3ad

This patch implements alternative aggregator selection policies
for 802.3ad.  The existing policy, now termed "stable," selects the active
aggregator by greatest bandwidth, and only reselects a new aggregator
if the active aggregator is entirely disabled (no more ports or all ports
down).

This patch adds two new policies: bandwidth and count, selecting
the active aggregator by total bandwidth (like the stable policy) or by
the number of ports in the aggregator, respectively.  These two policies
also differ from the stable policy in that they will reselect the active
aggregator when availability-related changes occur in the bond (e.g.,
link state change).

This permits "gang failover" within 802.3ad, allowing redundant
aggregators along parallel paths to always maintain the "best" aggregator
as the active aggregator (rather than having to wait for the active to
entirely fail).

This patch also updates the driver version to 3.5.0.

Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Documentation/networking/bonding.txt
drivers/net/bonding/bond_3ad.c
drivers/net/bonding/bond_3ad.h
drivers/net/bonding/bond_main.c
drivers/net/bonding/bond_sysfs.c
drivers/net/bonding/bonding.h