linux/drivers/net/bonding
Jay Vosburgh f35188faa0 bonding: change test for presence of VLANs
After commit ad1afb0039
("vlan_dev: VLAN 0 should be treated as "no vlan tag" (802.1p packet)")
it is now regular practice for a VLAN "add vid" for VLAN 0 to
arrive prior to any VLAN registration or creation of a vlan_group.

	This patch updates the bonding code that tests for the presence
of VLANs configured above bonding.  The new logic tests for bond->vlgrp
to determine if a registration has occured, instead of testing that
bonding's internal vlan_list is empty.

	The old code would panic when vlan_list was not empty, but
vlgrp was still NULL (because only an "add vid" for VLAN 0 had occured).

	Bonding still adds VLAN 0 to its internal list so that 802.1p
frames are handled correctly on transmit when non-VLAN accelerated
slaves are members of the bond.  The test against bond->vlan_list
remains in bond_dev_queue_xmit for this reason.

	Modification to the bond->vlgrp now occurs under lock (in
addition to RTNL), because not all inspections of it occur under RTNL.

	Additionally, because 8021q will never issue a "kill vid" for
VLAN 0, there is now logic in bond_uninit to release any remaining
entries from vlan_list.

Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Cc: Pedro Garcia <pedro.netdev@dondevamos.com>
Cc: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-07-22 14:14:46 -07:00
..
bond_3ad.c
bond_3ad.h
bond_alb.c bonding: change test for presence of VLANs 2010-07-22 14:14:46 -07:00
bond_alb.h
bond_ipv6.c bonding: fix bond_inet6addr_event() 2010-07-19 09:34:31 -07:00
bond_main.c bonding: change test for presence of VLANs 2010-07-22 14:14:46 -07:00
bond_sysfs.c bonding: fix a buffer overflow in bonding_show_queue_id. 2010-07-14 18:24:54 -07:00
bonding.h bonding: allow user-controlled output slave selection 2010-06-05 02:23:17 -07:00
Makefile