netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v3 00/26] switchdev: spring cleanup
@ 2015-04-02  8:09 sfeldma
  2015-04-02  8:09 ` [PATCH net-next v3 01/26] switchdev: introduce get/set attrs ops sfeldma
                   ` (26 more replies)
  0 siblings, 27 replies; 35+ messages in thread
From: sfeldma @ 2015-04-02  8:09 UTC (permalink / raw)
  To: netdev; +Cc: jiri, roopa, linux, f.fainelli, sridhar.samudrala, ronen.arad

From: Scott Feldman <sfeldma@gmail.com>

v3:

Move to two-phase prepare-commit transaction model for attr set and obj add.
Driver gets a change in prepare phase to NACK transaction if lack of resources
or support in device.

v2:

Address review comments:

 - [Jiri] squash a few related patches
 - [Roopa] don't remove NETIF_F_HW_SWITCH_OFFLOAD
 - [Roopa] address VLAN setlink/dellink
 - [Ronen] print warning is attr set revert fails

Not address:

 - Using something other than "swdev_" prefix
 - Vendor extentions

The patch set grew a bit to not only support port attr get/set but also add
support for port obj add/del.  Example of port objs are VLAN, FDB entries, and
FIB entries.  The VLAN support now allows the swdev driver to get VLAN ranges
and flags like PVID and "untagged".  Sridhar will be adding FDB obj support
in follow-on patch.


v1:

The main theme of this patch set is to cleanup swdev in preparation for
new features or fixes to be added soon.  We have a pretty good idea now how
to handle stacked drivers in swdev, but there where some loose ends.  For
example, if a set failed in the middle of walking the lower devs, we would
leave the system in an undefined state...there was no way to recover back to
the previous state.  Speaking of sets, also recognize a pattern that most
swdev API accesses are gets or sets of port attributes, so go ahead and make
port attr get/set the central swdev API, and convert everything that is
set-ish/get-ish to this new API.

Features/fixes that should follow from this cleanup:

 - solve the duplicate pkt forwarding issue
 - get/set bridge attrs, like ageing_time, from/to device
 - get/set more bridge port attrs from/to device

There are some rename cleanups tagging along at the end, to give swdev
consistent naming.

And finally, some much needed updates to the switchdev.txt documentation to
hopefully capture the state-of-the-art of swdev.  Hopefully, we can do a better
job keeping this document up-to-date.

Tested with rocker, of course, to make sure nothing functional broke.  There
are a couple minor tweaks to DSA code for getting switch ID and setting STP
updates to use new API, but not expecting amy breakage there.


Scott Feldman (26):
  switchdev: introduce get/set attrs ops
  switchdev: convert parent_id_get to swdev attr get
  switchdev: convert STP update to swdev attr set
  switchdev: add bridge port flags attr
  rocker: use swdev get/set attr for bridge port flags
  switchdev: introduce swdev add/del obj ops
  switchdev: add port vlan obj
  rocker: use swdev add/del obj for bridge port vlans
  switchdev: add new swdev bridge setlink
  rocker: cut over to new swdev_port_bridge_setlink
  bonding: cut over to new swdev_port_bridge_setlink
  team: cut over to new swdev_port_bridge_setlink
  switchdev: remove old netdev_switch_port_bridge_setlink
  switchdev: add new swdev_port_bridge_dellink
  rocker: cut over to new swdev_port_bridge_dellink
  bonding: cut over to new swdev_port_bridge_dellink
  team: cut over to new swdev_port_bridge_dellink
  switchdev: remove unused netdev_switch_port_bridge_dellink
  switchdev: add new swdev_port_bridge_getlink
  rocker: cut over to new swdev_port_bridge_getlink
  bonding: cut over to new swdev_port_bridge_getlink
  team: cut over to new swdev_port_bridge_getlink
  switchdev: rename netdev_switch_fib_* to swdev_fib_*
  switchdev: rename netdev_switch_notifier_* to swdev_notifier_*
  switchdev: convert swdev_fib_ipv4_add/del over to
    swdev_port_obj_add/del
  switchdev: bring documentation up-to-date

 Documentation/networking/switchdev.txt |  420 +++++++++++++++++++----
 drivers/net/bonding/bond_main.c        |    5 +-
 drivers/net/ethernet/rocker/rocker.c   |  227 +++++++-----
 drivers/net/team/team.c                |    5 +-
 include/net/switchdev.h                |  194 +++++++----
 net/bridge/br.c                        |   22 +-
 net/bridge/br_netlink.c                |   24 +-
 net/bridge/br_stp.c                    |    6 +-
 net/core/net-sysfs.c                   |   10 +-
 net/core/rtnetlink.c                   |    9 +-
 net/dsa/slave.c                        |   38 ++-
 net/ipv4/fib_trie.c                    |   38 +--
 net/switchdev/switchdev.c              |  587 ++++++++++++++++++++++++--------
 13 files changed, 1150 insertions(+), 435 deletions(-)

