Enhance the documentation by adding information about limitations
specific to the non-template API when used with Hardware Steering.
This update provides users with a more comprehensive understanding
of the constraints in this configuration.

Remove the previously stated limitation regarding the exclusive use
of RTE flow asynchronous APIs.

Signed-off-by: Maayan Kashani <[email protected]>
Acked-by: Bing Zhao <[email protected]>
---
 doc/guides/nics/mlx5.rst | 45 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 20056f61d60..f18d95e5537 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -1363,6 +1363,8 @@ HW steering is :ref:`enabled <mlx5_dv_flow>` with 
``dv_flow_en=2``.
 Reconfiguring HW steering engine is not supported.
 Any subsequent call to ``rte_flow_configure()`` with different configuration
 than initially provided will be rejected.
+Note: The application must call rte_flow_configure before creating any flow 
rules
+when using async API's.
 
 Limitations
 ^^^^^^^^^^^
@@ -1401,6 +1403,49 @@ Limitations
       which results in L3 encap.
    d. Only in transfer (switchdev) mode.
 
+#. When using synchronous rte_flow APIs,
+   the following limitations and considerations apply:
+
+   - Matching Restrictions:
+
+      - RTE_FLOW_ITEM_TYPE_MARK (16-bit match) is unsupported.
+        Use RTE_FLOW_ITEM_TYPE_META (32-bit match) as an alternative.
+      - RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR is unsupported.
+        Instead, use RTE_FLOW_ITEM_TYPE_TX_QUEUE and create a separate rule 
for each send queue.
+      - Rules created on proxy ports without explicit represented port 
matching will match packets from all ports.
+      - The c_rsvd0_ver field matching of GRE is not supported on group 0(Root 
Table).
+      - Match Field Limitations: There are limitations on size of match fields.
+        Exceeding these limitations will result in an error, unlike other flow 
engine
+        (dv_flow_en < 2) that handle this by creating a tree of rules.
+
+   - Actions Restrictions:
+
+      - RTE_FLOW_ACTION_TYPE_METER is not supported.
+        Use RTE_FLOW_ACTION_TYPE_METER_MARK instead.
+
+   - Flow Creation and Query:
+
+      - vtunnel offload is not supported.
+      - Transfer Flows: Creating transfer flows on representor ports is 
unsupported.
+      - Aging Query: Reports aged flows only once.
+      - Duplicate Rules: When updating a rule by inserting a new one and 
deleting the old one,
+        for non zero group,after adding the new rule, and before the deletion 
of the old rule,
+        the new rule will be matched, contrary to the behavior in other flow 
engines (dv_flow_en < 2)
+        in which the old rule will be matched.
+
+   - Port Restrictions:
+
+      - Port start/stop ordering for eswitch - app should start the proxy port 
before the representors
+        and stop the representor ports before the proxy port.
+      - By default, the port is configured with zeroed rte_flow_port_attr:
+        there are zero flow queues(one is created by default), no actions, and 
no flags set.
+        The default flow queue size for rte_flow_queue_attr is 32 (used for 
the internal flow queue).
+        If the application uses any configurable actions (such as meter, age, 
CT, or counter),
+        the system will allocate the maximum number of available actions per 
port.
+        To optimize memory usage, the application should call 
rte_flow_configure and specify only
+        the required number of actions.
+        If the application wants to modify flow queue settings, it should also 
use rte_flow_configure.
+
 
 .. _mlx5_bifurcated:
 
-- 
2.21.0

Reply via email to