netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v3 0/13] bonding: remove vlan special handling
@ 2013-08-28 16:03 Veaceslav Falico
  2013-08-28 16:03 ` [PATCH net-next v3 01/13] net: rename netdev_upper to netdev_adjacent Veaceslav Falico
                   ` (13 more replies)
  0 siblings, 14 replies; 20+ messages in thread
From: Veaceslav Falico @ 2013-08-28 16:03 UTC (permalink / raw)
  To: netdev
  Cc: Jay Vosburgh, Andy Gospodarek, David S. Miller, Eric Dumazet,
	Jiri Pirko, Alexander Duyck, Cong Wang, Veaceslav Falico

v1: Per Jiri's advice, remove the exported netdev_upper struct to keep it
    inside dev.c only, and instead implement a macro to iterate over the
    list and return only net_device *.
v2: Jiri noted that we need to see every upper device, but not only the
    first level. Modify the netdev_upper logic to include a list of lower
    devices and for both upper/lower lists every device would see both its
    first-level devices and every other devices that is lower/upper of it.
    Also, convert some annoying spamming warnings to pr_debug in
    bond_arp_send_all.
v3: move renaming part completely to patch 1 (did I forget to git add
    before commiting?) and address Jiri's input about comments/style of
    patch 2.

The aim of this patchset is to remove bondings' own vlan handling as much
as possible and replace it with the netdev upper device functionality.

The upper device functionality is extended to include also lower devices
and to have, for each device, a full view of every lower and upper device,
but not only the first-level ones. This might permit in the future to
avoid, for any grouping/teaming/upper/lower devices, to maintain its own
lists of slaves/vlans/etc.

This is achieved by adding a helper function to upper dev list handling -
netdev_upper_get_next_dev(dev, iter), which returns the next device after
the list_head **iter, and sets *iter to the next list_head *. This patchset
also adds netdev_for_each_upper_dev(dev, upper, iter), which iterates
through the whole dev->upper_dev_list, setting upper to the net_device.
The only special treatment of vlans remains in rlb code.

This patchset solves several issues with bonding, simplifies it overall,
RCUify further and exports upper list functions for any other users which
might also want to get rid of its own vlan_lists or slaves.

I'm testing it continuously currently, no issues found, will update on
anything.

CC: Jay Vosburgh <fubar@us.ibm.com>
CC: Andy Gospodarek <andy@greyhouse.net>
CC: "David S. Miller" <davem@davemloft.net>
CC: Eric Dumazet <edumazet@google.com>
CC: Jiri Pirko <jiri@resnulli.us>
CC: Alexander Duyck <alexander.h.duyck@intel.com>
CC: Cong Wang <amwang@redhat.com>
Signed-off-by: Veaceslav Falico <vfalico@redhat.com>

---
 drivers/net/bonding/bond_alb.c  |   75 ++++-----
 drivers/net/bonding/bond_alb.h  |    2 -
 drivers/net/bonding/bond_main.c |  254 ++++++-----------------------
 drivers/net/bonding/bonding.h   |   21 ++-
 include/linux/netdevice.h       |   11 ++
 net/core/dev.c                  |  345 ++++++++++++++++++++++++++++++++-------
 6 files changed, 396 insertions(+), 312 deletions(-)

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2013-08-28 21:25 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-28 16:03 [PATCH net-next v3 0/13] bonding: remove vlan special handling Veaceslav Falico
2013-08-28 16:03 ` [PATCH net-next v3 01/13] net: rename netdev_upper to netdev_adjacent Veaceslav Falico
2013-08-28 16:03 ` [PATCH net-next v3 02/13] net: add lower_dev_list to net_device and make a full mesh Veaceslav Falico
2013-08-28 16:03 ` [PATCH net-next v3 03/13] net: remove search_list from netdev_adjacent Veaceslav Falico
2013-08-28 16:03 ` [PATCH net-next v3 04/13] net: add netdev_upper_get_next_dev_rcu(dev, iter) Veaceslav Falico
2013-08-28 16:03 ` [PATCH net-next v3 05/13] net: add netdev_for_each_upper_dev_rcu() Veaceslav Falico
2013-08-28 16:03 ` [PATCH net-next v3 06/13] bonding: use netdev_upper list in bond_vlan_used Veaceslav Falico
2013-08-28 16:03 ` [PATCH net-next v3 07/13] bonding: make bond_arp_send_all use upper device list Veaceslav Falico
2013-08-28 16:45   ` Vlad Yasevich
2013-08-28 17:23     ` Veaceslav Falico
2013-08-28 18:11       ` Veaceslav Falico
2013-08-28 16:03 ` [PATCH net-next v3 08/13] bonding: convert bond_has_this_ip() to use upper devices Veaceslav Falico
2013-08-28 16:03 ` [PATCH net-next v3 09/13] bonding: use vlan_uses_dev() in __bond_release_one() Veaceslav Falico
2013-08-28 16:03 ` [PATCH net-next v3 10/13] bonding: split alb_send_learning_packets() Veaceslav Falico
2013-08-28 16:04 ` [PATCH net-next v3 11/13] bonding: make alb_send_learning_packets() use upper dev list Veaceslav Falico
2013-08-28 16:04 ` [PATCH net-next v3 12/13] bonding: remove vlan_list/current_alb_vlan Veaceslav Falico
2013-08-28 16:04 ` [PATCH net-next v3 13/13] bonding: pr_debug instead of pr_warn in bond_arp_send_all Veaceslav Falico
2013-08-28 16:15   ` Joe Perches
2013-08-28 16:22     ` Veaceslav Falico
2013-08-28 21:24 ` [PATCH net-next v3 0/13] bonding: remove vlan special handling Veaceslav Falico

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).