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 AF4824596A; Thu, 12 Sep 2024 08:11:10 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9170C40DF6; Thu, 12 Sep 2024 08:11:00 +0200 (CEST) Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2090.outbound.protection.outlook.com [40.107.101.90]) by mails.dpdk.org (Postfix) with ESMTP id 5D2BE40144 for ; Thu, 12 Sep 2024 08:10:57 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=k9/TDmSfELNdCQL8nAawpnVlryCQQTf9YpfvEq5jHEKCS3oalV7fK+AIolPZlkMrq/cNV4aQ1VWfX/Tf4G4I8sWvG7Du31NPkvWRGfSBrJxStKXbUvKGxVY/YRSWn0PGOul0c0peq3Uq+myS5+0rOk4iAPfx/Qll68jtj6L4DonMiLoM5GGeNqDUd3tWlB/P2Pr7UXiiCfFqy69UbtJtqsYGyTRg71jUQB+cVjLW+8H0TJElI03SHUiCSNxoSx8RROx/jHc9XknP3abSP9Jg1WT6yux+ACjIsbCuaqFa1+vcaloxNMxtlxUEQjZgEpha4nhKQGh1fIGIvbK3NUvNLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=BJ0+myunz980l3iaArR4GUuUy2ezMhjSggacD0kgTkc=; b=l2jIkmsI7WZ3lofMfYsXwjZRyUM1n9NAvyZQ/Bcly871IsAklHQ/dZyky3RJzVHSC0Og5LGIBP1zD7EWL7YycC3Xa59q419yuy+czadF6rAZyYcSsxTt7P0d0sn2XtPlC0klNxVXk2HF8jhX998JWmLmhMnY3RhHWAemQ+mUOHkfGjJcq9dnuvp1/K+Cfogw6ejigI3t1HsoV2EZmdejNTGGXaZSqF4eAcpIenFjclKrD2megCsPAYwErqzjXQ2p93VfsdwrWZ/gELrC2SY9txRW923vz9kfAMORZ11FJ5Ed3zSy38MN4DYjsNqjC0fHfCzntyk0sxZuO3ctPuf8fg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BJ0+myunz980l3iaArR4GUuUy2ezMhjSggacD0kgTkc=; b=sBUE7Fdu7bEdeaLcGz1gzwP3k6Xi0U9gD5oPNEsBTL6EkxyG+X4tNaXOvRsVHco7CxELRRM+JX6LCmyR1+/CQjWkiCOsfOiWhdkKBPlSfJjkCmQCy2BeAhgeIvMCFRa98l6AmBsgEahNQx/XKiK8jlB+9TFhgghTnP5TekDI4CM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by LV3PR13MB6454.namprd13.prod.outlook.com (2603:10b6:408:19c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7939.25; Thu, 12 Sep 2024 06:10:55 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833%4]) with mapi id 15.20.7939.022; Thu, 12 Sep 2024 06:10:55 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, James Hershaw , Chaoyong He Subject: [PATCH 2/2] app/testpmd: add set dev led on/off command Date: Thu, 12 Sep 2024 14:10:30 +0800 Message-Id: <20240912061030.2834034-3-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20240912061030.2834034-1-chaoyong.he@corigine.com> References: <20240912061030.2834034-1-chaoyong.he@corigine.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SG2PR04CA0163.apcprd04.prod.outlook.com (2603:1096:4::25) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|LV3PR13MB6454:EE_ X-MS-Office365-Filtering-Correlation-Id: d4cae6c3-c697-4a26-00ff-08dcd2f1a955 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|1800799024|52116014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?vWhSFlpWoGh9DRXo73cquwN0rb++wZBOmzpTsia//brcNeOdIJRbtQnHSsHj?= =?us-ascii?Q?EFOSOUZEMC8I4Qi4OWNPk4FZARpFfTQHNSEAnH+UwWmJjpseSMOtW9ft7zpu?= =?us-ascii?Q?eMDX/xLc/sLki8VDAWq7VRer0vDDSBi3D+sB7ofeEb793JiNbYuo05SXK/+9?= =?us-ascii?Q?7Mumir9PeqfWuigZeKWtxY9SL5YQ/g8dLUFaDHtJu8jaOc05783p+e2dHmOJ?= =?us-ascii?Q?nB6gnQyeZSEgUO45wos9M0ue2LXwPLG8ayVoaCN4q8FxAOQJLjN5kURQj6if?= =?us-ascii?Q?rZVgwxPu6f4xZSddZP9GRGNnEgQHPmu/UzEAeVVrGFX8IicMA5+z0eayRd3k?= =?us-ascii?Q?q8+V6oyKVLfDprRP/Wjj1ee1LKPahS9VbHqJsDfdWzi61Jw00JgMSwP6Epfk?= =?us-ascii?Q?yqL5lvh1nTDaoYFNt7pTxzIDb45wyCwjvsl9/X9xAmad+ZKMtc00VvqAwuPi?= =?us-ascii?Q?ddBY+6pIDbSMuwC1GAYznEjz1Y02lEgXoDKQzkcsOi4cjMZF2tp0Xi4R6kZE?= =?us-ascii?Q?dX7QWUrt/Il+nL90G+y6Hi8mYT4rn1gII1rcrmUpjls71U57FtBi9MfnPotP?= =?us-ascii?Q?LEmzHfWpmxGa3l85Cozah4i6vuX07DIOMRHTOybTlRMoSIVOu+IXb9AZFk0R?= =?us-ascii?Q?8+drxWBDT0feFWfuXSJXr9kTiKID3j8zsi6OItYkRtbhVFzuCMbZAJkl8cQs?= =?us-ascii?Q?rZcSW+s8jOXKLcMpF4S/5oZZUQfCxMdQ7M50D9jJrL1wkk5jEAeUJoGDGkwR?= =?us-ascii?Q?QealtY+2XdjjQ44X0D0oIzi3T/tbQDnRP6dd3/LOwBld6e/2nB2g6xOlH0uW?= =?us-ascii?Q?7Cm0676+JM0CF9X29NY8Na+6BrQ1if2TVslSD58SHvbahPTVTMt9aCxejWE6?= =?us-ascii?Q?oPyyEpasRj0QwLcV0YK+KdLTVFlbYPA8Pu8U5rr36LuzfvvCUnBSmu4UHD4+?= =?us-ascii?Q?JZ2QvzNHEKNlEEKdlUZK7dA+R+39KorSxhROkPVP5f4XO4S8kDftCfeU/LeY?= =?us-ascii?Q?ilHgwVFrr1gLgAkH04ni/VC2J79hPkBMQlS40+j7CoU3VAD2sIKWkwrnv2Ho?= =?us-ascii?Q?d2+H163XdjsoqVoZQfZ708jgW/Ue85QfAYaVU7zr5qQ6vNVwiCM57NxFxGBp?= =?us-ascii?Q?fQMFZDMujcOY3MJiZr0Hk1qtJ/ftCE7YQsqkIrc4uKPdTB9x7r/oXzI7D/QF?= =?us-ascii?Q?W/VZdEABViWsP3RefX+mNum1yPVAyQXnG0ceRp7nRhnQjiZrxF5GMlxukqJd?= =?us-ascii?Q?wO1WeeDP8SwOnTkBMRUIsiG7N4iI2vGHO5PgLwn8/f1PPfmHoCuUZlGtvM6P?= =?us-ascii?Q?S9kCKEcpVnQ0wBPnKHLKaJoKfxogglLanYwkG1v0sxurjq28xI1H/rcHFa0C?= =?us-ascii?Q?XlKGWbu1CVzk6i6Nw+JMiXVVC51h2ERxGsmpQ0EtTyD99Elajg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(52116014)(366016)(38350700014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bEJgXWNEO9MYUV/E64d2uFfKdso5WK7Z6KYBl1xihzz0IVnaw4LFCitLO7ha?= =?us-ascii?Q?3Y1jOvj+R6Rqs+JwQDgYVsHuunfj1BkMVBvvUUScBGSaC7AQ2U47OkJbgOov?= =?us-ascii?Q?dnpTpHUJogM+AMcDBzMrl4guoeD9keeyPoGUaasrwr/Elf2mXPTwqzSOUtLz?= =?us-ascii?Q?B9Mp2Da056F3oD8IvjRXGMMXnIjdje2+yHdxFLRTduGP1pekqC/FqOM3xUHM?= =?us-ascii?Q?EOHOltP7HVEllFtKS/J46cwdG1VTXGpmsharF43ls9iFz9O27pId5y+56s2w?= =?us-ascii?Q?3swPCHMwVMBu42tLQcn5osn0DkL3OAYVyHWgZ5cN1QZ7QqWzUyAI88EtI3UP?= =?us-ascii?Q?ShY0cfath2rg2tWK1ixlAaVE0x0SZOdi3cQcEzya+nIMkC7788t4ZRiCrMvC?= =?us-ascii?Q?zYY2crA7boznXtBDd63rnZmXfHirWaTZvDltjh+qJI3i1q4nSsQqZ6GijoQs?= =?us-ascii?Q?MuSpLgMaaa3a0BtqOp42i3YuckcRZV3VKgfXO9H/oiV3Y36ZmeDx7RoqsH2E?= =?us-ascii?Q?AVprH10B0Cl+7qxVn/EKZah33+DTNklK6aBAe7s+ZUtx5VkL6T55k2Qrqe9r?= =?us-ascii?Q?h8Ptt1ng150gXALo5tKzG9zW4DiDb4iENYC5Qh/IlOcyTRI9oqhvmM4y9HwB?= =?us-ascii?Q?d4vNSJA3gQuZEcST7ABJvYBl6NO+cVAYvqcABNwWKVHku7DDaqgcQ+4KUW+f?= =?us-ascii?Q?wns/iF7/KoM1unbOSTM4PGqwwUVTd2Ymyrr7pFZL9TGUDsq1dSwont7k7kBP?= =?us-ascii?Q?Xmo0UkVrvd6MriAMGNtrGmUrBlGgYUppGWXCK/efdUpEgDB6A1ZpBXhAnJ1z?= =?us-ascii?Q?dH8mZAN/FMEMq1PeLSD6MOA4BDtHD/oiOOxu14n8Xi2ERXCluzcLk7HrbCAF?= =?us-ascii?Q?ZtCRSwq9ABqbRNdbncQFEN7B70B7tnH2gSOJmBKWHmiHvae8BrmkWq1Xny7l?= =?us-ascii?Q?HMySSTWLzHNiWAIJHphICTgag97l/AYr0YIZfo6GA3xjDi0LA6JcZohb6iPN?= =?us-ascii?Q?TUvd4ZrRkHQr4fdGhMDeBy91TLMs4KvqMmyfEtlwQqCSIEZEchnz3sVAWBwv?= =?us-ascii?Q?S5KoRFGxloSDt35t+T0PrzHSoDAZ/7F+pxzdMPZOU/QcfDu/5bpBhjMfZilm?= =?us-ascii?Q?TG6Nvlj+npE2GOgs9qhW8eXQFsYE05cg1pkyl6Iq1ARVeOtOe60qavW7u76S?= =?us-ascii?Q?sSPVuZUIWZFYn/8mXlp1jULq2JmXDZuqJ7Qw9xZpdjds2NY8UqyDJWO+WiT8?= =?us-ascii?Q?+Df4rmgU11NgLiwFOmnO5P1nJvIU5HfILB5aUpF6LfOrzvQ0cti1toqIYZz/?= =?us-ascii?Q?OvpOUBd2p5im9tpKHI7pBOnyIZVRRTUKTBuGVUz4i6Kg17YQJdcOR7pYORQ5?= =?us-ascii?Q?Kol8vUosaQT+MeNEQPUoo9pU2LMDm5IbMpw/fRS5Aml/WMhs6AQ3vfYXtlXj?= =?us-ascii?Q?xOwb6B02u7lZJyaTX3hSzjDcjiuTk745eWTiYUJdq6Gl1opyb0wcX4rnjxpY?= =?us-ascii?Q?uLtvTCEoyg/yzlTh2NwY9u3gqt6p+RQVPHuEHIKy7K8e/4skTn3r9JN2y3HE?= =?us-ascii?Q?QazIwumD/YXaDQKvtKQz5b2UhMY0mlALRWdqWVz11R8xyMZaDvBKXuOAWE4B?= =?us-ascii?Q?ig=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: d4cae6c3-c697-4a26-00ff-08dcd2f1a955 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Sep 2024 06:10:55.1185 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oYu4QzL0NQTzsWPtlO9GykMypEIgSmma7FLlOLsEuYw32t3nQTd46x5XkVAUrZ+f5EKLqaF30/03kaEH12N9QfEwiV/6xcxL3q5dWSc6P8c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR13MB6454 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 From: James Hershaw Add command to change the state of a controllable LED on an ethdev port to on/off. This is for the purpose of identifying which physical port is associated with an ethdev. usage: testpmd> set port led Signed-off-by: James Hershaw Reviewed-by: Chaoyong He --- app/test-pmd/cmdline.c | 61 +++++++++++++++++++++ app/test-pmd/config.c | 19 +++++++ app/test-pmd/testpmd.h | 1 + doc/guides/testpmd_app_ug/testpmd_funcs.rst | 9 +++ 4 files changed, 90 insertions(+) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index ebc5a9a361..3898c125c2 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -518,6 +518,10 @@ static void cmd_help_long_parsed(void *parsed_result, " value (value) offset (offset)/n" " Set the device eeprom for certain port.\n\n" + "set port (port_id) led (on|off)\n" + " set a controllable LED associated with a certain\n" + " port on or off.\n\n" + "set port (port_id) uta (mac_address|all) (on|off)\n" " Add/Remove a or all unicast hash filter(s)" "from port X.\n\n" @@ -7589,6 +7593,62 @@ static cmdline_parse_inst_t cmd_seteeprom = { (void *)&cmd_seteeprom_magic, (void *)&cmd_seteeprom_value, (void *)&cmd_seteeprom_token_str, + NULL, + }, +}; + +/* *** SET THE LED FOR CERTAIN PORT TO ON/OFF *** */ +struct cmd_dev_led_result { + cmdline_fixed_string_t set; + cmdline_fixed_string_t port; + portid_t port_id; + cmdline_fixed_string_t led; + cmdline_fixed_string_t led_state; +}; + +static void cmd_set_dev_led_parsed(void *parsed_result, + __rte_unused struct cmdline *cl, + __rte_unused void *data) +{ + struct cmd_dev_led_result *res = parsed_result; + + if (test_done == 0) { + fprintf(stderr, "Please stop forwarding first\n"); + return; + } + + if (strcmp(res->led, "led") != 0) + return; + + if (strcmp(res->led_state, "on") == 0) + set_dev_led(res->port_id, true); + else if (strcmp(res->led_state, "off") == 0) + set_dev_led(res->port_id, false); + else + fprintf(stderr, "Invalid option for LED state\n"); +} + +static cmdline_parse_token_string_t cmd_dev_led_set = + TOKEN_STRING_INITIALIZER(struct cmd_dev_led_result, set, "set"); +static cmdline_parse_token_string_t cmd_dev_led_port = + TOKEN_STRING_INITIALIZER(struct cmd_dev_led_result, port, "port"); +static cmdline_parse_token_num_t cmd_dev_led_port_id = + TOKEN_NUM_INITIALIZER(struct cmd_dev_led_result, port_id, RTE_UINT16); +static cmdline_parse_token_string_t cmd_dev_led = + TOKEN_STRING_INITIALIZER(struct cmd_dev_led_result, led, "led"); +static cmdline_parse_token_string_t cmd_dev_led_state = + TOKEN_STRING_INITIALIZER(struct cmd_dev_led_result, led_state, NULL); + +static cmdline_parse_inst_t cmd_set_dev_led = { + .f = cmd_set_dev_led_parsed, + .data = NULL, + .help_str = "set port led ", + .tokens = { + (void *)&cmd_dev_led_set, + (void *)&cmd_dev_led_port, + (void *)&cmd_dev_led_port_id, + (void *)&cmd_dev_led, + (void *)&cmd_dev_led_state, NULL, }, }; @@ -13332,6 +13392,7 @@ static cmdline_parse_ctx_t builtin_ctx[] = { &cmd_stop, &cmd_mac_addr, &cmd_set_fwd_eth_peer, + &cmd_set_dev_led, &cmd_set_qmap, &cmd_set_xstats_hide_zero, &cmd_set_record_core_cycles, diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index fb1a1485e2..9673f9f207 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -5385,6 +5385,25 @@ set_fwd_eth_peer(portid_t port_id, char *peer_addr) peer_eth_addrs[port_id] = new_peer_addr; } +void +set_dev_led(portid_t port_id, bool active) +{ + int ret; + + if (!rte_eth_dev_is_valid_port(port_id)) { + fprintf(stderr, "Error: Invalid port number %i\n", port_id); + return; + } + + if (active) + ret = rte_eth_led_on(port_id); + else + ret = rte_eth_led_off(port_id); + + if (ret < 0) + fprintf(stderr, "Error: Unable to change LED state for port %i\n", port_id); +} + int set_fwd_lcores_list(unsigned int *lcorelist, unsigned int nb_lc) { diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index 1292d1a0a7..aa1f0e9dd1 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -944,6 +944,7 @@ int init_fwd_streams(void); void update_fwd_ports(portid_t new_pid); void set_fwd_eth_peer(portid_t port_id, char *peer_addr); +void set_dev_led(portid_t port_id, bool active); void port_mtu_set(portid_t port_id, uint16_t mtu); int port_action_handle_create(portid_t port_id, uint32_t id, bool indirect_list, diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst index 3aa214ef9f..1a360d9bab 100644 --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst @@ -1359,6 +1359,7 @@ Set the forwarding peer address for certain port:: This is equivalent to the ``--eth-peer`` command-line option. +<<<<<<< HEAD set eeprom ~~~~~~~~~~ @@ -1369,6 +1370,14 @@ Write a value to the device eeprom of a port at a specific offset:: Value should be given in the form of a hex-as-string, with no leading ``0x``. The offset field here is optional, if not specified then the offset will default to 0. +======= +set port led +~~~~~~~~~~~~ + +Set a controllable LED associated with a certain port on or off:: + + testpmd> set port (port_id) led (on|off) +>>>>>>> 38280ecd32 (app/testpmd: add set dev led on/off command) set port-uta ~~~~~~~~~~~~ -- 2.39.1