From patchwork Thu Oct 22 16:43:33 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark McLoughlin X-Patchwork-Id: 36707 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 22F5BB7BB0 for ; Fri, 23 Oct 2009 04:08:53 +1100 (EST) Received: from localhost ([127.0.0.1]:53208 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N119d-0003co-Rc for incoming@patchwork.ozlabs.org; Thu, 22 Oct 2009 13:08:50 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N10nV-0007FG-UC for qemu-devel@nongnu.org; Thu, 22 Oct 2009 12:45:58 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N10nL-0006z9-DN for qemu-devel@nongnu.org; Thu, 22 Oct 2009 12:45:51 -0400 Received: from [199.232.76.173] (port=47947 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N10nK-0006yM-PE for qemu-devel@nongnu.org; Thu, 22 Oct 2009 12:45:46 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60213) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1N10nJ-0003FW-3s for qemu-devel@nongnu.org; Thu, 22 Oct 2009 12:45:45 -0400 Received: from int-mx05.intmail.prod.int.phx2.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.18]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id n9MGjhxW011542 for ; Thu, 22 Oct 2009 12:45:43 -0400 Received: from blaa.localdomain (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx05.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id n9MGjfEa008534; Thu, 22 Oct 2009 12:45:42 -0400 Received: by blaa.localdomain (Postfix, from userid 500) id 52DC01856A; Thu, 22 Oct 2009 17:43:50 +0100 (IST) From: Mark McLoughlin To: qemu-devel@nongnu.org Date: Thu, 22 Oct 2009 17:43:33 +0100 Message-Id: <1256229830-28066-3-git-send-email-markmc@redhat.com> In-Reply-To: <1256229830-28066-1-git-send-email-markmc@redhat.com> References: <1256229830-28066-1-git-send-email-markmc@redhat.com> X-Scanned-By: MIMEDefang 2.67 on 10.5.11.18 X-detected-operating-system: by monty-python.gnu.org: Genre and OS details not recognized. Cc: Mark McLoughlin Subject: [Qemu-devel] [PATCH 02/19] net: import linux tap ioctl definitions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Making features dependent on the availability of newer versions if_tun.h is going to get seriously clumsy, so let's just import the definitions we need. It's only a small handful. If and when we're comfortable depending on 2.6.30 headers, we can remove this again. Signed-off-by: Mark McLoughlin --- net.c | 11 +---------- qemu-options.hx | 8 +------- tap-linux.h | 29 +++++++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 17 deletions(-) create mode 100644 tap-linux.h diff --git a/net.c b/net.c index 4708080..0e3388b 100644 --- a/net.c +++ b/net.c @@ -46,7 +46,7 @@ #include #endif #ifdef __linux__ -#include +#include "tap-linux.h" #endif #include #include @@ -1370,7 +1370,6 @@ static void tap_send(void *opaque) } while (size > 0); } -#ifdef TUNSETSNDBUF /* sndbuf should be set to a value lower than the tx queue * capacity of any destination network interface. * Ethernet NICs generally have txqueuelen=1000, so 1Mb is @@ -1393,12 +1392,6 @@ static int tap_set_sndbuf(TAPState *s, QemuOpts *opts) } return 0; } -#else -static int tap_set_sndbuf(TAPState *s, QemuOpts *opts) -{ - return 0; -} -#endif /* TUNSETSNDBUF */ static void tap_cleanup(VLANClientState *vc) { @@ -2972,12 +2965,10 @@ static struct { .name = "downscript", .type = QEMU_OPT_STRING, .help = "script to shut down the interface", -#ifdef TUNSETSNDBUF }, { .name = "sndbuf", .type = QEMU_OPT_SIZE, .help = "send buffer limit" -#endif }, { /* end of list */ } }, diff --git a/qemu-options.hx b/qemu-options.hx index 20aa242..c745e0c 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -810,21 +810,15 @@ DEF("net", HAS_ARG, QEMU_OPTION_net, "-net tap[,vlan=n][,name=str],ifname=name\n" " connect the host TAP network interface to VLAN 'n'\n" #else - "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile]" -#ifdef TUNSETSNDBUF - "[,sndbuf=nbytes]" -#endif - "\n" + "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,sndbuf=nbytes]\n" " connect the host TAP network interface to VLAN 'n' and use the\n" " network scripts 'file' (default=%s)\n" " and 'dfile' (default=%s);\n" " use '[down]script=no' to disable script execution;\n" " use 'fd=h' to connect to an already opened TAP interface\n" -#ifdef TUNSETSNDBUF " use 'sndbuf=nbytes' to limit the size of the send buffer; the\n" " default of 'sndbuf=1048576' can be disabled using 'sndbuf=0'\n" #endif -#endif "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n" " connect the vlan 'n' to another VLAN using a socket connection\n" "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]\n" diff --git a/tap-linux.h b/tap-linux.h new file mode 100644 index 0000000..cd07ea8 --- /dev/null +++ b/tap-linux.h @@ -0,0 +1,29 @@ +/* + * Universal TUN/TAP device driver. + * Copyright (C) 1999-2000 Maxim Krasnyansky + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef QEMU_TAP_H +#define QEMU_TAP_H + +#include + +/* Ioctl defines */ +#define TUNSETIFF _IOW('T', 202, int) +#define TUNSETSNDBUF _IOW('T', 212, int) + +/* TUNSETIFF ifr flags */ +#define IFF_TAP 0x0002 +#define IFF_NO_PI 0x1000 + +#endif /* QEMU_TAP_H */