On 6/12/2024 6:53 PM, Damodharam Ammepalli wrote: > On Tue, Jun 11, 2024 at 4:39 PM Ferruh Yigit <ferruh.yi...@amd.com> wrote: >> >> On 6/2/2024 3:45 AM, Damodharam Ammepalli wrote: >>> Add a new api support that displays the speeds and bitmap of >>> supported lanes configuration by the ethernet controller. >>> This patch adds support in the testpmd cli chain. >>> >>> Signed-off-by: Damodharam Ammepalli <damodharam.ammepa...@broadcom.com> >>> --- >>> app/test-pmd/cmdline.c | 128 +++++++++++++++++++++++++++++++++++++++++ >>> 1 file changed, 128 insertions(+) >>> >>> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c >>> index 785e5dd4de..8b0a85f632 100644 >>> --- a/app/test-pmd/cmdline.c >>> +++ b/app/test-pmd/cmdline.c >>> @@ -1637,6 +1637,133 @@ static cmdline_parse_inst_t cmd_config_loopback_all >>> = { >>> }, >>> }; >>> >>> +/* *** display speed lanes per port capabilities *** */ >>> +struct cmd_show_speed_lanes_result { >>> + cmdline_fixed_string_t cmd_show; >>> + cmdline_fixed_string_t cmd_port; >>> + cmdline_fixed_string_t cmd_keyword; >>> + portid_t cmd_pid; >>> +}; >>> + >>> +static const char* >>> +get_device_infos_display_speeds(uint32_t speed_capa) >>> +{ >>> + if (speed_capa & RTE_ETH_LINK_SPEED_10M_HD) >>> + return(" 10 Mbps half-duplex "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_10M) >>> + return(" 10 Mbps full-duplex "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_100M_HD) >>> + return(" 100 Mbps half-duplex "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_100M) >>> + return(" 100 Mbps full-duplex "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_1G) >>> + return(" 1 Gbps "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_2_5G) >>> + return(" 2.5 Gbps "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_5G) >>> + return(" 5 Gbps "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_10G) >>> + return(" 10 Gbps "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_20G) >>> + return(" 20 Gbps "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_25G) >>> + return(" 25 Gbps "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_40G) >>> + return(" 40 Gbps "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_50G) >>> + return(" 50 Gbps "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_56G) >>> + return(" 56 Gbps "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_100G) >>> + return(" 100 Gbps "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_200G) >>> + return(" 200 Gbps "); >>> + if (speed_capa & RTE_ETH_LINK_SPEED_400G) >>> + return(" 400 Gbps "); >>> + >>> + return("Unkown"); >>> +} >>> >> >> As far as I remember, there was already a function to convert speed to >> string, can you please double check? >> > > Yes. I picked up from this. > app/test-pmd/config.c:device_infos_display_speeds() > Can I make this function > app/test-pmd/config.c:device_infos_display_speeds() a non-static and > declare it in testpmd.h? >
If we can reduce duplication, I think it make sense. Thanks.