Message ID | 20200413141538.935574-1-leon@kernel.org (mailing list archive) |
---|---|
Headers | show |
Series | Add Enhanced Connection Established (ECE) | expand |
On Mon, Apr 13, 2020 at 05:15:31PM +0300, Leon Romanovsky wrote: > From: Leon Romanovsky <leonro@mellanox.com> > > Changelog: > v2: > * Rebased on latest rdma-next and removed already accepted patches. > * Updated all rdma_reject in-kernel users to provide reject reason. > v1: Dropped field_avail patch in favor of mass conversion to use function > which already exists in the kernel code. > https://lore.kernel.org/lkml/20200310091438.248429-1-leon@kernel.org > v0: https://lore.kernel.org/lkml/20200305150105.207959-1-leon@kernel.org > > 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 > phase. > > 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. > > Thanks > > Leon Romanovsky (7): > RDMA/cm: Add Enhanced Connection Establishment (ECE) bits > 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 PR: https://github.com/linux-rdma/rdma-core/pull/745 Thanks
From: Leon Romanovsky <leonro@mellanox.com> Changelog: v2: * Rebased on latest rdma-next and removed already accepted patches. * Updated all rdma_reject in-kernel users to provide reject reason. v1: Dropped field_avail patch in favor of mass conversion to use function which already exists in the kernel code. https://lore.kernel.org/lkml/20200310091438.248429-1-leon@kernel.org v0: https://lore.kernel.org/lkml/20200305150105.207959-1-leon@kernel.org 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 phase. 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. Thanks Leon Romanovsky (7): RDMA/cm: Add Enhanced Connection Establishment (ECE) bits 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 | 41 ++++++++++++++++--- drivers/infiniband/core/cma.c | 52 ++++++++++++++++++++++--- drivers/infiniband/core/cma_priv.h | 1 + drivers/infiniband/core/ucma.c | 40 +++++++++++++++---- drivers/infiniband/ulp/isert/ib_isert.c | 4 +- drivers/infiniband/ulp/srpt/ib_srpt.c | 2 +- drivers/nvme/target/rdma.c | 2 +- include/rdma/ib_cm.h | 10 ++++- include/rdma/ibta_vol1_c12.h | 6 +++ include/rdma/rdma_cm.h | 18 ++++++++- include/uapi/rdma/rdma_user_cm.h | 15 ++++++- net/rds/ib_cm.c | 2 +- 12 files changed, 167 insertions(+), 26 deletions(-) -- 2.25.2