DPDK patches and discussions
 help / color / mirror / Atom feed
From: Li Zhang <lizh@nvidia.com>
To: "Morten Brørup" <mb@smartsharesystems.com>,
	"Ferruh Yigit" <ferruh.yigit@intel.com>,
	"Dekel Peled" <dekelp@nvidia.com>, "Ori Kam" <orika@nvidia.com>,
	"Slava Ovsiienko" <viacheslavo@nvidia.com>,
	"Matan Azrad" <matan@nvidia.com>,
	"Dumitrescu, Cristian" <cristian.dumitrescu@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	NBU-Contact-Thomas Monjalon <thomas@monjalon.net>,
	Raslan Darawsheh <rasland@nvidia.com>
Subject: Re: [dpdk-dev] [PATCH] [RFC, v2]: adds support PPS(packet per second) on meter
Date: Mon, 1 Mar 2021 03:16:28 +0000	[thread overview]
Message-ID: <DM6PR12MB4090CF8BFD3DABB699B59CDDBF9A9@DM6PR12MB4090.namprd12.prod.outlook.com> (raw)
In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35C61614@smartserver.smartshare.dk>

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
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Morten Br?rup
> Sent: Tuesday, February 23, 2021 4:25 PM
> To: Li Zhang <lizh@nvidia.com>; Ferruh Yigit <ferruh.yigit@intel.com>; Dekel
> Peled <dekelp@nvidia.com>; Ori Kam <orika@nvidia.com>; Slava Ovsiienko
> <viacheslavo@nvidia.com>; Matan Azrad <matan@nvidia.com>; Dumitrescu,
> Cristian <cristian.dumitrescu@intel.com>
> Cc: dev@dpdk.org; NBU-Contact-Thomas Monjalon <thomas@monjalon.net>;
> Raslan Darawsheh <rasland@nvidia.com>
> Subject: Re: [dpdk-dev] [PATCH] [RFC, v2]: adds support PPS(packet per second)
> on meter
> 
> > From: dev [mailto:dev-bounces@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@dpdk.org> On Behalf Of Morten Br?rup
> > > Sent: Friday, February 12, 2021 3:41 PM
> > > To: Ferruh Yigit <ferruh.yigit@intel.com>; Li Zhang
> > <lizh@nvidia.com>; Dekel
> > > Peled <dekelp@nvidia.com>; Ori Kam <orika@nvidia.com>; Slava
> > Ovsiienko
> > > <viacheslavo@nvidia.com>; Matan Azrad <matan@nvidia.com>;
> > > Dumitrescu, Cristian <cristian.dumitrescu@intel.com>
> > > Cc: dev@dpdk.org; NBU-Contact-Thomas Monjalon
> <thomas@monjalon.net>;
> > > Raslan Darawsheh <rasland@nvidia.com>
> > > Subject: Re: [dpdk-dev] [PATCH] [RFC, v2]: adds support PPS(packet
> > per second)
> > > on meter
> > >
> > > > From: dev [mailto:dev-bounces@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@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
> > > > >
> > > >


  reply	other threads:[~2021-03-01  3:16 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-25  1:02 [dpdk-dev] [RFC 0/1] lib/librte_ethdev: Meter algorithms support packet per second Li Zhang
2021-01-25  1:02 ` [dpdk-dev] [PATCH] [RFC]: adds support PPS(packet per second) on meter Li Zhang
2021-01-25  1:20   ` [dpdk-dev] [RFC 0/1] lib/librte_ethdev: Meter algorithms support packet per second Li Zhang
2021-01-25  1:20     ` [dpdk-dev] [PATCH] [RFC, v2]: adds support PPS(packet per second) on meter Li Zhang
2021-01-28 18:27       ` Ferruh Yigit
2021-02-12  7:40         ` Morten Brørup
2021-02-23  2:07           ` Li Zhang
2021-02-23  8:24             ` Morten Brørup
2021-03-01  3:16               ` Li Zhang [this message]
2021-03-01  3:31                 ` Ajit Khaparde
2021-03-01  7:20                 ` Morten Brørup
2021-03-01 13:08         ` Dumitrescu, Cristian
2021-03-01  9:39       ` [dpdk-dev] [RFC v3 0/4] " Li Zhang
2021-03-01  9:39         ` [dpdk-dev] [RFC v3 1/4] ethdev: add meter PPS profile Li Zhang
2021-03-01  9:39         ` [dpdk-dev] [RFC v3 2/4] common/mlx5: add meter mode definition in PRM file Li Zhang
2021-03-01  9:39         ` [dpdk-dev] [RFC v3 3/4] net/mlx5: support meter PPS profile Li Zhang
2021-03-01  9:40         ` [dpdk-dev] [RFC v3 4/4] app/testpmd: add meter pps mode cmd Li Zhang
2021-03-01  9:43       ` [dpdk-dev] [RFC v3 0/4] adds support PPS(packet per second) on meter Li Zhang
2021-03-01  9:43         ` [dpdk-dev] [RFC v3 1/4] ethdev: add meter PPS profile Li Zhang
2021-03-01  9:43         ` [dpdk-dev] [RFC v3 2/4] common/mlx5: add meter mode definition in PRM file Li Zhang
2021-03-01  9:43         ` [dpdk-dev] [RFC v3 3/4] net/mlx5: support meter PPS profile Li Zhang
2021-03-01  9:43         ` [dpdk-dev] [RFC v3 4/4] app/testpmd: add meter pps mode cmd Li Zhang
2021-03-01  9:53       ` [dpdk-dev] [RFC v3 0/4] adds support PPS(packet per second) on meter Li Zhang
2021-03-01  9:53         ` [dpdk-dev] [RFC v3 1/4] ethdev: add meter PPS profile Li Zhang
2021-03-01  9:53         ` [dpdk-dev] [RFC v3 2/4] common/mlx5: add meter mode definition in PRM file Li Zhang
2021-03-01  9:53         ` [dpdk-dev] [RFC v3 3/4] net/mlx5: support meter PPS profile Li Zhang
2021-03-01  9:53         ` [dpdk-dev] [RFC v3 4/4] app/testpmd: add meter pps mode cmd Li Zhang
2021-02-12 21:35   ` [dpdk-dev] [PATCH] [RFC]: adds support PPS(packet per second) on meter Ajit Khaparde
2021-02-23  2:11     ` Li Zhang
2021-03-01 10:35 ` [dpdk-dev] [RFC v4 0/4] " Li Zhang
2021-03-01 10:35   ` [dpdk-dev] [RFC v4 1/4] ethdev: add meter PPS profile Li Zhang
2021-03-01 13:20     ` Dumitrescu, Cristian
2021-03-01 15:53       ` Thomas Monjalon
2021-03-02  1:27         ` Li Zhang
2021-03-02  1:46       ` Ajit Khaparde
2021-03-02 12:13         ` Dumitrescu, Cristian
2021-03-02  7:02       ` Matan Azrad
2021-03-02 12:29         ` Dumitrescu, Cristian
2021-03-02 12:37           ` Matan Azrad
2021-03-02 14:33             ` Dumitrescu, Cristian
2021-03-02 18:10               ` Matan Azrad
2021-03-03 20:35                 ` Dumitrescu, Cristian
2021-03-04  6:34                   ` Matan Azrad
2021-03-05 18:44                     ` Dumitrescu, Cristian
2021-03-01 10:35   ` [dpdk-dev] [RFC v4 2/4] common/mlx5: add meter mode definition in PRM file Li Zhang
2021-03-01 10:35   ` [dpdk-dev] [RFC v4 3/4] net/mlx5: support meter PPS profile Li Zhang
2021-03-01 10:35   ` [dpdk-dev] [RFC v4 4/4] app/testpmd: add meter pps mode cmd Li Zhang
2021-03-02  1:48     ` Li, Xiaoyun
2021-03-02  3:04       ` Li Zhang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DM6PR12MB4090CF8BFD3DABB699B59CDDBF9A9@DM6PR12MB4090.namprd12.prod.outlook.com \
    --to=lizh@nvidia.com \
    --cc=cristian.dumitrescu@intel.com \
    --cc=dekelp@nvidia.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=matan@nvidia.com \
    --cc=mb@smartsharesystems.com \
    --cc=orika@nvidia.com \
    --cc=rasland@nvidia.com \
    --cc=thomas@monjalon.net \
    --cc=viacheslavo@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).