summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/plugins/dpdk/device/init.c4
-rw-r--r--src/vlib/pci/pci_config.h7
2 files changed, 10 insertions, 1 deletions
diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c
index 7a6c5cf8789..416f62d59f7 100755
--- a/src/plugins/dpdk/device/init.c
+++ b/src/plugins/dpdk/device/init.c
@@ -711,7 +711,9 @@ dpdk_bind_devices_to_uio (dpdk_config_main_t * conf)
}
/* virtio */
- if (d->vendor_id == 0x1af4 && d->device_id == 0x1000)
+ if (d->vendor_id == 0x1af4 &&
+ (d->device_id == VIRTIO_PCI_LEGACY_DEVICEID_NET ||
+ d->device_id == VIRTIO_PCI_MODERN_DEVICEID_NET))
;
/* vmxnet3 */
else if (d->vendor_id == 0x15ad && d->device_id == 0x07b0)
diff --git a/src/vlib/pci/pci_config.h b/src/vlib/pci/pci_config.h
index 92e56af6d57..df82e1ab444 100644
--- a/src/vlib/pci/pci_config.h
+++ b/src/vlib/pci/pci_config.h
@@ -162,6 +162,13 @@ pci_device_class_base (pci_device_class_t c)
}
/*
+ * 0x1000 is the legacy device-id value
+ * 0x1041 is (0x1040 + 1), 1 being the Virtio Device ID
+ */
+#define VIRTIO_PCI_LEGACY_DEVICEID_NET 0x1000
+#define VIRTIO_PCI_MODERN_DEVICEID_NET 0x1041
+
+/*
* Under PCI, each device has 256 bytes of configuration address space,
* of which the first 64 bytes are standardized as follows:
*/