[v2] testpmd: add speed capability in device info
Checks
Commit Message
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@emumba.com>
---
app/test-pmd/config.c | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
Comments
>-----Original Message-----
>From: dev <dev-bounces@dpdk.org> On Behalf Of Sarosh Arif
>Sent: Monday, September 28, 2020 1:01 PM
>To: ferruh.yigit@intel.com
>Cc: dev@dpdk.org; Sarosh Arif <sarosh.arif@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@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");
> }
> }
>--
>2.25.1
I'm ok also to leave is as-is.
Reviewed-By: Asaf Penso <asafp@nvidia.com>
On 10/4/2020 9:51 AM, Asaf Penso wrote:
>> -----Original Message-----
>> From: dev <dev-bounces@dpdk.org> On Behalf Of Sarosh Arif
>> Sent: Monday, September 28, 2020 1:01 PM
>> To: ferruh.yigit@intel.com
>> Cc: dev@dpdk.org; Sarosh Arif <sarosh.arif@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@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@nvidia.com>
>
@@ -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);
+ 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");
}
}