From a8ed73f73db458e742aa17798530103d2de578cc Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Thu, 22 Oct 2009 17:49:05 +0100 Subject: net: move more stuff into net/tap-win32.c, add net/tap.h Signed-off-by: Mark McLoughlin Signed-off-by: Anthony Liguori --- net/tap-win32.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- net/tap.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 net/tap.h (limited to 'net') diff --git a/net/tap-win32.c b/net/tap-win32.c index 7d92df2..ea66471 100644 --- a/net/tap-win32.c +++ b/net/tap-win32.c @@ -25,6 +25,9 @@ * along with this program (see the file COPYING included with this * distribution); if not, see . */ + +#include "net/tap.h" + #include "qemu-common.h" #include "net.h" #include "sysemu.h" @@ -664,8 +667,8 @@ static void tap_win32_send(void *opaque) } } -int tap_win32_init(VLANState *vlan, const char *model, - const char *name, const char *ifname) +static int tap_win32_init(VLANState *vlan, const char *model, + const char *name, const char *ifname) { TAPState *s; @@ -688,3 +691,44 @@ int tap_win32_init(VLANState *vlan, const char *model, qemu_add_wait_object(s->handle->tap_semaphore, tap_win32_send, s); return 0; } + +int net_init_tap(QemuOpts *opts, Monitor *mon, const char *name, VLANState *vlan) +{ + const char *ifname; + + ifname = qemu_opt_get(opts, "ifname"); + + if (!ifname) { + qemu_error("tap: no interface name\n"); + return -1; + } + + if (tap_win32_init(vlan, "tap", name, ifname) == -1) { + return -1; + } + + if (vlan) { + vlan->nb_host_devs++; + } + + return 0; +} + +int tap_has_ufo(VLANClientState *vc) +{ + return 0; +} + +int tap_has_vnet_hdr(VLANClientState *vc) +{ + return 0; +} + +void tap_using_vnet_hdr(VLANClientState *vc, int using_vnet_hdr) +{ +} + +void tap_set_offload(VLANClientState *vc, int csum, int tso4, + int tso6, int ecn, int ufo) +{ +} diff --git a/net/tap.h b/net/tap.h new file mode 100644 index 0000000..53952a1 --- /dev/null +++ b/net/tap.h @@ -0,0 +1,42 @@ +/* + * QEMU System Emulator + * + * Copyright (c) 2003-2008 Fabrice Bellard + * Copyright (c) 2009 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef QEMU_NET_TAP_H +#define QEMU_NET_TAP_H + +#include "qemu-common.h" +#include "qemu-option.h" + +#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup" +#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown" + +int net_init_tap(QemuOpts *opts, Monitor *mon, const char *name, VLANState *vlan); + +int tap_has_ufo(VLANClientState *vc); +int tap_has_vnet_hdr(VLANClientState *vc); +void tap_using_vnet_hdr(VLANClientState *vc, int using_vnet_hdr); +void tap_set_offload(VLANClientState *vc, int csum, int tso4, int tso6, int ecn, int ufo); + +#endif /* QEMU_NET_TAP_H */ -- cgit v1.1