mbox

[pull,request,net-next,00/10] Mellanox, mlx5 updates 2018-01-08

Message ID 20180109064434.12726-1-saeedm@mellanox.com
State Accepted, archived
Delegated to: David Miller
Headers show

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5-updates-2018-01-08

Message

Saeed Mahameed Jan. 9, 2018, 6:44 a.m. UTC
Hi Dave,

This series includes updates for mlx5 driver, for full information please
see tag log message below.

The series doesn't cause any conflict with Andy's
"net: create dynamic software irq moderation library".  Both merge together
seamlessly.

Please pull and let me know if there's any problem.

Thanks,
Saeed.

---

The following changes since commit f4803f1b73f877a571be4c8e531dfcf190acc691:

  net: tipc: remove unused hardirq.h (2018-01-08 20:59:25 -0500)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5-updates-2018-01-08

for you to fetch changes up to b8a0dbe3a90b2debd72cd9a304eacac55c44e5a4:

  net/mlx5e: E-switch, Add steering drop counters (2018-01-09 07:40:48 +0200)

----------------------------------------------------------------
mlx5-updates-2018-01-08

Four patches from Or that add Hairpin support to mlx5:
===========================================================
From:  Or Gerlitz <ogerlitz@mellanox.com>

We refer the ability of NIC HW to fwd packet received on one port to
the other port (also from a port to itself) as hairpin. The application API
is based
on ingress tc/flower rules set on the NIC with the mirred redirect
action. Other actions can apply to packets during the redirect.

Hairpin allows to offload the data-path of various SW DDoS gateways,
load-balancers, etc to HW. Packets go through all the required
processing in HW (header re-write, encap/decap, push/pop vlan) and
then forwarded, CPU stays at practically zero usage. HW Flow counters
are used by the control plane for monitoring and accounting.

Hairpin is implemented by pairing a receive queue (RQ) to send queue (SQ).
All the flows that share <recv NIC, mirred NIC> are redirected through
the same hairpin pair. Currently, only header-rewrite is supported as a
packet modification action.

I'd like to thanks Elijah Shakkour <elijahs@mellanox.com> for implementing this
functionality
on HW simulator, before it was avail in the FW so the driver code could be
tested early.
===========================================================

From Feras three patches that provide very small changes that allow IPoIB
to support RX timestamping for child interfaces, simply by hooking the mlx5e
timestamping PTP ioctl to IPoIB child interface netdev profile.

One patch from Gal to fix a spilling mistake.

Two patches from Eugenia adds drop counters to VF statistics
to be reported as part of VF statistics in netlink (iproute2) and
implemented them in mlx5 eswitch.

----------------------------------------------------------------
Eugenia Emantayev (2):
      net/core: Add drop counters to VF statistics
      net/mlx5e: E-switch, Add steering drop counters

Feras Daoud (3):
      net/mlx5e: IPoIB, Use correct timestamp in child receive flow
      net/mlx5e: IPoIB, Add PTP ioctl support for child interface
      net/mlx5e: IPoIB, Add ethtool support to get child time stamping parameters

Gal Pressman (1):
      net/mlx5e: IPoIB, Fix spelling mistake "functionts" -> "functions"

Or Gerlitz (4):
      net/mlx5: Add hairpin definitions to the FW API
      net/mlx5: Hairpin pair core object setup
      net/mlx5e: Basic setup of hairpin object
      net/mlx5e: Support offloading TC NIC hairpin flows

 drivers/net/ethernet/mellanox/mlx5/core/en.h       |   1 +
 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c    |   7 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c    | 280 ++++++++++++++++++++-
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c  |  99 +++++++-
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.h  |   7 +
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.h  |   2 +
 .../net/ethernet/mellanox/mlx5/core/fs_counters.c  |   6 +
 .../ethernet/mellanox/mlx5/core/ipoib/ethtool.c    |   1 +
 .../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c  |   3 +-
 .../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.h  |   3 +-
 .../ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c |   7 +
 drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 184 ++++++++++++++
 include/linux/if_link.h                            |   2 +
 include/linux/mlx5/mlx5_ifc.h                      |  43 +++-
 include/linux/mlx5/transobj.h                      |  19 ++
 include/uapi/linux/if_link.h                       |   2 +
 net/core/rtnetlink.c                               |  10 +-
 17 files changed, 649 insertions(+), 27 deletions(-)

Comments

David Miller Jan. 10, 2018, 8:01 p.m. UTC | #1
From: Saeed Mahameed <saeedm@mellanox.com>
Date: Tue,  9 Jan 2018 08:44:24 +0200

> This series includes updates for mlx5 driver, for full information please
> see tag log message below.
> 
> The series doesn't cause any conflict with Andy's
> "net: create dynamic software irq moderation library".  Both merge together
> seamlessly.
> 
> Please pull and let me know if there's any problem.

Pulled, and thanks for letting me know about the irq moderation series
situation, I was indeed worried about that :)