ibv_modify_qp_rate_limit(3) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | SEE ALSO | AUTHORS | COLOPHON

IBV_MOD...E_LIMIT(3) Libibverbs Programmer's Manual IBV_MOD...E_LIMIT(3)

NAME         top

       ibv_modify_qp_rate_limit - modify the send rate limits attributes
       of a queue pair (QP)

SYNOPSIS         top

       #include <infiniband/verbs.h>

       int ibv_modify_qp_rate_limit(struct ibv_qp *qp, struct ibv_qp_rate_limit_attr *attr);

DESCRIPTION         top

       ibv_modify_qp_rate_limit() modifies the send rate limiting packet
       pacing attributes of QP qp with the attributes in attr.  The
       argument attr is an ibv_qp_rate_limit_attr struct, as defined in
       <infiniband/verbs.h>.

       The rate_limit defines the MAX send rate this QP will send as
       long as the link in not blocked and there are work requests in
       send queue.

       Finer control for shaping the rate limit of a QP is achieved by
       defining the max_burst_sz, single burst max bytes size and the
       typical_pkt_sz, typical packet bytes size. These allow the device
       to adjust the inter-burst gap delay required to correctly shape
       the scheduling of sends to the wire in order to reach for
       requested application requirements.

       Setting a value of 0 for max_burst_sz or typical_pkt_sz will use
       the devices defaults.  typical_pkt_sz will default to the port's
       MTU value.

       struct ibv_qp_rate_limit_attr {
               uint32_t        rate_limit;     /* kbps */
               uint32_t        max_burst_sz;   /* bytes */
               uint16_t        typical_pkt_sz; /* bytes */
       };

RETURN VALUE         top

       ibv_modify_qp_rate_limit() returns 0 on success, or the value of
       errno on failure (which indicates the failure reason).

ERRORS         top

   EINVAL
       Invalid arguments.

   EOPNOTSUPP
       Function is not implemented for this device.  (ENOSYS may
       sometimes be returned by old versions of libibverbs).

SEE ALSO         top

       ibv_create_qp(3), ibv_destroy_qp(3), ibv_modify_qp(3),
       ibv_query_qp(3)

AUTHORS         top

       Alex Rosenbaum <alexr@mellanox.com>

       Bodong Wang <bodong@mellanox.com>

COLOPHON         top

       This page is part of the rdma-core (RDMA Core Userspace Libraries
       and Daemons) project.  Information about the project can be found
       at ⟨https://github.com/linux-rdma/rdma-core⟩.  If you have a bug
       report for this manual page, send it to
       linux-rdma@vger.kernel.org.  This page was obtained from the
       project's upstream Git repository
       ⟨https://github.com/linux-rdma/rdma-core.git⟩ on 2024-06-14.  (At
       that time, the date of the most recent commit that was found in
       the repository was 2024-06-10.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       man-pages@man7.org

libibverbs                     2018-01-09           IBV_MOD...E_LIMIT(3)