[dpdk-dev] [PATCH v2] testpmd: add speed capability in device info

Ferruh Yigit ferruh.yigit at intel.com
Wed Oct 7 17:30:23 CEST 2020


On 10/4/2020 9:51 AM, Asaf Penso wrote:
>> -----Original Message-----
>> From: dev <dev-bounces at dpdk.org> On Behalf Of Sarosh Arif
>> Sent: Monday, September 28, 2020 1:01 PM
>> To: ferruh.yigit at intel.com
>> Cc: dev at dpdk.org; Sarosh Arif <sarosh.arif at emumba.com>
>> Subject: [dpdk-dev] [PATCH v2] testpmd: add speed capability in device info
>>
>> Called rte_eth_dev_info_get() in testpmd, to get device info so that speed
>> capabilities can be printed under "show device info"
>>>> Bugzilla ID: 496
>> Signed-off-by: Sarosh Arif <sarosh.arif at emumba.com>
>> ---
>> app/test-pmd/config.c | 38 ++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 38 insertions(+)
>>
>> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index
>> 30bee3324..e2b3975a3 100644
>> --- a/app/test-pmd/config.c
>> +++ b/app/test-pmd/config.c
>> @@ -518,7 +518,9 @@ device_infos_display(const char *identifier)
>> 	struct rte_device *dev;
>> 	struct rte_devargs da;
>> 	portid_t port_id;
>> +	struct rte_eth_dev_info dev_info;
>> 	char devstr[128];
>> +	uint32_t speed_capa;
>>
>> 	memset(&da, 0, sizeof(da));
>> 	if (!identifier)
>> @@ -569,6 +571,42 @@ device_infos_display(const char *identifier)
>> 						      &mac_addr);
>> 				rte_eth_dev_get_name_by_port(port_id,
>> name);
>> 				printf("\n\tDevice name: %s", name);
> 
> How about extracting the below to a dedicated helper function to make the code more readable?
> Something like: void device_infos_display_speeds(uint32_t speed_capa)
> 
>> +				rte_eth_dev_info_get(port_id, &dev_info);
>> +				speed_capa = dev_info.speed_capa;
>> +
>> +				printf("\n\tDevice speed capability:");
>> +				if (speed_capa ==
>> ETH_LINK_SPEED_AUTONEG)
>> +					printf(" Autonegotiate (all speeds)");
>> +				if (speed_capa & ETH_LINK_SPEED_FIXED)
>> +					printf(" Disable autonegotiate (fixed
>> speed)  ");
>> +				if (speed_capa & ETH_LINK_SPEED_10M_HD)
>> +					printf(" 10 Mbps half-duplex  ");
>> +				if (speed_capa & ETH_LINK_SPEED_10M)
>> +					printf(" 10 Mbps full-duplex  ");
>> +				if (speed_capa & ETH_LINK_SPEED_100M_HD)
>> +					printf(" 100 Mbps half-duplex  ");
>> +				if (speed_capa & ETH_LINK_SPEED_100M)
>> +					printf(" 100 Mbps full-duplex  ");
>> +				if (speed_capa & ETH_LINK_SPEED_1G)
>> +					printf(" 1 Gbps  ");
>> +				if (speed_capa & ETH_LINK_SPEED_2_5G)
>> +					printf(" 2.5 Gbps  ");
>> +				if (speed_capa & ETH_LINK_SPEED_5G)
>> +					printf(" 5 Gbps  ");
>> +				if (speed_capa & ETH_LINK_SPEED_10G)
>> +					printf(" 10 Gbps  ");
>> +				if (speed_capa & ETH_LINK_SPEED_20G)
>> +					printf(" 20 Gbps  ");
>> +				if (speed_capa & ETH_LINK_SPEED_25G)
>> +					printf(" 25 Gbps  ");
>> +				if (speed_capa & ETH_LINK_SPEED_50G)
>> +					printf(" 50 Gbps  ");
>> +				if (speed_capa & ETH_LINK_SPEED_56G)
>> +					printf(" 56 Gbps  ");
>> +				if (speed_capa & ETH_LINK_SPEED_100G)
>> +					printf(" 100 Gbps  ");
>> +				if (speed_capa & ETH_LINK_SPEED_200G)
>> +					printf(" 200 Gbps  ");
>> 				printf("\n");

Some speeds are missing, please add all.

And +1 to Asaf's comment to extract it into its own function.
	

>> 			}
>> 		}
>> --
>> 2.25.1
> 
> I'm ok also to leave is as-is.
> Reviewed-By: Asaf Penso <asafp at nvidia.com>
> 



More information about the dev mailing list