04/08/2021 13:34, jer...@marvell.com: > --- 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.