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 2020-08-13.  (At
       that time, the date of the most recent commit that was found in the
       repository was 2020-08-05.)  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)