Users Guide

11–Marvell Teaming Services
Executive Summary
151 BC0054508-00 M
Transmit load balancing is achieved by creating a hashing table using the source
and destination IP addresses and TCP/UDP port numbers.The same combination
of source and destination IP addresses and TCP/UDP port numbers generally
yield the same hash index and therefore point to the same port in the team. When
a port is selected to carry all the frames of a specific socket, the unique MAC
address of the physical adapter is included in the frame, and not the team MAC
address. This inclusion is required to comply with the IEEE 802.3 standard. If two
adapters transmit using the same MAC address, a duplicate MAC address
situation would occur that the switch could not handle.
Receive load balancing is achieved through an intermediate driver by sending
gratuitous ARPs on a client-by-client basis using the unicast address of each
client as the destination address of the ARP request (also known as a directed
ARP). This practice is considered client load balancing and not traffic load
balancing. When the intermediate driver detects a significant load imbalance
between the physical adapters in an SLB team, it generates G-ARPs in an effort
to redistribute incoming frames. The intermediate driver (QLASP) does not
answer ARP requests; only the software protocol stack provides the required ARP
Reply. It is important to understand that receive load balancing is a function of the
quantity of clients that are connecting to the system through the team interface.
SLB receive load balancing attempts to load balance incoming traffic for client
machines across physical ports in the team. It uses a modified gratuitous ARP to
advertise a different MAC address for the team IP address in the sender physical
and protocol address. The G-ARP is unicast with the MAC and IP Address of a
client machine in the target physical and protocol address, respectively. This
action causes the target client to update its ARP cache with a new MAC address
map to the team IP address. G-ARPs are not broadcast because this would cause
all clients to send their traffic to the same port. As a result, the benefits achieved
through client load balancing would be eliminated, and could cause out-of-order
frame delivery. This receive load-balancing scheme works as long as all clients
and the teamed system are on the same subnet or broadcast domain.
When the clients and the system are on different subnets, and incoming traffic has
to traverse a router, the received traffic destined for the system is not load
balanced. The physical adapter that the intermediate driver has selected to carry
the IP flow carries all of the traffic. When the router sends a frame to the team IP
address, it broadcasts an ARP request (if not in the ARP cache). The server
software stack generates an ARP reply with the team MAC address, but the
intermediate driver modifies the ARP reply and sends it over a specific physical
adapter, establishing the flow for that session.
NOTE
IPv6 addressed traffic is load balanced by SLB because ARP is not a feature
of IPv6.