[dpdk-dev] [PATCH 1/4] ethdev: add rte API for single flow dump
Ori Kam
orika at nvidia.com
Wed Mar 10 08:05:37 CET 2021
Hi Haifei,
PSB
> -----Original Message-----
> From: Haifei Luo <haifeil at nvidia.com>
> Subject: [PATCH 1/4] ethdev: add rte API for single flow dump
>
> Previous implementations support dump all the flows.Add new ones
> to dump one flow.
> New API added: rte_flow_dump.
>
> Signed-off-by: Haifei Luo <haifeil at nvidia.com>
> ---
> doc/guides/nics/mlx5.rst | 10 +++++++--
> doc/guides/prog_guide/rte_flow.rst | 44
> +++++++++++++++++++++++++++++++++++++
> lib/librte_ethdev/rte_flow.c | 21 ++++++++++++++++++
> lib/librte_ethdev/rte_flow.h | 24 ++++++++++++++++++++
> lib/librte_ethdev/rte_flow_driver.h | 6 +++++
> lib/librte_ethdev/version.map | 1 +
> 6 files changed, 104 insertions(+), 2 deletions(-)
>
> diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
> index 7c50497..b8b6b02 100644
> --- a/doc/guides/nics/mlx5.rst
> +++ b/doc/guides/nics/mlx5.rst
> @@ -1778,13 +1778,19 @@ all flows with assistance of external tools.
>
> .. code-block:: console
>
> - testpmd> flow dump <port> <output_file>
> + To dump all flows:
> + testpmd> flow dump <port> all <output_file>
> + and dump one flow:
> + testpmd> flow dump <port> rule <rule_id> <output_file>
>
> - call rte_flow_dev_dump api:
>
> .. code-block:: console
>
> + To dump all flows:
> rte_flow_dev_dump(port, file, NULL);
> + and dump one flow:
> + rte_flow_dump(port, flow, file, NULL);
>
> #. Dump human-readable flows from raw file:
>
> @@ -1792,4 +1798,4 @@ all flows with assistance of external tools.
>
> .. code-block:: console
>
> - mlx_steering_dump.py -f <output_file>
> + mlx_steering_dump.py -f <output_file> -flowptr <flow_ptr>
> diff --git a/doc/guides/prog_guide/rte_flow.rst
> b/doc/guides/prog_guide/rte_flow.rst
> index 62a5791..17e4351 100644
> --- a/doc/guides/prog_guide/rte_flow.rst
> +++ b/doc/guides/prog_guide/rte_flow.rst
> @@ -3023,6 +3023,50 @@ Return values:
>
> - 0 on success, a negative errno value otherwise and ``rte_errno`` is set.
>
> +Dump
> +~~~~~
> +
> +Dump information for all or one flows.
> +
> +This Function rte_flow_dev_dump will dump the information for all the flows.
> +
> +.. code-block:: c
> +
> + int
> + rte_flow_dev_dump(uint16_t port_id, FILE *file,
> + struct rte_flow_error *error);
> +
> +Arguments:
> +
> +- ``port_id``: port identifier of Ethernet device.
> +- ``file``: a pointer to a file for output
> +- ``error``: perform verbose error reporting if not NULL. PMDs initialize
> + this structure in case of error only.
> +
> +Return values:
> +
> +- 0 on success, a negative errno value otherwise and ``rte_errno`` is set.
> +
> +This Function rte_flow_dump will dump the information for one flow.
> +
> +.. code-block:: c
> +
> + int
> + rte_flow_dump(uint16_t port_id, struct rte_flow *flow, FILE *file,
> + struct rte_flow_error *error);
> +
> +Arguments:
> +
> +- ``port_id``: port identifier of Ethernet device.
> +- ``file``: a pointer to a file for output
> +- ``flow``: flow rule handle to dump.
> +- ``error``: perform verbose error reporting if not NULL. PMDs initialize
> + this structure in case of error only.
> +
> +Return values:
> +
> +- 0 on success, a negative errno value otherwise and ``rte_errno`` is set.
> +
> Query
> ~~~~~
>
> diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c
> index 241af6c..ff051e7 100644
> --- a/lib/librte_ethdev/rte_flow.c
> +++ b/lib/librte_ethdev/rte_flow.c
> @@ -1044,6 +1044,27 @@ enum rte_flow_conv_item_spec_type {
> }
>
> int
> +rte_flow_dump(uint16_t port_id, struct rte_flow *flow,
> + FILE *file, struct rte_flow_error *error)
Why not update the current dump function to support dumping one flow?
Best,
Ori
More information about the dev
mailing list