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-boun...@dpdk.org> On Behalf Of Morten Br?rup > Sent: Friday, February 12, 2021 3:41 PM > To: Ferruh Yigit <ferruh.yi...@intel.com>; Li Zhang <l...@nvidia.com>; Dekel > Peled <dek...@nvidia.com>; Ori Kam <or...@nvidia.com>; Slava Ovsiienko > <viachesl...@nvidia.com>; Matan Azrad <ma...@nvidia.com>; Dumitrescu, > Cristian <cristian.dumitre...@intel.com> > Cc: dev@dpdk.org; NBU-Contact-Thomas Monjalon <tho...@monjalon.net>; > Raslan Darawsheh <rasl...@nvidia.com> > Subject: Re: [dpdk-dev] [PATCH] [RFC, v2]: adds support PPS(packet per second) > on meter > > > From: dev [mailto:dev-boun...@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 <l...@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 > > > > >