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

Re: [Xen-devel] [PATCH] libxl: use preferred syntax for network device creation with upstream qemu



Ian Campbell <ian.campbell@xxxxxxxxxx> writes:

> # HG changeset patch
> # User Ian Campbell <ian.campbell@xxxxxxxxxx>
> # Date 1306311631 -3600
> # Node ID 6b1fe0cba8a2f0bcc1274c8e777da5b6c198b45d
> # Parent  8258c5a0ba35de937597e2c516bc88f8ebe1be35
> libxl: use preferred syntax for network device creation with upstream qemu
>
> Markus Armbruster points out in <m3r582pzc1.fsf@xxxxxxxxxxxxxxxxxxxxx>
> on qemu-devel that this is the prefered syntax going forward. Using it avoid
> needlessly instantiating a qemu "vlan" and instead creates a simply host end
> point and device.
>
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> Cc: Markus Armbruster <armbru@xxxxxxxxxx>

I figure this is a good idea.

Important optimizations like GSO or vhost-net aren't feasible with
-net's VLANs (no relation to IEEE 802.1Q) .  That's why -netdev got
added[*].  VLANs are still around for backward compatibility.  I hope we
can get rid of them eventually.

> diff -r 8258c5a0ba35 -r 6b1fe0cba8a2 tools/libxl/libxl_dm.c
> --- a/tools/libxl/libxl_dm.c  Tue May 24 16:28:07 2011 +0100
> +++ b/tools/libxl/libxl_dm.c  Wed May 25 09:20:31 2011 +0100
> @@ -336,11 +336,11 @@ static char ** libxl__build_device_model
>                  } else {
>                      ifname = vifs[i].ifname;
>                  }
> -                flexarray_append(dm_args, "-net");
> -                flexarray_append(dm_args, libxl__sprintf(gc, 
> "nic,vlan=%d,macaddr=%s,model=%s",
> -                            vifs[i].devid, smac, vifs[i].model));
> -                flexarray_append(dm_args, "-net");
> -                flexarray_append(dm_args, libxl__sprintf(gc, 
> "tap,vlan=%d,ifname=%s,script=%s",
> +                flexarray_append(dm_args, "-device");
> +                flexarray_append(dm_args, libxl__sprintf(gc, 
> "%s,netdev=net%d,mac=%s",
> +                                                         vifs[i].model, 
> vifs[i].devid, smac));

You can name the device with "id=WHATEVER".  IDs are handy when you need
to refer to a device, e.g. for hot-unplug with device_del.

> +                flexarray_append(dm_args, "-netdev");
> +                flexarray_append(dm_args, libxl__sprintf(gc, 
> "type=tap,id=net%d,ifname=%s,script=%s",
>                              vifs[i].devid, ifname, libxl_tapif_script(gc)));
>                  ioemu_vifs++;
>              }
>

More info on conversion to -device syntax in docs/qdev-device-use.txt.
It's a bit stale, patch for updating it is on qemu-devel.

[*] http://lists.gnu.org/archive/html/qemu-devel/2009-10/msg00858.html

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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