summaryrefslogtreecommitdiff
path: root/net/net.c
diff options
context:
space:
mode:
authorVincenzo Maffione <v.maffione@gmail.com>2013-11-06 11:44:06 +0100
committerStefan Hajnoczi <stefanha@redhat.com>2013-12-09 13:33:19 +0100
commit58952137b0b3e1c9e3ce718ed952c1baf8832652 (patch)
tree10348a2f1a0fcf536d2b393ad716eaa4f696206a /net/net.c
parenta1d22a367d5780c9553b2cd5a24f665534ce6ed6 (diff)
downloadqemu-58952137b0b3e1c9e3ce718ed952c1baf8832652.tar.gz
net: Adding netmap network backend
This patch adds support for a network backend based on netmap. netmap is a framework for high speed packet I/O. You can use it to build extremely fast traffic generators, monitors, software switches or network middleboxes. Its companion software switch VALE lets you interconnect virtual machines. netmap and VALE are implemented as a non-intrusive kernel module, support NICs from multiple vendors, are part of standard FreeBSD distributions and available in source format for Linux too. To compile QEMU with netmap support, use the following configure options: ./configure [...] --enable-netmap --extra-cflags=-I/path/to/netmap/sys where "/path/to/netmap" contains the netmap source code, available at http://info.iet.unipi.it/~luigi/netmap/ The same webpage contains more information about the netmap project (together with papers and presentations). Signed-off-by: Vincenzo Maffione <v.maffione@gmail.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'net/net.c')
-rw-r--r--net/net.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/net.c b/net/net.c
index 0a88e68253..ae8e5e5c35 100644
--- a/net/net.c
+++ b/net/net.c
@@ -726,6 +726,9 @@ static int (* const net_client_init_fun[NET_CLIENT_OPTIONS_KIND_MAX])(
#ifdef CONFIG_VDE
[NET_CLIENT_OPTIONS_KIND_VDE] = net_init_vde,
#endif
+#ifdef CONFIG_NETMAP
+ [NET_CLIENT_OPTIONS_KIND_NETMAP] = net_init_netmap,
+#endif
[NET_CLIENT_OPTIONS_KIND_DUMP] = net_init_dump,
#ifdef CONFIG_NET_BRIDGE
[NET_CLIENT_OPTIONS_KIND_BRIDGE] = net_init_bridge,
@@ -757,6 +760,9 @@ static int net_client_init1(const void *object, int is_netdev, Error **errp)
#ifdef CONFIG_VDE
case NET_CLIENT_OPTIONS_KIND_VDE:
#endif
+#ifdef CONFIG_NETMAP
+ case NET_CLIENT_OPTIONS_KIND_NETMAP:
+#endif
#ifdef CONFIG_NET_BRIDGE
case NET_CLIENT_OPTIONS_KIND_BRIDGE:
#endif