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-12-06 23:59:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rdma-core (Old)
 and      /work/SRC/openSUSE:Factory/.rdma-core.new.31177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rdma-core"

Mon Dec  6 23:59:08 2021 rev:48 rq:935385 version:38.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/rdma-core/rdma-core.changes      2021-10-19 
23:03:27.525262906 +0200
+++ /work/SRC/openSUSE:Factory/.rdma-core.new.31177/rdma-core.changes   
2021-12-06 23:59:17.664583032 +0100
@@ -1,0 +2,12 @@
+Thu Dec  2 15:13:22 UTC 2021 - Nicolas Morey-Chaisemartin 
<nmoreychaisemar...@suse.com>
+
+- Update to v38.0 (jsc#SLE-18383)
+  - Bugfixes on all providers
+  - New provider for irdma support
+
+-------------------------------------------------------------------
+Thu Dec  2 14:48:56 UTC 2021 - Nicolas Morey-Chaisemartin 
<nmoreychaisemar...@suse.com>
+
+- Add rdma-ndd to recommended depencies of rdma-core
+
+-------------------------------------------------------------------

Old:
----
  rdma-core-37.1.0.02d96eb72943.tar.gz

New:
----
  rdma-core-38.0.0.02361e3b8659.tar.gz

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

Other differences:
------------------
++++++ rdma-core.spec ++++++
--- /var/tmp/diff_new_pack.gbnz7B/_old  2021-12-06 23:59:18.324580698 +0100
+++ /var/tmp/diff_new_pack.gbnz7B/_new  2021-12-06 23:59:18.328580684 +0100
@@ -25,9 +25,9 @@
 %define with_pyverbs 0
 %endif
 
-%define         git_ver .0.02d96eb72943
+%define         git_ver .0.02361e3b8659
 Name:           rdma-core
-Version:        37.1
+Version:        38.0
 Release:        0
 Summary:        RDMA core userspace libraries and daemons
 License:        BSD-2-Clause OR GPL-2.0-only
@@ -97,6 +97,7 @@
 Requires:       kmod
 Requires:       systemd
 Requires:       udev
+Recommends:     rdma-ndd
 
 # SUSE previously shipped rdma as a stand-alone
 # package which we're supplanting here.
@@ -229,6 +230,7 @@
 - libhns: HiSilicon Hip06 SoC
 - libi40iw: Intel Ethernet Connection X722 RDMA
 - libipathverbs: QLogic InfiniPath HCA
+- libirdma: Intel Ethernet Connection RDMA
 - libmlx4: Mellanox ConnectX-3 InfiniBand HCA
 - libmlx5: Mellanox Connect-IB/X-4+ InfiniBand HCA
 - libmthca: Mellanox InfiniBand HCA

++++++ _service ++++++
--- /var/tmp/diff_new_pack.gbnz7B/_old  2021-12-06 23:59:18.372580528 +0100
+++ /var/tmp/diff_new_pack.gbnz7B/_new  2021-12-06 23:59:18.372580528 +0100
@@ -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">02d96eb72943e71eb7c127f13afd167f5c83cb0c</param>
+    <param name="revision">02361e3b865995ce251923390df0d5a5c821195a</param>
        <param name="extract">suse/rdma-core.spec</param>
   </service>
   <service name="recompress" mode="disabled">

++++++ prebuilt-pandoc.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pandoc-prebuilt/4b6808384ad489ec8e30e48c27ef2f172757b39c 
new/pandoc-prebuilt/4b6808384ad489ec8e30e48c27ef2f172757b39c
--- old/pandoc-prebuilt/4b6808384ad489ec8e30e48c27ef2f172757b39c        
2021-10-15 13:41:18.201699418 +0200
+++ new/pandoc-prebuilt/4b6808384ad489ec8e30e48c27ef2f172757b39c        
1970-01-01 01:00:00.000000000 +0100
@@ -1,496 +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,
-mlx5dv_dr_domain_allow_duplicate_rules - Manage flow domains
-.PP
-mlx5dv_dr_table_create, mlx5dv_dr_table_destroy - Manage flow tables
-.PP
-mlx5dv_dr_matcher_create, mlx5dv_dr_matcher_destroy,
-mlx5dv_dr_matcher_set_layout - 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 - Create packet destination QP
-action
-.PP
-mlx5dv_dr_action_create_dest_table - Create packet destination dr table
-action
-.PP
-mlx5dv_dr_action_create_dest_vport - Create packet destination vport
-action
-.PP
-mlx5dv_dr_action_create_dest_ib_port - Create packet destination IB port
-action
-.PP
-mlx5dv_dr_action_create_dest_devx_tir - Create packet destination TIR
-action
-.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);
-
-void mlx5dv_dr_domain_allow_duplicate_rules(struct mlx5dv_dr_domain *dmn, bool 
allow);
-
-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);
-
-
-int mlx5dv_dr_matcher_set_layout(struct mlx5dv_dr_matcher *matcher, struct 
mlx5dv_dr_matcher_layout *matcher_layout);
-
-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_ib_port(
-        struct mlx5dv_dr_domain *domain,
-        uint32_t ib_port);
-
-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.
-.PP
-\f[I]mlx5dv_dr_domain_allow_duplicate_rules()\f[R] is used to allow or
-prevent insertion of rules matching on same fields(duplicates) on non
-root tables, by default this feature is allowed.
-.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.
-.PP
-\f[I]mlx5dv_dr_matcher_set_layout()\f[R] is used to set specific layout
-parameters of a matcher, on some conditions setting some attributes
-might not be supported, in such cases ENOTSUP will be returned.
-\f[B]flags\f[R] should be a set of type \f[I]enum
-mlx5dv_dr_matcher_layout_flags\f[R]:
-.PP
-\f[B]MLX5DV_DR_MATCHER_LAYOUT_RESIZABLE\f[R]: The matcher can resize its
-scale and resources according to the rules that are inserted or removed.
-.PP
-\f[B]MLX5DV_DR_MATCHER_LAYOUT_NUM_RULE\f[R]: Indicates a hint from the
-application about the number of the rules the matcher is expected to
-handle.
-This allows preallocation of matcher resources for faster rule updates
-when using with non-resizable layout mode.
-.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_ib_port\f[R] creates a forwarding
-action to a \f[B]ib_port\f[R] on the same \f[B]domain\f[R].
-The valid range of ports is a based on the capability phys_port_cnt_ex
-provided by ibq_query_device_ex and it is possible to query the ports
-details using mlx5dv_query_port.
-Action is supported 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/b3585782cda178065de7d73b1465c0fec7219f97 
new/pandoc-prebuilt/b3585782cda178065de7d73b1465c0fec7219f97
--- old/pandoc-prebuilt/b3585782cda178065de7d73b1465c0fec7219f97        
1970-01-01 01:00:00.000000000 +0100
+++ new/pandoc-prebuilt/b3585782cda178065de7d73b1465c0fec7219f97        
2021-12-02 15:56:12.515686421 +0100
@@ -0,0 +1,527 @@
+.\" 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,
+mlx5dv_dr_domain_allow_duplicate_rules - Manage flow domains
+.PP
+mlx5dv_dr_table_create, mlx5dv_dr_table_destroy - Manage flow tables
+.PP
+mlx5dv_dr_matcher_create, mlx5dv_dr_matcher_destroy,
+mlx5dv_dr_matcher_set_layout - 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 - Create packet destination QP
+action
+.PP
+mlx5dv_dr_action_create_dest_table - Create packet destination dr table
+action
+.PP
+mlx5dv_dr_action_create_dest_vport - Create packet destination vport
+action
+.PP
+mlx5dv_dr_action_create_dest_ib_port - Create packet destination IB port
+action
+.PP
+mlx5dv_dr_action_create_dest_devx_tir - Create packet destination TIR
+action
+.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
+.PP
+mlx5dv_dr_aso_other_domain_link, mlx5dv_dr_aso_other_domain_unlink -
+link/unlink ASO devx object to work with different domains
+.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);
+
+void mlx5dv_dr_domain_allow_duplicate_rules(struct mlx5dv_dr_domain *dmn, bool 
allow);
+
+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);
+
+
+int mlx5dv_dr_matcher_set_layout(struct mlx5dv_dr_matcher *matcher, struct 
mlx5dv_dr_matcher_layout *matcher_layout);
+
+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_ib_port(
+        struct mlx5dv_dr_domain *domain,
+        uint32_t ib_port);
+
+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);
+
+int mlx5dv_dr_aso_other_domain_link(struct mlx5dv_devx_obj *devx_obj,
+                    struct mlx5dv_dr_domain *peer_dmn,
+                    struct mlx5dv_dr_domain *dmn,
+                    uint32_t flags,
+                    uint8_t return_reg_c);
+
+int mlx5dv_dr_aso_other_domain_unlink(struct mlx5dv_devx_obj *devx_obj,
+                      struct mlx5dv_dr_domain *dmn);
+\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.
+.PP
+\f[I]mlx5dv_dr_domain_allow_duplicate_rules()\f[R] is used to allow or
+prevent insertion of rules matching on same fields(duplicates) on non
+root tables, by default this feature is allowed.
+.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.
+.PP
+\f[I]mlx5dv_dr_matcher_set_layout()\f[R] is used to set specific layout
+parameters of a matcher, on some conditions setting some attributes
+might not be supported, in such cases ENOTSUP will be returned.
+\f[B]flags\f[R] should be a set of type \f[I]enum
+mlx5dv_dr_matcher_layout_flags\f[R]:
+.PP
+\f[B]MLX5DV_DR_MATCHER_LAYOUT_RESIZABLE\f[R]: The matcher can resize its
+scale and resources according to the rules that are inserted or removed.
+.PP
+\f[B]MLX5DV_DR_MATCHER_LAYOUT_NUM_RULE\f[R]: Indicates a hint from the
+application about the number of the rules the matcher is expected to
+handle.
+This allows preallocation of matcher resources for faster rule updates
+when using with non-resizable layout mode.
+.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_ib_port\f[R] creates a forwarding
+action to a \f[B]ib_port\f[R] on the same \f[B]domain\f[R].
+The valid range of ports is a based on the capability phys_port_cnt_ex
+provided by ibq_query_device_ex and it is possible to query the ports
+details using mlx5dv_query_port.
+Action is supported 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.
+.SS Other
+.PP
+\f[I]mlx5dv_dr_aso_other_domain_link()\f[R] links the ASO devx object,
+\f[B]devx_obj\f[R] to a domain \f[B]dmn\f[R], this will allow to create
+a rule with ASO action using the given object on the linked domain
+\f[B]dmn\f[R].
+\f[B]peer_dmn\f[R] is the domain that the ASO devx object was created
+on.
+\f[B]dmn\f[R] is the domain that ASO devx object will be linked to.
+\f[B]flags\f[R] choose the specific wanted behavior of this object
+according to the flags, same as for ASO action creation flags.
+\f[B]regc_index\f[R] After a packet hits the rule with the ASO object
+the value of the ASO object will be copied into the regc register
+indicated by this param, and then we can use the value for matching in
+the following DR rules.
+.PP
+\f[I]mlx5dv_dr_aso_other_domain_unlink()\f[R] will unlink the
+\f[B]devx_obj\f[R] from the linked \f[B]dmn\f[R].
+\f[B]dmn\f[R] is the domain that ASO devx object is linked to.
+.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>

++++++ rdma-core-37.1.0.02d96eb72943.tar.gz -> 
rdma-core-38.0.0.02361e3b8659.tar.gz ++++++
++++ 62310 lines of diff (skipped)

Reply via email to