diff options
author | Jay Vosburgh <fubar@us.ibm.com> | 2007-12-07 02:40:34 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-12-07 15:00:32 -0500 |
commit | 6f6652be183c8c7cb99c646dd7494ab45e4833ba (patch) | |
tree | 8ab3acaa0f7887aad46d0a1dd10f800312d657fa /Documentation/networking | |
parent | b63bb739a1d24f395c09f88ff43c54c736a60453 (diff) |
bonding: Add new layer2+3 hash for xor/802.3ad modes
Add new hash for balance-xor and 802.3ad modes. Originally
submitted by "Glenn Griffin" <ggriffin.kernel@gmail.com>; modified by
Jay Vosburgh to move setting of hash policy out of line, tweak the
documentation update and add version update to 3.2.2.
Glenn's original comment follows:
Included is a patch for a new xmit_hash_policy for the bonding driver
that selects slaves based on MAC and IP information. This is a middle
ground between what currently exists in the layer2 only policy and the
layer3+4 policy. This policy strives to be fully 802.3ad compliant by
transmitting every packet of any particular flow over the same link.
As documented the layer3+4 policy is not fully compliant for extreme
cases such as ip fragmentation, so this policy is a nice compromise
for environments that require full compliance but desire more than the
layer2 only policy.
Signed-off-by: "Glenn Griffin" <ggriffin.kernel@gmail.com>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'Documentation/networking')
-rw-r--r-- | Documentation/networking/bonding.txt | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt index 11340625e36..6cc30e0d579 100644 --- a/Documentation/networking/bonding.txt +++ b/Documentation/networking/bonding.txt | |||
@@ -554,6 +554,30 @@ xmit_hash_policy | |||
554 | 554 | ||
555 | This algorithm is 802.3ad compliant. | 555 | This algorithm is 802.3ad compliant. |
556 | 556 | ||
557 | layer2+3 | ||
558 | |||
559 | This policy uses a combination of layer2 and layer3 | ||
560 | protocol information to generate the hash. | ||
561 | |||
562 | Uses XOR of hardware MAC addresses and IP addresses to | ||
563 | generate the hash. The formula is | ||
564 | |||
565 | (((source IP XOR dest IP) AND 0xffff) XOR | ||
566 | ( source MAC XOR destination MAC )) | ||
567 | modulo slave count | ||
568 | |||
569 | This algorithm will place all traffic to a particular | ||
570 | network peer on the same slave. For non-IP traffic, | ||
571 | the formula is the same as for the layer2 transmit | ||
572 | hash policy. | ||
573 | |||
574 | This policy is intended to provide a more balanced | ||
575 | distribution of traffic than layer2 alone, especially | ||
576 | in environments where a layer3 gateway device is | ||
577 | required to reach most destinations. | ||
578 | |||
579 | This algorithm is 802.3ad complient. | ||
580 | |||
557 | layer3+4 | 581 | layer3+4 |
558 | 582 | ||
559 | This policy uses upper layer protocol information, | 583 | This policy uses upper layer protocol information, |
@@ -589,8 +613,9 @@ xmit_hash_policy | |||
589 | or may not tolerate this noncompliance. | 613 | or may not tolerate this noncompliance. |
590 | 614 | ||
591 | The default value is layer2. This option was added in bonding | 615 | The default value is layer2. This option was added in bonding |
592 | version 2.6.3. In earlier versions of bonding, this parameter does | 616 | version 2.6.3. In earlier versions of bonding, this parameter |
593 | not exist, and the layer2 policy is the only policy. | 617 | does not exist, and the layer2 policy is the only policy. The |
618 | layer2+3 value was added for bonding version 3.2.2. | ||
594 | 619 | ||
595 | 620 | ||
596 | 3. Configuring Bonding Devices | 621 | 3. Configuring Bonding Devices |