Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rdma-core for openSUSE:Factory 
checked in at 2021-05-20 19:24:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rdma-core (Old)
 and      /work/SRC/openSUSE:Factory/.rdma-core.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rdma-core"

Thu May 20 19:24:39 2021 rev:45 rq:894019 version:35.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/rdma-core/rdma-core.changes      2021-03-02 
12:30:33.947586654 +0100
+++ /work/SRC/openSUSE:Factory/.rdma-core.new.2988/rdma-core.changes    
2021-05-20 19:24:56.321972431 +0200
@@ -1,0 +2,11 @@
+Tue May 18 09:21:31 UTC 2021 - Nicolas Morey-Chaisemartin 
<nmoreychaisemar...@suse.com>
+
+- Update to rdma-core v35.0
+  - Bugfixes on all providers
+  - Many improvements on pyverbs
+  - Fixes dracut path issues on Tumbleweed
+- Refresh patches to latest sources:
+  - Revert-libcxgb3-Remove-libcxgb3-from-rdma-core.patch
+  - disable-rdma-interface-renaming.patch
+
+-------------------------------------------------------------------

Old:
----
  rdma-core-33.1.0.2504c0bab0a8.tar.gz

New:
----
  rdma-core-35.0.0.e29a698e9902.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rdma-core.spec ++++++
--- /var/tmp/diff_new_pack.9uxZrx/_old  2021-05-20 19:24:56.829970348 +0200
+++ /var/tmp/diff_new_pack.9uxZrx/_new  2021-05-20 19:24:56.833970331 +0200
@@ -25,9 +25,9 @@
 %define with_pyverbs 0
 %endif
 
-%define         git_ver .0.2504c0bab0a8
+%define         git_ver .0.e29a698e9902
 Name:           rdma-core
-Version:        33.1
+Version:        35.0
 Release:        0
 Summary:        RDMA core userspace libraries and daemons
 License:        BSD-2-Clause OR GPL-2.0-only
@@ -464,7 +464,7 @@
 cd ..
 mkdir -p %{buildroot}/%{_sysconfdir}/rdma
 
-%global dracutlibdir %%{_libexecdir}/dracut/
+%global dracutlibdir %%{_prefix}/lib/dracut/
 %global sysmodprobedir %%{_sysconfdir}/modprobe.d
 
 mkdir -p %{buildroot}%{_udevrulesdir}
@@ -473,14 +473,19 @@
 mkdir -p %{buildroot}%{_unitdir}
 
 # Port type setup for mlx4 dual port cards
+install -D -m0644 redhat/rdma.mlx4.sys.modprobe 
%{buildroot}%{sysmodprobedir}/50-libmlx4.conf
 install -D -m0644 redhat/rdma.mlx4.conf 
%{buildroot}/%{_sysconfdir}/rdma/mlx4.conf
-sed 's%/usr/libexec%/usr/lib%g' redhat/rdma.mlx4.sys.modprobe > 
%{buildroot}%{sysmodprobedir}/50-libmlx4.conf
 chmod 0644 %{buildroot}%{sysmodprobedir}/50-libmlx4.conf
 install -D -m0755 redhat/rdma.mlx4-setup.sh 
%{buildroot}%{_libexecdir}/mlx4-setup.sh
 
 # Dracut file for IB support during boot
 install -D -m0644 suse/module-setup.sh 
%{buildroot}%{dracutlibdir}/modules.d/05rdma/module-setup.sh
 
+%if "%{_libexecdir}" != "/usr/libexec"
+sed 's-/usr/libexec-%{_libexecdir}-g' -i 
%{buildroot}%{sysmodprobedir}/50-libmlx4.conf
+sed 's-/usr/libexec-%{_libexecdir}-g' -i 
%{buildroot}%{dracutlibdir}/modules.d/05rdma/module-setup.sh
+%endif
+
 # ibacm
 cd build
 LD_LIBRARY_PATH=./lib bin/ib_acme -D . -O

++++++ Revert-libcxgb3-Remove-libcxgb3-from-rdma-core.patch ++++++
--- /var/tmp/diff_new_pack.9uxZrx/_old  2021-05-20 19:24:56.853970249 +0200
+++ /var/tmp/diff_new_pack.9uxZrx/_new  2021-05-20 19:24:56.857970233 +0200
@@ -1,4 +1,4 @@
-commit 2f56b7b7737d603c408117b88c60be29019818e4
+commit 87b0208768d75fad7f232552408f981f6f5b53b2
 Author: Nicolas Morey-Chaisemartin <nmoreychaisemar...@suse.com>
 Date:   Fri Jan 10 09:07:51 2020 +0100
 
@@ -7,10 +7,10 @@
     This reverts commit 36588f5844af4ef1e5b0d6ad002fa1adf9032653.
 
 diff --git CMakeLists.txt CMakeLists.txt
-index 5579b5a187c0..66eb0b2fbc4b 100644
+index bee504f9bac3..29b177abb4d3 100644
 --- CMakeLists.txt
 +++ CMakeLists.txt
-@@ -648,6 +648,7 @@ add_subdirectory(librdmacm/man)
+@@ -665,6 +665,7 @@ add_subdirectory(librdmacm/man)
  # Providers
  if (HAVE_COHERENT_DMA)
  add_subdirectory(providers/bnxt_re)
@@ -19,7 +19,7 @@
  add_subdirectory(providers/efa)
  add_subdirectory(providers/efa/man)
 diff --git MAINTAINERS MAINTAINERS
-index 948c3a7fb53f..050113e1f60a 100644
+index c317f980abe8..8bbd57b61113 100644
 --- MAINTAINERS
 +++ MAINTAINERS
 @@ -51,6 +51,11 @@ M:  Devesh Sharma  <devesh.sha...@broadcom.com>
@@ -35,7 +35,7 @@
  M:    Steve Wise <sw...@opengridcomputing.com>
  S:    Supported
 diff --git README.md README.md
-index b649c6f2bc0f..b31d448264e5 100644
+index 48113de790cb..61d181756c85 100644
 --- README.md
 +++ README.md
 @@ -15,6 +15,7 @@ under the providers/ directory. Support for the following 
Kernel RDMA drivers
@@ -46,32 +46,6 @@
   - iw_cxgb4.ko
   - hfi1.ko
   - hns-roce.ko
