@@ -580,6 +580,7 @@ add_subdirectory(providers/bnxt_re)
add_subdirectory(providers/cxgb3) # NO SPARSE
add_subdirectory(providers/cxgb4) # NO SPARSE
add_subdirectory(providers/efa)
+add_subdirectory(providers/efa/man)
add_subdirectory(providers/hns)
add_subdirectory(providers/i40iw) # NO SPARSE
add_subdirectory(providers/mlx4)
@@ -28,6 +28,8 @@ usr/share/man/man3/ibv_*
usr/share/man/man3/mbps_to_ibv_rate.3
usr/share/man/man3/mlx4dv_*.3
usr/share/man/man3/mlx5dv_*.3
+usr/share/man/man3/efadv_*.3
usr/share/man/man3/mult_to_ibv_rate.3
usr/share/man/man7/mlx4dv.7
usr/share/man/man7/mlx5dv.7
+usr/share/man/man7/efadv.7
new file mode 100644
@@ -0,0 +1,4 @@
+rdma_man_pages(
+ efadv_create_driver_qp.3
+ efadv.7
+)
new file mode 100644
@@ -0,0 +1,29 @@
+.\" -*- nroff -*-
+.\"
+.TH EFADV 7 2019-01-19 1.0.0
+.SH "NAME"
+efadv \- Direct verbs for efa devices
+.br
+This provides low level access to efa devices to perform direct operations,
+without general branching performed by libibverbs.
+
+.SH "DESCRIPTION"
+The libibverbs API is an abstract one. It is agnostic to any underlying
+provider specific implementation. While this abstraction has the advantage
+of user applications portability, it has a performance penalty. For some
+applications optimizing performance is more important than portability.
+
+The efa direct verbs API is intended for such applications.
+It exposes efa specific low level operations, allowing the application
+to bypass the libibverbs API.
+
+The direct include of efadv.h together with linkage to efa library will
+allow usage of this new interface.
+
+.SH "SEE ALSO"
+.BR verbs (7)
+
+.SH "AUTHORS"
+.TP
+Gal Pressman <galpress@amazon.com>
+
new file mode 100644
@@ -0,0 +1,38 @@
+.\" -*- nroff -*-
+.\"
+.TH EFADV_QUERY_DEVICE 3 2019-01-23 1.0.0
+.SH "NAME"
+efadv_create_driver_qp \- Create EFA specific Queue Pair
+.SH "SYNOPSIS"
+.nf
+.B #include <infiniband/efadv.h>
+.sp
+.BI "struct ibv_qp *efadv_create_driver_qp(struct ibv_pd *ibvpd,
+.BI " struct ibv_qp_init_attr *attr,
+.BI " uint32_t driver_qp_type);
+.fi
+.SH "DESCRIPTION"
+.B efadv_create_driver_qp()
+Create device-specific Queue Pairs.
+.PP
+Scalable Reliable Datagram (SRD) transport provides reliable out-of-order
+delivery, transparently utilizing multiple network paths to reduce network tail
+latency. Its interface is similar to UD, in particular it supports message size
+up to MTU, with error handling extended to support reliable communication.
+.PP
+.nf
+enum {
+.in +8
+EFADV_QP_DRIVER_TYPE_SRD = 0,
+.in -8
+};
+
+.fi
+.SH "RETURN VALUE"
+efadv_create_driver_qp() returns a pointer to the created QP, or NULL if the request fails.
+.SH "SEE ALSO"
+.BR efadv (7)
+.SH "AUTHORS"
+.TP
+Gal Pressman <galpress@amazon.com>
+
@@ -404,8 +404,10 @@ rm -rf %{buildroot}/%{_sbindir}/srp_daemon.sh
%{_mandir}/man7/rdma_cm.*
%{_mandir}/man3/mlx5dv*
%{_mandir}/man3/mlx4dv*
+%{_mandir}/man3/efadv*
%{_mandir}/man7/mlx5dv*
%{_mandir}/man7/mlx4dv*
+%{_mandir}/man7/efadv*
%files -n libibverbs
%dir %{_sysconfdir}/libibverbs.d
@@ -592,8 +592,10 @@ rm -rf %{buildroot}/%{_sbindir}/srp_daemon.sh
%if 0%{?dma_coherent}
%{_mandir}/man3/mlx5dv*
%{_mandir}/man3/mlx4dv*
+%{_mandir}/man3/efadv*
%{_mandir}/man7/mlx5dv*
%{_mandir}/man7/mlx4dv*
+%{_mandir}/man7/efadv*
%endif
%files -n libibverbs
Document EFA direct verbs feature. Signed-off-by: Gal Pressman <galpress@amazon.com> --- CMakeLists.txt | 1 + debian/libibverbs-dev.install | 2 ++ providers/efa/man/CMakeLists.txt | 4 ++++ providers/efa/man/efadv.7 | 29 +++++++++++++++++++++++ providers/efa/man/efadv_create_driver_qp.3 | 38 ++++++++++++++++++++++++++++++ redhat/rdma-core.spec | 2 ++ suse/rdma-core.spec | 2 ++ 7 files changed, 78 insertions(+) create mode 100644 providers/efa/man/CMakeLists.txt create mode 100644 providers/efa/man/efadv.7 create mode 100644 providers/efa/man/efadv_create_driver_qp.3