netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] Add HA and LAG support to mlx4 RoCE and SRIOV services
@ 2015-02-03 14:48 Or Gerlitz
  2015-02-03 14:48 ` [PATCH net-next 01/10] net/core: Add event for a change in slave state Or Gerlitz
                   ` (12 more replies)
  0 siblings, 13 replies; 16+ messages in thread
From: Or Gerlitz @ 2015-02-03 14:48 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev, Roland Dreier, Amir Vadai, Tal Alon, Or Gerlitz

Hi Dave, 

This series takes advanges of bonding mlx4 Ethernet devices to support 
a model of High-Availability and Link Aggregation for more environments.

The mlx4 driver reacts on netdev events generated by bonding when
slave state changes happen by programming a HW V2P (Virt-to-Phys) 
port table. Bonding was extended to expose these state changes 
through netdev events. 

When an mlx4 interface such as the mlx4 IB/RoCE driver is subject to 
this policy, QPs are created over virtual ports which are mapped 
to one of the two physical ports. When a failure happens, the 
re-programming of the V2P table allows traffic to keep flowing. 

The mlx4 Ethernet driver interfaces are not subject to this
policy and act as usual.

A 2nd use-case for this model would be to add HA and Link Aggregation
support to single ported mlx4 Ethernet VFs. In this case, the PF Ethernet
intrfaces are bonded, all the VFs see single port devices (which is
supported already today), and VF QPs are subject to V2P. 

Moni and Or.

Moni Shoua (10):
  net/core: Add event for a change in slave state
  net/bonding: Move slave state changes to a helper function
  net/bonding: Notify state change on slaves
  net/mlx4_core: Port aggregation low level interface
  net/mlx4_core: Port aggregation upper layer interface
  net/mlx4_en: Port aggregation configuration
  IB/mlx4: Reuse mlx4_mac_to_u64()
  IB/mlx4: Add port aggregation support
  IB/mlx4: Create mirror flows in port aggregation mode
  IB/mlx4: Load balance ports in port aggregation mode

 drivers/infiniband/hw/mlx4/ah.c                    |    1 +
 drivers/infiniband/hw/mlx4/main.c                  |  161 ++++++++++++++++--
 drivers/infiniband/hw/mlx4/mlx4_ib.h               |   17 ++-
 drivers/infiniband/hw/mlx4/qp.c                    |   31 +++--
 drivers/net/bonding/bond_main.c                    |  106 +++++++++---
 drivers/net/ethernet/mellanox/mlx4/cmd.c           |    9 +
 drivers/net/ethernet/mellanox/mlx4/en_main.c       |    8 +
 drivers/net/ethernet/mellanox/mlx4/en_netdev.c     |  176 ++++++++++++++++++++
 drivers/net/ethernet/mellanox/mlx4/en_resources.c  |    8 +-
 drivers/net/ethernet/mellanox/mlx4/fw.c            |   56 ++++++-
 drivers/net/ethernet/mellanox/mlx4/intf.c          |   54 ++++++
 drivers/net/ethernet/mellanox/mlx4/main.c          |   89 ++++++++++
 drivers/net/ethernet/mellanox/mlx4/mlx4.h          |    3 +
 drivers/net/ethernet/mellanox/mlx4/mlx4_en.h       |    5 +
 drivers/net/ethernet/mellanox/mlx4/qp.c            |    2 +
 .../net/ethernet/mellanox/mlx4/resource_tracker.c  |    3 +
 include/linux/mlx4/cmd.h                           |    7 +
 include/linux/mlx4/device.h                        |   11 +-
 include/linux/mlx4/driver.h                        |   19 ++
 include/linux/mlx4/qp.h                            |    1 +
 include/linux/netdevice.h                          |   15 ++
 include/net/bonding.h                              |   17 ++
 net/core/dev.c                                     |   20 +++
 net/core/rtnetlink.c                               |    1 +
 24 files changed, 756 insertions(+), 64 deletions(-)

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

end of thread, other threads:[~2015-02-05  0:14 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-03 14:48 [PATCH 00/10] Add HA and LAG support to mlx4 RoCE and SRIOV services Or Gerlitz
2015-02-03 14:48 ` [PATCH net-next 01/10] net/core: Add event for a change in slave state Or Gerlitz
2015-02-03 14:48 ` [PATCH net-next 02/10] net/bonding: Move slave state changes to a helper function Or Gerlitz
2015-02-03 14:48 ` [PATCH net-next 03/10] net/bonding: Notify state change on slaves Or Gerlitz
2015-02-03 16:09   ` Nikolay Aleksandrov
2015-02-03 17:17     ` Moni Shoua
2015-02-03 14:48 ` [PATCH net-next 04/10] net/mlx4_core: Port aggregation low level interface Or Gerlitz
2015-02-03 14:48 ` [PATCH net-next 05/10] net/mlx4_core: Port aggregation upper layer interface Or Gerlitz
2015-02-03 14:48 ` [PATCH net-next 06/10] net/mlx4_en: Port aggregation configuration Or Gerlitz
2015-02-03 14:48 ` [PATCH 07/10] IB/mlx4: reuse mlx4_mac_to_u64() Or Gerlitz
2015-02-03 14:48 ` [PATCH net-next 07/10] IB/mlx4: Reuse mlx4_mac_to_u64() Or Gerlitz
2015-02-03 14:48 ` [PATCH net-next 08/10] IB/mlx4: Add port aggregation support Or Gerlitz
2015-02-03 14:48 ` [PATCH net-next 09/10] IB/mlx4: Create mirror flows in port aggregation mode Or Gerlitz
2015-02-03 14:48 ` [PATCH net-next 10/10] IB/mlx4: Load balance ports " Or Gerlitz
2015-02-03 14:59 ` [PATCH 00/10] Add HA and LAG support to mlx4 RoCE and SRIOV services Or Gerlitz
2015-02-05  0:14 ` David Miller

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