Skip to contentSkip to conversation

libmlx4: Add RAW_ETH to post_send

PATCH In review Aleksey Senin 2 participants 3 messages Dec 19, 2010 3 messages not in the archive InfiniBand

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 libmlx4: Add RAW_ETH to post_send

Add RAW_ETH QP to post_send function.

---
 fixes/add_raw_eth_to_post_send.patch |   52 ++++++++++++++++++++++++++++++++++
 fixes/series                         |    1 +
 2 files changed, 53 insertions(+), 0 deletions(-)
 create mode 100644 fixes/add_raw_eth_to_post_send.patch
fixes/add_raw_eth_to_post_send.patch new file +52 -0
new file mode 100644
index 0000000..ce4e873
@@ -0,0 +1,52 @@
+From c31190ddc735cd2a28598846f5b57c9cf8434272 Mon Sep 17 00:00:00 2001
+From: Aleksey Senin <alekseys-smomgflXvOZWk0Htik3J/[email protected]>
+Date: Sun, 19 Dec 2010 11:11:23 +0200
+Subject: [PATCH] Add RAW_ETH case to post_send
+
+Add controling checksum calculation when using RAW QP type.
+
+Signed-off-by: Aleksey Senin <alekseys-smomgflXvOZWk0Htik3J/[email protected]>
+---
+ src/qp.c  |    6 ++++++
+ src/wqe.h |    1 +
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/src/qp.c b/src/qp.c
+index d194ae3..580afff 100644
+--- a/src/qp.c
++++ b/src/qp.c
+@@ -231,6 +231,8 @@ int mlx4_post_send(struct ibv_qp *ibqp, struct ibv_send_wr *wr,
+ 			 htonl(MLX4_WQE_CTRL_CQ_UPDATE) : 0) |
+ 			(wr->send_flags & IBV_SEND_SOLICITED ?
+ 			 htonl(MLX4_WQE_CTRL_SOLICIT) : 0)   |
++			(wr->send_flags & IBV_SEND_IP_CSUM ?
++			 htonl(MLX4_WQE_CTRL_IP_CSUM) : 0)   |
+ 			qp->sq_signal_bits;
+ 
+ 		if (wr->opcode == IBV_WR_SEND_WITH_IMM ||
+@@ -283,6 +285,10 @@ int mlx4_post_send(struct ibv_qp *ibqp, struct ibv_send_wr *wr,
+ 			size += sizeof (struct mlx4_wqe_datagram_seg) / 16;
+ 			break;
+ 
++		case IBV_QPT_RAW_ETH:
++			/* For raw eth, the MLX4_WQE_CTRL_SOLICIT flag is used
++			 * to indicate that no icrc should be calculated */
++			ctrl->xrcrb_flags |= htonl(MLX4_WQE_CTRL_SOLICIT);
+ 		default:
+ 			break;
+ 		}
+diff --git a/src/wqe.h b/src/wqe.h
+index 6f7f309..007b617 100644
+--- a/src/wqe.h
++++ b/src/wqe.h
+@@ -41,6 +41,7 @@ enum {
+ 	MLX4_WQE_CTRL_FENCE	= 1 << 6,
+ 	MLX4_WQE_CTRL_CQ_UPDATE	= 3 << 2,
+ 	MLX4_WQE_CTRL_SOLICIT	= 1 << 1,
++	MLX4_WQE_CTRL_IP_CSUM	= 3 << 4,
+ };
+ 
+ enum {
+-- 
+1.6.4.2
+
fixes/series +1 -0
index 83516ec..2d04b25 100644
@@ -8,3 +8,4 @@ rocee_add_support.patch
 add_supported_devices.patch
 post_rcv_end_of_sg.patch
 fix_inline_size.patch
+add_raw_eth_to_post_send.patch
Signature · 6 lines
1.6.4.2

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#3 lore raw
In reply to a message not in the archive
Quoted 7 lines · Alekseys Senin

Hello, Vladimir.

Please, apply two patches - libmlx4 and libibverbs - that I sent today. They add additional enums to userspace to the programs, that need to use RAW_ETH QP type.

Hi Aleksey,
You should send these patches to Roland before applying them to OFED. Use the following git trees for libibverbs and libmlx4:

git://git.kernel.org/pub/scm/libs/infiniband/libibverbs.git
git://git.kernel.org/pub/scm/libs/infiniband/libmlx4.git

Note: when you send patches to OFED you should CC "OpenFabrics EWG <[email protected]>" mailing list instead of "linux-rdma".

Regards,
Vladimir

Quoted 68 lines
Quoted 68 lines

Add RAW_ETH QP to post_send function.

---
  fixes/add_raw_eth_to_post_send.patch |   52 ++++++++++++++++++++++++++++++++++
  fixes/series                         |    1 +
  2 files changed, 53 insertions(+), 0 deletions(-)

create mode 100644 fixes/add_raw_eth_to_post_send.patch

fixes/add_raw_eth_to_post_send.patch new file +52 -0
new file mode 100644
index 0000000..ce4e873
@@ -0,0 +1,52 @@
+From c31190ddc735cd2a28598846f5b57c9cf8434272 Mon Sep 17 00:00:00 2001
+From: Aleksey Senin<alekseys-smomgflXvOZWk0Htik3J/[email protected]>
+Date: Sun, 19 Dec 2010 11:11:23 +0200
+Subject: [PATCH] Add RAW_ETH case to post_send
+
+Add controling checksum calculation when using RAW QP type.
+
+Signed-off-by: Aleksey Senin<alekseys-smomgflXvOZWk0Htik3J/[email protected]>
+---
+ src/qp.c  |    6 ++++++
+ src/wqe.h |    1 +
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/src/qp.c b/src/qp.c
+index d194ae3..580afff 100644
+--- a/src/qp.c
++++ b/src/qp.c
+@@ -231,6 +231,8 @@ int mlx4_post_send(struct ibv_qp *ibqp, struct ibv_send_wr *wr,
+ 			 htonl(MLX4_WQE_CTRL_CQ_UPDATE) : 0) |
+ 			(wr->send_flags&  IBV_SEND_SOLICITED ?
+ 			 htonl(MLX4_WQE_CTRL_SOLICIT) : 0)   |
++			(wr->send_flags&  IBV_SEND_IP_CSUM ?
++			 htonl(MLX4_WQE_CTRL_IP_CSUM) : 0)   |
+ 			qp->sq_signal_bits;
+
+ 		if (wr->opcode == IBV_WR_SEND_WITH_IMM ||
+@@ -283,6 +285,10 @@ int mlx4_post_send(struct ibv_qp *ibqp, struct ibv_send_wr *wr,
+ 			size += sizeof (struct mlx4_wqe_datagram_seg) / 16;
+ 			break;
+
++		case IBV_QPT_RAW_ETH:
++			/* For raw eth, the MLX4_WQE_CTRL_SOLICIT flag is used
++			 * to indicate that no icrc should be calculated */
++			ctrl->xrcrb_flags |= htonl(MLX4_WQE_CTRL_SOLICIT);
+ 		default:
+ 			break;
+ 		}
+diff --git a/src/wqe.h b/src/wqe.h
+index 6f7f309..007b617 100644
+--- a/src/wqe.h
++++ b/src/wqe.h
+@@ -41,6 +41,7 @@ enum {
+ 	MLX4_WQE_CTRL_FENCE	= 1<<  6,
+ 	MLX4_WQE_CTRL_CQ_UPDATE	= 3<<  2,
+ 	MLX4_WQE_CTRL_SOLICIT	= 1<<  1,
++	MLX4_WQE_CTRL_IP_CSUM	= 3<<  4,
+ };
+
+ enum {
+--
+1.6.4.2
+
fixes/series +0 -0
Quoted 12 lines

fixes/series rocee_add_support.patch · line 11

Quoted 8 lines

index 83516ec..2d04b25 100644

fixes/series +1 -0
@@ -8,3 +8,4 @@ rocee_add_support.patch
  add_supported_devices.patch
  post_rcv_end_of_sg.patch
  fix_inline_size.patch
+add_raw_eth_to_post_send.patch

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

#5 lore raw
In reply to a message not in the archive
Quoted 14 lines · Vladimir Sokolovsky
Quoted 7 lines · Alekseys Senin

Hello, Vladimir.

Please, apply two patches - libmlx4 and libibverbs - that I sent today. They add additional enums to userspace to the programs, that need to use RAW_ETH QP type.

Hi Aleksey,
You should send these patches to Roland before applying them to OFED. Use the following git trees for libibverbs and libmlx4:

Quoted 7 lines

git://git.kernel.org/pub/scm/libs/infiniband/libibverbs.git
git://git.kernel.org/pub/scm/libs/infiniband/libmlx4.git

Note: when you send patches to OFED you should CC "OpenFabrics EWG <[email protected]>" mailing list instead of "linux-rdma".

Regards,
Vladimir

O, sorry.
It's my fault. It should be applied to OFED too and I'll resend them to this list too.
Actually these patches were generated agains OFED tree and applying them will create new files under 'fixes' directory. I'll generate another set for Roland tree two.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html