[dpdk-dev] [PATCH] [RFC, v2]: adds support PPS(packet per second) on meter
Li Zhang
lizh at nvidia.com
Tue Feb 23 03:07:12 CET 2021
Thanks for your comments.
We changed the struct as below:
struct rte_mtr_meter_profile {
......
/** Items only valid when alg is set to sprTCM. */
struct {
/** Committed Information Packet Rate (CIPR). */
uint64_t cipr;
/** Committed Packet Burst Size (CPBS). */
uint64_t cpbs;
/** Excess Packet Burst Size (EPBS). */
uint64_t epbs;
} sprtcm;
}
Regards,
Li Zhang
> -----Original Message-----
> From: dev <dev-bounces at dpdk.org> On Behalf Of Morten Br?rup
> Sent: Friday, February 12, 2021 3:41 PM
> To: Ferruh Yigit <ferruh.yigit at intel.com>; Li Zhang <lizh at nvidia.com>; Dekel
> Peled <dekelp at nvidia.com>; Ori Kam <orika at nvidia.com>; Slava Ovsiienko
> <viacheslavo at nvidia.com>; Matan Azrad <matan at nvidia.com>; Dumitrescu,
> Cristian <cristian.dumitrescu at intel.com>
> Cc: dev at dpdk.org; NBU-Contact-Thomas Monjalon <thomas at monjalon.net>;
> Raslan Darawsheh <rasland at nvidia.com>
> Subject: Re: [dpdk-dev] [PATCH] [RFC, v2]: adds support PPS(packet per second)
> on meter
>
> > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Ferruh Yigit
> > Sent: Thursday, January 28, 2021 7:28 PM
> >
> > On 1/25/2021 1:20 AM, Li Zhang 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.
> > > The below structure will be extended:
> > > rte_mtr_algorithm
> > > rte_mtr_meter_profile
> > > Signed-off-by: Li Zhang <lizh at nvidia.com>
> >
> > cc'ed Cristian for review/comment.
> >
> > > ---
> > > 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..3e88904faf 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;
>
> In PPS mode, the burst sizes (ebs, ebs) must be packets, not bytes.
>
> > > };
> > > };
> > >
> > > @@ -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.
>
> No need for two spaces between the words second and metering.
>
> > > + */
> > > + 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
> > >
> >
More information about the dev
mailing list