1
0
Fork 0
alistair23-linux/drivers/net
Jiri Pirko 3d249d4ca7 net: introduce ethernet teaming device
This patch introduces new network device called team. It supposes to be
very fast, simple, userspace-driven alternative to existing bonding
driver.

Userspace library called libteam with couple of demo apps is available
here:
https://github.com/jpirko/libteam
Note it's still in its dipers atm.

team<->libteam use generic netlink for communication. That and rtnl
suppose to be the only way to configure team device, no sysfs etc.

Python binding of libteam was recently introduced.
Daemon providing arpmon/miimon active-backup functionality will be
introduced shortly. All what's necessary is already implemented in
kernel team driver.

v7->v8:
	- check ndo_ndo_vlan_rx_[add/kill]_vid functions before calling
	  them.
	- use dev_kfree_skb_any() instead of dev_kfree_skb()

v6->v7:
	- transmit and receive functions are not checked in hot paths.
	  That also resolves memory leak on transmit when no port is
	  present

v5->v6:
	- changed couple of _rcu calls to non _rcu ones in non-readers

v4->v5:
	- team_change_mtu() uses team->lock while travesing though port
	  list
	- mac address changes are moved completely to jurisdiction of
	  userspace daemon. This way the daemon can do FOM1, FOM2 and
	  possibly other weird things with mac addresses.
	  Only round-robin mode sets up all ports to bond's address then
	  enslaved.
	- Extended Kconfig text

v3->v4:
	- remove redundant synchronize_rcu from __team_change_mode()
	- revert "set and clear of mode_ops happens per pointer, not per
	  byte"
	- extend comment of function __team_change_mode()

v2->v3:
	- team_change_mtu() uses rcu version of list traversal to unwind
	- set and clear of mode_ops happens per pointer, not per byte
	- port hashlist changed to be embedded into team structure
	- error branch in team_port_enter() does cleanup now
	- fixed rtln->rtnl

v1->v2:
	- modes are made as modules. Makes team more modular and
	  extendable.
	- several commenters' nitpicks found on v1 were fixed
	- several other bugs were fixed.
	- note I ignored Eric's comment about roundrobin port selector
	  as Eric's way may be easily implemented as another mode (mode
	  "random") in future.

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2011-11-13 16:10:10 -05:00
..
appletalk
arcnet drivers/net: Kconfig & Makefile cleanup 2011-08-27 00:58:49 -07:00
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-11-07 10:55:33 -08:00
caif caif-hsi: Added recovery check of CA wake status. 2011-10-19 03:25:43 -04:00
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2011-10-25 13:25:22 +02:00
cris
ethernet bnx2x: update driver version to 1.70.35-0 2011-11-13 16:03:57 -05:00
fddi skfp: Fix SysKonnect FDDI driver compile issues 2011-08-27 00:58:23 -07:00
hamradio
hippi hippi: Move the HIPPI driver 2011-08-27 00:58:30 -07:00
irda Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2011-11-03 13:28:14 -07:00
phy drivers/net: Add module.h to drivers who were implicitly using it 2011-10-31 19:31:07 -04:00
plip plip: Move the PLIP driver 2011-08-27 00:58:33 -07:00
ppp Merge branch 'master' of ra.kernel.org:/pub/scm/linux/kernel/git/davem/net 2011-10-24 18:18:09 -04:00
slip slip: Move the SLIP drivers 2011-08-27 00:58:36 -07:00
team net: introduce ethernet teaming device 2011-11-13 16:10:10 -05:00
tokenring drivers/net: Kconfig & Makefile cleanup 2011-08-27 00:58:49 -07:00
usb Fix incorrect usage of NET_IP_ALIGN 2011-11-08 12:37:07 -05:00
vmxnet3 drivers/net: Add module.h to drivers who were implicitly using it 2011-10-31 19:31:07 -04:00
wan wan: make LAPB callbacks const 2011-09-16 19:20:20 -04:00
wimax drivers/net: Add moduleparam.h to drivers as required. 2011-10-31 19:31:09 -04:00
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-11-07 10:55:33 -08:00
xen-netback Merge branch 'stable/vmalloc-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2011-11-06 18:31:36 -08:00
Kconfig net: introduce ethernet teaming device 2011-11-13 16:10:10 -05:00
LICENSE.SRC
Makefile net: introduce ethernet teaming device 2011-11-13 16:10:10 -05:00
Space.c
dummy.c
eql.c
ifb.c
loopback.c
macvlan.c macvlan: receive multicast with local address 2011-11-04 17:39:32 -04:00
macvtap.c macvtap: Fix the minor device number allocation 2011-10-21 02:53:07 -04:00
mdio.c
mii.c
netconsole.c netconsole: enable netconsole can make net_device refcnt incorrent 2011-10-18 23:55:29 -04:00
rionet.c drivers/net/rionet.c: fix ethernet address macros for LE platforms 2011-11-02 16:07:01 -07:00
sb1000.c
sungem_phy.c
tun.c
veth.c net: better pcpu data alignment 2011-11-08 15:10:59 -05:00
virtio_net.c virtio-net: Use virtio_config_val() for retrieving config 2011-11-02 11:40:58 +10:30
xen-netfront.c net: add skb frag size accessors 2011-10-19 03:10:46 -04:00