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 0/9] Add Enhanced Connection Established (ECE)
Date: Thu,  5 Mar 2020 17:00:56 +0200
Message-ID: <> (raw)

From: Leon Romanovsky <>

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 (9):
  RDMA/cm: Add Enhanced Connection Establishment (ECE) bits
  RDMA: Promote field_avail() macro to be general code
  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 |  3 --
 drivers/infiniband/hw/mlx4/main.c     |  7 +---
 drivers/infiniband/hw/mlx5/main.c     | 41 ++++++++++----------
 drivers/infiniband/hw/mlx5/mlx5_ib.h  | 18 ++++-----
 include/linux/kernel.h                | 18 +++++++++
 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 +++++++-
 13 files changed, 219 insertions(+), 71 deletions(-)


                 reply index

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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