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

Re: [Xen-devel] [patch] xen udev rule interfering with openvpn



On Tue, May 22, 2012 at 9:19 PM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
> On Mon, 2012-05-21 at 14:16 +0100, Teck Choon Giam wrote:
>
>> vif5.0-emu Link encap:Ethernet  HWaddr 1A:58:5C:16:5C:02
>>           inet6 addr: fe80::1858:5cff:fe16:5c02/64 Scope:Link
>>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>>           TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
>>           collisions:0 txqueuelen:500
>>           RX bytes:0 (0.0 b)  TX bytes:280 (280.0 b)
>
> The fact that this interface is up at this point is interesting, didn't
> you mention something about this at another time?

Yes, I did mentioned that $dev is up when test with xm create
hvmdomain with vifname set which cause test #7 to fail.

>
> In the tap dev case I made the rename into:
>            do_or_die ifconfig "$dev" down
>            do_or_die ip link set "$dev" name "$vifname"
>
> which seemed to workaround the issue for me.

The workaround is identical for mine by bringing the $dev down.

>
> I think the reason this effects xm and not xl is that libxl uses
> script=none to disable qemu-ifup while xend does not and instead ends up
> using qemu-ifup which does some fiddling with the device too, including
> bringing it up.

Ok, so default for xend is using script=qemu-ifup if script is not
set?  Am I right about this?

>
> The proper fix is probably to change xend, I'm a bit wary of this,
> especially for a 4.1 backport, but the following looks right and works
> for me. It's a bit more complex since in libxl we seem to only do this
> for Linux (i.e. not NetBSD) and I guess we should do the same in xend
> too.

Err... if we are going to change default behaviour will we be
affecting those users who is upgrading from xen-4.1 to xen-4.2?

If your fix patch is going into xen-unstable for sure, I will re-run
my tests by then.  I hope it doesn't affect current domUs
configuration (I mean we shouldn't need to change domU configuration)
especially when users prefer to use xm then xl in xen-4.2.

Thanks.

Kindest regards,
Giam Teck Choon


>
> Ian
>
> # HG changeset patch
> # User Ian Campbell <ian.campbell@xxxxxxxxxx>
> # Date 1337692747 -3600
> # Node ID 426bbf58cea4559464b6e5d3ff0f65324a5f5926
> # Parent  72ca5bc4eb6b91fa8dff51d439bd05f5586179df
> xend: do not run a hotplug script from qemu on Linux
>
> The current vif-hotplug-common.sh for renaming the tap device is failing
> because it is racing with this script and therefore the device is unexpectedly
> up when we come to rename it.
>
> Fix this in the same way as libxl does, by disabling the script (only on
> Linux).
>
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
>
> diff -r 72ca5bc4eb6b -r 426bbf58cea4 tools/python/xen/xend/image.py
> --- a/tools/python/xen/xend/image.py    Tue May 22 11:29:50 2012 +0100
> +++ b/tools/python/xen/xend/image.py    Tue May 22 14:19:07 2012 +0100
> @@ -919,8 +919,13 @@ class HVMImageHandler(ImageHandler):
>                        (nics, mac, model))
>             vifname = "vif%d.%d-emu" % (self.vm.getDomid(), nics-1)
>             ret.append("-net")
> -            ret.append("tap,vlan=%d,ifname=%s,bridge=%s" %
> -                       (nics, vifname, bridge))
> +            if osdep.tapif_script is not None:
> +                script=",script=%s,downscript=%s" % \
> +                        (osdep.tapif_script, osdep.tapif_script)
> +            else:
> +                script=""
> +            ret.append("tap,vlan=%d,ifname=%s,bridge=%s%s" %
> +                       (nics, vifname, bridge, script))
>
>         if nics == 0:
>             ret.append("-net")
> diff -r 72ca5bc4eb6b -r 426bbf58cea4 tools/python/xen/xend/osdep.py
> --- a/tools/python/xen/xend/osdep.py    Tue May 22 11:29:50 2012 +0100
> +++ b/tools/python/xen/xend/osdep.py    Tue May 22 14:19:07 2012 +0100
> @@ -30,6 +30,10 @@ _vif_script = {
>     "SunOS": "vif-vnic"
>  }
>
> +_tapif_script = {
> +    "Linux": "no",
> +}
> +
>  PROC_XEN_BALLOON = '/proc/xen/balloon'
>  SYSFS_XEN_MEMORY = '/sys/devices/system/xen_memory/xen_memory0'
>
> @@ -257,6 +261,7 @@ def _get(var, default=None):
>
>  xend_autorestart = _get(_xend_autorestart)
>  vif_script = _get(_vif_script, "vif-bridge")
> +tapif_script = _get(_tapif_script)
>  lookup_balloon_stat = _get(_balloon_stat, _linux_balloon_stat)
>  get_cpuinfo = _get(_get_cpuinfo, _linux_get_cpuinfo)
>  prefork = _get(_get_prefork, _default_prefork)
>
>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.