netmap: disable passthrough with no hypervisor support

The netmap passthrough subsystem requires proper support in the
hypervisor. In particular, two PCI device ids (from the Red Hat
PCI vendor id 0x1b36) need to be assigned to the two netmap
virtual devices. We then disable these devices until the ids have
not been assigned, in order to avoid conflicts with other
virtual devices emulated by upstream QEMU.

PR:	241774
MFC after:	3 days
This commit is contained in:
Vincenzo Maffione 2020-01-13 21:47:23 +00:00
parent f55f37d9c5
commit 2ec213aba4
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=356704
3 changed files with 5 additions and 3 deletions

View File

@ -87,6 +87,8 @@
#include <dev/netmap/netmap_mem2.h>
#include <dev/virtio/network/virtio_net.h>
#ifdef WITH_PTNETMAP
#ifndef INET
#error "INET not defined, cannot support offloadings"
#endif
@ -1993,3 +1995,4 @@ ptnet_poll(if_t ifp, enum poll_cmd cmd, int budget)
return count;
}
#endif /* DEVICE_POLLING */
#endif /* WITH_PTNETMAP */

View File

@ -76,7 +76,6 @@
#define WITH_PIPES
#define WITH_MONITOR
#define WITH_GENERIC
#define WITH_PTNETMAP /* ptnetmap guest support */
#define WITH_EXTMEM
#define WITH_NMNULL
#endif

View File

@ -44,8 +44,8 @@
/* PCI identifiers and PCI BARs for ptnetmap-memdev and ptnet. */
#define PTNETMAP_MEMDEV_NAME "ptnetmap-memdev"
#define PTNETMAP_PCI_VENDOR_ID 0x1b36 /* QEMU virtual devices */
#define PTNETMAP_PCI_DEVICE_ID 0x000c /* memory device */
#define PTNETMAP_PCI_NETIF_ID 0x000d /* ptnet network interface */
#define PTNETMAP_PCI_DEVICE_ID 0xcccc /* memory device */
#define PTNETMAP_PCI_NETIF_ID 0xcccd /* ptnet network interface */
#define PTNETMAP_IO_PCI_BAR 0
#define PTNETMAP_MEM_PCI_BAR 1
#define PTNETMAP_MSIX_PCI_BAR 2