diff mbox

[rdma-core,2/2] verbs: Enable QP and WQ creation with PCI write end padding option

Message ID 1510667228-18579-3-git-send-email-yishaih@mellanox.com (mailing list archive)
State Accepted
Headers show

Commit Message

Yishai Hadas Nov. 14, 2017, 1:47 p.m. UTC
From: Noa Osherovich <noaos@mellanox.com>

Update QP and WQ creation flags to allow setting the PCI write end
padding capability during QP/WQ creation.

Man pages were updated accordingly.

Signed-off-by: Noa Osherovich <noaos@mellanox.com>
Reviewed-by: Yishai Hadas <yishaih@mellanox.com>
---
 libibverbs/cmd.c                  | 3 ++-
 libibverbs/man/ibv_create_qp_ex.3 | 1 +
 libibverbs/man/ibv_create_wq.3    | 3 ++-
 libibverbs/verbs.h                | 4 +++-
 4 files changed, 8 insertions(+), 3 deletions(-)
diff mbox

Patch

diff --git a/libibverbs/cmd.c b/libibverbs/cmd.c
index eb5f263..62fcd0e 100644
--- a/libibverbs/cmd.c
+++ b/libibverbs/cmd.c
@@ -966,7 +966,8 @@  enum {
 	CREATE_QP_EX2_SUP_CREATE_FLAGS = IBV_QP_CREATE_BLOCK_SELF_MCAST_LB |
 					 IBV_QP_CREATE_SCATTER_FCS |
 					 IBV_QP_CREATE_CVLAN_STRIPPING |
-					 IBV_QP_CREATE_SOURCE_QPN,
+					 IBV_QP_CREATE_SOURCE_QPN |
+					 IBV_QP_CREATE_PCI_WRITE_END_PADDING,
 };
 
 int ibv_cmd_create_qp_ex2(struct ibv_context *context,
diff --git a/libibverbs/man/ibv_create_qp_ex.3 b/libibverbs/man/ibv_create_qp_ex.3
index fac0e03..865b5fe 100644
--- a/libibverbs/man/ibv_create_qp_ex.3
+++ b/libibverbs/man/ibv_create_qp_ex.3
@@ -59,6 +59,7 @@  IBV_QP_CREATE_BLOCK_SELF_MCAST_LB       = 1 << 1, /* Prevent self multicast loop
 IBV_QP_CREATE_SCATTER_FCS               = 1 << 8, /* FCS field will be scattered to host memory */
 IBV_QP_CREATE_CVLAN_STRIPPING           = 1 << 9, /* CVLAN field will be stripped from incoming packets */
 IBV_QP_CREATE_SOURCE_QPN                = 1 << 10, /* The created QP will use the source_qpn as its wire QP number */
+IBV_QP_CREATE_PCI_WRITE_END_PADDING     = 1 << 11, /* Incoming packets will be padded to cacheline size */
 .in -8
 };
 .nf
diff --git a/libibverbs/man/ibv_create_wq.3 b/libibverbs/man/ibv_create_wq.3
index a540130..10fe965 100644
--- a/libibverbs/man/ibv_create_wq.3
+++ b/libibverbs/man/ibv_create_wq.3
@@ -42,7 +42,8 @@  enum ibv_wq_flags {
 IBV_WQ_FLAGS_CVLAN_STRIPPING            = 1 << 0, /* CVLAN field will be stripped from incoming packets */
 IBV_WQ_FLAGS_SCATTER_FCS                = 1 << 1, /* FCS field will be scattered to host memory */
 IBV_WQ_FLAGS_DELAY_DROP                 = 1 << 2, /* Packets won't be dropped immediately if no receive WQEs */
-IBV_WQ_FLAGS_RESERVED                   = 1 << 3,
+IBV_WQ_FLAGS_PCI_WRITE_END_PADDING      = 1 << 3, /* Incoming packets will be padded to cacheline size */
+IBV_WQ_FLAGS_RESERVED                   = 1 << 4,
 .in -8
 };
 .nf
diff --git a/libibverbs/verbs.h b/libibverbs/verbs.h
index 025e321..b39dc30 100644
--- a/libibverbs/verbs.h
+++ b/libibverbs/verbs.h
@@ -739,7 +739,8 @@  enum ibv_wq_flags {
 	IBV_WQ_FLAGS_CVLAN_STRIPPING		= 1 << 0,
 	IBV_WQ_FLAGS_SCATTER_FCS		= 1 << 1,
 	IBV_WQ_FLAGS_DELAY_DROP			= 1 << 2,
-	IBV_WQ_FLAGS_RESERVED			= 1 << 3,
+	IBV_WQ_FLAGS_PCI_WRITE_END_PADDING	= 1 << 3,
+	IBV_WQ_FLAGS_RESERVED			= 1 << 4,
 };
 
 struct ibv_wq_init_attr {
@@ -848,6 +849,7 @@  enum ibv_qp_create_flags {
 	IBV_QP_CREATE_SCATTER_FCS		= 1 << 8,
 	IBV_QP_CREATE_CVLAN_STRIPPING		= 1 << 9,
 	IBV_QP_CREATE_SOURCE_QPN		= 1 << 10,
+	IBV_QP_CREATE_PCI_WRITE_END_PADDING	= 1 << 11,
 };
 
 struct ibv_rx_hash_conf {