1IBV_MODIFY_QP_RATE_LIMIT(L3i)bibverbs Programmer's ManuIaBlV_MODIFY_QP_RATE_LIMIT(3)
2
3
4
6 ibv_modify_qp_rate_limit - modify the send rate limits attributes of a
7 queue pair (QP)
8
10 #include <infiniband/verbs.h>
11
12 int ibv_modify_qp_rate_limit(struct ibv_qp *qp, struct ibv_qp_rate_limit_attr *attr);
13
15 ibv_modify_qp_rate_limit() modifies the send rate limiting packet pac‐
16 ing attributes of QP qp with the attributes in attr. The argument attr
17 is an ibv_qp_rate_limit_attr struct, as defined in <infini‐
18 band/verbs.h>.
19
20 The rate_limit defines the MAX send rate this QP will send as long as
21 the link in not blocked and there are work requests in send queue.
22
23 Finer control for shaping the rate limit of a QP is achieved by defin‐
24 ing the max_burst_sz, single burst max bytes size and the typi‐
25 cal_pkt_sz, typical packet bytes size. These allow the device to adjust
26 the inter-burst gap delay required to correctly shape the scheduling of
27 sends to the wire in order to reach for requested application require‐
28 ments.
29
30 Setting a value of 0 for max_burst_sz or typical_pkt_sz will use the
31 devices defaults. typical_pkt_sz will default to the port's MTU value.
32
33 struct ibv_qp_rate_limit_attr {
34 uint32_t rate_limit; /* kbps */
35 uint32_t max_burst_sz; /* bytes */
36 uint16_t typical_pkt_sz; /* bytes */
37 };
38
40 ibv_modify_qp_rate_limit() returns 0 on success, or the value of errno
41 on failure (which indicates the failure reason).
42
44 EINVAL
45 Invalid arguments.
46
47 EOPNOTSUPP
48 Function is not implemented for this device. (ENOSYS may sometimes be
49 returned by old versions of libibverbs).
50
52 ibv_create_qp(3), ibv_destroy_qp(3), ibv_modify_qp(3), ibv_query_qp(3)
53
55 Alex Rosenbaum <alexr@mellanox.com>
56
57 Bodong Wang <bodong@mellanox.com>
58
59
60
61libibverbs 2018-01-09 IBV_MODIFY_QP_RATE_LIMIT(3)