The purpose of the Team driver is to provide a mechanism to team multiple NICs (ports) into one logical one (teamdev) at L2 layer. The process is called "channel bonding", "Ethernet bonding", "channel teaming", "link aggregation", etc. This is already implemented in the Linux kernel by the bonding driver.
One thing to note is that Team driver project does try to provide the similar functionality as the bonding driver, however architecturally it is quite different from bonding driver. Team driver is modular, userspace driven, very lean and efficient, and it does have some distinct advantages over bonding. The way Team is configured differs dramatically from the way bonding is.
Note that there is no performance overhead added with the fact that the control logic happens in userspace. Packets never leave kernel.
Copyright (C) 2011-2015 Jiri Pirko email@example.com
libteam is distributed under GNU Lesser General Public License version 2.1. See the file "COPYING" in the source distribution for information on terms & conditions for accessing and otherwise using libteam.