app/testpmd: add speed capability in device info
authorSarosh Arif <sarosh.arif@emumba.com>
Thu, 8 Oct 2020 18:25:13 +0000 (23:25 +0500)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 16 Oct 2020 17:18:47 +0000 (19:18 +0200)
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>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
app/test-pmd/config.c

index 8ccd989..d4be694 100644 (file)
@@ -532,6 +532,46 @@ static int bus_match_all(const struct rte_bus *bus, const void *data)
        return 0;
 }
 
+static void
+device_infos_display_speeds(uint32_t 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_40G)
+               printf(" 40 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  ");
+}
+
 void
 device_infos_display(const char *identifier)
 {
@@ -543,6 +583,7 @@ 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];
 
        memset(&da, 0, sizeof(da));
@@ -594,6 +635,8 @@ skip_parse:
                                                      &mac_addr);
                                rte_eth_dev_get_name_by_port(port_id, name);
                                printf("\n\tDevice name: %s", name);
+                               if (rte_eth_dev_info_get(port_id, &dev_info) == 0)
+                                       device_infos_display_speeds(dev_info.speed_capa);
                                printf("\n");
                        }
                }