Skip to content

Organize code according to IBTA layout

Leon Romanovsky linux-rdma 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest48 patches 8 repliesIn review
  2. v148 patches 10 repliesSuperseded

Changelog from the cover letter

v1->v2: https://lore.kernel.org/linux-rdma/[email protected]
* Added forgotten CM_FIELD64_LOC().
v0->v1: https://lore.kernel.org/linux-rdma/[email protected]
* Used Jason's macros as a basis for all get/set operation for wire protocol.
* Fixed wrong offsets.
* Grouped all CM related patches in one patchset bomb.
----------------------------------------------------------------------
Hi,

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/48RDMA/cm: Provide private data size to CM usersdrivers/infiniband/core/cm.c include/rdma/ib_cm.h+12 -00 replies
2/48RDMA/srpt: Use private_data_len instead of hardcoded valuedrivers/infiniband/ulp/srpt/ib_srpt.c+1 -10 replies
3/48RDMA/ucma: Mask QPN to be 24 bits according to IBTAdrivers/infiniband/core/cm.c drivers/infiniband/core/ucma.c+5 -20 replies
4/48RDMA/cm: Add SET/GET implementations to hide IBA wire formatdrivers/infiniband/core/cm_msgs.h include/rdma/iba.h+139 -51 reply
5/48RDMA/cm: Request For Communication (REQ) message definitionsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h drivers/infiniband/core/cma.c +2 more+97 -61 reply
6/48RDMA/cm: Message Receipt Acknowledgment (MRA) message definitionsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h include/rdma/ib_cm.h +1 more+11 -40 replies
7/48RDMA/cm: Reject (REJ) message definitionsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h drivers/infiniband/core/cma.c +2 more+17 -80 replies
8/48RDMA/cm: Reply To Request for communication (REP) definitionsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h drivers/infiniband/core/cma.c +2 more+23 -50 replies
9/48RDMA/cm: Ready To Use (RTU) definitionsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h include/rdma/ib_cm.h +1 more+9 -40 replies
10/48RDMA/cm: Request For Communication Release (DREQ) definitionsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h include/rdma/ib_cm.h +1 more+10 -40 replies
11/48RDMA/cm: Reply To Request For Communication Release (DREP) definitionsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h include/rdma/ib_cm.h +1 more+9 -40 replies
12/48RDMA/cm: Load Alternate Path (LAP) definitionsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h include/rdma/ib_cm.h +1 more+29 -40 replies
13/48RDMA/cm: Alternate Path Response (APR) message definitionsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h include/rdma/ib_cm.h +1 more+16 -60 replies
14/48RDMA/cm: Service ID Resolution Request (SIDR_REQ) definitionsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h drivers/infiniband/core/cma.c +2 more+11 -60 replies
15/48RDMA/cm: Service ID Resolution Response (SIDR_REP) definitionsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h drivers/infiniband/core/cma.c +2 more+21 -110 replies
16/48RDMA/cm: Convert QPN and EECN to be u32 variablesdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+35 -840 replies
17/48RDMA/cm: Convert REQ responded resources to the new schemedrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+4 -150 replies
18/48RDMA/cm: Convert REQ initiator depth to the new schemedrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+3 -160 replies
19/48RDMA/cm: Convert REQ remote response timeoutdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+3 -160 replies
20/48RDMA/cm: Simplify QP type to wire protocol translationdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+25 -370 replies
21/48RDMA/cm: Convert REQ flow controldrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+2 -150 replies
22/48RDMA/cm: Convert starting PSN to be u32 variabledrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+12 -360 replies
23/48RDMA/cm: Update REQ local response timeoutdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+4 -160 replies
24/48RDMA/cm: Convert REQ retry count to use new schemedrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+3 -150 replies
25/48RDMA/cm: Update REQ path MTU fielddrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+4 -140 replies
26/48RDMA/cm: Convert REQ RNR retry timeout counterdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+3 -150 replies
27/48RDMA/cm: Convert REQ MAX CM retriesdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+2 -130 replies
28/48RDMA/cm: Convert REQ SRQ fielddrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+2 -130 replies
29/48RDMA/cm: Convert REQ flow label fielddrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+8 -330 replies
30/48RDMA/cm: Convert REQ packet ratedrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+4 -300 replies
31/48RDMA/cm: Convert REQ SL fieldsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+6 -280 replies
32/48RDMA/cm: Convert REQ subnet local fieldsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+5 -280 replies
33/48RDMA/cm: Convert REQ local ack timeoutdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+9 -330 replies
34/48RDMA/cm: Convert MRA MRAed fielddrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+6 -150 replies
35/48RDMA/cm: Convert MRA service timeoutdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+3 -150 replies
36/48RDMA/cm: Update REJ struct to use new schemedrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+9 -300 replies
37/48RDMA/cm: Convert REP target ack delay fielddrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+4 -160 replies
38/48RDMA/cm: Convert REP failover accepted fielddrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+2 -130 replies
39/48RDMA/cm: Convert REP flow control fielddrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+3 -140 replies
40/48RDMA/cm: Convert REP RNR retry count fielddrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+3 -150 replies
41/48RDMA/cm: Convert REP SRQ fielddrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+3 -140 replies
42/48RDMA/cm: Delete unused CM LAP functionsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+0 -1560 replies
43/48RDMA/cm: Convert LAP flow label fielddrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+2 -60 replies
44/48RDMA/cm: Convert LAP fieldsdrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+5 -240 replies
45/48RDMA/cm: Delete unused CM ARP functionsdrivers/infiniband/core/cm.c include/rdma/ib_cm.h+0 -1000 replies
46/48RDMA/cm: Convert SIDR_REP to new schemedrivers/infiniband/core/cm.c drivers/infiniband/core/cm_msgs.h+8 -210 replies
47/48RDMA/cm: Add Enhanced Connection Establishment (ECE) bitsinclude/rdma/ib_cm.h include/rdma/ibta_vol1_c12.h+7 -11 reply
48/48RDMA/cm: Convert private_date accessdrivers/infiniband/core/cm.c+18 -250 replies

