From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id B6966A04A5; Tue, 16 Jun 2020 22:12:37 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D5E7B1BFA9; Tue, 16 Jun 2020 22:12:36 +0200 (CEST) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by dpdk.org (Postfix) with ESMTP id 773C51BFA3 for ; Tue, 16 Jun 2020 22:12:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1592338354; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=oeD30SCbYqts/KuwI5ztdktbvXzu05sbDfDl7CxMWfo=; b=fOZ7ssLnzhndGJcd63CPJ8Ys9+O89ZmNz4wqEBTVrfPUfE4eC3jAnAmBwQv/PR+pEKRJjB e7xaoqMbtvCfa3IwRIrJGimj2RQeo7K1zcwLU4Fmw3xX7IlhKP9+7puaPl47SVCXDTwRSg DAAA5X9LsfjBPCYk6i0BND3aSDvQWTs= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-230-okMW2EhCPr-2wmwUjC9YNg-1; Tue, 16 Jun 2020 16:12:32 -0400 X-MC-Unique: okMW2EhCPr-2wmwUjC9YNg-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9BB2E109132C; Tue, 16 Jun 2020 20:12:31 +0000 (UTC) Received: from [10.33.36.205] (unknown [10.33.36.205]) by smtp.corp.redhat.com (Postfix) with ESMTP id 56DB519C71; Tue, 16 Jun 2020 20:12:30 +0000 (UTC) To: Chenxu Di , dev@dpdk.org Cc: beilei.xing@intel.com, Yang Qiming References: <20200611060142.75465-1-chenxux.di@intel.com> <20200611060142.75465-4-chenxux.di@intel.com> From: Kevin Traynor Autocrypt: addr=ktraynor@redhat.com; keydata= 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 Message-ID: Date: Tue, 16 Jun 2020 21:12:29 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <20200611060142.75465-4-chenxux.di@intel.com> Content-Language: en-US X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH 3/5] app/testpmd: re-implement commands by using private API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" On 11/06/2020 07:01, Chenxu Di wrote: > The legacy filter API will be superseded. This patch use > private api to change the implementation of commands > global_config gre-key-len and > show port fdir > > Signed-off-by: Chenxu Di > --- > app/test-pmd/cmdline.c | 23 ++++++++----- > app/test-pmd/config.c | 74 +++++++++++++++++++++++++++++++++++------- > 2 files changed, 78 insertions(+), 19 deletions(-) > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c > index 996a49876..01d793e89 100644 > --- a/app/test-pmd/cmdline.c > +++ b/app/test-pmd/cmdline.c > @@ -9280,15 +9280,22 @@ cmd_global_config_parsed(void *parsed_result, > { > struct cmd_global_config_result *res = parsed_result; > struct rte_eth_global_cfg conf; > - int ret; > + int ret = -ENOTSUP; > > - memset(&conf, 0, sizeof(conf)); > - conf.cfg_type = RTE_ETH_GLOBAL_CFG_TYPE_GRE_KEY_LEN; > - conf.cfg.gre_key_len = res->len; > - ret = rte_eth_dev_filter_ctrl(res->port_id, RTE_ETH_FILTER_NONE, > - RTE_ETH_FILTER_SET, &conf); > - if (ret != 0) > - printf("Global config error\n"); > +#ifdef RTE_LIBRTE_I40E_PMD > + if (ret == -ENOTSUP) > + ret = rte_pmd_i40e_set_gre_key_len(res->port_id, res->len); > +#endif > + if (ret == -ENOTSUP) { > + memset(&conf, 0, sizeof(conf)); > + conf.cfg_type = RTE_ETH_GLOBAL_CFG_TYPE_GRE_KEY_LEN; > + conf.cfg.gre_key_len = res->len; > + ret = rte_eth_dev_filter_ctrl(res->port_id, RTE_ETH_FILTER_NONE, > + RTE_ETH_FILTER_SET, &conf); > + } > + > + if (ret < 0) > + printf("Global config error: (%s)\n", strerror(-ret)); > } > > cmdline_parse_token_string_t cmd_global_config_cmd = > diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c > index 016bcb09c..f519246c7 100644 > --- a/app/test-pmd/config.c > +++ b/app/test-pmd/config.c > @@ -3729,30 +3729,82 @@ print_fdir_flow_type(uint32_t flow_types_mask) > printf("\n"); > } > > +static int > +get_fdir_info(portid_t port_id, struct rte_eth_fdir_info *fdir_info) > +{ > + int ret; this looks like it won't compile if the RTE_LIBRTE_I40E_PMD is undefined, you'll need to initialize ret > +#ifdef RTE_LIBRTE_I40E_PMD > + ret = rte_pmd_i40e_get_fdir_info(port_id, fdir_info); > +#endif > +#ifdef RTE_LIBRTE_IXGBE_PMD > + if (ret == -ENOTSUP) > + ret = rte_pmd_ixgbe_get_fdir_info(port_id, fdir_info); > +#endif > + if (ret == -ENOTSUP) { > + ret = rte_eth_dev_filter_supported(port_id, > + RTE_ETH_FILTER_FDIR); > + if (ret < 0) { > + printf("\n FDIR is not supported on port %-2d\n", > + port_id); > + return ret; > + } > + rte_eth_dev_filter_ctrl(port_id, RTE_ETH_FILTER_FDIR, > + RTE_ETH_FILTER_INFO, fdir_info); > + } > + > + if (ret < 0) > + printf("Get fdir infos error: (%s)\n", strerror(-ret)); > + > + return ret; > +} > + > +static int > +get_fdir_stat(portid_t port_id, struct rte_eth_fdir_stats *fdir_stat) > +{ > + int ret; Same comment as above > +#ifdef RTE_LIBRTE_I40E_PMD > + ret = rte_pmd_i40e_get_fdir_stats(port_id, fdir_stat); > +#endif > +#ifdef RTE_LIBRTE_IXGBE_PMD > + if (ret == -ENOTSUP) > + ret = rte_pmd_ixgbe_get_fdir_stats(port_id, fdir_stat); > +#endif > + if (ret == -ENOTSUP) { > + ret = rte_eth_dev_filter_supported(port_id, > + RTE_ETH_FILTER_FDIR); > + if (ret < 0) { > + printf("\n FDIR is not supported on port %-2d\n", > + port_id); > + return ret; > + } > + rte_eth_dev_filter_ctrl(port_id, RTE_ETH_FILTER_FDIR, > + RTE_ETH_FILTER_STATS, fdir_stat); > + } > + > + if (ret < 0) > + printf("Get fdir infos error: (%s)\n", strerror(-ret)); > + > + return ret; > +} > + > void > fdir_get_infos(portid_t port_id) > { > struct rte_eth_fdir_stats fdir_stat; > struct rte_eth_fdir_info fdir_info; > - int ret; > > static const char *fdir_stats_border = "########################"; > > if (port_id_is_invalid(port_id, ENABLED_WARN)) > return; > - ret = rte_eth_dev_filter_supported(port_id, RTE_ETH_FILTER_FDIR); > - if (ret < 0) { > - printf("\n FDIR is not supported on port %-2d\n", > - port_id); > - return; > - } > > memset(&fdir_info, 0, sizeof(fdir_info)); > - rte_eth_dev_filter_ctrl(port_id, RTE_ETH_FILTER_FDIR, > - RTE_ETH_FILTER_INFO, &fdir_info); > + if (get_fdir_info(port_id, &fdir_info)) > + return; > memset(&fdir_stat, 0, sizeof(fdir_stat)); > - rte_eth_dev_filter_ctrl(port_id, RTE_ETH_FILTER_FDIR, > - RTE_ETH_FILTER_STATS, &fdir_stat); > + if (get_fdir_stat(port_id, &fdir_stat)) > + return; > + > printf("\n %s FDIR infos for port %-2d %s\n", > fdir_stats_border, port_id, fdir_stats_border); > printf(" MODE: "); >