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 5AA0C424D4; Wed, 12 Jun 2024 01:39:23 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4253140DCB; Wed, 12 Jun 2024 01:39:23 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2076.outbound.protection.outlook.com [40.107.223.76]) by mails.dpdk.org (Postfix) with ESMTP id 047F540DCA for ; Wed, 12 Jun 2024 01:39:21 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DWWL0RzJwjW1XOpS29D8J8gT5Wsr6H4GoTB6naWBkyZShAuR2XLDN/FYGg587TIEibPT/S8/SdEtXaP1CzfhdRnCqC0kc9bz1mVVD8h4+k/L4fehmgeSduIzEhfgfbkquiC6StjMwTv9emOyviMf6nGQgqegW1xgX3RT+plufTsL4IYEAwOt2hPoqrRB+9wTmrP+bo+xoc6cu0miWGOj57TL66StI/L1O0QjvuuUg1JyzZCGDlhjGMl2QhfTY5YZoD+Hu9n5a8MM9veBEuiGocdnsbpvgxp5zeHv4lqtJRs0Bjk68JL1/NOjSdttfFikBZ1FnQc59Lrs5MVF5yl4hg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7ovd+NugYdvTryH3WIt2obL1HRsCHJExVsKlDnobGyk=; b=iPqFdyRYEQo+CN1MYSiKf7UpzKZQC5nhzH9M1RZ3HGNOd7HuuAvVIHYauyzRi0jzti8lorwuViJ2L9KnX/d/PRwbreL2I3Z0uiHP9yqiyFtRg/8FU90zeULmGHLc4zQsYYV+3Xkid3WxnPORGpYie+Mdxl8/6GzA1sdOHVG4xPzSSRiCVkk+2ZI97Cu2XSbrg2GBSwjsj3Bx1g+pQr37Vo+Df2epqsNg+BZlUsAdTRWi0HWojkZSZk+PqalH0W2MtH0/RfHT5WM1948uKItUMyrFfAO07bY0WWWEUrCwy313OX4HZLYnCf89f/91m3tWOLEb30wn/fvm/Z/y0RW7pQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7ovd+NugYdvTryH3WIt2obL1HRsCHJExVsKlDnobGyk=; b=ltH3GMwsFkkxfjnVpp21oVlhllUk6vrf/mmEET4PU/YAga3XcKZ3/wEOf2xDCGMTE2I+WTtXccHFZ9n3WeP8eX7RZGf52gclh+Sfp5+kFx1qsDPsRbE4imk6O7wbogAtTV5A7jYchxQM83jzaZbSmXlXt4gAuZWEC5ix19QkefM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) by MN2PR12MB4240.namprd12.prod.outlook.com (2603:10b6:208:1d3::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.36; Tue, 11 Jun 2024 23:39:19 +0000 Received: from CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::ebfb:2f9f:f9ca:82cd]) by CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::ebfb:2f9f:f9ca:82cd%4]) with mapi id 15.20.7633.036; Tue, 11 Jun 2024 23:39:19 +0000 Message-ID: Date: Wed, 12 Jun 2024 00:39:14 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 2/4] testpmd: Add speed lanes to testpmd config and show command To: Damodharam Ammepalli , dev@dpdk.org Cc: Kalesh AP , Ajit Khaparde , Dengdui Huang References: <20240602024504.179506-1-damodharam.ammepalli@broadcom.com> <20240602024504.179506-3-damodharam.ammepalli@broadcom.com> Content-Language: en-US From: Ferruh Yigit Autocrypt: addr=ferruh.yigit@amd.com; keydata= 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 8Zk= In-Reply-To: <20240602024504.179506-3-damodharam.ammepalli@broadcom.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO2P123CA0054.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1::18) To CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB4294:EE_|MN2PR12MB4240:EE_ X-MS-Office365-Filtering-Correlation-Id: 41538d70-e325-4225-110a-08dc8a6fb6fd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230032|376006|366008|1800799016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?TE9sQ3o5OWt6MUU3YmU5K1pLNEVLeEs3azRqTmtDR2taY1BiYkd4Z0xOckZo?= =?utf-8?B?NzZ3cG83MEhXSVR5aytSR2lLaTErT08wVG1KcGxlWWJLVmVBdVo5Mlc4cFQ2?= =?utf-8?B?NFQ2ejRCWkNlUWdhcWNWNWdveFpRa0RLU1V2VVV4VkNrT3JLSGJDa1lTWFdo?= =?utf-8?B?ZTZ1dTVzWWs0ZEdYeURiWmxqTXF5cDdzWUdRTUk1MXhrTURqaWZxSmdFQUZ3?= =?utf-8?B?bm5lTk90WVNKUWlKWUxTZzBNck5NcWdKY2ZLN1NMNzRkYlJnN3RKK0d6eVdp?= =?utf-8?B?QS9Hc0FYMlR1c3U3bXBGbDNXMnFGVk1GQ1Z5QzJPRDZrb29vM3Z0VlQ5Q0RM?= =?utf-8?B?NEkwSW1teDUwQUtwRzdCSkpvVVJsN0V1VGlkZjVOMnkyUE9Ic0pVakR2Y2lK?= =?utf-8?B?SDBsTHNZYnBGTFcvY3NFZGdTQjZmNWZPV002Umt3c1VMajVaVTl6RDZrVDlZ?= =?utf-8?B?alZHYmlaUko3c2IzQ1lWREZkOU4vWFhOVGI2UURMcUpHK0lmRVM0MWExUkd0?= =?utf-8?B?dkQ4L1V3RlZRdVhJdmdXV0theWhzdUZ0VGVsTVQxVE1UVG1qYXFveXdieG5B?= =?utf-8?B?ZGtrN1R6aU50blhleUIzcnRpWmRZUm9RWnJlYmt3RlFEODFBeVl6OHpzN1Qw?= =?utf-8?B?VlkyempPR25qSFlVTGFicE1ZaVlFSml1dTM3VzNZejg2blFpcTM0bWlLRS85?= =?utf-8?B?MHdYeHk1Z2RnYWFielA5OTcvdktnVlhYMGZ1eVhhTXNyWlpieDMzd2pLcjlh?= =?utf-8?B?bXFCNE5lcGNBdTBvazJ2ajFDZjc4MGJBK1hjWGluM0YzMER3SkQ5MmxzUG5i?= =?utf-8?B?cDB5Wldjb3BiL3NjdllONUhVTTB5dzZjdVNYZlQybks5RUFqV2daWVZhOWZQ?= =?utf-8?B?djRKWDRYNERhRG9lbHhXOGlDSFNqNWRKM0M5WWFFQWRnU09ab0hYaCtUYng2?= =?utf-8?B?U3dKV084NFZ0S2VrL1lZS1AwRDlhT2hSQVNIZHRwYzJ2MHJpMFg4WVFJa1lv?= =?utf-8?B?MUpFOHFBZE5ZTkVBWFZ1Y0FUd0xmdDYxb21UQjJMMHV2L1pNd1dRRUY3N0tU?= =?utf-8?B?bWRnYUIvL3RNNVF1ZXVHSUh6dWV2Z3dHTWJrQkluS0M5TWI3dGFDdmdtVGJi?= =?utf-8?B?ZktJZXV0NkxzZEJTNHRJeVFsSnJOakZGaEMycDhzU0F4SHZCOVhRbGFEUGw4?= =?utf-8?B?YVJZbGh0UE95YWswMTF0OW13bTM3K0pjTzFhR2hWRW1wYnZYaTNVN0ZhMkd4?= =?utf-8?B?TVFlVVNRSjk4UWRiUFJTRHN3R1g4R1pYd3hacXRrc3NjY2pKQ01CQ0VKUFpm?= =?utf-8?B?NUd1SDMxRTRWdENXUlkydmdXNlJSYmN1Uk9zWnZJWlZuVm5WYzkvMzNkRzVt?= =?utf-8?B?UkhPWDNpUk5LWlM4SVpwNDlvTklmRk93ZUIwZUNzcW5HNDlyTGhkUk5TaVlR?= =?utf-8?B?WnlIL21PRjJ0SWgvWW5ucEQ1RFE0Q3NaREpsZ0xlZ1NFYThkYlRzNzRZL2x4?= =?utf-8?B?LzN6Wng5QUYvSFlYb3FNbXJoVkd6bkRhQUg2OHNDWEpZZm5Od0VLY2ZVc1pz?= =?utf-8?B?NlhIMVN5SWhsanJNYU81UGZVWFdFaDdWKzNtdENVb004QVA3eGZUTmpHaktV?= =?utf-8?B?dzd0b1ZDTWhoZjNUeEdRb0tad2RoOFNEZ1o1RTdhVGJJWWdZWTNiQ3BZWkZa?= =?utf-8?B?cnJVK2ZBR3JQRXNqZVNhNHVJK00xaElwUG5tNWNHeU1ONzlvU3ZMTklrTG1x?= =?utf-8?Q?GzkdZujmQRPptx1gvLygYZyOGLJ9WvEHeQ8aC6v?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR12MB4294.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230032)(376006)(366008)(1800799016); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bHJSamZnaHVoT3haTG1MYlUvSVBvU0xObmF3S3VwVUNwa21HL25ucGR0S3pp?= =?utf-8?B?akVyNlBVK1lLVUNjYnBQTDFtZDA0cVJRbkdOUDkxVXVub3ZaN1dVU1h1dWJv?= =?utf-8?B?Q24wakp1dllBL0NLc3NvRUNBU3djRkh1YWxqZDFIeUtmMitqOUJHamN6dFRm?= =?utf-8?B?TlVQWEJnaktJNUJGU1dEc2d2MEVOZVNtNGppZXJnRUJVY0QycXVjTlBRNjdp?= =?utf-8?B?MkVBamdmM2tPTkNDSFlKSG10STZoWk5GRnh1Y0VXZ05wV2tiL01menRSRW00?= =?utf-8?B?NEpPS05EUnBpNDNpYjlGWHBEczRDeHJPczRtQ0FEWjJKRXdPSVJOQVBsSjBk?= =?utf-8?B?dGw2V0VsNDdvc2UxTVFOZEVGdmdHSDNXMk9TUUFKWk92MHBOUnIxcllTU1lD?= =?utf-8?B?MUpzblZhTGRKdDBTdGpUYWxPQmFkUGVUTlBMMCtuY240RTFKZURSQTFPM1Fp?= =?utf-8?B?RGwzVGZMVG9MNHNLcDVhTTlMeUkrQWo2SmNtd1lyUTVqbXRGenowSFA3M3Bi?= =?utf-8?B?N3M1azEzd0VlTnRWNjFGOWRINlcwdldLZzNQTUZrc0tMU3RyOEk1dzZFZXhU?= =?utf-8?B?WGR0NVNDZVFtY3kxOFlpam9uVXY3b09GVWhlVi9YbHhCU2E0UkZVbHlGODhG?= =?utf-8?B?SmZJUkU3dk1LVllYMnFJU1MwOVZlU3JmeE03ajAyZHBZQ0l0c1p0UUVaRXhH?= =?utf-8?B?TVFqWHI3ZHJrU0hob1ArSkZ3OFNzdG9SZ0N5WVJ5WWR5RjF1NXkwYys0b3JR?= =?utf-8?B?b2lvNmFIQ1BlbmYzTUhhd0RmNmdjclc2YnZNNXRnS1lnaDl6czhFMDFSYktu?= =?utf-8?B?N1gyN2VNT3VtSmw4dkJRV3ZrQXlEM04rbCtVbjE4VWJSNlQ4OW53LytraHRH?= =?utf-8?B?d201bkRaOTNLWnAvT05MbUZMNldKa3RnbW5HMndzWFFyb2RuckRGanNwUitT?= =?utf-8?B?UGg3R3QzTTV6Rk9xcy9TZUFRWDA1WmRabzlvcEpBOC96MXFHQUZoTFhRbVFt?= =?utf-8?B?cUtYNndtenVscUlEcTB2YkIrK082cE00eVZkU2NFenE2OFRKWjI1Mkc5UFpY?= =?utf-8?B?NlRBcGZNd1pQYnE1c1J3cWFNOUwwYW85Z0ZycEtRd3FJOGNkeUd5STlrVkVF?= =?utf-8?B?VHJiWng3RkJoOWkyWkhzRU9pamFuZE5DTkxTYy9tdmVkbnZHOFBWcy9jL1pC?= =?utf-8?B?bFZGbTFubjFTbm41VmdSV3krV291QWJFVEhCWkRJaFlUcDZuRDA3NW9tNEdr?= =?utf-8?B?MjRJL2t5QjFSeitKRXdJUGdpNDRhTjlnN2hkdkJUQWJGT0pHUUI0TDdVVll0?= =?utf-8?B?a0JIVWwxNWFOUTJpK0IxL25OUitYbnp3SlRHVHJabmhDb0ptemZPd21PaTBH?= =?utf-8?B?S01Lb2ZKckV4YmJxTmtxWlQydmxVUmRDNnBUWWlRYTVqMHN4dDZCYnBoNzF0?= =?utf-8?B?Q2VIRGVhOWxtT2xXWHNialhmZnNCYnRvVjNqd2VEVFdobHRHQUsvVUZ2WVBr?= =?utf-8?B?YU1DWDFMVWFPN2RIWmR6YWlHbkxrNGVyTW0xL2xBSk9wZHdZTmdvMUt3b3lp?= =?utf-8?B?V1BJRThYVzRWaU0zYjMwVEFRbmhqRTZLTVd2Vm1WeUFWTVFZaHlzR3VSWDJr?= =?utf-8?B?VlRWMlc3ZWNOZE5rQVExbWR4TTBldTVuSkZDallFK3ovNXhYbUFPOXcraUg1?= =?utf-8?B?MzJ4am1qQ2U4N1BqbEtLRDZGQjI1b2o5TXQ0Ym9VblorM3ZQeThSb0xWYlY3?= =?utf-8?B?bHE1cDQ1eGhwUU53K3gxdXVFUmh0dGRJTE9lRkVzSUJ1QXpva29ieVhsZy9r?= =?utf-8?B?dzJxZ1JsaWJINmluZTZGbXAydERPZ3FXMVR0d1RmU3pYWUNQMExRMGY2VEhF?= =?utf-8?B?SkF1bXlyREZiNDFSaDl5Y0NwYWlpUEc2U1JPRk00VnluSm93SENUZFdBdHJp?= =?utf-8?B?aFZickZGR2tvVlBMNmxUQ2hjTVVraWRNaDRQMTNFR2JwNnlsU1J0MXJ4dEFD?= =?utf-8?B?N01VWEs4eDJGZmlBd0x3WUZuMWFLMFE1a2FuTW8xU2FOcTc2OFVaa2FUSXdz?= =?utf-8?B?WWd6VGdtYThYVVNKMEVRZ1hraytxdWFtU3g4ZTgyMkszTEl0RzcydDI3MVdL?= =?utf-8?Q?JrzDCuoAMcHDX6ixli0Q4Qk3g?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 41538d70-e325-4225-110a-08dc8a6fb6fd X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB4294.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jun 2024 23:39:19.6893 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 5NKQkrOfLOJNJUxzQ5ObR+Ga0jsWN8xIZVfBPVYgQEVR+KsIG5/JCx7A69+HWtsV X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4240 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 On 6/2/2024 3:45 AM, Damodharam Ammepalli wrote: > Add speed lanes configuration and display commands support > to testpmd. Also provide display the lanes info show device info. > > testpmd> > testpmd> port stop 0 > testpmd> port config 0 speed_lanes 4 > testpmd> port config 0 speed 200000 duplex full > testpmd> port start 0 > testpmd> show port summary 0 > Number of available ports: 2 > Port MAC Address Name Driver Status Link Lanes > 0 14:23:F2:C3:BA:D2 0000:b1:00.0 net_bnxt up 200 Gbps 4 > testpmd> > > testpmd> show port info 0 > > ********************* Infos for port 0 ********************* > MAC address: 14:23:F2:C3:BA:D2 > Device name: 0000:b1:00.0 > Driver name: net_bnxt > Firmware-version: 228.9.115.0 > Connect to socket: 2 > memory allocation on the socket: 2 > Link status: up > Link speed: 200 Gbps > Lanes: 4 > Link duplex: full-duplex > Autoneg status: Off > > Signed-off-by: Damodharam Ammepalli > Reviewed-by: Kalesh AP > Reviewed-by: Ajit Khaparde > --- > app/test-pmd/cmdline.c | 142 +++++++++++++++++++++++++++++++++++++++++ > app/test-pmd/config.c | 13 ++-- > 2 files changed, 151 insertions(+), 4 deletions(-) > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c > index b7759e38a8..785e5dd4de 100644 > --- a/app/test-pmd/cmdline.c > +++ b/app/test-pmd/cmdline.c > @@ -1361,6 +1361,27 @@ struct cmd_config_speed_all { > cmdline_fixed_string_t value2; > }; > > +static int > +cmd_validate_lanes(portid_t pid, uint32_t *lanes) > +{ > + struct rte_eth_speed_lanes_capa spd_lanes = {0}; > + int ret; > + > + ret = rte_eth_speed_lanes_get(pid, &spd_lanes); > Wouldn't it be better to validate value with provided capabilities? > + /* if not supported default lanes to 0 */ > + if (ret == -ENOTSUP) { > + *lanes = 0; > + return 0; > + } > + > + if (*lanes > spd_lanes.max_lanes_cap) { > + fprintf(stderr, "Invalid lanes %d configuration\n", *lanes); > + return -1; > + } > + > + return 0; > +} > + > static int > parse_and_check_speed_duplex(char *speedstr, char *duplexstr, uint32_t *speed) > { > @@ -1676,6 +1697,125 @@ static cmdline_parse_inst_t cmd_config_loopback_specific = { > }, > }; > > +/* *** configure speed_lanes for all ports *** */ > +struct cmd_config_speed_lanes_all { > + cmdline_fixed_string_t port; > + cmdline_fixed_string_t keyword; > + cmdline_fixed_string_t all; > + cmdline_fixed_string_t item; > + uint32_t lanes; > +}; > + > +static void > +cmd_config_speed_lanes_all_parsed(void *parsed_result, > + __rte_unused struct cmdline *cl, > + __rte_unused void *data) > +{ > + struct cmd_config_speed_lanes_all *res = parsed_result; > + portid_t pid; > + > + if (!all_ports_stopped()) { > + fprintf(stderr, "Please stop all ports first\n"); > + return; > + } > + > + RTE_ETH_FOREACH_DEV(pid) { > + if (cmd_validate_lanes(pid, &res->lanes)) > + return; > + rte_eth_speed_lanes_set(pid, res->lanes); > + } > + > + cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1); > +} > + > +static cmdline_parse_token_string_t cmd_config_speed_lanes_all_port = > + TOKEN_STRING_INITIALIZER(struct cmd_config_speed_lanes_all, port, "port"); > +static cmdline_parse_token_string_t cmd_config_speed_lanes_all_keyword = > + TOKEN_STRING_INITIALIZER(struct cmd_config_speed_lanes_all, keyword, > + "config"); > +static cmdline_parse_token_string_t cmd_config_speed_lanes_all_all = > + TOKEN_STRING_INITIALIZER(struct cmd_config_speed_lanes_all, all, "all"); > +static cmdline_parse_token_string_t cmd_config_speed_lanes_all_item = > + TOKEN_STRING_INITIALIZER(struct cmd_config_speed_lanes_all, item, > + "speed_lanes"); > +static cmdline_parse_token_num_t cmd_config_speed_lanes_all_lanes = > + TOKEN_NUM_INITIALIZER(struct cmd_config_speed_lanes_all, lanes, RTE_UINT32); > + > +static cmdline_parse_inst_t cmd_config_speed_lanes_all = { > + .f = cmd_config_speed_lanes_all_parsed, > + .data = NULL, > + .help_str = "port config all speed_lanes ", > + .tokens = { > + (void *)&cmd_config_speed_lanes_all_port, > + (void *)&cmd_config_speed_lanes_all_keyword, > + (void *)&cmd_config_speed_lanes_all_all, > + (void *)&cmd_config_speed_lanes_all_item, > + (void *)&cmd_config_speed_lanes_all_lanes, > + NULL, > + }, > +}; > + > +/* *** configure speed_lanes for specific port *** */ > +struct cmd_config_speed_lanes_specific { > + cmdline_fixed_string_t port; > + cmdline_fixed_string_t keyword; > + uint16_t port_id; > + cmdline_fixed_string_t item; > + uint32_t lanes; > +}; > + > +static void > +cmd_config_speed_lanes_specific_parsed(void *parsed_result, > + __rte_unused struct cmdline *cl, > + __rte_unused void *data) > +{ > + struct cmd_config_speed_lanes_specific *res = parsed_result; > + > + if (port_id_is_invalid(res->port_id, ENABLED_WARN)) > + return; > + > + if (!port_is_stopped(res->port_id)) { > + fprintf(stderr, "Please stop port %u first\n", res->port_id); > + return; > + } > + > + if (cmd_validate_lanes(res->port_id, &res->lanes)) > + return; > + rte_eth_speed_lanes_set(res->port_id, res->lanes); > + > + cmd_reconfig_device_queue(res->port_id, 1, 1); > +} > + > +static cmdline_parse_token_string_t cmd_config_speed_lanes_specific_port = > + TOKEN_STRING_INITIALIZER(struct cmd_config_speed_lanes_specific, port, > + "port"); > +static cmdline_parse_token_string_t cmd_config_speed_lanes_specific_keyword = > + TOKEN_STRING_INITIALIZER(struct cmd_config_speed_lanes_specific, keyword, > + "config"); > +static cmdline_parse_token_num_t cmd_config_speed_lanes_specific_id = > + TOKEN_NUM_INITIALIZER(struct cmd_config_speed_lanes_specific, port_id, > + RTE_UINT16); > +static cmdline_parse_token_string_t cmd_config_speed_lanes_specific_item = > + TOKEN_STRING_INITIALIZER(struct cmd_config_speed_lanes_specific, item, > + "speed_lanes"); > +static cmdline_parse_token_num_t cmd_config_speed_lanes_specific_lanes = > + TOKEN_NUM_INITIALIZER(struct cmd_config_speed_lanes_specific, lanes, > + RTE_UINT32); > + > +static cmdline_parse_inst_t cmd_config_speed_lanes_specific = { > + .f = cmd_config_speed_lanes_specific_parsed, > + .data = NULL, > + .help_str = "port config speed_lanes ", > + .tokens = { > + (void *)&cmd_config_speed_lanes_specific_port, > + (void *)&cmd_config_speed_lanes_specific_keyword, > + (void *)&cmd_config_speed_lanes_specific_id, > + (void *)&cmd_config_speed_lanes_specific_item, > + (void *)&cmd_config_speed_lanes_specific_lanes, > + NULL, > + }, > +}; > + These new commands are added between 'cmd_config_loopback_all' & 'cmd_config_loopback_specific' commands, please pay more attention where to add new code. Can you please add them just after 'cmd_config_speed_specific' to group related functionality together? > /* *** configure txq/rxq, txd/rxd *** */ > struct cmd_config_rx_tx { > cmdline_fixed_string_t port; > @@ -13381,6 +13521,8 @@ static cmdline_parse_ctx_t builtin_ctx[] = { > (cmdline_parse_inst_t *)&cmd_show_port_cman_config, > (cmdline_parse_inst_t *)&cmd_set_port_cman_config, > (cmdline_parse_inst_t *)&cmd_config_tx_affinity_map, > + (cmdline_parse_inst_t *)&cmd_config_speed_lanes_all, > + (cmdline_parse_inst_t *)&cmd_config_speed_lanes_specific, > Can you please keep the same order where function implementations added above? > NULL, > }; > > diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c > index ba1007ace6..9f846c5e84 100644 > --- a/app/test-pmd/config.c > +++ b/app/test-pmd/config.c > @@ -779,6 +779,7 @@ port_infos_display(portid_t port_id) > struct rte_ether_addr mac_addr; > struct rte_eth_link link; > struct rte_eth_dev_info dev_info; > + struct rte_eth_speed_lanes_capa spd_lanes = {0}; > int vlan_offload; > struct rte_mempool * mp; > static const char *info_border = "*********************"; > @@ -828,6 +829,8 @@ port_infos_display(portid_t port_id) > > printf("\nLink status: %s\n", (link.link_status) ? ("up") : ("down")); > printf("Link speed: %s\n", rte_eth_link_speed_to_str(link.link_speed)); > + rte_eth_speed_lanes_get(port_id, &spd_lanes); > + printf("Lanes: %d\n", spd_lanes.active_lanes); > Please print only if getting lane number is supported. > printf("Link duplex: %s\n", (link.link_duplex == RTE_ETH_LINK_FULL_DUPLEX) ? > ("full-duplex") : ("half-duplex")); > printf("Autoneg status: %s\n", (link.link_autoneg == RTE_ETH_LINK_AUTONEG) ? > @@ -962,8 +965,8 @@ port_summary_header_display(void) > > port_number = rte_eth_dev_count_avail(); > printf("Number of available ports: %i\n", port_number); > - printf("%-4s %-17s %-12s %-14s %-8s %s\n", "Port", "MAC Address", "Name", > - "Driver", "Status", "Link"); > + printf("%-4s %-17s %-12s %-14s %-8s %-8s %s\n", "Port", "MAC Address", "Name", > + "Driver", "Status", "Link", "Lanes"); > } > > void > @@ -972,6 +975,7 @@ port_summary_display(portid_t port_id) > struct rte_ether_addr mac_addr; > struct rte_eth_link link; > struct rte_eth_dev_info dev_info; > + struct rte_eth_speed_lanes_capa spd_lanes = {0}; > char name[RTE_ETH_NAME_MAX_LEN]; > int ret; > > @@ -993,10 +997,11 @@ port_summary_display(portid_t port_id) > if (ret != 0) > return; > > - printf("%-4d " RTE_ETHER_ADDR_PRT_FMT " %-12s %-14s %-8s %s\n", > + rte_eth_speed_lanes_get(port_id, &spd_lanes); > + printf("%-4d " RTE_ETHER_ADDR_PRT_FMT " %-12s %-14s %-8s %-8s %d\n", > port_id, RTE_ETHER_ADDR_BYTES(&mac_addr), name, > dev_info.driver_name, (link.link_status) ? ("up") : ("down"), > - rte_eth_link_speed_to_str(link.link_speed)); > + rte_eth_link_speed_to_str(link.link_speed), spd_lanes.active_lanes); > This is summary info, lots of details already omitted, 'lanes' information is not imported enough to list here, can you please drop this change?