From patchwork Thu Apr 8 03:58:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Li Zhang X-Patchwork-Id: 90834 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 34CD4A0579; Thu, 8 Apr 2021 05:59:05 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 61332140F75; Thu, 8 Apr 2021 05:59:00 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by mails.dpdk.org (Postfix) with ESMTP id 40E1F40698 for ; Thu, 8 Apr 2021 05:58:57 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from lizh@nvidia.com) with SMTP; 8 Apr 2021 06:58:52 +0300 Received: from nvidia.com (c-235-17-1-009.mtl.labs.mlnx [10.235.17.9]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 1383wq9r019765; Thu, 8 Apr 2021 06:58:52 +0300 From: Li Zhang To: dekelp@nvidia.com, orika@nvidia.com, viacheslavo@nvidia.com, matan@nvidia.com, shahafs@nvidia.com, cristian.dumitrescu@intel.com, lironh@marvell.com, Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko Cc: dev@dpdk.org, rasland@nvidia.com, roniba@nvidia.com Date: Thu, 8 Apr 2021 06:58:45 +0300 Message-Id: <20210408035849.1755493-2-lizh@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20210408035849.1755493-1-lizh@nvidia.com> References: <20210331085405.1445546-1-lizh@nvidia.com> <20210408035849.1755493-1-lizh@nvidia.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 1/4] ethdev: add packet mode in meter profile structure X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Currently meter algorithms only supports rate is bytes per second(BPS). Add packet_mode flag in meter profile parameters data structure. So that it can meter traffic by packet per second. When packet_mode is 0, the profile rates and bucket sizes are specified in bytes per second and bytes when packet_mode is not 0, the profile rates and bucket sizes are specified in packets and packets per second. The below structure will be extended: rte_mtr_meter_profile rte_mtr_capabilities Signed-off-by: Li Zhang --- doc/guides/rel_notes/release_21_05.rst | 7 ++ lib/librte_ethdev/rte_mtr.h | 90 ++++++++++++++++++++++---- 2 files changed, 86 insertions(+), 11 deletions(-) diff --git a/doc/guides/rel_notes/release_21_05.rst b/doc/guides/rel_notes/release_21_05.rst index 3c76148b11..c9c15794ad 100644 --- a/doc/guides/rel_notes/release_21_05.rst +++ b/doc/guides/rel_notes/release_21_05.rst @@ -119,6 +119,13 @@ New Features * Added command to display Rx queue used descriptor count. ``show port (port_id) rxq (queue_id) desc used count`` +* **Added support for meter PPS profile.** + + Currently meter algorithms only supports bytes per second(BPS). + Add packet_mode in the meter profile parameters data structures + to support packet per second (PPS) mode. + So that it can meter traffic by packet per second. + Packet_mode must be 0 when it is bytes mode. Removed Items ------------- diff --git a/lib/librte_ethdev/rte_mtr.h b/lib/librte_ethdev/rte_mtr.h index e1dc59eb06..890b4ac344 100644 --- a/lib/librte_ethdev/rte_mtr.h +++ b/lib/librte_ethdev/rte_mtr.h @@ -133,46 +133,71 @@ struct rte_mtr_meter_profile { union { /** Items only valid when *alg* is set to srTCM - RFC 2697. */ struct { - /** Committed Information Rate (CIR) (bytes/second). */ + /** + * Committed Information Rate (CIR) + * (bytes per second or packets per second). + */ uint64_t cir; - /** Committed Burst Size (CBS) (bytes). */ + /** Committed Burst Size (CBS) (bytes or packets). */ uint64_t cbs; - /** Excess Burst Size (EBS) (bytes). */ + /** Excess Burst Size (EBS) (bytes or packets). */ uint64_t ebs; } srtcm_rfc2697; /** Items only valid when *alg* is set to trTCM - RFC 2698. */ struct { - /** Committed Information Rate (CIR) (bytes/second). */ + /** + * Committed Information Rate (CIR) + * (bytes per second or packets per second). + */ uint64_t cir; - /** Peak Information Rate (PIR) (bytes/second). */ + /** + * Peak Information Rate (PIR) + * (bytes per second or packets per second). + */ uint64_t pir; - /** Committed Burst Size (CBS) (byes). */ + /** Committed Burst Size (CBS) (bytes or packets). */ uint64_t cbs; - /** Peak Burst Size (PBS) (bytes). */ + /** Peak Burst Size (PBS) (bytes or packets). */ uint64_t pbs; } trtcm_rfc2698; /** Items only valid when *alg* is set to trTCM - RFC 4115. */ struct { - /** Committed Information Rate (CIR) (bytes/second). */ + /** + * Committed Information Rate (CIR) + * (bytes per second or packets per second). + */ uint64_t cir; - /** Excess Information Rate (EIR) (bytes/second). */ + /** + * Excess Information Rate (EIR) + * (bytes per second or packets per second). + */ uint64_t eir; - /** Committed Burst Size (CBS) (byes). */ + /** Committed Burst Size (CBS) (bytes or packets). */ uint64_t cbs; - /** Excess Burst Size (EBS) (bytes). */ + /** Excess Burst Size (EBS) (bytes or packets). */ uint64_t ebs; } trtcm_rfc4115; }; + + /** + * When zero, the byte mode is enabled for the current profile, so the + * *rate* and *size* fields are specified in bytes per second + * and bytes, respectively. + * When non-zero, the packet mode is enabled for the current profile, + * so the *rate* and *size* fields are specified in packets per second + * and packets, respectively. + */ + int packet_mode; }; /** @@ -333,6 +358,48 @@ struct rte_mtr_capabilities { */ int color_aware_trtcm_rfc4115_supported; + /** + * srTCM rfc2697 byte mode supported. + * When non-zero, it indicates that byte mode is supported for + * the srTCM RFC 2697 metering algorithm. + */ + int srtcm_rfc2697_byte_mode_supported; + + /** + * srTCM rfc2697 packet mode supported. + * When non-zero, it indicates that packet mode is supported for + * the srTCM RFC 2697 metering algorithm. + */ + int srtcm_rfc2697_packet_mode_supported; + + /** + * trTCM rfc2698 byte mode supported. + * When non-zero, it indicates that byte mode is supported for + * the trTCM RFC 2698 metering algorithm. + */ + int trtcm_rfc2698_byte_mode_supported; + + /** + * trTCM rfc2698 packet mode supported. + * When non-zero, it indicates that packet mode is supported for + * the trTCM RFC 2698 metering algorithm. + */ + int trtcm_rfc2698_packet_mode_supported; + + /** + * trTCM rfc4115 byte mode supported. + * When non-zero, it indicates that byte mode is supported for + * the trTCM RFC 4115 metering algorithm. + */ + int trtcm_rfc4115_byte_mode_supported; + + /** + * trTCM rfc4115 packet mode supported. + * When non-zero, it indicates that packet mode is supported for + * the trTCM RFC 4115 metering algorithm. + */ + int trtcm_rfc4115_packet_mode_supported; + /** Set of supported statistics counter types. * @see enum rte_mtr_stats_type */ @@ -350,6 +417,7 @@ enum rte_mtr_error_type { RTE_MTR_ERROR_TYPE_UNSPECIFIED, /**< Cause unspecified. */ RTE_MTR_ERROR_TYPE_METER_PROFILE_ID, RTE_MTR_ERROR_TYPE_METER_PROFILE, + RTE_MTR_ERROR_TYPE_METER_PROFILE_PACKET_MODE, RTE_MTR_ERROR_TYPE_MTR_ID, RTE_MTR_ERROR_TYPE_MTR_PARAMS, RTE_MTR_ERROR_TYPE_POLICER_ACTION_GREEN, From patchwork Thu Apr 8 03:58:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Li Zhang X-Patchwork-Id: 90833 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E4883A0579; Thu, 8 Apr 2021 05:58:59 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 65F3740698; Thu, 8 Apr 2021 05:58:59 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by mails.dpdk.org (Postfix) with ESMTP id 3821E40138 for ; Thu, 8 Apr 2021 05:58:57 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from lizh@nvidia.com) with SMTP; 8 Apr 2021 06:58:52 +0300 Received: from nvidia.com (c-235-17-1-009.mtl.labs.mlnx [10.235.17.9]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 1383wq9s019765; Thu, 8 Apr 2021 06:58:52 +0300 From: Li Zhang To: dekelp@nvidia.com, orika@nvidia.com, viacheslavo@nvidia.com, matan@nvidia.com, shahafs@nvidia.com, cristian.dumitrescu@intel.com, lironh@marvell.com, Xiaoyun Li Cc: dev@dpdk.org, thomas@monjalon.net, rasland@nvidia.com, roniba@nvidia.com Date: Thu, 8 Apr 2021 06:58:46 +0300 Message-Id: <20210408035849.1755493-3-lizh@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20210408035849.1755493-1-lizh@nvidia.com> References: <20210331085405.1445546-1-lizh@nvidia.com> <20210408035849.1755493-1-lizh@nvidia.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 2/4] app/testpmd: add meter profile packet mode option X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" add meter profile packet_mode to the ethernet device. One example: add port meter profile rfc2697 (port_id) (profile_id) (cir) (cbs) (ebs) (packet_mode) Signed-off-by: Li Zhang --- app/test-pmd/cmdline_mtr.c | 40 +++++++++++++++++++-- doc/guides/testpmd_app_ug/testpmd_funcs.rst | 31 ++++++++-------- 2 files changed, 54 insertions(+), 17 deletions(-) diff --git a/app/test-pmd/cmdline_mtr.c b/app/test-pmd/cmdline_mtr.c index bdc9ae8bfe..eff2473e7b 100644 --- a/app/test-pmd/cmdline_mtr.c +++ b/app/test-pmd/cmdline_mtr.c @@ -263,6 +263,18 @@ static void cmd_show_port_meter_cap_parsed(void *parsed_result, cap.color_aware_trtcm_rfc2698_supported); printf("cap.color_aware_trtcm_rfc4115_supported %" PRId32 "\n", cap.color_aware_trtcm_rfc4115_supported); + printf("cap.srtcm_rfc2697_byte_mode_supported %" PRId32 "\n", + cap.srtcm_rfc2697_byte_mode_supported); + printf("cap.srtcm_rfc2697_packet_mode_supported %" PRId32 "\n", + cap.srtcm_rfc2697_packet_mode_supported); + printf("cap.trtcm_rfc2698_byte_mode_supported %" PRId32 "\n", + cap.trtcm_rfc2698_byte_mode_supported); + printf("cap.trtcm_rfc2698_packet_mode_supported %" PRId32 "\n", + cap.trtcm_rfc2698_packet_mode_supported); + printf("cap.trtcm_rfc4115_byte_mode_supported %" PRId32 "\n", + cap.trtcm_rfc4115_byte_mode_supported); + printf("cap.trtcm_rfc4115_packet_mode_supported %" PRId32 "\n", + cap.trtcm_rfc4115_packet_mode_supported); printf("cap.stats_mask %" PRIx64 "\n", cap.stats_mask); } @@ -292,6 +304,7 @@ struct cmd_add_port_meter_profile_srtcm_result { uint64_t cir; uint64_t cbs; uint64_t ebs; + int packet_mode; }; cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_add = @@ -333,6 +346,10 @@ cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_ebs = TOKEN_NUM_INITIALIZER( struct cmd_add_port_meter_profile_srtcm_result, ebs, RTE_UINT64); +cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_packet_mode = + TOKEN_NUM_INITIALIZER( + struct cmd_add_port_meter_profile_srtcm_result, + packet_mode, RTE_UINT32); static void cmd_add_port_meter_profile_srtcm_parsed(void *parsed_result, __rte_unused struct cmdline *cl, @@ -354,6 +371,7 @@ static void cmd_add_port_meter_profile_srtcm_parsed(void *parsed_result, mp.srtcm_rfc2697.cir = res->cir; mp.srtcm_rfc2697.cbs = res->cbs; mp.srtcm_rfc2697.ebs = res->ebs; + mp.packet_mode = res->packet_mode; ret = rte_mtr_meter_profile_add(port_id, profile_id, &mp, &error); if (ret != 0) { @@ -365,7 +383,7 @@ static void cmd_add_port_meter_profile_srtcm_parsed(void *parsed_result, cmdline_parse_inst_t cmd_add_port_meter_profile_srtcm = { .f = cmd_add_port_meter_profile_srtcm_parsed, .data = NULL, - .help_str = "add port meter profile srtcm_rfc2697 ", + .help_str = "add port meter profile srtcm_rfc2697 ", .tokens = { (void *)&cmd_add_port_meter_profile_srtcm_add, (void *)&cmd_add_port_meter_profile_srtcm_port, @@ -377,6 +395,7 @@ cmdline_parse_inst_t cmd_add_port_meter_profile_srtcm = { (void *)&cmd_add_port_meter_profile_srtcm_cir, (void *)&cmd_add_port_meter_profile_srtcm_cbs, (void *)&cmd_add_port_meter_profile_srtcm_ebs, + (void *)&cmd_add_port_meter_profile_srtcm_packet_mode, NULL, }, }; @@ -394,6 +413,7 @@ struct cmd_add_port_meter_profile_trtcm_result { uint64_t pir; uint64_t cbs; uint64_t pbs; + int packet_mode; }; cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_add = @@ -439,6 +459,10 @@ cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_pbs = TOKEN_NUM_INITIALIZER( struct cmd_add_port_meter_profile_trtcm_result, pbs, RTE_UINT64); +cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_packet_mode = + TOKEN_NUM_INITIALIZER( + struct cmd_add_port_meter_profile_trtcm_result, + packet_mode, RTE_UINT32); static void cmd_add_port_meter_profile_trtcm_parsed(void *parsed_result, __rte_unused struct cmdline *cl, @@ -461,6 +485,7 @@ static void cmd_add_port_meter_profile_trtcm_parsed(void *parsed_result, mp.trtcm_rfc2698.pir = res->pir; mp.trtcm_rfc2698.cbs = res->cbs; mp.trtcm_rfc2698.pbs = res->pbs; + mp.packet_mode = res->packet_mode; ret = rte_mtr_meter_profile_add(port_id, profile_id, &mp, &error); if (ret != 0) { @@ -472,7 +497,7 @@ static void cmd_add_port_meter_profile_trtcm_parsed(void *parsed_result, cmdline_parse_inst_t cmd_add_port_meter_profile_trtcm = { .f = cmd_add_port_meter_profile_trtcm_parsed, .data = NULL, - .help_str = "add port meter profile trtcm_rfc2698 ", + .help_str = "add port meter profile trtcm_rfc2698 ", .tokens = { (void *)&cmd_add_port_meter_profile_trtcm_add, (void *)&cmd_add_port_meter_profile_trtcm_port, @@ -485,6 +510,7 @@ cmdline_parse_inst_t cmd_add_port_meter_profile_trtcm = { (void *)&cmd_add_port_meter_profile_trtcm_pir, (void *)&cmd_add_port_meter_profile_trtcm_cbs, (void *)&cmd_add_port_meter_profile_trtcm_pbs, + (void *)&cmd_add_port_meter_profile_trtcm_packet_mode, NULL, }, }; @@ -502,6 +528,7 @@ struct cmd_add_port_meter_profile_trtcm_rfc4115_result { uint64_t eir; uint64_t cbs; uint64_t ebs; + int packet_mode; }; cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_add = @@ -549,6 +576,11 @@ cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_ebs = TOKEN_NUM_INITIALIZER( struct cmd_add_port_meter_profile_trtcm_rfc4115_result, ebs, RTE_UINT64); +cmdline_parse_token_num_t + cmd_add_port_meter_profile_trtcm_rfc4115_packet_mode = + TOKEN_NUM_INITIALIZER( + struct cmd_add_port_meter_profile_trtcm_rfc4115_result, + packet_mode, RTE_UINT32); static void cmd_add_port_meter_profile_trtcm_rfc4115_parsed( void *parsed_result, @@ -573,6 +605,7 @@ static void cmd_add_port_meter_profile_trtcm_rfc4115_parsed( mp.trtcm_rfc4115.eir = res->eir; mp.trtcm_rfc4115.cbs = res->cbs; mp.trtcm_rfc4115.ebs = res->ebs; + mp.packet_mode = res->packet_mode; ret = rte_mtr_meter_profile_add(port_id, profile_id, &mp, &error); if (ret != 0) { @@ -584,7 +617,7 @@ static void cmd_add_port_meter_profile_trtcm_rfc4115_parsed( cmdline_parse_inst_t cmd_add_port_meter_profile_trtcm_rfc4115 = { .f = cmd_add_port_meter_profile_trtcm_rfc4115_parsed, .data = NULL, - .help_str = "add port meter profile trtcm_rfc4115 ", + .help_str = "add port meter profile trtcm_rfc4115 ", .tokens = { (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_add, (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_port, @@ -597,6 +630,7 @@ cmdline_parse_inst_t cmd_add_port_meter_profile_trtcm_rfc4115 = { (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_eir, (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_cbs, (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_ebs, + (void *)&cmd_add_port_meter_profile_trtcm_rfc4115_packet_mode, NULL, }, }; diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst index f59eb8a27d..b5e52f6b1c 100644 --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst @@ -2698,14 +2698,15 @@ add port meter profile (srTCM rfc2967) Add meter profile (srTCM rfc2697) to the ethernet device:: testpmd> add port meter profile srtcm_rfc2697 (port_id) (profile_id) \ - (cir) (cbs) (ebs) + (cir) (cbs) (ebs) (packet_mode) where: * ``profile_id``: ID for the meter profile. -* ``cir``: Committed Information Rate (CIR) (bytes/second). -* ``cbs``: Committed Burst Size (CBS) (bytes). -* ``ebs``: Excess Burst Size (EBS) (bytes). +* ``cir``: Committed Information Rate (CIR) (bytes per second or packets per second). +* ``cbs``: Committed Burst Size (CBS) (bytes or packets). +* ``ebs``: Excess Burst Size (EBS) (bytes or packets). +* ``packet_mode``: Packets mode for meter profile. add port meter profile (trTCM rfc2968) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -2713,15 +2714,16 @@ add port meter profile (trTCM rfc2968) Add meter profile (srTCM rfc2698) to the ethernet device:: testpmd> add port meter profile trtcm_rfc2698 (port_id) (profile_id) \ - (cir) (pir) (cbs) (pbs) + (cir) (pir) (cbs) (pbs) (packet_mode) where: * ``profile_id``: ID for the meter profile. -* ``cir``: Committed information rate (bytes/second). -* ``pir``: Peak information rate (bytes/second). -* ``cbs``: Committed burst size (bytes). -* ``pbs``: Peak burst size (bytes). +* ``cir``: Committed information rate (bytes per second or packets per second). +* ``pir``: Peak information rate (bytes per second or packets per second). +* ``cbs``: Committed burst size (bytes or packets). +* ``pbs``: Peak burst size (bytes or packets). +* ``packet_mode``: Packets mode for meter profile. add port meter profile (trTCM rfc4115) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -2729,15 +2731,16 @@ add port meter profile (trTCM rfc4115) Add meter profile (trTCM rfc4115) to the ethernet device:: testpmd> add port meter profile trtcm_rfc4115 (port_id) (profile_id) \ - (cir) (eir) (cbs) (ebs) + (cir) (eir) (cbs) (ebs) (packet_mode) where: * ``profile_id``: ID for the meter profile. -* ``cir``: Committed information rate (bytes/second). -* ``eir``: Excess information rate (bytes/second). -* ``cbs``: Committed burst size (bytes). -* ``ebs``: Excess burst size (bytes). +* ``cir``: Committed information rate (bytes per second or packets per second). +* ``eir``: Excess information rate (bytes per second or packets per second). +* ``cbs``: Committed burst size (bytes or packets). +* ``ebs``: Excess burst size (bytes or packets). +* ``packet_mode``: Packets mode for meter profile. delete port meter profile ~~~~~~~~~~~~~~~~~~~~~~~~~ From patchwork Thu Apr 8 03:58:47 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Li Zhang X-Patchwork-Id: 90837 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C8971A0579; Thu, 8 Apr 2021 05:59:22 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EA5F6140FB8; Thu, 8 Apr 2021 05:59:03 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by mails.dpdk.org (Postfix) with ESMTP id 47643140F6B for ; Thu, 8 Apr 2021 05:58:57 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from lizh@nvidia.com) with SMTP; 8 Apr 2021 06:58:53 +0300 Received: from nvidia.com (c-235-17-1-009.mtl.labs.mlnx [10.235.17.9]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 1383wq9t019765; Thu, 8 Apr 2021 06:58:53 +0300 From: Li Zhang To: dekelp@nvidia.com, orika@nvidia.com, viacheslavo@nvidia.com, matan@nvidia.com, shahafs@nvidia.com, cristian.dumitrescu@intel.com, lironh@marvell.com, Jasvinder Singh Cc: dev@dpdk.org, thomas@monjalon.net, rasland@nvidia.com, roniba@nvidia.com Date: Thu, 8 Apr 2021 06:58:47 +0300 Message-Id: <20210408035849.1755493-4-lizh@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20210408035849.1755493-1-lizh@nvidia.com> References: <20210331085405.1445546-1-lizh@nvidia.com> <20210408035849.1755493-1-lizh@nvidia.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 3/4] net/softnic: check meter packet mode X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Currently meter algorithms only supports bytes per second(BPS). Check packet_mode set to TRUE are rejected. Signed-off-by: Li Zhang --- drivers/net/softnic/rte_eth_softnic_meter.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/softnic/rte_eth_softnic_meter.c b/drivers/net/softnic/rte_eth_softnic_meter.c index 0cbf94e8b0..8c2f82d512 100644 --- a/drivers/net/softnic/rte_eth_softnic_meter.c +++ b/drivers/net/softnic/rte_eth_softnic_meter.c @@ -128,6 +128,14 @@ meter_profile_check(struct rte_eth_dev *dev, NULL, "Metering alg not supported"); + /* Not support packet mode, just support byte mode. */ + if (profile->packet_mode) + return -rte_mtr_error_set(error, + EINVAL, + RTE_MTR_ERROR_TYPE_METER_PROFILE_PACKET_MODE, + NULL, + "Meter packet mode not supported"); + return 0; } From patchwork Thu Apr 8 03:58:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Li Zhang X-Patchwork-Id: 90835 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 77EF0A0579; Thu, 8 Apr 2021 05:59:11 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 887B7140F86; Thu, 8 Apr 2021 05:59:01 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by mails.dpdk.org (Postfix) with ESMTP id 450A3140F53 for ; Thu, 8 Apr 2021 05:58:57 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from lizh@nvidia.com) with SMTP; 8 Apr 2021 06:58:53 +0300 Received: from nvidia.com (c-235-17-1-009.mtl.labs.mlnx [10.235.17.9]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 1383wq9u019765; Thu, 8 Apr 2021 06:58:53 +0300 From: Li Zhang To: dekelp@nvidia.com, orika@nvidia.com, viacheslavo@nvidia.com, matan@nvidia.com, shahafs@nvidia.com, cristian.dumitrescu@intel.com, lironh@marvell.com Cc: dev@dpdk.org, thomas@monjalon.net, rasland@nvidia.com, roniba@nvidia.com Date: Thu, 8 Apr 2021 06:58:48 +0300 Message-Id: <20210408035849.1755493-5-lizh@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20210408035849.1755493-1-lizh@nvidia.com> References: <20210331085405.1445546-1-lizh@nvidia.com> <20210408035849.1755493-1-lizh@nvidia.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 4/4] net/mvpp2: check meter packet mode X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Currently meter algorithms only supports bytes per second(BPS). Check packet_mode set to TRUE are rejected. Signed-off-by: Li Zhang --- drivers/net/mvpp2/mrvl_mtr.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/mvpp2/mrvl_mtr.c b/drivers/net/mvpp2/mrvl_mtr.c index 2fa5cb43ad..c07ac95ddc 100644 --- a/drivers/net/mvpp2/mrvl_mtr.c +++ b/drivers/net/mvpp2/mrvl_mtr.c @@ -88,6 +88,12 @@ mrvl_meter_profile_add(struct rte_eth_dev *dev, uint32_t meter_profile_id, NULL, "Only srTCM RFC 2697 is supported\n"); + if (profile->packet_mode) + return -rte_mtr_error_set(error, EINVAL, + RTE_MTR_ERROR_TYPE_METER_PROFILE_PACKET_MODE, + NULL, + "Packet mode is not supported\n"); + prof = mrvl_mtr_profile_from_id(priv, meter_profile_id); if (prof) return -rte_mtr_error_set(error, EEXIST,