qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] net: Add persistent flag to -net tap option


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH] net: Add persistent flag to -net tap option
Date: Fri, 19 Dec 2014 13:13:50 +0000
User-agent: Mutt/1.5.23 (2014-03-12)

On Mon, Dec 15, 2014 at 02:05:23PM +0200, Roy Vardi wrote:
> From: Roy Vardi <address@hidden>
> 
>     Add 'persistent' boolean flag to -net tap option.
>     When set to off - tap interface will be released on shutdown
>     When set to on\not specified - tap interface will remain
> 
>     Running with -net tap,persistent=off will force the tap interface
>     down when qemu goes down, thus ensuring that there're no zombie tap
>     interfaces left
> 
>     This is achieved using another ioctl
> 
>     Note: This commit includes the above support only for linux systems

I don't understand the point of this patch.  The following doesn't
persist the tun interface:

qemu-system-i386 -net tap,script=myscript.sh,downscript=no -net nic

You are changing the default to persist the interface, won't this cause
problems for existing users who don't expect persistent interfaces?

> @@ -109,6 +110,17 @@ int tap_open(char *ifname, int ifname_size, int 
> *vnet_hdr,
>          close(fd);
>          return -1;
>      }
> +
> +    if (!persistent_required) {
> +        ret = ioctl(fd, TUNSETPERSIST, 0);
> +            if (ret != 0) {

Indentation is off here.  QEMU uses 4-space indentation and this if
statement should not be indented.

> +                error_report("could not configure non-persistent %s (%s): 
> %m",
> +                             PATH_NET_TUN, ifr.ifr_name);
> +                close(fd);
> +                return -1;
> +        }
> +    }
> +
>      pstrcpy(ifname, ifname_size, ifr.ifr_name);
>      fcntl(fd, F_SETFL, O_NONBLOCK);
>      return fd;
> diff --git a/net/tap.c b/net/tap.c
> index bde6b58..43267bb 100644
> --- a/net/tap.c
> +++ b/net/tap.c
> @@ -556,7 +556,8 @@ int net_init_bridge(const NetClientOptions *opts, const 
> char *name,
>  
>  static int net_tap_init(const NetdevTapOptions *tap, int *vnet_hdr,
>                          const char *setup_script, char *ifname,
> -                        size_t ifname_sz, int mq_required)
> +                        size_t ifname_sz, int mq_required,
> +                        int persistent_reuired)

Typo s/reuired/required/

> diff --git a/qemu-options.hx b/qemu-options.hx
> index 10b9568..d26215a 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -1417,7 +1417,7 @@ 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][,fds=x:y:...:z][,ifname=name][,script=file][,downscript=dfile][,helper=helper][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h][,vhostfds=x:y:...:z][,vhostforce=on|off][,queues=n]\n"
> +    "-net 
> tap[,vlan=n][,name=str][,fd=h][,fds=x:y:...:z][,ifname=name][,script=file][,downscript=dfile][,helper=helper][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h][,vhostfds=x:y:...:z][,vhostforce=on|off][,queues=n][persistent=on|off]\n"

Missing comma:
[,persistent=on|off]

>      "                connect the host TAP network interface to VLAN 'n'\n"
>      "                use network scripts 'file' (default=" 
> DEFAULT_NETWORK_SCRIPT ")\n"
>      "                to configure it and 'dfile' (default=" 
> DEFAULT_NETWORK_DOWN_SCRIPT ")\n"
> @@ -1437,6 +1437,7 @@ DEF("net", HAS_ARG, QEMU_OPTION_net,
>      "                use 'vhostfd=h' to connect to an already opened vhost 
> net device\n"
>      "                use 'vhostfds=x:y:...:z to connect to multiple already 
> opened vhost net devices\n"
>      "                use 'queues=n' to specify the number of queues to be 
> created for multiqueue TAP\n"
> +    "                use persistent=off to release the TAP interface on 
> shutdown (default=on)\n"

Please use the same formatting as for the other options:

use 'persistent=off' to release ...

Attachment: pgp44rGjodQyz.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]