From mboxrd@z Thu Jan 1 00:00:00 1970 From: Or Gerlitz Subject: Re: [PATCH 00/10] Add HA and LAG support to mlx4 RoCE and SRIOV services Date: Tue, 3 Feb 2015 16:59:19 +0200 Message-ID: <54D0E247.5010504@mellanox.com> References: <1422974919-28084-1-git-send-email-ogerlitz@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Cc: , Roland Dreier , Amir Vadai , Tal Alon , Jiri Pirko , Jay Vosburgh To: "David S. Miller" Return-path: Received: from mail-am1on0063.outbound.protection.outlook.com ([157.56.112.63]:38315 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933974AbbBCPDk (ORCPT ); Tue, 3 Feb 2015 10:03:40 -0500 In-Reply-To: <1422974919-28084-1-git-send-email-ogerlitz@mellanox.com> Sender: netdev-owner@vger.kernel.org List-ID: On 2/3/2015 4:48 PM, Or Gerlitz wrote: > Hi Dave, > > This series takes advanges of bonding mlx4 Ethernet devices to support > a model of High-Availability and Link Aggregation for more environments. +Jay and Jiri, sorry for not adding you guys, guess you are subscribed... > > 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(-) >