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

Morten Brørup mb at smartsharesystems.com
Mon Mar 1 08:20:21 CET 2021


> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Li Zhang
> Sent: Monday, March 1, 2021 4:16 AM
> 
> Hi Morten,
> 
> Thank you for your comments.
> It is packet count instead of frames count.
> So 4K TCP packet should be handle as one instead of 3 Ethernet Frames.
> 
> We will update the struct as below:
> enum rte_mtr_algorithm {
> ......
> 	/** Single Rate Three Color Marker, Packet based (srTCMp).
> 	 * - - similar to IETF RFC 2697 but rate is packet per second.
> 	 */
> 	RTE_MTR_SRTCMP,
> }
> 
> struct rte_mtr_meter_profile {
> ......
> 		/** Items only valid when *alg* is set to srTCMp. */
> 		struct {
> 			/** Committed Information Rate (CIR)
> 			 * (packets/second).
> 			 */
> 			uint64_t cir;
> 
> 			/** Committed Burst Size (CBS) (packets). */
> 			uint64_t cbs;
> 
> 			/** Excess Burst Size (EBS) (packets). */
> 			uint64_t ebs;
> 		} srtcmp;
> }
> 
> Regards,
> Li Zhang

Looks good.

Acked-By: Morten Brørup <mb at smartsharesystems.com>


> > -----Original Message-----
> > From: dev <dev-bounces at dpdk.org> On Behalf Of Morten Br?rup
> > Sent: Tuesday, February 23, 2021 4:25 PM
> > To: Li Zhang <lizh at nvidia.com>; Ferruh Yigit
> <ferruh.yigit at intel.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 Li Zhang
> > > Sent: Tuesday, February 23, 2021 3:07 AM
> > >
> > > 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;
> > > }
> >
> > That is certainly not an improvement! Please stick with the broadly
> accepted
> > industry standard names (CIR, CBS, EBS, etc.). Newly invented names
> like CIPR
> > will only cause confusion. Please note that CIR, CBS, EBS don't say
> anything
> > about their units; it could be bytes, packets, cells, frames,
> messages or
> > anything else. So it is perfectly natural using the same names for
> packets
> > instead of bytes.
> >
> > I propose the following modifications instead.
> >
> > For the algorithm, keep the "Single Rate Three Color Marker" name
> mentioned
> > in the RFCs, but indicate that the variant is packet based:
> >
> > 	/** Single Rate Three Color Marker, Packet based (srTCMp). */
> > 	RTE_MTR_SRTCMP,
> >
> > Or if you prefer the packet based indicator at the front instead:
> >
> > 	/** Packet based Single Rate Three Color Marker (psrTCM). */
> > 	RTE_MTR_PSRTCM,
> >
> > And for the meter profile, keep the industry standard names, but
> update the
> > descriptions:
> >
> >  		/** Items only valid when *alg* is set to srTCMp. */
> >  		struct {
> >  			/** Committed Information Rate (CIR)
> > (packets/second). */
> >  			uint64_t cir;
> >
> >  			/** Committed Burst Size (CBS) (packets). */
> >  			uint64_t cbs;
> >
> >  			/** Excess Burst Size (EBS) (packets). */
> >  			uint64_t ebs;
> >  		} srtcmp;
> >
> >
> > Come to think of it: Is the unit packets, or is it actually Ethernet
> frames? In
> > other words: Does a 4 KB TCP packet that the NIC's offload function
> chops up
> > into three Ethernet frames count as one or three in this algorithm?
> >
> >
> > Med venlig hilsen / kind regards
> > - Morten Brørup
> >
> > >
> > > 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