mbox series

[for-next,v2,0/8] RDMA/erdma: Support the RoCEv2 protocol

Message ID 20241211020930.68833-1-boshiyu@linux.alibaba.com (mailing list archive)
Headers show
Series RDMA/erdma: Support the RoCEv2 protocol | expand

Message

Boshi Yu Dec. 11, 2024, 2:09 a.m. UTC
Hi,

This patch series introduces support for the RoCEv2 protocol into the
erdma driver. As the most prevalent RDMA protocol, RoCEv2 is widely
used in the production environment. Given the extensive application of
erdma across various scenarios in the Alibaba Cloud, there has arisen a
requirement for erdma to support the RoCEv2 protocol. Therefore, we update
both the erdma hardware and the erdma driver to accommodate the RoCEv2
protocol.

- #1 adds the device probe logic for the erdma RoCEv2 device.
- #2~#4 implement resource management interfaces required by the erdma
  RoCEv2 device, such as the GID table, PKey and address handle.
- #5~#6 implment the modify QP interface for the erdma RoCEv2 device and
  refactor the code of modify_qp interface to improve readability.
- #7 introduces the query_qp command to obtain several qp attributes
  from the hardware.
- #8 extends the procedure for create_qp, post_send and poll_cq interfaces
  to support UD QPs and UD WRs.

Thanks,
Boshi Yu

---

v2:
 - Patch#1: remove the unnecessary check for device protocol.
 - Patch#1: remove the erdma_device_init_iwarp() and erdma_device_init_rocev2()
   functions, as they are simple and used only once.
 - Patch#4: move the function definitions of erdma_av_to_attr(), erdma_attr_to_av(),
   and erdma_set_av_cfg() to patch#5, where they are used for more than once.
 - Patch#6: remove the declaration of deprecated erdma_modify_qp_rocev2().
 - Patch#6: replace the 'reformat' with 'refactor' in the commit message for clarity.

v1:
  link: https://lore.kernel.org/all/20241126070351.92787-1-boshiyu@linux.alibaba.com/

Boshi Yu (8):
  RDMA/erdma: Probe the erdma RoCEv2 device
  RDMA/erdma: Add GID table management interfaces
  RDMA/erdma: Add the erdma_query_pkey() interface
  RDMA/erdma: Add address handle implementation
  RDMA/erdma: Add erdma_modify_qp_rocev2() interface
  RDMA/erdma: Refactor the code of the modify_qp interface
  RDMA/erdma: Add the query_qp command to the cmdq
  RDMA/erdma: Support UD QPs and UD WRs

 drivers/infiniband/hw/erdma/Kconfig       |   2 +-
 drivers/infiniband/hw/erdma/erdma.h       |   8 +-
 drivers/infiniband/hw/erdma/erdma_cm.c    |  71 +--
 drivers/infiniband/hw/erdma/erdma_cq.c    |  65 +++
 drivers/infiniband/hw/erdma/erdma_hw.h    | 135 +++++-
 drivers/infiniband/hw/erdma/erdma_main.c  |  44 +-
 drivers/infiniband/hw/erdma/erdma_qp.c    | 299 +++++++++---
 drivers/infiniband/hw/erdma/erdma_verbs.c | 524 +++++++++++++++++++---
 drivers/infiniband/hw/erdma/erdma_verbs.h | 166 +++++--
 9 files changed, 1116 insertions(+), 198 deletions(-)