From: Gabriel Ganne Date: Tue, 28 Nov 2017 08:55:07 +0000 (+0100) Subject: net/virtio: support modern device id X-Git-Tag: v18.04-rc0~162 X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commitdiff_plain;h=af6f93a4eb4740ac13b1d65eb44da442976fa809 net/virtio: support modern device id Add legacy and modern macros to pci_config header. This follows dpdk commit: 4c7903658f6b5a8f4901224ef405445541b91e4a And PCI Device Conformance doc : docs.oasis-open.org/virtio/virtio/v1.0/cs02/virtio-v1.0-cs02.html#x1-640001 Change-Id: Iacd40ea8c06f220736ca0bc7ce68bcf1e55b68f6 Signed-off-by: Gabriel Ganne --- 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 @@ -161,6 +161,13 @@ pci_device_class_base (pci_device_class_t c) return c & ~0xff; } +/* + * 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: