[dpdk-dev] [PATCH] [RFC]: adds support PPS(packet per second) on meter

Ajit Khaparde ajit.khaparde at broadcom.com
Fri Feb 12 22:35:53 CET 2021


On Sun, Jan 24, 2021 at 5:02 PM Li Zhang <lizh at nvidia.com> wrote:

> Currently the flow Meter algorithms in rte_flow only supports bytes per
> second(BPS).
> Such as Single Rate Three Color Marker (srTCM rfc2697)
> This RFC adds the packet per second definition in Meter algorithms
> structure,
> to support the rte_mtr APIs with type srTCM pps mode.
>
I thought rfc2697 specified metering using BPS only.
The CIR was measured in bytes per second for IP packets.
Is there a draft or link to the new srTCM mode?



> The below structure will be extended:
> rte_mtr_algorithm
> rte_mtr_meter_profile
> Signed-off-by: Li Zhang <lizh at nvidia.com>
> ---
>  lib/librte_ethdev/rte_mtr.h | 28 ++++++++++++++++++++++++++++
>  1 file changed, 28 insertions(+)
>
> diff --git a/lib/librte_ethdev/rte_mtr.h b/lib/librte_ethdev/rte_mtr.h
> index 916a09c5c3..6413892aec 100644
> --- a/lib/librte_ethdev/rte_mtr.h
> +++ b/lib/librte_ethdev/rte_mtr.h
> @@ -119,6 +119,9 @@ enum rte_mtr_algorithm {
>
>         /** Two Rate Three Color Marker (trTCM) - IETF RFC 4115. */
>         RTE_MTR_TRTCM_RFC4115,
> +
> +       /** Single Rate Three Color Marker (srTCM) in Packet per second
> mode */
> +       RTE_MTR_SRTCM_PPS,
>  };
>
>  /**
> @@ -171,6 +174,18 @@ struct rte_mtr_meter_profile {
>                         /** Excess Burst Size (EBS) (bytes). */
>                         uint64_t ebs;
>                 } trtcm_rfc4115;
> +
> +               /** Items only valid when *alg* is set to srTCM - PPS. */
> +               struct {
> +                       /** Committed Information Rate
> (CIR)(packets/second). */
> +                       uint64_t cir;
> +
> +                       /** Committed Burst Size (CBS) (bytes). */
> +                       uint64_t cbs;
> +
> +                       /** Excess Burst Size (EBS) (bytes). */
> +                       uint64_t ebs;
> +               } srtcm_pps;
>         };
>  };
>
> @@ -317,6 +332,13 @@ struct rte_mtr_capabilities {
>          */
>         uint32_t meter_trtcm_rfc4115_n_max;
>
> +       /** Maximum number of MTR objects that can have their meter
> configured
> +        * to run the srTCM packet per second algorithm. The value of 0
> +        * indicates this metering algorithm is not supported.
> +        * The maximum value is *n_max*.
> +        */
> +       uint32_t meter_srtcm_pps_n_max;
> +
>         /** Maximum traffic rate that can be metered by a single MTR
> object. For
>          * srTCM RFC 2697, this is the maximum CIR rate. For trTCM RFC
> 2698,
>          * this is the maximum PIR rate. For trTCM RFC 4115, this is the
> maximum
> @@ -342,6 +364,12 @@ struct rte_mtr_capabilities {
>          */
>         int color_aware_trtcm_rfc4115_supported;
>
> +       /**
> +       * When non-zero, it indicates that color aware mode is supported
> for
> +       * the srTCM packet per second  metering algorithm.
> +       */
> +       int color_aware_srtcm_pps_supported;
> +
>         /** When non-zero, it indicates that the policer packet recolor
> actions
>          * are supported.
>          * @see enum rte_mtr_policer_action
> --
> 2.21.0
>
>


More information about the dev mailing list