From: Jiri Pirko <jiri@resnulli.us>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, idosch@mellanox.com, eladr@mellanox.com,
yotamg@mellanox.com, ogerlitz@mellanox.com, j.vosburgh@gmail.com,
vfalico@gmail.com, gospo@cumulusnetworks.com,
dsa@cumulusnetworks.com, nikolay@cumulusnetworks.com,
pjonnala@broadcom.com, f.fainelli@gmail.com, sfeldma@gmail.com,
john.fastabend@gmail.com, roopa@cumulusnetworks.com,
andrew@lunn.ch
Subject: [patch net-next v3 00/28] bonding/team offload + mlxsw implementation
Date: Thu, 3 Dec 2015 12:12:02 +0100 [thread overview]
Message-ID: <1449141150-8172-1-git-send-email-jiri@resnulli.us> (raw)
From: Jiri Pirko <jiri@mellanox.com>
This patchset introduces needed infrastructure for link aggregation
offload - for both team and bonding. It also implements the offload
in mlxsw driver.
Particulary, this patchset introduces possibility for upper driver
(bond/team/bridge/..) to pass type-specific info down to notifier listeners.
Info is passed along with NETDEV_CHANGEUPPER/NETDEV_PRECHANGEUPPER
notifiers. Listeners (drivers of netdevs being enslaved) can react
accordingly.
Other extension is for run-time use. This patchset introduces
new netdev notifier type - NETDEV_CHANGELOWERSTATE. Along with this
notification, the upper driver (bond/team/bridge/..) can pass some
information about lower device change, particulary link-up and
TX-enabled states. Listeners (drivers of netdevs being enslaved)
can react accordingly.
The last part of the patchset is implementation of LAG offload in mlxsw,
using both previously introduced infrastructre extensions.
Note that bond-speficic (and ugly) NETDEV_BONDING_INFO used by mlx4
can be removed and mlx4 can use the extensions this patchset adds.
I plan to convert it and get rid of NETDEV_BONDING_INFO in
a follow-up patchset.
---
v2->v3:
- one small fix in patch 1
v1->v2:
- added patch 1 and 2 per Andy's request
- couple of more or less cosmetic changes described in couple other patches
Ido Schimmel (2):
net: Check CHANGEUPPER notifier return value
net: Add support for CHANGEUPPER notifier error injection
Jiri Pirko (26):
bonding: add 802.3ad support for 100G speeds
net: add netif_is_team_master helper
net: add netif_is_team_port helper
net: add netif_is_lag_master helper
net: add netif_is_lag_port helper
net: propagate upper priv via netdev_master_upper_dev_link
net: add possibility to pass information about upper device via
notifier
net: add info struct for LAG changeupper
team: fill-up LAG changeupper info struct and pass it along
bonding: fill-up LAG changeupper info struct and pass it along
net: introduce change lower state notifier
net: introduce lower state changed info structure for LAG lowers
team: rtnl_lock for options set
team: implement lower state change propagation
bonding: allow notifications for bond_set_slave_link_state
bonding: implement lower state change propagation
bonding: set inactive flags on release
mlxsw: spectrum: Add set_rx_mode ndo stub
mlxsw: core: Add support for packets received from LAG port
mlxsw: pci: Implement LAG processing for received packets
mlxsw: reg: Add link aggregation configuration registers definitions
mlxsw: reg: Add definition of LAG unicast record for SFD register
mlxsw: reg: Add definition of LAG unicast record for SFN register
mlxsw: spectrum: Implement LAG port join/leave
mlxsw: spectrum: Implement FDB add/remove/dump for LAG
mlxsw: spectrum: Implement LAG tx enabled lower state change
.../fault-injection/notifier-error-inject.txt | 1 +
drivers/net/bonding/bond_3ad.c | 11 +-
drivers/net/bonding/bond_main.c | 111 ++++--
drivers/net/ethernet/mellanox/mlxsw/core.c | 79 ++++-
drivers/net/ethernet/mellanox/mlxsw/core.h | 14 +-
drivers/net/ethernet/mellanox/mlxsw/pci.c | 17 +-
drivers/net/ethernet/mellanox/mlxsw/pci.h | 4 +-
drivers/net/ethernet/mellanox/mlxsw/reg.h | 394 ++++++++++++++++++++-
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 370 ++++++++++++++++++-
drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 35 +-
.../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 182 ++++++++--
drivers/net/team/team.c | 55 ++-
drivers/net/team/team_mode_activebackup.c | 1 +
drivers/net/team/team_mode_broadcast.c | 1 +
drivers/net/team/team_mode_loadbalance.c | 1 +
drivers/net/team/team_mode_random.c | 1 +
drivers/net/team/team_mode_roundrobin.c | 1 +
drivers/net/vrf.c | 2 +-
include/linux/if_team.h | 1 +
include/linux/netdevice.h | 56 ++-
include/net/bonding.h | 39 +-
lib/netdev-notifier-error-inject.c | 1 +
net/batman-adv/hard-interface.c | 3 +-
net/bridge/br_if.c | 2 +-
net/core/dev.c | 51 ++-
net/openvswitch/vport-netdev.c | 2 +-
26 files changed, 1288 insertions(+), 147 deletions(-)
--
1.9.3
next reply other threads:[~2015-12-03 11:12 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-03 11:12 Jiri Pirko [this message]
2015-12-03 11:12 ` [patch net-next v3 01/28] net: Check CHANGEUPPER notifier return value Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 02/28] net: Add support for CHANGEUPPER notifier error injection Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 03/28] bonding: add 802.3ad support for 100G speeds Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 04/28] net: add netif_is_team_master helper Jiri Pirko
2015-12-03 12:46 ` Eric Dumazet
2015-12-03 13:49 ` Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 05/28] net: add netif_is_team_port helper Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 06/28] net: add netif_is_lag_master helper Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 07/28] net: add netif_is_lag_port helper Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 08/28] net: propagate upper priv via netdev_master_upper_dev_link Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 09/28] net: add possibility to pass information about upper device via notifier Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 10/28] net: add info struct for LAG changeupper Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 11/28] team: fill-up LAG changeupper info struct and pass it along Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 12/28] bonding: " Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 13/28] net: introduce change lower state notifier Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 14/28] net: introduce lower state changed info structure for LAG lowers Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 15/28] team: rtnl_lock for options set Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 16/28] team: implement lower state change propagation Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 17/28] bonding: allow notifications for bond_set_slave_link_state Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 18/28] bonding: implement lower state change propagation Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 19/28] bonding: set inactive flags on release Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 20/28] mlxsw: spectrum: Add set_rx_mode ndo stub Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 21/28] mlxsw: core: Add support for packets received from LAG port Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 22/28] mlxsw: pci: Implement LAG processing for received packets Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 23/28] mlxsw: reg: Add link aggregation configuration registers definitions Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 24/28] mlxsw: reg: Add definition of LAG unicast record for SFD register Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 25/28] mlxsw: reg: Add definition of LAG unicast record for SFN register Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 26/28] mlxsw: spectrum: Implement LAG port join/leave Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 27/28] mlxsw: spectrum: Implement FDB add/remove/dump for LAG Jiri Pirko
2015-12-03 11:12 ` [patch net-next v3 28/28] mlxsw: spectrum: Implement LAG tx enabled lower state change Jiri Pirko
2015-12-03 16:51 ` [patch net-next v3 00/28] bonding/team offload + mlxsw implementation David Miller
2015-12-03 16:54 ` Jiri Pirko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1449141150-8172-1-git-send-email-jiri@resnulli.us \
--to=jiri@resnulli.us \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=dsa@cumulusnetworks.com \
--cc=eladr@mellanox.com \
--cc=f.fainelli@gmail.com \
--cc=gospo@cumulusnetworks.com \
--cc=idosch@mellanox.com \
--cc=j.vosburgh@gmail.com \
--cc=john.fastabend@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=nikolay@cumulusnetworks.com \
--cc=ogerlitz@mellanox.com \
--cc=pjonnala@broadcom.com \
--cc=roopa@cumulusnetworks.com \
--cc=sfeldma@gmail.com \
--cc=vfalico@gmail.com \
--cc=yotamg@mellanox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox