Ian Campbell
2011-May-25 08:20 UTC
[Xen-devel] [PATCH] libxl: use preferred syntax for network device creation with upstream qemu
# HG changeset patch # User Ian Campbell <ian.campbell@citrix.com> # 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@blackfin.pond.sub.org> 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@citrix.com> Cc: Markus Armbruster <armbru@redhat.com> 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)); + 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++; } _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Markus Armbruster
2011-May-25 14:59 UTC
Re: [Xen-devel] [PATCH] libxl: use preferred syntax for network device creation with upstream qemu
Ian Campbell <ian.campbell@citrix.com> writes:> # HG changeset patch > # User Ian Campbell <ian.campbell@citrix.com> > # 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@blackfin.pond.sub.org> > 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@citrix.com> > Cc: Markus Armbruster <armbru@redhat.com>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@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Campbell
2011-May-26 08:00 UTC
Re: [Xen-devel] [PATCH] libxl: use preferred syntax for network device creation with upstream qemu
On Wed, 2011-05-25 at 15:59 +0100, Markus Armbruster wrote:> Ian Campbell <ian.campbell@citrix.com> writes: > > > # HG changeset patch > > # User Ian Campbell <ian.campbell@citrix.com> > > # 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@blackfin.pond.sub.org> > > 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@citrix.com> > > Cc: Markus Armbruster <armbru@redhat.com> > > I figure this is a good idea.Thanks for confirming.> 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.Sure, I just couldn''t think of a better name than net<n>.> > + 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.Thanks for the reference. Looks like I need to consider a similar update for disk devices too.> > [*] http://lists.gnu.org/archive/html/qemu-devel/2009-10/msg00858.html_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Markus Armbruster
2011-May-26 08:22 UTC
Re: [Xen-devel] [PATCH] libxl: use preferred syntax for network device creation with upstream qemu
Ian Campbell <Ian.Campbell@eu.citrix.com> writes:> On Wed, 2011-05-25 at 15:59 +0100, Markus Armbruster wrote: >> Ian Campbell <ian.campbell@citrix.com> writes: >> >> > # HG changeset patch >> > # User Ian Campbell <ian.campbell@citrix.com> >> > # 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@blackfin.pond.sub.org> >> > 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@citrix.com> >> > Cc: Markus Armbruster <armbru@redhat.com> >> >> I figure this is a good idea. > > Thanks for confirming. > >> 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. > > Sure, I just couldn''t think of a better name than net<n>.Sorry, I wasn''t writing clearly, let me retry. You''re naming the host part of the NIC, created with -netdev. You can also name the guest part, created with -device.>> > + 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. > > Thanks for the reference. Looks like I need to consider a similar update > for disk devices too.There is no urgent need to convert, as the old syntax still works. There are no plans to retire the old syntax. However, the new syntax gives you more control. It''s a bit more verbose in places, but non-human users tend not to mind that.>> [*] http://lists.gnu.org/archive/html/qemu-devel/2009-10/msg00858.html_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Campbell
2011-May-26 08:53 UTC
Re: [Xen-devel] [PATCH] libxl: use preferred syntax for network device creation with upstream qemu
On Thu, 2011-05-26 at 09:22 +0100, Markus Armbruster wrote:> Ian Campbell <Ian.Campbell@eu.citrix.com> writes: > > > On Wed, 2011-05-25 at 15:59 +0100, Markus Armbruster wrote: > >> Ian Campbell <ian.campbell@citrix.com> writes:> >> 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. > > > > Sure, I just couldn''t think of a better name than net<n>. > > Sorry, I wasn''t writing clearly, let me retry. You''re naming the host > part of the NIC, created with -netdev. You can also name the guest > part, created with -device.Oh, I see, thanks. Make sense to call it nic<n> then I guess. # HG changeset patch # User Ian Campbell <ian.campbell@citrix.com> # Date 1306399775 -3600 # Node ID 7cb3b0b7f45d6272ef2c67dffd293aaf984c2ecc # Parent 33cb7fe0d6d9f81292005e5671ebef7889c1d1ba libxl: use preferred syntax for network device creation with upstream qemu Markus Armbruster points out in <m3r582pzc1.fsf@blackfin.pond.sub.org> 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@citrix.com> Cc: Markus Armbruster <armbru@redhat.com> diff -r 33cb7fe0d6d9 -r 7cb3b0b7f45d tools/libxl/libxl_dm.c --- a/tools/libxl/libxl_dm.c Wed May 25 11:15:45 2011 +0100 +++ b/tools/libxl/libxl_dm.c Thu May 26 09:49:35 2011 +0100 @@ -336,12 +336,16 @@ 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", - vifs[i].devid, ifname, libxl_tapif_script(gc))); + flexarray_append(dm_args, "-device"); + flexarray_append(dm_args, + libxl__sprintf(gc, "%s,id=nic%d,netdev=net%d,mac=%s", + vifs[i].model, vifs[i].devid, + vifs[i].devid, smac)); + 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++; } } _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2011-May-26 14:38 UTC
Re: [Xen-devel] [PATCH] libxl: use preferred syntax for network device creation with upstream qemu [and 1 more messages]
Markus Armbruster writes ("Re: [Xen-devel] [PATCH] libxl: use preferred syntax for network device creation with upstream qemu"):> I figure this is a good idea.Thanks, I''ll take that as an ack. However, sorry to nitpic, but: Ian Campbell writes ("[Xen-devel] [PATCH] libxl: use preferred syntax for network device creation with upstream qemu"):> - flexarray_append(dm_args, libxl__sprintf(gc, "nic,vlan=%d,macaddr=%s,model=%s", > - flexarray_append(dm_args, libxl__sprintf(gc, "tap,vlan=%d,ifname=%s,script=%s", > + flexarray_append(dm_args, libxl__sprintf(gc, "%s,netdev=net%d,mac=%s", > + vifs[i].model, vifs[i].devid, smac)); > + flexarray_append(dm_args, libxl__sprintf(gc, "type=tap,id=net%d,ifname=%s,script=%s",This increases the number of overly-long lines. It''s very hard to read on my screen:> - flexarray_append(dm_args, libxl__sprintf(gc, "nic,vlan=%d,macaddr=%s,model=%s",> - flexarray_append(dm_args, libxl__sprintf(gc, "tap,vlan=%d,ifname=%s,script=%s",> + flexarray_append(dm_args, libxl__sprintf(gc, "%s,netdev=net%d,mac=%s",> + vifs[i].model, vifs[i].devid, smac));> + flexarray_append(dm_args, libxl__sprintf(gc, "type=tap,id=net%d,ifname=%s,script=%s", Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Campbell
2011-May-26 14:40 UTC
Re: [Xen-devel] [PATCH] libxl: use preferred syntax for network device creation with upstream qemu [and 1 more messages]
On Thu, 2011-05-26 at 15:38 +0100, Ian Jackson wrote:> Markus Armbruster writes ("Re: [Xen-devel] [PATCH] libxl: use preferred syntax for network device creation with upstream qemu"): > > I figure this is a good idea. > > Thanks, I''ll take that as an ack. > > However, sorry to nitpic, but: > > Ian Campbell writes ("[Xen-devel] [PATCH] libxl: use preferred syntax for network device creation with upstream qemu"): > > - flexarray_append(dm_args, libxl__sprintf(gc, "nic,vlan=%d,macaddr=%s,model=%s", > > - flexarray_append(dm_args, libxl__sprintf(gc, "tap,vlan=%d,ifname=%s,script=%s", > > + flexarray_append(dm_args, libxl__sprintf(gc, "%s,netdev=net%d,mac=%s", > > + vifs[i].model, vifs[i].devid, smac)); > > + flexarray_append(dm_args, libxl__sprintf(gc, "type=tap,id=net%d,ifname=%s,script=%s", > > This increases the number of overly-long lines. It''s very hard to > read on my screen:I noticed that and fixed it in the replacement patch, see <1306399985.775.22.camel@zakaz.uk.xensource.com>> > > - flexarray_append(dm_args, libxl__sprintf(gc, "nic,vlan=%d,ma > caddr=%s,model=%s", > > - flexarray_append(dm_args, libxl__sprintf(gc, "tap,vlan=%d,if > name=%s,script=%s", > > + flexarray_append(dm_args, libxl__sprintf(gc, "%s,netdev=net% > d,mac=%s", > > + vifs[i].model, vifs > [i].devid, smac)); > > + flexarray_append(dm_args, libxl__sprintf(gc, "type=tap,id=ne > t%d,ifname=%s,script=%s", > > Ian. >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2011-May-26 16:17 UTC
Re: [Xen-devel] [PATCH] libxl: use preferred syntax for network device creation with upstream qemu
Ian Campbell writes ("Re: [Xen-devel] [PATCH] libxl: use preferred syntax for network device creation with upstream qemu"):> libxl: use preferred syntax for network device creation with upstream qemuApplied (fixing up the formatting to stay within 80 columns). Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel