Re: [dpdk-dev] [PATCH v2] doc: mtr: add API walk through
From: Thomas Monjalon <hidden>
Date: 2021-08-04 16:46:40
04/08/2021 13:34, jerinj@marvell.com:
quoted hunk ↗ jump to hunk
--- a/doc/guides/prog_guide/traffic_metering_and_policing.rst +++ b/doc/guides/prog_guide/traffic_metering_and_policing.rst@@ -14,12 +14,13 @@ SW or mixed HW-SW implementation. The main features are: -* Part of DPDK rte_ethdev API -* Capability query API -* Metering algorithms: RFC 2697 Single Rate Three Color Marker (srTCM), RFC 2698 - and RFC 4115 Two Rate Three Color Marker (trTCM) -* Policer actions (per meter output color): recolor, drop -* Statistics (per policer output color) +#. Part of DPDK rte_ethdev API +#. Capability query API +#. Metering algorithms: RFC 2697 Single Rate Three Color Marker (srTCM), RFC 2698 + and RFC 4115 Two Rate Three Color Marker (trTCM) +#. Policer actions (per meter output color): recolor, drop +#. Statistics (per policer output color) +#. Chaining the meter objects
Why changing to numbered list? There is no specific order? [...]
+API Walk-through +---------------- + +.. _figure_meter_components:
This anchor is not used. Not needed I think.
+ +.. figure:: img/meter.* + + Meter components + +This section will introduce the reader to the critical APIs to use +the traffic meter and policing library. + +In general, the following steps performed by the application to configure
I think the verb "are" is missing.
+the traffic meter and policing library. + +#. Application gets the meter driver capabilities using ``rte_mtr_capabilities_get()``. +#. Application identifies the profile(s) needed for metering and creates it with + ``rte_mtr_meter_profile_add()``. +#. Application identifies the policies needed and creates it with ``rte_mtr_meter_policy_add()``. +#. An meter object consists of a profile and a policy. Use above created objects to create
s/An/a/
+ meter object using ``rte_mtr_create()``. Application uses + ``struct rte_mtr_params::meter_profile_id`` and ``struct rte_mtr_params::meter_policy_id`` + to specify the profile(created in step 2) and policy(created in step 3).
missing space before parentheseses.
+#. Once the meter object is created, the application shall use ``rte_flow_create()`` API to + instantiate the meter object using ``RTE_FLOW_ACTION_TYPE_METER`` action. +#. The API allows chaining the meter objects to create complex metering topology + by specifying ``struct rte_mtr_meter_policy_params::actions`` as + ``RTE_FLOW_ACTION_TYPE_METER`` the parent meter object.
Not sure this last sentence is clear about what is the parent.