LKML Archive on
 help / color / Atom feed
From: Leon Romanovsky <>
To: Doug Ledford <>, Jason Gunthorpe <>
Cc: Leon Romanovsky <>,
	Gal Pressman <>,,,
	Mark Zhang <>,
	Yishai Hadas <>
Subject: [PATCH rdma-next v1 00/11] Add Enhanced Connection Established (ECE)
Date: Tue, 10 Mar 2020 11:14:27 +0200
Message-ID: <> (raw)

From: Leon Romanovsky <>

 v1: Dropped field_avail patch in favor of mass conversion to use function
     which already exists in the kernel code.

Enhanced Connection Established or ECE is new negotiation scheme
introduced in IBTA v1.4 to exchange extra information about nodes
capabilities and later negotiate them at the connection establishment

The RDMA-CM messages (REQ, REP, SIDR_REQ and SIDR_REP) were extended
to carry two fields, one new and another gained new functionality:
 * VendorID is a new field that indicates that common subset of vendor
   option bits are supported as indicated by that VendorID.
 * AttributeModifier already exists, but overloaded to indicate which
   vendor options are supported by this VendorID.

This is kernel part of such functionality which is responsible to get data
from librdmacm and properly create and handle RDMA-CM messages.


Leon Romanovsky (11):
  RDMA/cm: Add Enhanced Connection Establishment (ECE) bits
  RDMA/mlx4: Delete duplicated offsetofend implementation
  RDMA/efa: Use in-kernel offsetofend() to check field availability
  RDMA/mlx5: Use offsetofend() instead of duplicated variant
  RDMA/cm: Delete not implemented CM peer to peer communication
  RDMA/uapi: Add ECE definitions to UCMA
  RDMA/ucma: Extend ucma_connect to receive ECE parameters
  RDMA/ucma: Deliver ECE parameters through UCMA events
  RDMA/cm: Send and receive ECE parameter over the wire
  RDMA/cma: Connect ECE to rdma_accept
  RDMA/cma: Provide ECE reject reason

 drivers/infiniband/core/cm.c          | 48 ++++++++++++++++++------
 drivers/infiniband/core/cma.c         | 54 ++++++++++++++++++++++++---
 drivers/infiniband/core/cma_priv.h    |  1 +
 drivers/infiniband/core/ucma.c        | 40 ++++++++++++++++----
 drivers/infiniband/hw/efa/efa_verbs.c |  7 +---
 drivers/infiniband/hw/mlx4/main.c     |  9 ++---
 drivers/infiniband/hw/mlx5/main.c     | 42 ++++++++++-----------
 drivers/infiniband/hw/mlx5/mlx5_ib.h  | 16 +++-----
 include/rdma/ib_cm.h                  | 11 +++++-
 include/rdma/ibta_vol1_c12.h          |  6 +++
 include/rdma/rdma_cm.h                | 28 ++++++++++++--
 include/uapi/rdma/rdma_user_cm.h      | 15 +++++++-
 12 files changed, 203 insertions(+), 74 deletions(-)


             reply index

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-10  9:14 Leon Romanovsky [this message]
2020-03-13 13:53 ` Jason Gunthorpe
2020-03-13 14:00   ` Leon Romanovsky

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:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \ \ \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

LKML Archive on

Archives are clonable:
	git clone --mirror lkml/git/0.git
	git clone --mirror lkml/git/1.git
	git clone --mirror lkml/git/2.git
	git clone --mirror lkml/git/3.git
	git clone --mirror lkml/git/4.git
	git clone --mirror lkml/git/5.git
	git clone --mirror lkml/git/6.git
	git clone --mirror lkml/git/7.git
	git clone --mirror lkml/git/8.git
	git clone --mirror lkml/git/9.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ \
	public-inbox-index lkml

Example config snippet for mirrors

Newsgroup available over NNTP:

AGPL code for this site: git clone