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 C2C96A04B1; Thu, 24 Sep 2020 12:58:10 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 31E101DDD1; Thu, 24 Sep 2020 12:58:10 +0200 (CEST) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20053.outbound.protection.outlook.com [40.107.2.53]) by dpdk.org (Postfix) with ESMTP id EE3F61DDD0 for ; Thu, 24 Sep 2020 12:58:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NemeXGiPQ3PXWt0gc+NtWr5v6pFPqwd0v+QloBrPj0g=; b=dCY7PoosJKbJ5nqq3NWQT0PruLLw9+7khTeRzvfGBRb1I03quqfjpOK8gDYXqTu9UJxTDLpid8snqFaG1W0lCQ4FBNSwpIuVfrZrmniw4rmMXLLx5oNSMdLohMfimIdYSrBhstfqC32i8FOlT1tpdg6735gMU83KGv3/PVRmp2w= Received: from AM6PR01CA0047.eurprd01.prod.exchangelabs.com (2603:10a6:20b:e0::24) by DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3391.14; Thu, 24 Sep 2020 10:58:08 +0000 Received: from AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:e0:cafe::27) by AM6PR01CA0047.outlook.office365.com (2603:10a6:20b:e0::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3412.20 via Frontend Transport; Thu, 24 Sep 2020 10:58:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT035.mail.protection.outlook.com (10.152.16.119) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3412.21 via Frontend Transport; Thu, 24 Sep 2020 10:58:07 +0000 Received: ("Tessian outbound e8cdb8c6f386:v64"); Thu, 24 Sep 2020 10:58:07 +0000 X-CR-MTA-TID: 64aa7808 Received: from 2cd5204c7a2f.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id BD262F79-D578-4D67-8AF3-D166A550FD5E.1; Thu, 24 Sep 2020 10:58:02 +0000 Received: from EUR02-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 2cd5204c7a2f.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 24 Sep 2020 10:58:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NWnb14CiWT0w4/hAWB3FkR2YH0sloVxd06pKoF2sJQ1iXf3J2DY+4uDIGQHeZbhd8cs6ItYgf4RXOeLW9alzRKsKq53yEzr1oJwUBCV58QA8MR3tCV5YzKilYnhrnX6umLM0442T2o0T8IiM5thCxv0a1HhUSOllTanWSzoA/0abqdqabVWhk1NGm2dZwWdMjLHFiUs5/Kc8OWJiaPE4lybrxDDLmr/wrcvsrLGi6cVTOslM4s6jUMXWfwe2/7OrMwa3407jye9Ccs+DaGG/xPJd3Cjdlrzub8z9IdS26b5+Nt4QrYM7vDK9Wauf/5fsOk3MhnpIlK7Y7v1y8tn0Vg== 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-SenderADCheck; bh=NemeXGiPQ3PXWt0gc+NtWr5v6pFPqwd0v+QloBrPj0g=; b=nINVGitdWxzu+k86pvWkHktcmep5ru9fk4zYfEkEYErgFcg4XvTaIJTsy94SaIykWq9FOpyAd6rZEuQRKSzgrcVn1sFTsJ5eM3vqJdM9IEXcHmLtz+oqUa8KdCmd0D8Jf+U6GVDJrsRMWbz8TYwHH3fqp7e2/+bKYyCBYf93XjFYPOxZlbaiitQn6TzKddsTKkrX8br09b6lkk9g4WGFoWvxppXn26FC/hjOvj0Ja9puk1sOmze1+cvyLMh+Pn7YB/u6g/3Mi9o3ERo8F5VKwuTm4dmw43Nb1rDkpMzI3J9oaTt/EMsdKLuPbKMXNUu4uDiQBJEb8fge6t5kH+vPIQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NemeXGiPQ3PXWt0gc+NtWr5v6pFPqwd0v+QloBrPj0g=; b=dCY7PoosJKbJ5nqq3NWQT0PruLLw9+7khTeRzvfGBRb1I03quqfjpOK8gDYXqTu9UJxTDLpid8snqFaG1W0lCQ4FBNSwpIuVfrZrmniw4rmMXLLx5oNSMdLohMfimIdYSrBhstfqC32i8FOlT1tpdg6735gMU83KGv3/PVRmp2w= Received: from DB7PR08MB3865.eurprd08.prod.outlook.com (2603:10a6:10:74::25) by DB8PR08MB5417.eurprd08.prod.outlook.com (2603:10a6:10:117::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3412.20; Thu, 24 Sep 2020 10:57:59 +0000 Received: from DB7PR08MB3865.eurprd08.prod.outlook.com ([fe80::519c:72bd:e189:625b]) by DB7PR08MB3865.eurprd08.prod.outlook.com ([fe80::519c:72bd:e189:625b%7]) with mapi id 15.20.3412.020; Thu, 24 Sep 2020 10:57:59 +0000 From: Phil Yang To: Phil Yang , David Liu , "ferruh.yigit@intel.com" CC: "dev@dpdk.org" , "lylavoie@iol.unh.edu" , "thomas@monjalon.net" , nd , nd , nd Thread-Topic: [dpdk-dev] [PATCH] [PATCH V2] testpmd: add eeprom/module eeprom display Thread-Index: AQHWkmGQUl+ilaZd9ECDRLW0m1snOQ== Date: Thu, 24 Sep 2020 10:57:59 +0000 Message-ID: References: <20200915154208.50383-1-dliu@iol.unh.edu> <20200915172740.55178-1-dliu@iol.unh.edu> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: D2F90B191D24D348A7E258DB56B93EDB.0 x-checkrecipientchecked: true Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [203.126.0.112] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 22d59d89-591c-4e4c-83cf-08d86078b85d x-ms-traffictypediagnostic: DB8PR08MB5417:|DBAPR08MB5798: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: wqd0Ni6NxaVpyZ7k3bQnvdSCg7EVbovKByC6PkzwJlbaw7mQ/+h63NsvRgLv4aECg7jAPUgXjHSxPX78tyLfpDKAv1mC0xJy+9O8Pt7crMCn6+GZR48X6H3m3+NubJ5UY5Av6UWCzT7HywSrQQcon1iGclxWTWPpInP2l/3KPTCNm9mREsutTTXbv0ZX3uHtk+AqZ42gTBm419XHiNz10lycD96YIbNel4ZFqR0LmMAglZQBKS+olJmq2eSJmwlFSMlvmVSMlGj8Kjpz9YAV0HCu5ASq/6kAoljYla34/c6nmupGN6pxEqOai/uP4GC/HG8zL7AqQwhLVmIx6AW7cQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR08MB3865.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(366004)(346002)(376002)(136003)(396003)(52536014)(5660300002)(8936002)(2906002)(86362001)(33656002)(83380400001)(9686003)(66446008)(64756008)(66476007)(55016002)(66946007)(66556008)(76116006)(71200400001)(6506007)(7696005)(4326008)(110136005)(54906003)(186003)(316002)(26005)(478600001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: HIyozUltM2xDGzEo8rdEpseQEVGQ7FDLbx9AOsLuGsEbFpoDUKDhtA+mxWB04i66BxCMBVSIRrJXp8ScnNR/0jINXtekibmquA5m09Hw4CIvOALleRzQt5iVGw63liRtMw/VRH7ISBDdDa25/MoG2EswIoe91vHEzncH4+mRLmTNRh8NLAQVjdctiS6XWKAP6yVCIA1jZnbdPbxqKsMZwbTB5dBcLKie+KlPUSFfS7DH+65nipIVrkBg6fw4u8Sfo17YU48a4OxDY/yyJI7ePcJ7X1dvBztc7+me4w2J8ubGUSnZkZMBjaI51h5uPvxRd7PD9ItIhaKRUcJ5Veu8N1AahN+o6PfKsWYDj37tafLvw2mupPXpjEbnEFdqtPrXRxwHdqQn2n+Y2WiSUq0OTcgB2ZsPqXH7Fe8OfL4x8nhWNDo48RSEo0QfSmph93/s1GCFYpf3U+gUWotudFV4M2r2KVI+Ps05uI5vkUQtamfNq0xIjeYg4SXZSwbcvfXfIGjhuQPnMRBS0ob1nEskILwI1pC+0IB878MTlbHG0JV3xR3TVvZ552Gh0KstCJJansOenFm0h87rKLt1sGOtkipOh8p2sZ3RTYxQvXNznkRSyK4bg5WEPOYaGW085aqaosuSdWrKvsFjxr+nNjW6JQ== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5417 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 7a34ae9b-9175-4b5d-11a1-08d86078b35c X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2ZSf0tdz0TTH7v9sk6jB9j5rMXQhTZHmjB45BODs8GEygmert/zzO9dsqZucUUpjYb1Bz+lpZVNQM11eNnr+q6K5jwjs0+Sy6tDfy5Nu9CuXi98sJ21bF7AgK6SCxPxCymyru5k5+LL9OO/P+lPQ4ZPtSs0y7ZZs3GFAHnLP8nDDr+u8Nx2husVnBkK4KYTy51vVCWt4+JXSQ1PT9gmvNmT7QINLR3A9krDIKMxuaowJw3SaEMPFlq3gd3nWYZt2LdZgBfkjXSPT8b49jlfcBSGYE2hdW814Oy1mB079uG2waLdBPJ1IoV0WoEarLqSGpXg5dHbCTjPWzN0CYMWSI1BPdwgmadgMzjfrpVCAUiFn/FgP0/mZrBLUNGViYyLlzVHrXcMr0yhCnH6W/MlxClsw/+OQyp8u1FNccKS3wnymz31AmhokArsf/7CY6MFz X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(396003)(136003)(376002)(346002)(39860400002)(46966005)(52536014)(83380400001)(9686003)(5660300002)(6506007)(7696005)(82310400003)(110136005)(81166007)(54906003)(26005)(36906005)(70586007)(2906002)(478600001)(82740400003)(70206006)(8936002)(186003)(356005)(55016002)(336012)(4326008)(316002)(33656002)(47076004)(86362001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Sep 2020 10:58:07.7803 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 22d59d89-591c-4e4c-83cf-08d86078b85d X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5798 Subject: Re: [dpdk-dev] [PATCH] [PATCH V2] testpmd: add eeprom/module eeprom display 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" dev On Behalf Of Phil Yang : writes: > > Subject: [dpdk-dev] [PATCH] [PATCH V2] testpmd: add eeprom/module > > eeprom display > > > > Add module EEPROM/EEPROM dump command > > "show port (module_eeprom|eeprom)" > > Commands will dump the content of the EEPROM/module > > EEPROM for the selected port. >=20 >=20 > Verified with some popular NICs, it can dump the same info as the Linux > ethtool does. > This is supported in examples/ethtool as well. >=20 > Minor nitpick comments inlined. >=20 > Thanks, > Phil >=20 > > > > Signed-off-by: David Liu > > --- > > app/test-pmd/cmdline.c | 49 ++++++++ > > app/test-pmd/config.c | 118 ++++++++++++++++++++ > > app/test-pmd/testpmd.h | 2 + > > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 7 ++ > > 4 files changed, 176 insertions(+) > > > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c > > index 0a6ed85f3..8d38de197 100644 > > --- a/app/test-pmd/cmdline.c > > +++ b/app/test-pmd/cmdline.c > > @@ -166,6 +166,9 @@ static void cmd_help_long_parsed(void > > *parsed_result, > > "show port > > (info|stats|summary|xstats|fdir|stat_qmap|dcb_tc|cap) (port_id|all)\n" > > " Display information for port_id, or all.\n\n" > > > > + "show port port_id (module_eeprom|eeprom)\n" > > + " Display the module EEPROM or EEPROM > > information for port_id.\n\n" > > + > > "show port X rss reta (size) (mask0,mask1,...)\n" > > " Display the rss redirection table entry indicated" > > " by masks on port X. size is used to indicate the" > > @@ -7682,6 +7685,51 @@ cmdline_parse_inst_t cmd_showdevice =3D { > > NULL, > > }, > > }; > > + > > +/* *** SHOW MODULE EEPROM/EEPROM port INFO *** */ > > +struct cmd_showeeprom_result { > > + cmdline_fixed_string_t show; > > + cmdline_fixed_string_t port; > > + uint16_t portnum; > > + cmdline_fixed_string_t type; > > +}; > > + > > +static void cmd_showeeprom_parsed(void *parsed_result, > > + __rte_unused struct cmdline *cl, > > + __rte_unused void *data) > > +{ > > + struct cmd_showeeprom_result *res =3D parsed_result; > > + > > + if (!strcmp(res->type, "eeprom")) > > + port_eeprom_display(res->portnum); > > + else if (!strcmp(res->type, "module_eeprom")) > > + port_module_eeprom_display(res->portnum); > > + else > > + printf("Unknown argument\n"); > > +} > > + > > +cmdline_parse_token_string_t cmd_showeeprom_show =3D > > + TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, show, > > "show"); > > +cmdline_parse_token_string_t cmd_showeeprom_port =3D > > + TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, port, > > "port"); > > +cmdline_parse_token_num_t cmd_showeeprom_portnum =3D > > + TOKEN_NUM_INITIALIZER(struct cmd_showeeprom_result, > > portnum, UINT16); > > +cmdline_parse_token_string_t cmd_showeeprom_type =3D > > + TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, type, > > "module_eeprom#eeprom"); > > + > > +cmdline_parse_inst_t cmd_showeeprom =3D { > > + .f =3D cmd_showeeprom_parsed, > > + .data =3D NULL, > > + .help_str =3D "show port module_eeprom|eeprom", > > + .tokens =3D { > > + (void *)&cmd_showeeprom_show, > > + (void *)&cmd_showeeprom_port, > > + (void *)&cmd_showeeprom_portnum, > > + (void *)&cmd_showeeprom_type, > > + NULL, > > + }, > > +}; > > + > > /* *** SHOW QUEUE INFO *** */ > > struct cmd_showqueue_result { > > cmdline_fixed_string_t show; > > @@ -19400,6 +19448,7 @@ cmdline_parse_ctx_t main_ctx[] =3D { > > (cmdline_parse_inst_t *)&cmd_load_from_file, > > (cmdline_parse_inst_t *)&cmd_showport, > > (cmdline_parse_inst_t *)&cmd_showqueue, > > + (cmdline_parse_inst_t *)&cmd_showeeprom, > > (cmdline_parse_inst_t *)&cmd_showportall, > > (cmdline_parse_inst_t *)&cmd_showdevice, > > (cmdline_parse_inst_t *)&cmd_showcfg, > > diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c > > index 30bee3324..6203d27e7 100644 > > --- a/app/test-pmd/config.c > > +++ b/app/test-pmd/config.c > > @@ -50,6 +50,8 @@ > > #endif > > #include > > >=20 > Remove the blank line above the rte_hexdump.h include statement. >=20 > > +#include > > + > > #include "testpmd.h" > > > > #define ETHDEV_FWVERS_LEN 32 > > @@ -783,6 +785,122 @@ port_summary_display(portid_t port_id) > > (unsigned int) link.link_speed); > > } > > > > +void > > +port_eeprom_display(portid_t port_id) > > +{ > > + struct rte_dev_eeprom_info einfo; > > + int ret; > > + if (port_id_is_invalid(port_id, ENABLED_WARN)) { > > + print_valid_ports(); > > + return; > > + } > > + > > + int len_eeprom =3D rte_eth_dev_get_eeprom_length(port_id); > > + if (len_eeprom < 0) { > > + switch (len_eeprom) { > > + case -ENODEV: > > + printf("port index %d invalid\n", port_id); > > + break; > > + case -ENOTSUP: > > + printf("operation not supported by device\n"); > > + break; > > + case -EIO: > > + printf("device is removed\n"); > > + break; > > + default: > > + printf("Unable to get EEPROM: %d\n", len_eeprom); > > + break; > > + } > > + return; > > + } > > + > > + char buf[len_eeprom]; >=20 >=20 > Is GCC-11 happy about this array parameters? [-Warray-parameter] > I didn't check. No worries. Checked with gcc version 11.0.0 20200920 (experimental) Reviewed-by: Phil Yang