umad_recv(3) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | SEE ALSO | AUTHOR | COLOPHON

UMAD_RECV(3)           OpenIB Programmer's Manual           UMAD_RECV(3)

NAME         top

       umad_recv - receive umad

SYNOPSIS         top

       #include <infiniband/umad.h>

       int umad_recv(int portid, void *umad, int *length, int timeout_ms);

DESCRIPTION         top

       umad_recv() waits up to timeout_ms milliseconds for an incoming
       MAD message to be received from the port specified by portid.

       A MAD "message" consists of a single MAD packet or a coalesced
       multipacket RMPP transmission.  In the RMPP case the header of
       the first RMPP packet is returned as the header of the buffer and
       the buffer data contains the coalesced data section of each
       subsequent RMPP MAD packet within the transmission.  Thus all the
       RMPP headers except the first are not copied to user space from
       the kernel.

       The message is copied to the umad buffer if there is sufficient
       room and the received length is indicated.  If the buffer is not
       large enough, the size of the umad buffer needed is returned in
       length.  A negative timeout_ms makes the function block until a
       packet is received. A timeout_ms parameter of zero indicates a
       non blocking read.

       Note length is a pointer to the length of the data portion of the
       umad buffer.  This means that umad must point to a buffer at
       least umad_size() + *length bytes long.

       Note also that *length must be >= 256 bytes.  This length allows
       for at least a single MAD packet to be returned.

RETURN VALUE         top

       umad_recv() on success return the agentid; on error, errno is set
       and a negative value is returned as follows:
        -EINVAL      invalid port handle or agentid or *length is less
       than the minimum supported
        -EIO         receive operation failed
        -EWOULDBLOCK non blocking read can't be fulfilled
        -ENOSPC      The provided buffer is not long enough for the
       complete message.

SEE ALSO         top

       umad_poll(3)

AUTHOR         top

       Hal Rosenstock <halr@voltaire.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

OpenIB                        May 11, 2007                  UMAD_RECV(3)

Pages that refer to this page: umad_poll(3)