I'm new to this forum and new to the kernal programming. Can anyone tell me what schemes (e.g. round robin) are currently implemented in bonding for link aggregation (802.3ad) ?
In the current version of bonding, two balance algorithms (selected via the xmit_hash_policy option) are available for 802.3ad mode: layer2 and layer3+4. The layer2 algorithm utilizes a simple XOR function applied to the MAC addresses to determine which slave is used to transmit a particular packet. The layer3+4 algorithm uses TCP, UDP and IP protocol information (if available) to compute a slave to use for a given packet. The exact computations of the two algorithms are described in the documentation, along with a minor caveat about using layer3+4 in 802.3ad mode.
No round robin style of selection is available in 802.3ad mode; the 802.3ad standard requires that a given conversation (connection) not be striped across multiple interfaces, in order to preserve the order of the packets in the conversation. Moving a given conversation from interface to interface requires some type of assurance than packets will not be delivered out of order; this would be impossible to do in a round robin type of algorithm.
Note that bonding also supports link aggregation modes other than 802.3ad: it provides Etherchannel compatible modes (balance-rr, balance-xor) as well as unique modes (balance-alb, balance-tlb) that do not require special support from the switch.
Log in to post a comment.
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.