freebsd-src/contrib/ofed/libibverbs/man/ibv_post_srq_recv.3
Hans Petter Selasky d6b92ffa99 OFED user-space import and update for use with Linux-4.9 compatible RDMA
kernel APIs.

List of sources used:

1) rdma-core was cloned from "https://github.com/linux-rdma/rdma-core.git"
Top commit d65138ef93af30b3ea249f3a84aa6a24ba7f8a75

2) OpenSM was cloned from git://git.openfabrics.org/~halr/opensm.git
Top commit 85f841cf209f791c89a075048a907020e924528d

3) libibmad was cloned from "git://git.openfabrics.org/~iraweiny/libibmad.git"
Tag 1.3.13 with some additional patches from Mellanox.

4) infiniband-diags was cloned from "git://git.openfabrics.org/~iraweiny/infiniband-diags.git"
Tag 1.6.7 with some additional patches from Mellanox.

Added the required Makefiles for building and installing.

Sponsored by:	Mellanox Technologies
2017-08-02 16:00:30 +00:00

70 lines
2.3 KiB
Groff

.\" -*- nroff -*-
.\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md
.\"
.TH IBV_POST_SRQ_RECV 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual"
.SH "NAME"
ibv_post_srq_recv \- post a list of work requests (WRs) to a shared receive queue (SRQ)
.SH "SYNOPSIS"
.nf
.B #include <infiniband/verbs.h>
.sp
.BI "int ibv_post_srq_recv(struct ibv_srq " "*srq" ", struct ibv_recv_wr " "*wr" ,
.BI " struct ibv_recv_wr " "**bad_wr" );
.fi
.SH "DESCRIPTION"
.B ibv_post_srq_recv()
posts the linked list of work requests (WRs) starting with
.I wr
to the shared receive queue (SRQ)
.I srq\fR.
It stops processing WRs from this list at the first failure (that can
be detected immediately while requests are being posted), and returns
this failing WR through
.I bad_wr\fR.
.PP
The argument
.I wr
is an ibv_recv_wr struct, as defined in <infiniband/verbs.h>.
.PP
.nf
struct ibv_recv_wr {
.in +8
uint64_t wr_id; /* User defined WR ID */
struct ibv_recv_wr *next; /* Pointer to next WR in list, NULL if last WR */
struct ibv_sge *sg_list; /* Pointer to the s/g array */
int num_sge; /* Size of the s/g array */
.in -8
};
.sp
.nf
struct ibv_sge {
.in +8
uint64_t addr; /* Start address of the local memory buffer */
uint32_t length; /* Length of the buffer */
uint32_t lkey; /* Key of the local Memory Region */
.in -8
};
.fi
.SH "RETURN VALUE"
.B ibv_post_srq_recv()
returns 0 on success, or the value of errno on failure (which indicates the failure reason).
.SH "NOTES"
The buffers used by a WR can only be safely reused after WR the
request is fully executed and a work completion has been retrieved
from the corresponding completion queue (CQ).
.PP
If a WR is being posted to a UD QP, the Global Routing Header (GRH) of
the incoming message will be placed in the first 40 bytes of the
buffer(s) in the scatter list. If no GRH is present in the incoming
message, then the first bytes will be undefined. This means that in
all cases, the actual data of the incoming message will start at an
offset of 40 bytes into the buffer(s) in the scatter list.
.SH "SEE ALSO"
.BR ibv_create_qp (3),
.BR ibv_post_send (3),
.BR ibv_post_recv (3),
.BR ibv_poll_cq (3)
.SH "AUTHORS"
.TP
Dotan Barak <dotanba@gmail.com>