0ff7076bdb
Bhyve can currently emulate two virtual NICs, namely virtio-net and e1000, and connect to the host network through two backends, namely tap and netmap. However, there is no interface between virtual NIC functionalities and backend functionalities. As a result, the backend code is duplicated between the two virtual NIC implementations and also within the same virtual NIC. Also, e1000 cannot currently use netmap as a backend. This patch introduces a network backend API between virtio-net/e1000 and tap/netmap, to improve code reuse and add missing functionalities. Virtual NICs and backends can negotiate virtio-net features, such as checksum offload and TSO. If the backend supports the features, it will propagate this information to the guest, so that the latter can make use of them. Currently, only netmap VALE ports support the features, but support should be added to tap in the future. Reviewed by: jhb, bryanv MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D20659
102 lines
1.5 KiB
Makefile
102 lines
1.5 KiB
Makefile
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
.include <src.opts.mk>
|
|
CFLAGS+=-I${SRCTOP}/sys
|
|
.PATH: ${SRCTOP}/sys/cam/ctl
|
|
|
|
PROG= bhyve
|
|
PACKAGE= bhyve
|
|
|
|
MAN= bhyve.8
|
|
|
|
BHYVE_SYSDIR?=${SRCTOP}
|
|
|
|
SRCS= \
|
|
atkbdc.c \
|
|
acpi.c \
|
|
audio.c \
|
|
bhyvegc.c \
|
|
bhyverun.c \
|
|
block_if.c \
|
|
bootrom.c \
|
|
console.c \
|
|
consport.c \
|
|
ctl_util.c \
|
|
ctl_scsi_all.c \
|
|
dbgport.c \
|
|
fwctl.c \
|
|
gdb.c \
|
|
hda_codec.c \
|
|
inout.c \
|
|
ioapic.c \
|
|
mem.c \
|
|
mevent.c \
|
|
mptbl.c \
|
|
net_backends.c \
|
|
net_utils.c \
|
|
pci_ahci.c \
|
|
pci_e82545.c \
|
|
pci_emul.c \
|
|
pci_hda.c \
|
|
pci_fbuf.c \
|
|
pci_hostbridge.c \
|
|
pci_irq.c \
|
|
pci_lpc.c \
|
|
pci_nvme.c \
|
|
pci_passthru.c \
|
|
pci_virtio_block.c \
|
|
pci_virtio_console.c \
|
|
pci_virtio_net.c \
|
|
pci_virtio_rnd.c \
|
|
pci_virtio_scsi.c \
|
|
pci_uart.c \
|
|
pci_xhci.c \
|
|
pm.c \
|
|
post.c \
|
|
ps2kbd.c \
|
|
ps2mouse.c \
|
|
rfb.c \
|
|
rtc.c \
|
|
smbiostbl.c \
|
|
sockstream.c \
|
|
task_switch.c \
|
|
uart_emul.c \
|
|
usb_emul.c \
|
|
usb_mouse.c \
|
|
virtio.c \
|
|
vga.c \
|
|
xmsr.c \
|
|
spinup_ap.c \
|
|
iov.c
|
|
|
|
.PATH: ${BHYVE_SYSDIR}/sys/amd64/vmm
|
|
SRCS+= vmm_instruction_emul.c
|
|
|
|
LIBADD= vmmapi md pthread z util sbuf cam
|
|
|
|
.if ${MK_INET_SUPPORT} != "no"
|
|
CFLAGS+=-DINET
|
|
.endif
|
|
.if ${MK_INET6_SUPPORT} != "no"
|
|
CFLAGS+=-DINET6
|
|
.endif
|
|
.if ${MK_OPENSSL} == "no"
|
|
CFLAGS+=-DNO_OPENSSL
|
|
.else
|
|
LIBADD+= crypto
|
|
.endif
|
|
|
|
CFLAGS+= -I${BHYVE_SYSDIR}/sys/dev/e1000
|
|
CFLAGS+= -I${BHYVE_SYSDIR}/sys/dev/mii
|
|
CFLAGS+= -I${BHYVE_SYSDIR}/sys/dev/usb/controller
|
|
|
|
.ifdef GDB_LOG
|
|
CFLAGS+=-DGDB_LOG
|
|
.endif
|
|
|
|
WARNS?= 2
|
|
|
|
.include <bsd.prog.mk>
|