-- 
1.7.10.4

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

end of thread, other threads:[~2015-04-06 21:58 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-02  8:09 [PATCH net-next v3 00/26] switchdev: spring cleanup sfeldma
2015-04-02  8:09 ` [PATCH net-next v3 01/26] switchdev: introduce get/set attrs ops sfeldma
2015-04-02  9:09   ` Florian Fainelli
2015-04-02 17:52     ` Scott Feldman
2015-04-02 18:16       ` Jiri Pirko
2015-04-04  1:44         ` roopa
2015-04-02  8:09 ` [PATCH net-next v3 02/26] switchdev: convert parent_id_get to swdev attr get sfeldma
2015-04-02  8:09 ` [PATCH net-next v3 03/26] switchdev: convert STP update to swdev attr set sfeldma
2015-04-02  8:09 ` [PATCH net-next v3 04/26] switchdev: add bridge port flags attr sfeldma
2015-04-02  8:09 ` [PATCH net-next v3 05/26] rocker: use swdev get/set attr for bridge port flags sfeldma
2015-04-02  8:09 ` [PATCH net-next v3 06/26] switchdev: introduce swdev add/del obj ops sfeldma
2015-04-02  8:09 ` [PATCH net-next v3 07/26] switchdev: add port vlan obj sfeldma
2015-04-02  8:09 ` [PATCH net-next v3 08/26] rocker: use swdev add/del obj for bridge port vlans sfeldma
2015-04-02  8:09 ` [PATCH net-next v3 09/26] switchdev: add new swdev bridge setlink sfeldma
2015-04-02  8:09 ` [PATCH net-next v3 10/26] rocker: cut over to new swdev_port_bridge_setlink sfeldma
2015-04-02  8:09 ` [PATCH net-next v3 11/26] bonding: " sfeldma
2015-04-02  8:09 ` [PATCH net-next v3 12/26] team: " sfeldma
2015-04-02  8:09 ` [PATCH net-next v3 13/26] switchdev: remove old netdev_switch_port_bridge_setlink sfeldma
2015-04-02  8:10 ` [PATCH net-next v3 14/26] switchdev: add new swdev_port_bridge_dellink sfeldma
2015-04-02  8:10 ` [PATCH net-next v3 15/26] rocker: cut over to " sfeldma
2015-04-02  8:10 ` [PATCH net-next v3 16/26] bonding: " sfeldma
2015-04-02  8:10 ` [PATCH net-next v3 17/26] team: " sfeldma
2015-04-02  8:10 ` [PATCH net-next v3 18/26] switchdev: remove unused netdev_switch_port_bridge_dellink sfeldma
2015-04-02  8:10 ` [PATCH net-next v3 19/26] switchdev: add new swdev_port_bridge_getlink sfeldma
2015-04-04 16:56   ` Arad, Ronen
2015-04-06 21:13     ` Scott Feldman
2015-04-06 21:58       ` Arad, Ronen
2015-04-02  8:10 ` [PATCH net-next v3 20/26] rocker: cut over to " sfeldma
2015-04-02  8:10 ` [PATCH net-next v3 21/26] bonding: " sfeldma
2015-04-02  8:10 ` [PATCH net-next v3 22/26] team: " sfeldma
2015-04-02  8:10 ` [PATCH net-next v3 23/26] switchdev: rename netdev_switch_fib_* to swdev_fib_* sfeldma
2015-04-02  8:10 ` [PATCH net-next v3 24/26] switchdev: rename netdev_switch_notifier_* to swdev_notifier_* sfeldma
2015-04-02  8:10 ` [PATCH net-next v3 25/26] switchdev: convert swdev_fib_ipv4_add/del over to swdev_port_obj_add/del sfeldma
2015-04-02  8:10 ` [PATCH net-next v3 26/26] switchdev: bring documentation up-to-date sfeldma
2015-04-02  8:15 ` [PATCH net-next v3 00/26] switchdev: spring cleanup Jiri Pirko

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).