umad_recv(3) — Linux manual page
UMAD_RECV(3) OpenIB Programmer's Manual UMAD_RECV(3)
NAME
umad_recv - receive umad
SYNOPSIS
#include <infiniband/umad.h> int umad_recv(int portid, void *umad, int *length, int timeout_ms);
DESCRIPTION
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
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
umad_poll(3)
AUTHOR
Hal Rosenstock <halr@voltaire.com>
COLOPHON
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)