Reviews trailers per patch

1 of 48 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchBart Van AsscheLeon Romanovsky
SeriesT-b R-b
1/48
2/48R-b
3/48
4/48
5/48
6/48
7/48
8/48
9/48
10/48
11/48
12/48
13/48
14/48
15/48
16/48
17/48
18/48
19/48
20/48
21/48
22/48
23/48
24/48
25/48
26/48
27/48
28/48
29/48
30/48
31/48
32/48
33/48
34/48
35/48
36/48
37/48
38/48
39/48
40/48
41/48
42/48
43/48
44/48
45/48
46/48
47/48
48/48

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v2 thread

Cover letter [PATCH rdma-rc v2 00/48] Organize code according to IBTA layout

From: Leon Romanovsky <[email protected]>

Changelog:
v1->v2: https://lore.kernel.org/linux-rdma/[email protected]
* Added forgotten CM_FIELD64_LOC().
v0->v1: https://lore.kernel.org/linux-rdma/[email protected]
* Used Jason's macros as a basis for all get/set operation for wire protocol.
* Fixed wrong offsets.
* Grouped all CM related patches in one patchset bomb.
----------------------------------------------------------------------
Hi,

This series continues already started task to clean up CM related code.

Over the years, the IB/core gained a number of anti-patterns which led to mistakes. First and most distracting is spread of hardware specification types (e.g. __beXX) to the core logic. Second, endless copy/paste to access IBTA binary blobs, which made any IBTA extensions not an easy task.
In this series, we add Enhance Connection Establishment bits which were added recently to IBTA and will continue to convert rest of the CM code to propose macros by eliminating __beXX variables from core code.

All IBTA CM declarations are places into new header
file: include/rdma/ibta_vol1_c12.h and the idea that every spec chapter will have separate header file, so we will see immediately the relations between declarations and values.

Thanks

BTW,
1. The whole area near private_data looks sketchy to me and needs separate cleanup.
2. I know that it is more than 15 patches, but they are small and self-contained.

Leon Romanovsky (48):
RDMA/cm: Provide private data size to CM users
RDMA/srpt: Use private_data_len instead of hardcoded value RDMA/ucma: Mask QPN to be 24 bits according to IBTA RDMA/cm: Add SET/GET implementations to hide IBA wire format RDMA/cm: Request For Communication (REQ) message definitions RDMA/cm: Message Receipt Acknowledgment (MRA) message definitions RDMA/cm: Reject (REJ) message definitions
RDMA/cm: Reply To Request for communication (REP) definitions RDMA/cm: Ready To Use (RTU) definitions
RDMA/cm: Request For Communication Release (DREQ) definitions RDMA/cm: Reply To Request For Communication Release (DREP) definitions RDMA/cm: Load Alternate Path (LAP) definitions
RDMA/cm: Alternate Path Response (APR) message definitions RDMA/cm: Service ID Resolution Request (SIDR_REQ) definitions RDMA/cm: Service ID Resolution Response (SIDR_REP) definitions RDMA/cm: Convert QPN and EECN to be u32 variables
RDMA/cm: Convert REQ responded resources to the new scheme RDMA/cm: Convert REQ initiator depth to the new scheme RDMA/cm: Convert REQ remote response timeout
RDMA/cm: Simplify QP type to wire protocol translation RDMA/cm: Convert REQ flow control
RDMA/cm: Convert starting PSN to be u32 variable
RDMA/cm: Update REQ local response timeout
RDMA/cm: Convert REQ retry count to use new scheme RDMA/cm: Update REQ path MTU field
RDMA/cm: Convert REQ RNR retry timeout counter
RDMA/cm: Convert REQ MAX CM retries
RDMA/cm: Convert REQ SRQ field
RDMA/cm: Convert REQ flow label field
RDMA/cm: Convert REQ packet rate
RDMA/cm: Convert REQ SL fields
RDMA/cm: Convert REQ subnet local fields
RDMA/cm: Convert REQ local ack timeout
RDMA/cm: Convert MRA MRAed field
RDMA/cm: Convert MRA service timeout
RDMA/cm: Update REJ struct to use new scheme
RDMA/cm: Convert REP target ack delay field
RDMA/cm: Convert REP failover accepted field
RDMA/cm: Convert REP flow control field
RDMA/cm: Convert REP RNR retry count field
RDMA/cm: Convert REP SRQ field
RDMA/cm: Delete unused CM LAP functions
RDMA/cm: Convert LAP flow label field
RDMA/cm: Convert LAP fields
RDMA/cm: Delete unused CM ARP functions
RDMA/cm: Convert SIDR_REP to new scheme
RDMA/cm: Add Enhanced Connection Establishment (ECE) bits RDMA/cm: Convert private_date access

 drivers/infiniband/core/cm.c          | 554 ++++++++++--------------
 drivers/infiniband/core/cm_msgs.h     | 600 +-------------------------
 drivers/infiniband/core/cma.c         |  11 +-
 drivers/infiniband/core/ucma.c        |   2 +-
 drivers/infiniband/ulp/srpt/ib_srpt.c |   2 +-
 include/rdma/ib_cm.h                  |  55 +--
 include/rdma/iba.h                    | 138 ++++++
 include/rdma/ibta_vol1_c12.h          | 211 +++++++++
 8 files changed, 599 insertions(+), 974 deletions(-)
 create mode 100644 include/rdma/iba.h
 create mode 100644 include/rdma/ibta_vol1_c12.h

--
2.20.1