From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4AD7CA034F; Fri, 26 Feb 2021 07:43:04 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B5F83407FF; Fri, 26 Feb 2021 07:43:03 +0100 (CET) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id 7419040692 for ; Fri, 26 Feb 2021 07:43:02 +0100 (CET) Received: from [192.168.38.17] (aros.oktetlabs.ru [192.168.38.17]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by shelob.oktetlabs.ru (Postfix) with ESMTPSA id DBE537F572; Fri, 26 Feb 2021 09:43:01 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru DBE537F572 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru; s=default; t=1614321781; bh=U4uKC3MJrbRoylvN5bskDE8SjjZ1WwIpX+D07uoJXhE=; h=Subject:To:References:From:Date:In-Reply-To; b=FE1pkH85vCkOgTDJcu1LD/AVwl4OR9qtr4sXKOq+3ueq1LSTd+kG0MDclfj+iVwb+ qPJiwSWQOoKia09w/9IVztxl6keL3sZ7FeBtIQ6seTGH+6JltYRBCseyu2/S3Mxuj6 A6WUAXS1VpzQTjhPktR7bhbqvu7Va6LX9EOQaYRs= To: Ferruh Yigit , Ajit Khaparde , dev@dpdk.org References: <20210222191824.40230-1-ajit.khaparde@broadcom.com> <3a90da98-da41-70fb-2b6b-99e68c260b62@intel.com> From: Andrew Rybchenko Organization: OKTET Labs Message-ID: Date: Fri, 26 Feb 2021 09:43:01 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: <3a90da98-da41-70fb-2b6b-99e68c260b62@intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH] app/testpmd: add support for forced ethernet speed 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" On 2/25/21 9:25 PM, Ferruh Yigit wrote: > On 2/22/2021 7:18 PM, Ajit Khaparde wrote: >> Add support for forced ethernet speed setting. >> Currently testpmd tries to configure the Ethernet port in autoneg mode. >> It is not possible to set the Ethernet port to a specific speed while >> starting testpmd. In some cases capability to configure a forced speed >> for the Ethernet port during initialization may be necessary. This patch >> tries to add this support. >> >> The patch assumes full duplex setting and does not attempt to change >> that. >> So speeds like 10M, 100M are not configurable using this method. >> >> The command line to configure a forced speed of 10G: >> dpdk-testpmd -c 0xff  -- -i  --eth-link-speed  10000 >> >> The command line to configure a forced speed of 50G: >> dpdk-testpmd -c 0xff  -- -i  --eth-link-speed  50000 >> >> Signed-off-by: Ajit Khaparde >> --- >>   app/test-pmd/parameters.c             | 42 +++++++++++++++++++++++++++ >>   app/test-pmd/testpmd.c                |  4 +++ >>   app/test-pmd/testpmd.h                |  1 + >>   doc/guides/testpmd_app_ug/run_app.rst | 11 +++++++ >>   4 files changed, 58 insertions(+) > > Can you also update the release notes to document the new parameter? > >> >> diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c >> index c8acd5d1b7..e10f7d38fb 100644 >> --- a/app/test-pmd/parameters.c >> +++ b/app/test-pmd/parameters.c >> @@ -224,6 +224,7 @@ usage(char* progname) >>       printf("  --hairpin-mode=0xXX: bitmask set the hairpin port >> mode.\n " >>              "    0x10 - explicit Tx rule, 0x02 - hairpin ports paired\n" >>              "    0x01 - hairpin ports loop, 0x00 - hairpin port >> self\n"); >> +    printf("  --eth-link-speed: forced link speed.\n"); >>   } >>     #ifdef RTE_LIB_CMDLINE >> @@ -485,6 +486,41 @@ parse_event_printing_config(const char *optarg, >> int enable) >>       return 0; >>   } >>   +static int >> +parse_link_speed(int n) >> +{ >> +    uint32_t speed; >> + >> +    switch (n) { > > OK to not support "10M, 100M", not sure if anybody really uses them, but > what do you think checking them and return an error? > >> +    case 1000: >> +        speed = ETH_LINK_SPEED_1G; >> +        break; >> +    case 10000: >> +        speed = ETH_LINK_SPEED_10G; >> +        break; >> +    case 25000: >> +        speed = ETH_LINK_SPEED_25G; >> +        break; >> +    case 40000: >> +        speed = ETH_LINK_SPEED_40G; >> +        break; >> +    case 50000: >> +        speed = ETH_LINK_SPEED_50G; >> +        break; >> +    case 100000: >> +        speed = ETH_LINK_SPEED_100G; >> +        break; >> +    case 200000: >> +        speed = ETH_LINK_SPEED_200G; >> +        break; >> +    default: >> +        speed = ETH_LINK_SPEED_AUTONEG; >> +        break; > > Isn't this function to set a fixed link speed, why falling back to autoneg? > > Also shouldn't this function set 'ETH_LINK_SPEED_FIXED' too? It should. Previous time I've tried to fix corresponding bug in CLI commands, it ended up with rollback because of Intel drivers do not handle it correctly. See "app/testpmd: set fixed flag for exact link speed" and corresponding revert.