aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBodong Wang <bodong@mellanox.com>2016-12-01 06:43:14 -0500
committerDoug Ledford <dledford@redhat.com>2016-12-13 13:39:50 -0500
commit528e5a1bd3f0e9b760cb3a1062fce7513712a15d (patch)
tree0578a99a085a57b799bd4797ad25eeef336f1f5b
parentd949167d68b304c0a00331cf33ef49a29b65d85f (diff)
IB/core: Support rate limit for packet pacing
Add new member rate_limit to ib_qp_attr which holds the packet pacing rate in kbps, 0 means unlimited. IB_QP_RATE_LIMIT is added to ib_attr_mask and could be used by RAW QPs when changing QP state from RTR to RTS, RTS to RTS. Signed-off-by: Bodong Wang <bodong@mellanox.com> Reviewed-by: Matan Barak <matanb@mellanox.com> Signed-off-by: Leon Romanovsky <leon@kernel.org> Signed-off-by: Doug Ledford <dledford@redhat.com>
-rw-r--r--drivers/infiniband/core/verbs.c2
-rw-r--r--include/rdma/ib_verbs.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
index c976f29f7ad2..71580cc28c9e 100644
--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -1016,6 +1016,7 @@ static const struct {
1016 IB_QP_QKEY), 1016 IB_QP_QKEY),
1017 [IB_QPT_GSI] = (IB_QP_CUR_STATE | 1017 [IB_QPT_GSI] = (IB_QP_CUR_STATE |
1018 IB_QP_QKEY), 1018 IB_QP_QKEY),
1019 [IB_QPT_RAW_PACKET] = IB_QP_RATE_LIMIT,
1019 } 1020 }
1020 } 1021 }
1021 }, 1022 },
@@ -1049,6 +1050,7 @@ static const struct {
1049 IB_QP_QKEY), 1050 IB_QP_QKEY),
1050 [IB_QPT_GSI] = (IB_QP_CUR_STATE | 1051 [IB_QPT_GSI] = (IB_QP_CUR_STATE |
1051 IB_QP_QKEY), 1052 IB_QP_QKEY),
1053 [IB_QPT_RAW_PACKET] = IB_QP_RATE_LIMIT,
1052 } 1054 }
1053 }, 1055 },
1054 [IB_QPS_SQD] = { 1056 [IB_QPS_SQD] = {
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 73417a22ee4d..8029d2a51f14 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -1102,6 +1102,7 @@ enum ib_qp_attr_mask {
1102 IB_QP_RESERVED2 = (1<<22), 1102 IB_QP_RESERVED2 = (1<<22),
1103 IB_QP_RESERVED3 = (1<<23), 1103 IB_QP_RESERVED3 = (1<<23),
1104 IB_QP_RESERVED4 = (1<<24), 1104 IB_QP_RESERVED4 = (1<<24),
1105 IB_QP_RATE_LIMIT = (1<<25),
1105}; 1106};
1106 1107
1107enum ib_qp_state { 1108enum ib_qp_state {
@@ -1151,6 +1152,7 @@ struct ib_qp_attr {
1151 u8 rnr_retry; 1152 u8 rnr_retry;
1152 u8 alt_port_num; 1153 u8 alt_port_num;
1153 u8 alt_timeout; 1154 u8 alt_timeout;
1155 u32 rate_limit;
1154}; 1156};
1155 1157
1156enum ib_wr_opcode { 1158enum ib_wr_opcode {