dpdk: only look at PCI information on PCI devices
[vpp.git] / src / plugins / dpdk / device / format.c
index 5cb03b8..28e8f0a 100644 (file)
@@ -273,9 +273,9 @@ format_dpdk_device_name (u8 * s, va_list * args)
     }
 
   rte_eth_dev_info_get (i, &dev_info);
-  pci_dev = RTE_DEV_TO_PCI (dev_info.device);
+  pci_dev = dpdk_get_pci_device (&dev_info);
 
-  if (pci_dev && dm->devices[i].port_type != VNET_DPDK_PORT_TYPE_FAILSAFE)
+  if (pci_dev)
     ret = format (s, devname_format, device_name, pci_dev->addr.bus,
                  pci_dev->addr.devid, pci_dev->addr.function);
   else
@@ -512,7 +512,8 @@ format_dpdk_device_module_info (u8 * s, va_list * args)
 
   if (rte_eth_dev_get_module_eeprom (xd->port_id, &ei) == 0)
     {
-      s = format (s, "%U", format_sfp_eeprom, ei.data);
+      s = format (s, "%U", format_sfp_eeprom, ei.data +
+                 (mi.type == RTE_ETH_MODULE_SFF_8436 ? 0x80 : 0));
     }
   else
     s = format (s, "eeprom read error");
@@ -574,7 +575,8 @@ format_dpdk_device (u8 * s, va_list * args)
       retval = rte_eth_dev_rss_hash_conf_get (xd->port_id, &rss_conf);
       if (retval < 0)
        clib_warning ("rte_eth_dev_rss_hash_conf_get returned %d", retval);
-      pci = RTE_DEV_TO_PCI (di.device);
+
+      pci = dpdk_get_pci_device (&di);
 
       if (pci)
        {