Users Guide
11–Marvell Teaming Services
Teaming Mechanisms
163 BC0054508-00 M
When an inbound IP Datagram arrives, the appropriate Inbound Flow Head Entry 
is located by hashing the source IP address of the IP Datagram. Two statistics 
counters stored in the selected entry are also updated. These counters are used 
in the same fashion as the outbound counters by the load-balancing engine 
periodically to reassign the flows to the physical adapter. 
On the inbound code path, the Inbound Flow Head Hash Table is also designed to 
allow concurrent access. The link lists of Inbound Flow Entries are only 
referenced in the event of processing ARP packets and the periodic load 
balancing. There is no per packet reference to the Inbound Flow Entries. Even 
though the link lists are not bounded; the overhead in processing each non-ARP 
packet is always a constant. The processing of ARP packets, both inbound and 
outbound, however, depends on the quantity of links inside the corresponding link 
list. 
On the inbound processing path, filtering is also employed to prevent broadcast 
packets from looping back through the system from other physical adapters. 
Protocol Support
ARP and IP/TCP/UDP flows are load balanced. If the packet is an IP protocol only, 
such as ICMP or IGMP, all data flowing to a specific IP address will go out through 
the same physical adapter. If the packet uses TCP or UDP for the Layer 4 
protocol, the port number is added to the hashing algorithm, so that two separate 
Layer 4 flows can go out through two separate physical adapters to the same IP 
address. 
For example, assume the client has an IP address of 10.0.0.1. All IGMP and 
ICMP traffic will go out the same physical adapter because only the IP address is 
used for the hash. The flow would look something like this: 
IGMP ------> PhysAdapter1 ------> 10.0.0.1
ICMP ------> PhysAdapter1 ------> 10.0.0.1
If the server also sends an TCP and UDP flow to the same 10.0.0.1 address, they 
can be on the same physical adapter as IGMP and ICMP, or on completely 
different physical adapters from ICMP and IGMP. The stream may look like this: 
IGMP ------> PhysAdapter1 ------> 10.0.0.1
ICMP ------> PhysAdapter1 ------> 10.0.0.1
TCP  ------> PhysAdapter1 ------> 10.0.0.1
UDP  ------> PhysAdatper1 ------> 10.0.0.1
Or the streams may look like this: 
IGMP ------> PhysAdapter1 ------> 10.0.0.1
ICMP ------> PhysAdapter1 ------> 10.0.0.1
TCP  ------> PhysAdapter2 ------> 10.0.0.1
UDP  ------> PhysAdatper3 ------> 10.0.0.1