-diff --git debian/control debian/control
-index a423e4f8a4d2..33677170a22a 100644
---- debian/control
-+++ debian/control
-@@ -91,6 +91,7 @@ Description: User space provider drivers for libibverbs
-  This package contains the user space verbs drivers:
-  .
-   - bnxt_re: Broadcom NetXtreme-E RoCE HCAs
-+  - cxgb3: Chelsio T3 iWARP HCAs
-   - cxgb4: Chelsio T4 iWARP HCAs
-   - efa: Amazon Elastic Fabric Adapter
-   - hfi1verbs: Intel Omni-Path HFI
-diff --git debian/copyright debian/copyright
-index 3bf582b46e06..5c90b2550cf0 100644
---- debian/copyright
-+++ debian/copyright
-@@ -148,7 +148,8 @@ Files: providers/bnxt_re/*
- Copyright: 2015-2017, Broadcom Limited and/or its subsidiaries
- License: BSD-2-clause or GPL-2
- 
--Files: providers/cxgb4/*
-+Files: providers/cxgb3/*
-+       providers/cxgb4/*
- Copyright: 2003-2016, Chelsio Communications, Inc.
- License: BSD-MIT or GPL-2
- 
 diff --git kernel-boot/rdma-description.rules 
kernel-boot/rdma-description.rules
 index 48a7cede9bc8..57bb8f1273cd 100644
 --- kernel-boot/rdma-description.rules
@@ -97,10 +71,10 @@
  ENV{ID_NET_DRIVER}=="hns", RUN{builtin}+="kmod load hns_roce"
  ENV{ID_NET_DRIVER}=="i40e", RUN{builtin}+="kmod load i40iw"
 diff --git libibverbs/verbs.h libibverbs/verbs.h
-index da782f2ad2f2..a528b49a4fea 100644
+index 7d42095652af..726832e0abe6 100644
 --- libibverbs/verbs.h
 +++ libibverbs/verbs.h
-@@ -2190,6 +2190,7 @@ struct ibv_device **ibv_get_device_list(int 
*num_devices);
+@@ -2204,6 +2204,7 @@ struct ibv_device **ibv_get_device_list(int 
*num_devices);
  
  struct verbs_devices_ops;
  extern const struct verbs_device_ops verbs_provider_bnxt_re;
@@ -3090,29 +3064,8 @@
 +              break;
 +      }
 +}
-diff --git redhat/rdma-core.spec redhat/rdma-core.spec
-index 1bdc4872a233..af0a2e69e3ea 100644
---- redhat/rdma-core.spec
-+++ redhat/rdma-core.spec
-@@ -147,6 +147,8 @@ Summary: A library and drivers for direct userspace use of 
RDMA (InfiniBand/iWAR
- Requires(post): /sbin/ldconfig
- Requires(postun): /sbin/ldconfig
- Requires: %{name}%{?_isa} = %{version}-%{release}
-+Provides: libcxgb3 = %{version}-%{release}
-+Obsoletes: libcxgb3 < %{version}-%{release}
- Provides: libcxgb4 = %{version}-%{release}
- Obsoletes: libcxgb4 < %{version}-%{release}
- Provides: libefa = %{version}-%{release}
-@@ -177,6 +179,7 @@ fast path operations.
- 
- Device-specific plug-in ibverbs userspace drivers are included:
- 
-+- libcxgb3: Chelsio T3 iWARP HCA
- - libcxgb4: Chelsio T4 iWARP HCA
- - libefa: Amazon Elastic Fabric Adapter
- - libhfi1: Intel Omni-Path HFI
 diff --git suse/rdma-core.spec suse/rdma-core.spec
-index 63f8699ade18..082515dc11c3 100644
+index e5d0950e332b..ff66281047b6 100644
 --- suse/rdma-core.spec
 +++ suse/rdma-core.spec
 @@ -182,6 +182,7 @@ RDMA core development libraries and headers.

++++++ _service ++++++
--- /var/tmp/diff_new_pack.9uxZrx/_old  2021-05-20 19:24:56.873970167 +0200
+++ /var/tmp/diff_new_pack.9uxZrx/_new  2021-05-20 19:24:56.877970151 +0200
@@ -8,7 +8,7 @@
     <param name="versionformat">@PARENT_TAG@.@TAG_OFFSET@.%h</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="versionrewrite-replacement">\1</param>
-    <param name="revision">2504c0bab0a807455bfd0e7f516c86a07656e934</param>
+    <param name="revision">e29a698e99028e9a092bb00c03ee4bfa31ae0cf3</param>
        <param name="extract">suse/rdma-core.spec</param>
   </service>
   <service name="recompress" mode="disabled">

++++++ disable-rdma-interface-renaming.patch ++++++
--- /var/tmp/diff_new_pack.9uxZrx/_old  2021-05-20 19:24:56.901970052 +0200
+++ /var/tmp/diff_new_pack.9uxZrx/_new  2021-05-20 19:24:56.901970052 +0200
@@ -1,6 +1,6 @@
-commit 435ad204d32f9f3b7a72a171e2e6d04a90ba9b6e
+commit 1b8594d94f6573e5f359383362ecd97fcbaddc13
 Author: Nicolas Morey-Chaisemartin <nmoreychaisemar...@suse.com>
-Date:   Fri Jan 24 16:01:18 2020 +0100
+Date:   Tue May 18 11:18:54 2021 +0200
 
     disable rdma interface renaming
     
@@ -9,12 +9,15 @@
     Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemar...@suse.com>
 
 diff --git kernel-boot/rdma-persistent-naming.rules 
kernel-boot/rdma-persistent-naming.rules
-index 9b61e1630d56..274d7c87727e 100644
+index 6f9c53a53bbb..41d86df10a54 100644
 --- kernel-boot/rdma-persistent-naming.rules
 +++ kernel-boot/rdma-persistent-naming.rules
-@@ -25,4 +25,4 @@
+@@ -26,7 +26,7 @@
  #   Device type = RoCE
  #   mlx5_0 -> rocex525400c0fe123455
  #
 -ACTION=="add", SUBSYSTEM=="infiniband", PROGRAM="rdma_rename %k NAME_FALLBACK"
 +#ACTION=="add", SUBSYSTEM=="infiniband", PROGRAM="rdma_rename %k 
NAME_FALLBACK"
+ 
+ # Example:
+ # * NAME_FIXED 

++++++ prebuilt-pandoc.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pandoc-prebuilt/091f999901c848597b6f67a020598177d0a677c6 
new/pandoc-prebuilt/091f999901c848597b6f67a020598177d0a677c6
--- old/pandoc-prebuilt/091f999901c848597b6f67a020598177d0a677c6        
1970-01-01 01:00:00.000000000 +0100
+++ new/pandoc-prebuilt/091f999901c848597b6f67a020598177d0a677c6        
2021-05-18 11:11:41.943258442 +0200
@@ -0,0 +1,106 @@
+.\" Automatically generated by Pandoc 2.9.2.1
+.\"
+.TH "mlx5dv_devx_umem_reg, mlx5dv_devx_umem_dereg" "3" "" "" ""
+.hy
+.SH NAME
+.PP
+mlx5dv_devx_umem_reg - Register a user memory to be used by the devx
+interface
+.PP
+mlx5dv_devx_umem_reg_ex - Register a user memory to be used by the devx
+interface
+.PP
+mlx5dv_devx_umem_dereg - Deregister a devx umem object
+.SH SYNOPSIS
+.IP
+.nf
+\f[C]
+#include <infiniband/mlx5dv.h>
+
+struct mlx5dv_devx_umem {
+    uint32_t umem_id;
+};
+
+struct mlx5dv_devx_umem *
+mlx5dv_devx_umem_reg(struct ibv_context *context, void *addr, size_t size,
+             uint32_t access)
+
+struct mlx5dv_devx_umem_in {
+    void *addr;
+    size_t size;
+    uint32_t access;
+    uint64_t pgsz_bitmap;
+    uint64_t comp_mask;
+};
+
+struct mlx5dv_devx_umem *
+mlx5dv_devx_umem_reg_ex(struct ibv_context *ctx, struct mlx5dv_devx_umem_in 
*umem_in);
+
+int mlx5dv_devx_umem_dereg(struct mlx5dv_devx_umem *dv_devx_umem)
+\f[R]
+.fi
+.SH DESCRIPTION
+.PP
+Register or deregister a user memory to be used by the devx interface.
+.PP
+The register verb exposes a UMEM DEVX object for user memory
+registration for DMA.
+The API to register the user memory gets as input the user address,
+length and access flags, and provides to the user as output an object
+which holds the UMEM ID returned by the firmware to this registered
+memory.
+.PP
+The user can ask for specific page sizes for the given address and
+length, in that case \f[I]mlx5dv_devx_umem_reg_ex()\f[R] should be used.
+In case the kernel couldn\[cq]t find a matching page size from the given
+\f[I]umem_in->pgsz_bitmap\f[R] bitmap the API will fail.
+.PP
+The user will use that UMEM ID in device direct commands that use this
+memory instead of the physical addresses list, for example upon
+\f[I]mlx5dv_devx_obj_create\f[R] to create a QP.
+.SH ARGUMENTS
+.TP
+\f[I]context\f[R]
+.IP
+.nf
+\f[C]
+RDMA device context to create the action on.
+\f[R]
+.fi
+.TP
+\f[I]addr\f[R]
+The memory start address to register.
+.TP
+\f[I]size\f[R]
+.IP
+.nf
+\f[C]
+The size of *addr* buffer.
+\f[R]
+.fi
+.TP
+\f[I]access\f[R]
+The desired memory protection attributes; it is either 0 or the bitwise
+OR of one or more of \f[I]enum ibv_access_flags\f[R].
+.TP
+\f[I]umem_in\f[R]
+A structure holds the legacy arguments in addition to a
+\f[I]pgsz_bitmap\f[R] field which represents the required page sizes.
+A \f[I]comp_mask\f[R] field was added for future use, for now must be 0.
+.SH RETURN VALUE
+.PP
+Upon success \f[I]mlx5dv_devx_umem_reg\f[R] /
+\f[I]mlx5dv_devx_umem_reg_ex\f[R] will return a new \f[I]struct
+mlx5dv_devx_umem\f[R] object, on error NULL will be returned and errno
+will be set.
+.PP
+\f[I]mlx5dv_devx_umem_dereg\f[R] returns 0 on success, or the value of
+errno on failure (which indicates the failure reason).
+.SH SEE ALSO
+.PP
+\f[I]mlx5dv_open_device(3)\f[R], \f[I]ibv_reg_mr(3)\f[R],
+\f[I]mlx5dv_devx_obj_create(3)\f[R]
+.PP
+#AUTHOR
+.PP
+Yishai Hadas <yish...@mellanox.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pandoc-prebuilt/7abaf14a236746180c88235cd63ca79f34cbe0b6 
new/pandoc-prebuilt/7abaf14a236746180c88235cd63ca79f34cbe0b6
--- old/pandoc-prebuilt/7abaf14a236746180c88235cd63ca79f34cbe0b6        
1970-01-01 01:00:00.000000000 +0100
+++ new/pandoc-prebuilt/7abaf14a236746180c88235cd63ca79f34cbe0b6        
2021-05-18 11:11:40.595247231 +0200
@@ -0,0 +1,47 @@
+.\" Automatically generated by Pandoc 2.9.2.1
+.\"
+.TH "IBV_IS_FORK_INITIALIZED" "3" "2020-10-09" "libibverbs" "Libibverbs 
Programmer\[cq]s Manual"
+.hy
+.SH NAME
+.PP
+ibv_is_fork_initialized - check if fork support (ibv_fork_init) is
+enabled
+.SH SYNOPSYS
+.IP
+.nf
+\f[C]
+#include <infiniband/verbs.h>
+
+enum ibv_fork_status {
+    IBV_FORK_DISABLED,
+    IBV_FORK_ENABLED,
+    IBV_FORK_UNNEEDED,
+};
+
+enum ibv_fork_status ibv_is_fork_initialized(void);
+\f[R]
+.fi
+.SH DESCRIPTION
+.PP
+\f[B]ibv_is_fork_initialized()\f[R] checks whether libibverbs
+\f[B]fork()\f[R] support was enabled through the
+\f[B]ibv_fork_init()\f[R] verb.
+.SH RETURN VALUE
+.PP
+\f[B]ibv_is_fork_initialized()\f[R] returns IBV_FORK_DISABLED if fork
+support is disabled, or IBV_FORK_ENABLED if enabled.
+IBV_FORK_UNNEEDED return value indicates that the kernel copies DMA
+pages on fork, hence a call to \f[B]ibv_fork_init()\f[R] is unneeded.
+.SH NOTES
+.PP
+The IBV_FORK_UNNEEDED return value takes precedence over
+IBV_FORK_DISABLED and IBV_FORK_ENABLED.
+If the kernel supports copy-on-fork for DMA pages then IBV_FORK_UNNEEDED
+will be returned regardless of whether \f[B]ibv_fork_init()\f[R] was
+called or not.
+.SH SEE ALSO
+.PP
+\f[B]fork\f[R](2), \f[B]ibv_fork_init\f[R](3)
+.SH AUTHOR
+.PP
+Gal Pressman <galpr...@amazon.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pandoc-prebuilt/87bcbf2b86c31bd9ac6bf9e31aeb0c2c46f31d9c 
new/pandoc-prebuilt/87bcbf2b86c31bd9ac6bf9e31aeb0c2c46f31d9c
--- old/pandoc-prebuilt/87bcbf2b86c31bd9ac6bf9e31aeb0c2c46f31d9c        
1970-01-01 01:00:00.000000000 +0100
+++ new/pandoc-prebuilt/87bcbf2b86c31bd9ac6bf9e31aeb0c2c46f31d9c        
2021-05-18 11:11:40.403245635 +0200
@@ -0,0 +1,52 @@
+.\" Automatically generated by Pandoc 2.9.2.1
+.\"
+.TH "ibv_import_dm ibv_unimport_dm" "3" "2021-1-17" "libibverbs" "Libibverbs 
Programmer\[cq]s Manual"
+.hy
+.SH NAME
+.PP
+ibv_import_dm - import an DM from a given ibv_context
+.PP
+ibv_unimport_dm - unimport an DM
+.SH SYNOPSIS
+.IP
+.nf
+\f[C]
+#include <infiniband/verbs.h>
+
+struct ibv_dm *ibv_import_dm(struct ibv_context *context, uint32_t dm_handle);
+void ibv_unimport_dm(struct ibv_dm *dm)
+\f[R]
+.fi
+.SH DESCRIPTION
+.PP
+\f[B]ibv_import_dm()\f[R] returns a Device memory (DM) that is
+associated with the given \f[I]dm_handle\f[R] in the RDMA context.
+.PP
+The input \f[I]dm_handle\f[R] value must be a valid kernel handle for an
+DM object in the assosicated RDMA context.
+It can be achieved from the original DM by getting its ibv_dm->handle
+member value.
+.PP
+\f[B]ibv_unimport_dm()\f[R] un import the DM.
+Once the DM usage has been ended ibv_free_dm() or ibv_unimport_dm()
+should be called.
+The first one will go to the kernel to destroy the object once the
+second one way cleanup what ever is needed/opposite of the import
+without calling the kernel.
+.PP
+This is the responsibility of the application to coordinate between all
+ibv_context(s) that use this DM.
+Once destroy is done no other process can touch the object except for
+unimport.
+All users of the context must collaborate to ensure this.
+.SH RETURN VALUE
+.PP
+\f[B]ibv_import_dm()\f[R] returns a pointer to the allocated DM, or NULL
+if the request fails and errno is set.
+.SH NOTES
+.SH SEE ALSO
+.PP
+\f[B]ibv_alloc_dm\f[R](3), \f[B]ibv_free_dm\f[R](3),
+.SH AUTHOR
+.PP
+Maor Gottlieb <ma...@nvidia.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pandoc-prebuilt/9545514128a54548edeca0639aa2091db0ab6424 
new/pandoc-prebuilt/9545514128a54548edeca0639aa2091db0ab6424
--- old/pandoc-prebuilt/9545514128a54548edeca0639aa2091db0ab6424        
2021-02-19 08:45:38.350176537 +0100
+++ new/pandoc-prebuilt/9545514128a54548edeca0639aa2091db0ab6424        
1970-01-01 01:00:00.000000000 +0100
@@ -1,447 +0,0 @@
-.\" Automatically generated by Pandoc 2.9.2.1
-.\"
-.TH "MLX5DV_DR API" "3" "2019-03-28" "mlx5" "mlx5 Programmer\[cq]s Manual"
-.hy
-.SH NAME
-.PP
-mlx5dv_dr_domain_create, mlx5dv_dr_domain_sync,
-mlx5dv_dr_domain_destroy, mlx5dv_dr_domain_set_reclaim_device_memory -
-Manage flow domains
-.PP
-mlx5dv_dr_table_create, mlx5dv_dr_table_destroy - Manage flow tables
-.PP
-mlx5dv_dr_matcher_create, mlx5dv_dr_matcher_destroy - Manage flow
-matchers
-.PP
-mlx5dv_dr_rule_create, mlx5dv_dr_rule_destroy - Manage flow rules
-.PP
-mlx5dv_dr_action_create_drop - Create drop action
-.PP
-mlx5dv_dr_action_create_default_miss - Create default miss action
-.PP
-mlx5dv_dr_action_create_tag - Create tag actions
-.PP
-mlx5dv_dr_action_create_dest_ibv_qp, mlx5dv_dr_action_create_dest_table,
-mlx5dv_dr_action_create_dest_vport,
-mlx5dv_dr_action_create_dest_devx_tir - Create packet destination
-actions
-.PP
-mlx5dv_dr_action_create_dest_array - Create destination array action
-.PP
-mlx5dv_dr_action_create_packet_reformat - Create packet reformat actions
-.PP
-mlx5dv_dr_action_create_modify_header - Create modify header actions
-.PP
-mlx5dv_dr_action_create_flow_counter - Create devx flow counter actions
-.PP
-mlx5dv_dr_action_create_aso, mlx5dv_dr_action_modify_aso - Create and
-modify ASO actions
-.PP
-mlx5dv_dr_action_create_flow_meter, mlx5dv_dr_action_modify_flow_meter -
-Create and modify meter action
-.PP
-mlx5dv_dr_action_create_flow_sampler - Create flow sampler action
-.PP
-mlx5dv_dr_action_create_pop_vlan - Create pop vlan action
-.PP
-mlx5dv_dr_action_create_push_vlan- Create push vlan action
-.PP
-mlx5dv_dr_action_destroy - Destroy actions
-.SH SYNOPSIS
-.IP
-.nf
-\f[C]
-#include <infiniband/mlx5dv.h>
-
-struct mlx5dv_dr_domain *mlx5dv_dr_domain_create(
-        struct ibv_context *ctx,
-        enum mlx5dv_dr_domain_type type);
-
-int mlx5dv_dr_domain_sync(
-        struct mlx5dv_dr_domain *domain,
-        uint32_t flags);
-
-int mlx5dv_dr_domain_destroy(struct mlx5dv_dr_domain *domain);
-
-void mlx5dv_dr_domain_set_reclaim_device_memory(
-        struct mlx5dv_dr_domain *dmn,
-        bool enable);
-
-struct mlx5dv_dr_table *mlx5dv_dr_table_create(
-        struct mlx5dv_dr_domain *domain,
-        uint32_t level);
-
-int mlx5dv_dr_table_destroy(struct mlx5dv_dr_table *table);
-
-struct mlx5dv_dr_matcher *mlx5dv_dr_matcher_create(
-        struct mlx5dv_dr_table *table,
-        uint16_t priority,
-        uint8_t match_criteria_enable,
-        struct mlx5dv_flow_match_parameters *mask);
-
-int mlx5dv_dr_matcher_destroy(struct mlx5dv_dr_matcher *matcher);
-
-struct mlx5dv_dr_rule *mlx5dv_dr_rule_create(
-        struct mlx5dv_dr_matcher *matcher,
-        struct mlx5dv_flow_match_parameters *value,
-        size_t num_actions,
-        struct mlx5dv_dr_action *actions[]);
-
-void mlx5dv_dr_rule_destroy(struct mlx5dv_dr_rule *rule);
-
-struct mlx5dv_dr_action *mlx5dv_dr_action_create_drop(void);
-
-struct mlx5dv_dr_action *mlx5dv_dr_action_create_default_miss(void);
-
-struct mlx5dv_dr_action *mlx5dv_dr_action_create_tag(
-        uint32_t tag_value);
-
-struct mlx5dv_dr_action *mlx5dv_dr_action_create_dest_ibv_qp(
-        struct ibv_qp *ibqp);
-
-struct mlx5dv_dr_action *mlx5dv_dr_action_create_dest_table(
-        struct mlx5dv_dr_table *table);
-
-struct mlx5dv_dr_action *mlx5dv_dr_action_create_dest_vport(
-        struct mlx5dv_dr_domain *domain,
-        uint32_t vport);
-
-struct mlx5dv_dr_action *mlx5dv_dr_action_create_dest_devx_tir(
-        struct mlx5dv_devx_obj *devx_obj);
-
-struct mlx5dv_dr_action *mlx5dv_dr_action_create_packet_reformat(
-        struct mlx5dv_dr_domain *domain,
-        uint32_t flags,
-        enum mlx5dv_flow_action_packet_reformat_type reformat_type,
-        size_t data_sz, void *data);
-
-struct mlx5dv_dr_action *mlx5dv_dr_action_create_modify_header(
-        struct mlx5dv_dr_domain *domain,
-        uint32_t flags,
-        size_t actions_sz,
-        __be64 actions[]);
-
-struct mlx5dv_dr_action *mlx5dv_dr_action_create_flow_counter(
-        struct mlx5dv_devx_obj *devx_obj,
-        uint32_t offset);
-
-struct mlx5dv_dr_action *
-mlx5dv_dr_action_create_aso(struct mlx5dv_dr_domain *domain,
-                struct mlx5dv_devx_obj *devx_obj,
-                uint32_t offset,
-                uint32_t flags,
-                uint8_t return_reg_c);
-
-int mlx5dv_dr_action_modify_aso(struct mlx5dv_dr_action *action,
-                uint32_t offset,
-                uint32_t flags,
-                uint8_t return_reg_c);
-
-struct mlx5dv_dr_action *
-mlx5dv_dr_action_create_flow_meter(struct mlx5dv_dr_flow_meter_attr *attr);
-
-int mlx5dv_dr_action_modify_flow_meter(struct mlx5dv_dr_action *action,
-                       struct mlx5dv_dr_flow_meter_attr *attr,
-                       __be64 modify_field_select);
-
-struct mlx5dv_dr_action *
-mlx5dv_dr_action_create_flow_sampler(struct mlx5dv_dr_flow_sampler_attr *attr);
-
-struct mlx5dv_dr_action *
-mlx5dv_dr_action_create_dest_array(struct mlx5dv_dr_domain *domain,
-                   size_t num_dest,
-                   struct mlx5dv_dr_action_dest_attr *dests[]);
-
-struct mlx5dv_dr_action *mlx5dv_dr_action_create_pop_vlan(void);
-
-struct mlx5dv_dr_action *mlx5dv_dr_action_create_push_vlan(
-        struct mlx5dv_dr_domain *dmn,
-        __be32 vlan_hdr)
-
-int mlx5dv_dr_action_destroy(struct mlx5dv_dr_action *action);
-\f[R]
-.fi
-.SH DESCRIPTION
-.PP
-The Direct Rule API (mlx5dv_dr_*) allows complete access by verbs
-application to the device\[ga]s packet steering functionality.
-.PP
-Steering flow rules are the combination of attributes with a match
-pattern and a list of actions.
-Rules can have several distinct actions (such as counting,
-encapsulating, decapsulating before redirecting packets to a particular
-queue or port, etc.).
-In order to manage the rule execution order for the packet processing
-matching by HW, multiple flow tables in an ordered chain and multiple
-flow matchers sorted by priorities are defined.
-.SS Domain
-.PP
-\f[I]mlx5dv_dr_domain_create()\f[R] creates a DR domain object to be
-used with \f[I]mlx5dv_dr_table_create()\f[R] and
-\f[I]mlx5dv_dr_action_create_*()\f[R].
-.PP
-A domain should be destroyed by calling
-\f[I]mlx5dv_dr_domain_destroy()\f[R] once all depended resources are
-released.
-.PP
-The device support the following domains types:
-.PP
-\f[B]MLX5DV_DR_DOMAIN_TYPE_NIC_RX\f[R] Manage ethernet packets received
-on the NIC.
-Packets in this domain can be dropped, dispatched to QP\[ga]s, modified
-or redirected to additional tables inside the domain.
-Default behavior: Drop packet.
-.PP
-\f[B]MLX5DV_DR_DOMAIN_TYPE_NIC_TX\f[R] Manage ethernet packets transmit
-on the NIC.
-Packets in this domain can be dropped, modified or redirected to
-additional tables inside the domain.
-Default behavior: Forward packet to NIC vport (to eSwitch or wire).
-.PP
-\f[B]MLX5DV_DR_DOMAIN_TYPE_FDB\f[R] Manage ethernet packets in the
-eSwitch Forwarding Data Base for packets received from wire or from any
-other vport.
-Packets in this domain can be dropped, dispatched to vport, modified or
-redirected to additional tables inside the domain.
-Default behavior: Forward packet to eSwitch manager vport.
-.PP
-\f[I]mlx5dv_dr_domain_sync()\f[R] is used in order to flush the rule
-submission queue.
-By default, rules in a domain are updated in HW asynchronously.
-\f[B]flags\f[R] should be a set of type \f[I]enum
-mlx5dv_dr_domain_sync_flags\f[R]:
-.PP
-\f[B]MLX5DV_DR_DOMAIN_SYNC_FLAGS_SW\f[R]: block until completion of all
-software queued tasks.
-.PP
-\f[B]MLX5DV_DR_DOMAIN_SYNC_FLAGS_HW\f[R]: clear the steering HW cache to
-enforce next packet hits the latest rules, in addition to the SW SYNC
-handling.
-.PP
-\f[B]MLX5DV_DR_DOMAIN_SYNC_FLAGS_MEM\f[R]: sync device memory to free
-cached memory.
-.PP
-\f[I]mlx5dv_dr_domain_set_reclaim_device_memory()\f[R] is used to enable
-the reclaiming of device memory back to the system when not in use, by
-default this feature is disabled.
-.SS Table
-.PP
-\f[I]mlx5dv_dr_table_create()\f[R] creates a DR table in the
-\f[B]domain\f[R], at the appropriate \f[B]level\f[R], and can be used
-with \f[I]mlx5dv_dr_matcher_create()\f[R] and
-\f[I]mlx5dv_dr_action_create_dest_table()\f[R].
-All packets start traversing the steering domain tree at table
-\f[B]level\f[R] zero (0).
-Using rule and action, packets can by redirected to other tables in the
-domain.
-.PP
-A table should be destroyed by calling
-\f[I]mlx5dv_dr_table_destroy()\f[R] once all depended resources are
-released.
-.SS Matcher
-.PP
-\f[I]mlx5dv_dr_matcher_create()\f[R] create a matcher object in
-\f[B]table\f[R], at sorted \f[B]priority\f[R] (lower value is check
-first).
-A matcher can hold multiple rules, all with identical \f[B]mask\f[R] of
-type \f[I]struct mlx5dv_flow_match_parameters\f[R] which represents the
-exact attributes to be compared by HW steering.
-The \f[B]match_criteria_enable\f[R] and \f[B]mask\f[R] are defined in a
-device spec format.
-Only the fields that where masked in the \f[I]matcher\f[R] should be
-filled by the rule in \f[I]mlx5dv_dr_rule_create()\f[R].
-.PP
-A matcher should be destroyed by calling
-\f[I]mlx5dv_dr_matcher_destroy()\f[R] once all depended resources are
-released.
-.SS Actions
-.PP
-A set of action create API are defined by
-\f[I]mlx5dv_dr_action_create_*()\f[R].
-All action are created as \f[I]struct mlx5dv_dr_action\f[R].
-An action should be destroyed by calling
-\f[I]mlx5dv_dr_action_destroy()\f[R] once all depended rules are
-destroyed.
-.PP
-When an action handle is reused for multiple rules, the same action will
-be executed.
-e.g.: action `count' will count multiple flows rules on the same HW flow
-counter context.
-action `drop' will drop packets of different rule from any matcher.
-.PP
-Action: Drop \f[I]mlx5dv_dr_action_create_drop\f[R] create a terminating
-action which drops packets.
-Can not be mixed with Destination actions.
-.PP
-Action: Default miss \f[I]mlx5dv_dr_action_create_default_miss\f[R]
-create a terminating action which will execute the default behavior
-based on the domain type.
-.PP
-Action: Tag \f[I]mlx5dv_dr_action_create_tag\f[R] creates a
-non-terminating action which tags packets with \f[B]tag_value\f[R].
-The \f[B]tag_value\f[R] is available in the CQE of the packet received.
-Valid only on domain type NIC_RX.
-.PP
-Action: Destination \f[I]mlx5dv_dr_action_create_dest_ibv_qp\f[R]
-creates a terminating action delivering the packet to a QP, defined by
-\f[B]ibqp\f[R].
-Valid only on domain type NIC_RX.
-\f[I]mlx5dv_dr_action_create_dest_table\f[R] creates a forwarding action
-to another flow table, defined by \f[B]table\f[R].
-The destination \f[B]table\f[R] must be from the same domain with a
-level higher than zero.
-\f[I]mlx5dv_dr_action_create_dest_vport\f[R] creates a forwarding action
-to a \f[B]vport\f[R] on the same \f[B]domain\f[R].
-Valid only on domain type FDB.
-\f[I]mlx5dv_dr_action_create_dest_devx_tir\f[R] creates a terminating
-action delivering the packet to a TIR, defined by \f[B]devx_obj\f[R].
-Valid only on domain type NIC_RX.
-.PP
-Action: Array \f[I]mlx5dv_dr_action_create_dest_array\f[R] creates an
-action which replicates a packet to multiple destinations.
-\f[B]num_dest\f[R] defines the number of replication destinations.
-Each \f[B]dests\f[R] destination array entry can be of different
-\f[B]type\f[R].
-Use type MLX5DV_DR_ACTION_DEST for direct forwarding to an action
-destination.
-Use type MLX5DV_DR_ACTION_DEST_REFORMAT when reformat action should be
-performed on the packet before it is forwarding to the destination
-action.
-.PP
-Action: Packet Reformat
-\f[I]mlx5dv_dr_action_create_packet_reformat\f[R] create a packet
-reformat context and action in the \f[B]domain\f[R].
-The \f[B]reformat_type\f[R], \f[B]data_sz\f[R] and \f[B]data\f[R] are
-defined in \f[I]man mlx5dv_create_flow_action_packet_reformat\f[R].
-.PP
-Action: Modify Header \f[I]mlx5dv_dr_action_create_modify_header\f[R]
-create a modify header context and action in the \f[B]domain\f[R].
-The \f[B]actions_sz\f[R] and \f[B]actions\f[R] are defined in \f[I]man
-mlx5dv_create_flow_action_modify_header\f[R].
-.PP
-Action: Flow Count \f[I]mlx5dv_dr_action_create_flow_counter\f[R]
-creates a flow counter action from a DEVX flow counter object, based on
-\f[B]devx_obj\f[R] and specific counter index from \f[B]offset\f[R] in
-the counter bulk.
-.PP
-Action: ASO \f[I]mlx5dv_dr_action_create_aso\f[R] receives a
-\f[B]domain\f[R] pointer and creates an ASO action from the DEVX ASO
-object, based on \f[B]devx_obj\f[R].
-Use \f[B]offset\f[R] to select the specific ASO object in the
-\f[B]devx_obj\f[R] bulk.
-DR rules using this action can optionally update the ASO object value
-according to \f[B]flags\f[R] to choose the specific wanted behavior of
-this object.
-After a packet hits the rule with the ASO object the value of the ASO
-object will be copied into the chosen \f[B]return_reg_c\f[R] which can
-be used for match in following DR rules.
-.PP
-\f[I]mlx5dv_dr_action_modify_aso\f[R] modifies ASO action
-\f[B]action\f[R] with new values for \f[B]offset\f[R],
-\f[B]return_reg_c\f[R] and \f[B]flags\f[R].
-Only new DR rules using this \f[B]action\f[R] will use the modified
-values.
-Existing DR rules do not change the HW action values stored.
-.PP
-\f[B]flags\f[R] can be set to one of the types of
-\f[I]mlx5dv_dr_action_aso_first_hit_flags\f[R] or
-\f[I]mlx5dv_dr_action_aso_flow_meter_flags\f[R]:
-\f[B]MLX5DV_DR_ACTION_ASO_FIRST_HIT_FLAGS_SET\f[R]: is used to set the
-ASO first hit object context, else the context is only copied to the
-return_reg_c.
-\f[B]MLX5DV_DR_ACTION_FLAGS_ASO_FLOW_METER_RED\f[R]: is used to indicate
-to update the initial color in ASO flow meter object value to red.
-\f[B]MLX5DV_DR_ACTION_FLAGS_ASO_FLOW_METER_YELLOW\f[R]: is used to
-indicate to update the initial color in ASO flow meter object value to
-yellow.
-\f[B]MLX5DV_DR_ACTION_FLAGS_ASO_FLOW_METER_GREEN\f[R]: is used to
-indicate to update the initial color in ASO flow meter object value to
-green.
-\f[B]MLX5DV_DR_ACTION_FLAGS_ASO_FLOW_METER_UNDEFINED\f[R]: is used to
-indicate to update the initial color in ASO flow meter object value to
-undefined.
-.PP
-Action: Meter \f[I]mlx5dv_dr_action_create_flow_meter\f[R] creates a
-meter action based on the flow meter parameters.
-The paramertes are according to the device specification.
-\f[I]mlx5dv_dr_action_modify_flow_meter\f[R] modifies existing flow
-meter \f[B]action\f[R] based on \f[B]modify_field_select\f[R].
-\f[B]modify_field_select\f[R] is according to the device specification.
-.PP
-Action: Sampler \f[I]mlx5dv_dr_action_create_flow_sampler\f[R] creates a
-sampler action, allowing us to duplicate and sample a portion of
-traffic.
-Packets steered to the sampler action will be sampled with an
-approximate probability of 1/sample_ratio provided in \f[B]attr\f[R],
-and sample_actions provided in \f[B]attr\f[R] will be executed over
-them.
-All original packets will be steered to default_next_table in
-\f[B]attr\f[R].
-A modify header format SET_ACTION data can be provided in action of
-\f[B]attr\f[R], which can be executed on packets before going to default
-flow table.
-On some devices, this is required to set register value.
-.PP
-Action Flags: action \f[B]flags\f[R] can be set to one of the types of
-\f[I]enum mlx5dv_dr_action_flags\f[R]:
-.PP
-Action: Pop Vlan \f[I]mlx5dv_dr_action_create_pop_vlan\f[R] creates a
-pop vlan action which removes VLAN tags from packets layer 2.
-.PP
-Action: Push Vlan \f[I]mlx5dv_dr_action_create_push_vlan\f[R] creates a
-push vlan action which adds VLAN tags to packets layer 2.
-.PP
-\f[B]MLX5DV_DR_ACTION_FLAGS_ROOT_LEVEL\f[R]: is used to indicate the
-action is targeted for flow table in level=0 (ROOT) of the specific
-domain.
-.SS Rule
-.PP
-\f[I]mlx5dv_dr_rule_create()\f[R] creates a HW steering rule entry in
-\f[B]matcher\f[R].
-The \f[B]value\f[R] of type \f[I]struct
-mlx5dv_flow_match_parameters\f[R] holds the exact attribute values of
-the steering rule to be matched, in a device spec format.
-Only the fields that where masked in the \f[I]matcher\f[R] should be
-filled.
-HW will perform the set of \f[B]num_actions\f[R] from the
-\f[B]action\f[R] array of type \f[I]struct mlx5dv_dr_action\f[R], once a
-packet matches the exact \f[B]value\f[R] of the rule (referred to as a
-`hit').
-.PP
-\f[I]mlx5dv_dr_rule_destroy()\f[R] destroys the rule.
-.SH RETURN VALUE
-.PP
-The create API calls will return a pointer to the relevant object:
-table, matcher, action, rule.
-on failure, NULL will be returned and errno will be set.
-.PP
-The destroy API calls will returns 0 on success, or the value of errno
-on failure (which indicates the failure reason).
-.SH LIMITATIONS
-.PP
-Application can verify is a feature is supported by \f[I]trail and
-error\f[R].
-No capabilities are exposed, as the combination of all the options
-exposed are way to large to define.
-.PP
-Tables are size less by definition.
-They are expected to grow and shrink to accommodate for all rules,
-according to driver capabilities.
-Once reaching a limit, an error is returned.
-.PP
-Matchers in same priority, in the same table, will have undefined
-ordered.
-.PP
-A rule with identical value pattern to another rule on a given matcher
-are rejected.
-.PP
-IP version in matcher mask and rule should be equal and set to 4, 6 or
-0.
-# SEE ALSO
-.PP
-\f[B]mlx5dv_open_device(3)\f[R],
-\f[B]mlx5dv_create_flow_action_packet_reformat(3)\f[R],
-\f[B]mlx5dv_create_flow_action_modify_header(3)\f[R].
-.SH AUTHOR
-.PP
-Alex Rosenbaum <al...@mellanox.com> Alex Vesker <va...@mellanox.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pandoc-prebuilt/affcd328ece4d37125b041690d542c70aee0c8b5 
new/pandoc-prebuilt/affcd328ece4d37125b041690d542c70aee0c8b5
--- old/pandoc-prebuilt/affcd328ece4d37125b041690d542c70aee0c8b5        
1970-01-01 01:00:00.000000000 +0100
+++ new/pandoc-prebuilt/affcd328ece4d37125b041690d542c70aee0c8b5        
2021-05-18 11:11:41.615255715 +0200
@@ -0,0 +1,452 @@
+.\" Automatically generated by Pandoc 2.9.2.1
+.\"
+.TH "MLX5DV_DR API" "3" "2019-03-28" "mlx5" "mlx5 Programmer\[cq]s Manual"
+.hy
+.SH NAME
+.PP
+mlx5dv_dr_domain_create, mlx5dv_dr_domain_sync,
+mlx5dv_dr_domain_destroy, mlx5dv_dr_domain_set_reclaim_device_memory -
+Manage flow domains
+.PP
+mlx5dv_dr_table_create, mlx5dv_dr_table_destroy - Manage flow tables
+.PP
+mlx5dv_dr_matcher_create, mlx5dv_dr_matcher_destroy - Manage flow
+matchers
+.PP
+mlx5dv_dr_rule_create, mlx5dv_dr_rule_destroy - Manage flow rules
+.PP
+mlx5dv_dr_action_create_drop - Create drop action
+.PP
+mlx5dv_dr_action_create_default_miss - Create default miss action
+.PP
+mlx5dv_dr_action_create_tag - Create tag actions
+.PP
+mlx5dv_dr_action_create_dest_ibv_qp, mlx5dv_dr_action_create_dest_table,
+mlx5dv_dr_action_create_dest_vport,
+mlx5dv_dr_action_create_dest_devx_tir - Create packet destination
+actions
+.PP
+mlx5dv_dr_action_create_dest_array - Create destination array action
+.PP
+mlx5dv_dr_action_create_packet_reformat - Create packet reformat actions
+.PP
+mlx5dv_dr_action_create_modify_header - Create modify header actions
+.PP
+mlx5dv_dr_action_create_flow_counter - Create devx flow counter actions
+.PP
+mlx5dv_dr_action_create_aso, mlx5dv_dr_action_modify_aso - Create and
+modify ASO actions
+.PP
+mlx5dv_dr_action_create_flow_meter, mlx5dv_dr_action_modify_flow_meter -
+Create and modify meter action
+.PP
+mlx5dv_dr_action_create_flow_sampler - Create flow sampler action
+.PP
+mlx5dv_dr_action_create_pop_vlan - Create pop vlan action
+.PP
+mlx5dv_dr_action_create_push_vlan- Create push vlan action
+.PP
+mlx5dv_dr_action_destroy - Destroy actions
+.SH SYNOPSIS
+.IP
+.nf
+\f[C]
+#include <infiniband/mlx5dv.h>
+
+struct mlx5dv_dr_domain *mlx5dv_dr_domain_create(
+        struct ibv_context *ctx,
+        enum mlx5dv_dr_domain_type type);
+
+int mlx5dv_dr_domain_sync(
+        struct mlx5dv_dr_domain *domain,
+        uint32_t flags);
+
+int mlx5dv_dr_domain_destroy(struct mlx5dv_dr_domain *domain);
+
+void mlx5dv_dr_domain_set_reclaim_device_memory(
+        struct mlx5dv_dr_domain *dmn,
+        bool enable);
+
+struct mlx5dv_dr_table *mlx5dv_dr_table_create(
+        struct mlx5dv_dr_domain *domain,
+        uint32_t level);
+
+int mlx5dv_dr_table_destroy(struct mlx5dv_dr_table *table);
+
+struct mlx5dv_dr_matcher *mlx5dv_dr_matcher_create(
+        struct mlx5dv_dr_table *table,
+        uint16_t priority,
+        uint8_t match_criteria_enable,
+        struct mlx5dv_flow_match_parameters *mask);
+
+int mlx5dv_dr_matcher_destroy(struct mlx5dv_dr_matcher *matcher);
+
+struct mlx5dv_dr_rule *mlx5dv_dr_rule_create(
+        struct mlx5dv_dr_matcher *matcher,
+        struct mlx5dv_flow_match_parameters *value,
+        size_t num_actions,
+        struct mlx5dv_dr_action *actions[]);
+
+void mlx5dv_dr_rule_destroy(struct mlx5dv_dr_rule *rule);
+
+struct mlx5dv_dr_action *mlx5dv_dr_action_create_drop(void);
+
+struct mlx5dv_dr_action *mlx5dv_dr_action_create_default_miss(void);
+
+struct mlx5dv_dr_action *mlx5dv_dr_action_create_tag(
+        uint32_t tag_value);
+
+struct mlx5dv_dr_action *mlx5dv_dr_action_create_dest_ibv_qp(
+        struct ibv_qp *ibqp);
+
+struct mlx5dv_dr_action *mlx5dv_dr_action_create_dest_table(
+        struct mlx5dv_dr_table *table);
+
+struct mlx5dv_dr_action *mlx5dv_dr_action_create_dest_vport(
+        struct mlx5dv_dr_domain *domain,
+        uint32_t vport);
+
+struct mlx5dv_dr_action *mlx5dv_dr_action_create_dest_devx_tir(
+        struct mlx5dv_devx_obj *devx_obj);
+
+struct mlx5dv_dr_action *mlx5dv_dr_action_create_packet_reformat(
+        struct mlx5dv_dr_domain *domain,
+        uint32_t flags,
+        enum mlx5dv_flow_action_packet_reformat_type reformat_type,
+        size_t data_sz, void *data);
+
+struct mlx5dv_dr_action *mlx5dv_dr_action_create_modify_header(
+        struct mlx5dv_dr_domain *domain,
+        uint32_t flags,
+        size_t actions_sz,
+        __be64 actions[]);
+
+struct mlx5dv_dr_action *mlx5dv_dr_action_create_flow_counter(
+        struct mlx5dv_devx_obj *devx_obj,
+        uint32_t offset);
+
+struct mlx5dv_dr_action *
+mlx5dv_dr_action_create_aso(struct mlx5dv_dr_domain *domain,
+                struct mlx5dv_devx_obj *devx_obj,
+                uint32_t offset,
+                uint32_t flags,
+                uint8_t return_reg_c);
+
+int mlx5dv_dr_action_modify_aso(struct mlx5dv_dr_action *action,
+                uint32_t offset,
+                uint32_t flags,
+                uint8_t return_reg_c);
+
+struct mlx5dv_dr_action *
+mlx5dv_dr_action_create_flow_meter(struct mlx5dv_dr_flow_meter_attr *attr);
+
+int mlx5dv_dr_action_modify_flow_meter(struct mlx5dv_dr_action *action,
+                       struct mlx5dv_dr_flow_meter_attr *attr,
+                       __be64 modify_field_select);
+
+struct mlx5dv_dr_action *
+mlx5dv_dr_action_create_flow_sampler(struct mlx5dv_dr_flow_sampler_attr *attr);
+
+struct mlx5dv_dr_action *
+mlx5dv_dr_action_create_dest_array(struct mlx5dv_dr_domain *domain,
+                   size_t num_dest,
+                   struct mlx5dv_dr_action_dest_attr *dests[]);
+
+struct mlx5dv_dr_action *mlx5dv_dr_action_create_pop_vlan(void);
+
+struct mlx5dv_dr_action *mlx5dv_dr_action_create_push_vlan(
+        struct mlx5dv_dr_domain *dmn,
+        __be32 vlan_hdr)
+
+int mlx5dv_dr_action_destroy(struct mlx5dv_dr_action *action);
+\f[R]
+.fi
+.SH DESCRIPTION
+.PP
+The Direct Rule API (mlx5dv_dr_*) allows complete access by verbs
+application to the device\[ga]s packet steering functionality.
+.PP
+Steering flow rules are the combination of attributes with a match
+pattern and a list of actions.
+Rules can have several distinct actions (such as counting,
+encapsulating, decapsulating before redirecting packets to a particular
+queue or port, etc.).
+In order to manage the rule execution order for the packet processing
+matching by HW, multiple flow tables in an ordered chain and multiple
+flow matchers sorted by priorities are defined.
+.SS Domain
+.PP
+\f[I]mlx5dv_dr_domain_create()\f[R] creates a DR domain object to be
+used with \f[I]mlx5dv_dr_table_create()\f[R] and
+\f[I]mlx5dv_dr_action_create_*()\f[R].
+.PP
+A domain should be destroyed by calling
+\f[I]mlx5dv_dr_domain_destroy()\f[R] once all depended resources are
+released.
+.PP
+The device support the following domains types:
+.PP
+\f[B]MLX5DV_DR_DOMAIN_TYPE_NIC_RX\f[R] Manage ethernet packets received
+on the NIC.
+Packets in this domain can be dropped, dispatched to QP\[ga]s, modified
+or redirected to additional tables inside the domain.
+Default behavior: Drop packet.
+.PP
+\f[B]MLX5DV_DR_DOMAIN_TYPE_NIC_TX\f[R] Manage ethernet packets transmit
+on the NIC.
+Packets in this domain can be dropped, modified or redirected to
+additional tables inside the domain.
+Default behavior: Forward packet to NIC vport (to eSwitch or wire).
+.PP
+\f[B]MLX5DV_DR_DOMAIN_TYPE_FDB\f[R] Manage ethernet packets in the
+eSwitch Forwarding Data Base for packets received from wire or from any
+other vport.
+Packets in this domain can be dropped, dispatched to vport, modified or
+redirected to additional tables inside the domain.
+Default behavior: Forward packet to eSwitch manager vport.
+.PP
+\f[I]mlx5dv_dr_domain_sync()\f[R] is used in order to flush the rule
+submission queue.
+By default, rules in a domain are updated in HW asynchronously.
+\f[B]flags\f[R] should be a set of type \f[I]enum
+mlx5dv_dr_domain_sync_flags\f[R]:
+.PP
+\f[B]MLX5DV_DR_DOMAIN_SYNC_FLAGS_SW\f[R]: block until completion of all
+software queued tasks.
+.PP
+\f[B]MLX5DV_DR_DOMAIN_SYNC_FLAGS_HW\f[R]: clear the steering HW cache to
+enforce next packet hits the latest rules, in addition to the SW SYNC
+handling.
+.PP
+\f[B]MLX5DV_DR_DOMAIN_SYNC_FLAGS_MEM\f[R]: sync device memory to free
+cached memory.
+.PP
+\f[I]mlx5dv_dr_domain_set_reclaim_device_memory()\f[R] is used to enable
+the reclaiming of device memory back to the system when not in use, by
+default this feature is disabled.
+.SS Table
+.PP
+\f[I]mlx5dv_dr_table_create()\f[R] creates a DR table in the
+\f[B]domain\f[R], at the appropriate \f[B]level\f[R], and can be used
+with \f[I]mlx5dv_dr_matcher_create()\f[R] and
+\f[I]mlx5dv_dr_action_create_dest_table()\f[R].
+All packets start traversing the steering domain tree at table
+\f[B]level\f[R] zero (0).
+Using rule and action, packets can by redirected to other tables in the
+domain.
+.PP
+A table should be destroyed by calling
+\f[I]mlx5dv_dr_table_destroy()\f[R] once all depended resources are
+released.
+.SS Matcher
+.PP
+\f[I]mlx5dv_dr_matcher_create()\f[R] create a matcher object in
+\f[B]table\f[R], at sorted \f[B]priority\f[R] (lower value is check
+first).
+A matcher can hold multiple rules, all with identical \f[B]mask\f[R] of
+type \f[I]struct mlx5dv_flow_match_parameters\f[R] which represents the
+exact attributes to be compared by HW steering.
+The \f[B]match_criteria_enable\f[R] and \f[B]mask\f[R] are defined in a
+device spec format.
+Only the fields that where masked in the \f[I]matcher\f[R] should be
+filled by the rule in \f[I]mlx5dv_dr_rule_create()\f[R].
+.PP
+A matcher should be destroyed by calling
+\f[I]mlx5dv_dr_matcher_destroy()\f[R] once all depended resources are
+released.
+.SS Actions
+.PP
+A set of action create API are defined by
+\f[I]mlx5dv_dr_action_create_*()\f[R].
+All action are created as \f[I]struct mlx5dv_dr_action\f[R].
+An action should be destroyed by calling
+\f[I]mlx5dv_dr_action_destroy()\f[R] once all depended rules are
+destroyed.
+.PP
+When an action handle is reused for multiple rules, the same action will
+be executed.
+e.g.: action `count' will count multiple flows rules on the same HW flow
+counter context.
+action `drop' will drop packets of different rule from any matcher.
+.PP
+Action: Drop \f[I]mlx5dv_dr_action_create_drop\f[R] create a terminating
+action which drops packets.
+Can not be mixed with Destination actions.
+.PP
+Action: Default miss \f[I]mlx5dv_dr_action_create_default_miss\f[R]
+create a terminating action which will execute the default behavior
+based on the domain type.
+.PP
+Action: Tag \f[I]mlx5dv_dr_action_create_tag\f[R] creates a
+non-terminating action which tags packets with \f[B]tag_value\f[R].
+The \f[B]tag_value\f[R] is available in the CQE of the packet received.
+Valid only on domain type NIC_RX.
+.PP
+Action: Destination \f[I]mlx5dv_dr_action_create_dest_ibv_qp\f[R]
+creates a terminating action delivering the packet to a QP, defined by
+\f[B]ibqp\f[R].
+Valid only on domain type NIC_RX.
+\f[I]mlx5dv_dr_action_create_dest_table\f[R] creates a forwarding action
+to another flow table, defined by \f[B]table\f[R].
+The destination \f[B]table\f[R] must be from the same domain with a
+level higher than zero.
+\f[I]mlx5dv_dr_action_create_dest_vport\f[R] creates a forwarding action
+to a \f[B]vport\f[R] on the same \f[B]domain\f[R].
+Valid only on domain type FDB.
+\f[I]mlx5dv_dr_action_create_dest_devx_tir\f[R] creates a terminating
+action delivering the packet to a TIR, defined by \f[B]devx_obj\f[R].
+Valid only on domain type NIC_RX.
+.PP
+Action: Array \f[I]mlx5dv_dr_action_create_dest_array\f[R] creates an
+action which replicates a packet to multiple destinations.
+\f[B]num_dest\f[R] defines the number of replication destinations.
+Each \f[B]dests\f[R] destination array entry can be of different
+\f[B]type\f[R].
+Use type MLX5DV_DR_ACTION_DEST for direct forwarding to an action
+destination.
+Use type MLX5DV_DR_ACTION_DEST_REFORMAT when reformat action should be
+performed on the packet before it is forwarding to the destination
+action.
+.PP
+Action: Packet Reformat
+\f[I]mlx5dv_dr_action_create_packet_reformat\f[R] create a packet
+reformat context and action in the \f[B]domain\f[R].
+The \f[B]reformat_type\f[R], \f[B]data_sz\f[R] and \f[B]data\f[R] are
+defined in \f[I]man mlx5dv_create_flow_action_packet_reformat\f[R].
+.PP
+Action: Modify Header \f[I]mlx5dv_dr_action_create_modify_header\f[R]
+create a modify header context and action in the \f[B]domain\f[R].
+The \f[B]actions_sz\f[R] and \f[B]actions\f[R] are defined in \f[I]man
+mlx5dv_create_flow_action_modify_header\f[R].
+.PP
+Action: Flow Count \f[I]mlx5dv_dr_action_create_flow_counter\f[R]
+creates a flow counter action from a DEVX flow counter object, based on
+\f[B]devx_obj\f[R] and specific counter index from \f[B]offset\f[R] in
+the counter bulk.
+.PP
+Action: ASO \f[I]mlx5dv_dr_action_create_aso\f[R] receives a
+\f[B]domain\f[R] pointer and creates an ASO action from the DEVX ASO
+object, based on \f[B]devx_obj\f[R].
+Use \f[B]offset\f[R] to select the specific ASO object in the
+\f[B]devx_obj\f[R] bulk.
+DR rules using this action can optionally update the ASO object value
+according to \f[B]flags\f[R] to choose the specific wanted behavior of
+this object.
+After a packet hits the rule with the ASO object the value of the ASO
+object will be copied into the chosen \f[B]return_reg_c\f[R] which can
+be used for match in following DR rules.
+.PP
+\f[I]mlx5dv_dr_action_modify_aso\f[R] modifies ASO action
+\f[B]action\f[R] with new values for \f[B]offset\f[R],
+\f[B]return_reg_c\f[R] and \f[B]flags\f[R].
+Only new DR rules using this \f[B]action\f[R] will use the modified
+values.
+Existing DR rules do not change the HW action values stored.
+.PP
+\f[B]flags\f[R] can be set to one of the types of
+\f[I]mlx5dv_dr_action_aso_first_hit_flags\f[R] or
+\f[I]mlx5dv_dr_action_aso_flow_meter_flags\f[R] or
+\f[I]mlx5dv_dr_action_aso_ct_flags\f[R]:
+\f[B]MLX5DV_DR_ACTION_ASO_FIRST_HIT_FLAGS_SET\f[R]: is used to set the
+ASO first hit object context, else the context is only copied to the
+return_reg_c.
+\f[B]MLX5DV_DR_ACTION_FLAGS_ASO_FLOW_METER_RED\f[R]: is used to indicate
+to update the initial color in ASO flow meter object value to red.
+\f[B]MLX5DV_DR_ACTION_FLAGS_ASO_FLOW_METER_YELLOW\f[R]: is used to
+indicate to update the initial color in ASO flow meter object value to
+yellow.
+\f[B]MLX5DV_DR_ACTION_FLAGS_ASO_FLOW_METER_GREEN\f[R]: is used to
+indicate to update the initial color in ASO flow meter object value to
+green.
+\f[B]MLX5DV_DR_ACTION_FLAGS_ASO_FLOW_METER_UNDEFINED\f[R]: is used to
+indicate to update the initial color in ASO flow meter object value to
+undefined.
+\f[B]MLX5DV_DR_ACTION_FLAGS_ASO_CT_DIRECTION_INITIATOR\f[R]: is used to
+indicate the TCP connection direction the SYN packet was sent on.
+\f[B]MLX5DV_DR_ACTION_FLAGS_ASO_CT_DIRECTION_RESPONDER\f[R]: is used to
+indicate the TCP connection direction the SYN-ACK packet was sent on.
+.PP
+Action: Meter \f[I]mlx5dv_dr_action_create_flow_meter\f[R] creates a
+meter action based on the flow meter parameters.
+The paramertes are according to the device specification.
+\f[I]mlx5dv_dr_action_modify_flow_meter\f[R] modifies existing flow
+meter \f[B]action\f[R] based on \f[B]modify_field_select\f[R].
+\f[B]modify_field_select\f[R] is according to the device specification.
+.PP
+Action: Sampler \f[I]mlx5dv_dr_action_create_flow_sampler\f[R] creates a
+sampler action, allowing us to duplicate and sample a portion of
+traffic.
+Packets steered to the sampler action will be sampled with an
+approximate probability of 1/sample_ratio provided in \f[B]attr\f[R],
+and sample_actions provided in \f[B]attr\f[R] will be executed over
+them.
+All original packets will be steered to default_next_table in
+\f[B]attr\f[R].
+A modify header format SET_ACTION data can be provided in action of
+\f[B]attr\f[R], which can be executed on packets before going to default
+flow table.
+On some devices, this is required to set register value.
+.PP
+Action Flags: action \f[B]flags\f[R] can be set to one of the types of
+\f[I]enum mlx5dv_dr_action_flags\f[R]:
+.PP
+Action: Pop Vlan \f[I]mlx5dv_dr_action_create_pop_vlan\f[R] creates a
+pop vlan action which removes VLAN tags from packets layer 2.
+.PP
+Action: Push Vlan \f[I]mlx5dv_dr_action_create_push_vlan\f[R] creates a
+push vlan action which adds VLAN tags to packets layer 2.
+.PP
+\f[B]MLX5DV_DR_ACTION_FLAGS_ROOT_LEVEL\f[R]: is used to indicate the
+action is targeted for flow table in level=0 (ROOT) of the specific
+domain.
+.SS Rule
+.PP
+\f[I]mlx5dv_dr_rule_create()\f[R] creates a HW steering rule entry in
+\f[B]matcher\f[R].
+The \f[B]value\f[R] of type \f[I]struct
+mlx5dv_flow_match_parameters\f[R] holds the exact attribute values of
+the steering rule to be matched, in a device spec format.
+Only the fields that where masked in the \f[I]matcher\f[R] should be
+filled.
+HW will perform the set of \f[B]num_actions\f[R] from the
+\f[B]action\f[R] array of type \f[I]struct mlx5dv_dr_action\f[R], once a
+packet matches the exact \f[B]value\f[R] of the rule (referred to as a
+`hit').
+.PP
+\f[I]mlx5dv_dr_rule_destroy()\f[R] destroys the rule.
+.SH RETURN VALUE
+.PP
+The create API calls will return a pointer to the relevant object:
+table, matcher, action, rule.
+on failure, NULL will be returned and errno will be set.
+.PP
+The destroy API calls will returns 0 on success, or the value of errno
+on failure (which indicates the failure reason).
+.SH LIMITATIONS
+.PP
+Application can verify is a feature is supported by \f[I]trail and
+error\f[R].
+No capabilities are exposed, as the combination of all the options
+exposed are way to large to define.
+.PP
+Tables are size less by definition.
+They are expected to grow and shrink to accommodate for all rules,
+according to driver capabilities.
+Once reaching a limit, an error is returned.
+.PP
+Matchers in same priority, in the same table, will have undefined
+ordered.
+.PP
+A rule with identical value pattern to another rule on a given matcher
+are rejected.
+.PP
+IP version in matcher mask and rule should be equal and set to 4, 6 or
+0.
+# SEE ALSO
+.PP
+\f[B]mlx5dv_open_device(3)\f[R],
+\f[B]mlx5dv_create_flow_action_packet_reformat(3)\f[R],
+\f[B]mlx5dv_create_flow_action_modify_header(3)\f[R].
+.SH AUTHOR
+.PP
+Alex Rosenbaum <al...@mellanox.com> Alex Vesker <va...@mellanox.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pandoc-prebuilt/d3b0093ed7a124b560e5c23c4b6adc7732f49e30 
new/pandoc-prebuilt/d3b0093ed7a124b560e5c23c4b6adc7732f49e30
--- old/pandoc-prebuilt/d3b0093ed7a124b560e5c23c4b6adc7732f49e30        
1970-01-01 01:00:00.000000000 +0100
+++ new/pandoc-prebuilt/d3b0093ed7a124b560e5c23c4b6adc7732f49e30        
2021-05-18 11:11:42.091259673 +0200
@@ -0,0 +1,143 @@
+.\" Automatically generated by Pandoc 2.9.2.1
+.\"
+.TH "mlx5dv_query_port" "3" "" "" ""
+.hy
+.SH NAME
+.PP
+mlx5dv_query_port - Query non standard attributes of IB device port.
+.SH SYNOPSIS
+.IP
+.nf
+\f[C]
+#include <infiniband/mlx5dv.h>
+
+int mlx5dv_query_port(struct ibv_context *context,
+              uint32_t port_num,
+              struct mlx5dv_port *info);
+\f[R]
+.fi
+.SH DESCRIPTION
+.PP
+Query port info which can be used for some device commands over the DEVX
+interface and when directly accessing the hardware resources.
+.PP
+A function that lets a user query hardware and configuration attributes
+associated with the port.
+.SH USAGE
+.PP
+A user should provide the port number to query.
+On successful query \f[I]flags\f[R] will store a subset of the requested
+attributes which are supported/relevant for that port.
+.SH ARGUMENTS
+.TP
+\f[I]context\f[R]
+RDMA device context to work on.
+.TP
+\f[I]port_num\f[R]
+Port number to query.
+.TP
+## \f[I]info\f[R]
+Stores the returned attributes from the kernel.
+.IP
+.nf
+\f[C]
+struct mlx5dv_port {
+    uint64_t flags;
+    uint16_t vport;
+    uint16_t vport_vhca_id;
+    uint16_t esw_owner_vhca_id;
+    uint16_t rsvd0;
+    uint64_t vport_steering_icm_rx;
+    uint64_t vport_steering_icm_tx;
+    struct mlx5dv_reg reg_c0;
+};
+\f[R]
+.fi
+.TP
+\f[I]flags\f[R]
+Bit field of attributes, on successful query \f[I]flags\f[R] stores the
+valid filled attributes.
+.RS
+.PP
+MLX5DV_QUERY_PORT_VPORT: The vport number of that port.
+.PP
+MLX5DV_QUERY_PORT_VPORT_VHCA_ID: The VHCA ID of \f[I]vport_num\f[R].
+.PP
+MLX5DV_QUERY_PORT_ESW_OWNER_VHCA_ID: The E-Switch owner of
+\f[I]vport_num\f[R].
+.PP
+MLX5DV_QUERY_PORT_VPORT_STEERING_ICM_RX: The ICM RX address when
+directing traffic.
+.PP
+MLX5DV_QUERY_PORT_VPORT_STEERING_ICM_TX: The ICM TX address when
+directing traffic.
+.PP
+MLX5DV_QUERY_PORT_VPORT_REG_C0: Register C0 value used to identify
+egress of \f[I]vport_num\f[R].
+.RE
+.TP
+\f[I]vport\f[R]
+The VPORT number of that port.
+.TP
+\f[I]vport_vhca_id\f[R]
+The VHCA ID of \f[I]vport_num\f[R].
+.TP
+\f[I]rsvd0\f[R]
+A reserved field.
+Not to be used.
+.TP
+\f[I]esw_owner_vhca_id\f[R]
+The E-Switch owner of \f[I]vport_num\f[R].
+.TP
+\f[I]vport_steering_ica_rx\f[R]
+The ICM RX address when directing traffic.
+.TP
+\f[I]vport_steering_icm_tx\f[R]
+The ICM TX address when directing traffic.
+.TP
+## reg_c0
+Register C0 value used to identify traffic of \f[I]vport_num\f[R].
+.IP
+.nf
+\f[C]
+struct mlx5dv_reg {
+        uint32_t value;
+        uint32_t mask;
+};
+\f[R]
+.fi
+.TP
+\f[I]value\f[R]
+The value that should be used as match.
+.TP
+\f[I]mask\f[R]
+The mask that should be used when matching.
+.SH RETURN VALUE
+.PP
+returns 0 on success, or the value of errno on failure (which indicates
+the failure reason).
+.SH EXAMPLE
+.IP
+.nf
+\f[C]
+for (i = 1; i <= ports; i++) {
+    ret = mlx5dv_query_port(context, i, &port_info);
+    if (ret) {
+        printf(\[dq]Error querying port %d\[rs]n\[dq], i);
+        break;
+    }
+
+    printf(\[dq]Port: %d:\[rs]n\[dq], i);
+
+    if (port_info.flags & MLX5DV_QUERY_PORT_VPORT)
+        printf(\[dq]\[rs]tvport_num: 0x%x\[rs]n\[dq], port_info.vport_num);
+
+    if (port_info.flags & MLX5DV_QUERY_PORT_VPORT_REG_C0)
+        printf(\[dq]\[rs]treg_c0: val: 0x%x mask: 0x%x\[rs]n\[dq],
+                port_info.reg_c0.value,
+                port_info.reg_c0.mask);
+}
+\f[R]
+.fi
+.PP
+Mark Bloch <mbl...@nvidia.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pandoc-prebuilt/f31915665317aa73d3c9d93494ac44fd7d538866 
new/pandoc-prebuilt/f31915665317aa73d3c9d93494ac44fd7d538866
--- old/pandoc-prebuilt/f31915665317aa73d3c9d93494ac44fd7d538866        
1970-01-01 01:00:00.000000000 +0100
+++ new/pandoc-prebuilt/f31915665317aa73d3c9d93494ac44fd7d538866        
2021-05-18 11:11:41.967258642 +0200
@@ -0,0 +1,47 @@
+.\" Automatically generated by Pandoc 2.9.2.1
+.\"
+.TH "mlx5dv_dm_map_op_addr" "3" "2021-1-21" "mlx5" "mlx5 Programmer\[cq]s 
Manual"
+.hy
+.SH NAME
+.PP
+mlx5dv_dm_map_op_addr - Get operation address of a device memory (DM)
+.SH SYNOPSIS
+.IP
+.nf
+\f[C]
+#include <infiniband/mlx5dv.h>
+
+void *mlx5dv_dm_map_op_addr(struct ibv_dm *dm, uint8_t op);
+\f[R]
+.fi
+.SH DESCRIPTION
+.PP
+\f[B]mlx5dv_dm_map_op_addr()\f[R] returns a mmaped address to the device
+memory for the requested \f[B]op\f[R].
+.SH ARGUMENTS
+.TP
+\f[I]dm\f[R]
+.IP
+.nf
+\f[C]
+The associated ibv_dm for this operation.
+\f[R]
+.fi
+.TP
+\f[I]op\f[R]
+.IP
+.nf
+\f[C]
+Indicates the DM operation type, based on device specification.
+\f[R]
+.fi
+.SH RETURN VALUE
+.PP
+Returns a pointer to the mmaped address, on error NULL will be returned
+and errno will be set.
+.SH SEE ALSO
+.PP
+\f[B]ibv_alloc_dm\f[R](3), \f[B]mlx5dv_alloc_dm\f[R](3),
+.SH AUTHOR
+.PP
+Maor Gottlieb <ma...@nvidia.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pandoc-prebuilt/fa29d88a48409a61841ea15857c81feb01fd166d 
new/pandoc-prebuilt/fa29d88a48409a61841ea15857c81feb01fd166d
--- old/pandoc-prebuilt/fa29d88a48409a61841ea15857c81feb01fd166d        
2021-02-19 08:45:38.614177959 +0100
+++ new/pandoc-prebuilt/fa29d88a48409a61841ea15857c81feb01fd166d        
1970-01-01 01:00:00.000000000 +0100
@@ -1,81 +0,0 @@
-.\" Automatically generated by Pandoc 2.9.2.1
-.\"
-.TH "mlx5dv_devx_umem_reg, mlx5dv_devx_umem_dereg" "3" "" "" ""
-.hy
-.SH NAME
-.PP
-mlx5dv_devx_umem_reg - Register a user memory to be used by the devx
-interface
-.PP
-mlx5dv_devx_umem_dereg - Deregister a devx umem object
-.SH SYNOPSIS
-.IP
-.nf
-\f[C]
-#include <infiniband/mlx5dv.h>
-
-struct mlx5dv_devx_umem {
-    uint32_t umem_id;
-};
-
-struct mlx5dv_devx_umem *
-mlx5dv_devx_umem_reg(struct ibv_context *context, void *addr, size_t size,
-             uint32_t access)
-
-int mlx5dv_devx_umem_dereg(struct mlx5dv_devx_umem *dv_devx_umem)
-\f[R]
-.fi
-.SH DESCRIPTION
-.PP
-Register or deregister a user memory to be used by the devx interface.
-.PP
-The register verb exposes a UMEM DEVX object for user memory
-registration for DMA.
-The API to register the user memory gets as input the user address,
-length and access flags, and provides to the user as output an object
-which holds the UMEM ID returned by the firmware to this registered
-memory.
-.PP
-The user will use that UMEM ID in device direct commands that use this
-memory instead of the physical addresses list, for example upon
-\f[I]mlx5dv_devx_obj_create\f[R] to create a QP.
-.SH ARGUMENTS
-.TP
-\f[I]context\f[R]
-.IP
-.nf
-\f[C]
-RDMA device context to create the action on.
-\f[R]
-.fi
-.TP
-\f[I]addr\f[R]
-The memory start address to register.
-.TP
-\f[I]size\f[R]
-.IP
-.nf
-\f[C]
-The size of *addr* buffer.
-\f[R]
-.fi
-.TP
-\f[I]access\f[R]
-The desired memory protection attributes; it is either 0 or the bitwise
-OR of one or more of \f[I]enum ibv_access_flags\f[R].
-.SH RETURN VALUE
-.PP
-Upon success \f[I]mlx5dv_devx_umem_reg\f[R] will return a new
-\f[I]struct mlx5dv_devx_umem\f[R] object, on error NULL will be returned
-and errno will be set.
-.PP
-\f[I]mlx5dv_devx_umem_dereg\f[R] returns 0 on success, or the value of
-errno on failure (which indicates the failure reason).
-.SH SEE ALSO
-.PP
-\f[I]mlx5dv_open_device(3)\f[R], \f[I]ibv_reg_mr(3)\f[R],
-\f[I]mlx5dv_devx_obj_create(3)\f[R]
-.PP
-#AUTHOR
-.PP
-Yishai Hadas <yish...@mellanox.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pandoc-prebuilt/fed8d43c3078914b2141c0cf655d840638a9e921 
new/pandoc-prebuilt/fed8d43c3078914b2141c0cf655d840638a9e921
--- old/pandoc-prebuilt/fed8d43c3078914b2141c0cf655d840638a9e921        
1970-01-01 01:00:00.000000000 +0100
+++ new/pandoc-prebuilt/fed8d43c3078914b2141c0cf655d840638a9e921        
2021-05-18 11:11:41.643255948 +0200
@@ -0,0 +1,54 @@
+.\" Automatically generated by Pandoc 2.9.2.1
+.\"
+.TH "mlx5dv_reserved_qpn_alloc / dealloc" "3" "2020-12-29" "mlx5" "mlx5 
Programmer\[cq]s Manual"
+.hy
+.SH NAME
+.PP
+mlx5dv_reserved_qpn_alloc - Allocate a reserved QP number from device
+.PP
+mlx5dv_reserved_qpn_dealloc - Release the reserved QP number
+.SH SYNOPSIS
+.IP
+.nf
+\f[C]
+#include <infiniband/mlx5dv.h>
+
+int mlx5dv_reserved_qpn_alloc(struct ibv_context *ctx, uint32_t *qpn);
+
+int mlx5dv_reserved_qpn_dealloc(struct ibv_context *ctx, uint32_t qpn);
+\f[R]
+.fi
+.SH DESCRIPTION
+.PP
+When work with RDMA_CM RDMA_TCP_PS + external QP support, a client node
+needs GUID level unique QP numbers to comply with the CM\[cq]s timewait
+logic.
+.PP
+If a real unique QP is not allocated, a device global QPN value is
+required and can be allocated via this interface.
+.PP
+The mlx5 DCI QP is such an example, which could connect to the remote
+DCT\[cq]s multiple times as long as the application provides unique QPN
+for each new RDMA_CM connection.
+.PP
+These 2 APIs provide the allocation/deallocation of a unique QP number
+from/to device.
+This qpn can be used with DC QPN in RDMA_CM connection establishment,
+which will comply with the CM timewait kernel logic.
+.SH ARGUMENTS
+.TP
+\f[I]ctx\f[R]
+The device context to issue the action on.
+.TP
+\f[I]qpn\f[R]
+The allocated QP number (for alloc API), or the QP number to be
+deallocated (for dealloc API).
+.SH RETURN VALUE
+.PP
+0 on success; EOPNOTSUPP if not supported, or other errno value on other
+failures.
+.SH AUTHOR
+.PP
+Mark Zhang <markzh...@nvidia.com>
+.PP
+Alex Rosenbaum <al...@nvidia.com>

++++++ rdma-core-33.1.0.2504c0bab0a8.tar.gz -> 
rdma-core-35.0.0.e29a698e9902.tar.gz ++++++
++++ 70291 lines of diff (skipped)

Reply via email to