ibv_destroy_counters(3) — Linux manual page

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

ibv_cre...counters(3) Libibverbs Programmer’s Manualibv_cre...counters(3)

NAME         top

       ibv_create_counters, ibv_destroy_counters - Create or destroy a
       counters handle

SYNOPSIS         top

              #include <infiniband/verbs.h>

              struct ibv_counters *
              ibv_create_counters(struct ibv_context *context,
                                  struct ibv_counters_init_attr *init_attr);

              int ibv_destroy_counters(struct ibv_counters *counters);

DESCRIPTION         top

       ibv_create_counters() creates a new counters handle for the RDMA
       device context.

       An ibv_counters handle can be attached to a verbs resource (e.g.:
       QP, WQ, Flow) statically when these are created.

       For example attach an ibv_counters statically to a Flow (struct
       ibv_flow) during creation of a new Flow by calling
       ibv_create_flow().

       Counters are cleared upon creation and values will be
       monotonically increasing.

       ibv_destroy_counters() releases the counters handle, user should
       detach the counters object before destroying it.

ARGUMENTS         top

       context
              RDMA device context to create the counters on.

       init_attr
              Is an ibv_counters_init_attr struct, as defined in verbs.h.

   init_attr Argument
              struct ibv_counters_init_attr {
                  int comp_mask;
              };

       comp_mask
              Bitmask specifying what fields in the structure are valid.

RETURN VALUE         top

       ibv_create_counters() returns a pointer to the allocated
       ibv_counters object, or NULL if the request fails (and sets errno
       to indicate the failure reason)

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

ERRORS         top

       EOPNOTSUPP
              ibv_create_counters() is not currently supported on this
              device (ENOSYS may sometimes be returned by old versions of
              libibverbs).

       ENOMEM ibv_create_counters() could not create ibv_counters object,
              not enough memory

       EINVAL invalid parameter supplied ibv_destroy_counters()

EXAMPLE         top

       An example of use of ibv_counters is shown in ibv_read_counters

SEE ALSO         top

       ibv_attach_counters_point_flow, ibv_read_counters, ibv_create_flow

AUTHORS         top

       Raed Salem ⟨raeds@mellanox.com⟩

       Alex Rosenbaum ⟨alexr@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 2025-08-11.  (At
       that time, the date of the most recent commit that was found in
       the repository was 2025-08-04.)  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-04-02          ibv_cre...counters(3)