Unverified Commit ae52f9c5 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!6684 infiniband/hw/hiroce3: Add Huawei Intelligent Network Card RDMA Driver

Merge Pull Request from: @ci-robot 
 
PR sync from: Shuai Wu <wushuai51@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/JYQQHXWW4WX7GBALUHAGAMHYLGTFKTYM/ 

The RDMA driver supports the following features:
Supports Huawei SP600 series NICs;
Supports RoCEv2;
Supports RoCE UC, RC, and UD local switching;
Supports RoCE MR, PD, CQ, QoS, QP, and SRQ management;
Supports RoCE congestion control;
Supports RoCE Bond;
Supports RoCE FLR;
Supports RoCE entry specifications;
Supports RoCE error detection and reporting;

Shuai Wu (2):
  net/ethernet/huawei/hinic3: Add the CQM on which the RDMA depends
  infiniband/hw/hiroce3: Add Huawei Intelligent Network Card RDMA Driver

 
https://gitee.com/openeuler/kernel/issues/I9H643 
 
Link:https://gitee.com/openeuler/kernel/pulls/6684

 

Reviewed-by: default avatarYue Haibing <yuehaibing@huawei.com>
Reviewed-by: default avatarLiu Chao <liuchao173@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parents 25d9fa98 e25b6f88
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -81,6 +81,21 @@ Data. (hinic3_hw_qp.c, hinic3_hw_qp.h, hinic3_hw_qp_ctxt.h)

IO - de/constructs all the IO components. (hinic3_hw_io.c, hinic3_hw_io.h)

CQM components:
==========

The CQM module organizes the memory in the large system in a format (CLA table)
and allocates the memory to the chip (BAT table). The chip can use the memory in
the large system to save context information and queue information (SCQ\SRQ).
(cqm_bat_cla.c, cqm_bat_cla.h, cqm_bitmap_table.c, cqm_bitmap_table.h)

When a packet is transmitted from the PCIe link, the chip parses the 5-tuple
such as sid, did, and hostid. Fill the parsed data in the queue
(in the form of scqe). In this way, the driver can directly obtain data from the
queue (through MPDK polling) and then process the data. In this way, the
uninstallation is implemented.
(cqm_main.c, cqm_main.h, cqm_db.c, cqm_db.h)

HW device:
==========

+1 −0
Original line number Diff line number Diff line
@@ -5647,6 +5647,7 @@ CONFIG_INFINIBAND_HNS_HIP08=y
CONFIG_INFINIBAND_BNXT_RE=m
CONFIG_INFINIBAND_QEDR=m
CONFIG_INFINIBAND_XSC=m
CONFIG_HIROCE3=m
CONFIG_RDMA_RXE=m
# CONFIG_RDMA_SIW is not set
CONFIG_INFINIBAND_IPOIB=m
+1 −0
Original line number Diff line number Diff line
@@ -6280,6 +6280,7 @@ CONFIG_INFINIBAND_HFI1=m
CONFIG_INFINIBAND_QEDR=m
CONFIG_INFINIBAND_XSC=m
CONFIG_INFINIBAND_RDMAVT=m
CONFIG_HIROCE3=m
CONFIG_RDMA_RXE=m
# CONFIG_RDMA_SIW is not set
CONFIG_INFINIBAND_IPOIB=m
+1 −0
Original line number Diff line number Diff line
@@ -92,6 +92,7 @@ source "drivers/infiniband/hw/bnxt_re/Kconfig"
source "drivers/infiniband/hw/hfi1/Kconfig"
source "drivers/infiniband/hw/qedr/Kconfig"
source "drivers/infiniband/hw/xsc/Kconfig"
source "drivers/infiniband/hw/hiroce3/Kconfig"
source "drivers/infiniband/sw/rdmavt/Kconfig"
source "drivers/infiniband/sw/rxe/Kconfig"
source "drivers/infiniband/sw/siw/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -14,3 +14,4 @@ obj-$(CONFIG_INFINIBAND_HNS) += hns/
obj-$(CONFIG_INFINIBAND_QEDR)		+= qedr/
obj-$(CONFIG_INFINIBAND_BNXT_RE)	+= bnxt_re/
obj-$(CONFIG_INFINIBAND_XSC)		+= xsc/
obj-$(CONFIG_HIROCE3)			+= hiroce3/
Loading