+Fri Apr 24 13:17:47 BST 2009 Daniel P. Berrange <berrange@redhat.com>
+
+ Fix network config in XM driver
+ * src/xm_internal.c: Fix setting of bridge & script parameters
+ in VIF config
+ * src/xend_internal.h, src/xend_internal.c: Export the
+ default bridge script name to XM driver
+ * tests/xmconfigdata/*: Update to take account of script=
+ setting in VIF config
+
Fri Apr 24 12:06:47 CEST 2009 Daniel Veillard <veillard@redhat.com>
* po/*: updated a could of locale, regenerated
#endif /* PROXY */
-#ifdef __sun
-#define DEFAULT_VIF_SCRIPT "vif-vnic"
-#else
-#define DEFAULT_VIF_SCRIPT "vif-bridge"
-#endif
-
#ifdef WITH_RHEL5_API
#define XEND_CONFIG_MAX_VERS_NET_TYPE_IOEMU 0
#define XEND_CONFIG_MIN_VERS_PVFB_NEWCONF 2
#include "driver.h"
#include "buf.h"
+#ifdef __sun
+#define DEFAULT_VIF_SCRIPT "vif-vnic"
+#else
+#define DEFAULT_VIF_SCRIPT "vif-bridge"
+#endif
+
int
xenDaemonOpen_unix(virConnectPtr conn, const char *path);
virBufferVSprintf(&buf, ",bridge=%s", net->data.bridge.brname);
if (net->data.bridge.ipaddr)
virBufferVSprintf(&buf, ",ip=%s", net->data.bridge.ipaddr);
+ virBufferVSprintf(&buf, ",script=%s", DEFAULT_VIF_SCRIPT);
break;
case VIR_DOMAIN_NET_TYPE_ETHERNET:
break;
case VIR_DOMAIN_NET_TYPE_NETWORK:
- break;
+ {
+ virNetworkPtr network = virNetworkLookupByName(conn, net->data.network.name);
+ char *bridge;
+ if (!network) {
+ xenXMError(conn, VIR_ERR_NO_NETWORK, "%s",
+ net->data.network.name);
+ return -1;
+ }
+ bridge = virNetworkGetBridgeName(network);
+ virNetworkFree(network);
+ if (!bridge) {
+ xenXMError(conn, VIR_ERR_INTERNAL_ERROR,
+ _("network %s is not active"),
+ net->data.network.name);
+ return -1;
+ }
+
+ virBufferVSprintf(&buf, ",bridge=%s", bridge);
+ virBufferVSprintf(&buf, ",script=%s", DEFAULT_VIF_SCRIPT);
+ }
+ break;
default:
xenXMError(conn, VIR_ERR_INTERNAL_ERROR,
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso&test,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "none"
soundhw = "sb16,es1370"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "none"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "none"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,ioemu:hda,w" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr0,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr0,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "none"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr0'/>
+ <script path='vif-bridge'/>
</interface>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "tcp:127.0.0.1:7777"
serial = "none"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<parallel type='tcp'>
<source mode='connect' host='127.0.0.1' service='7777'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "file:/tmp/serial.log"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<serial type='file'>
<source path='/tmp/serial.log'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "null"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<serial type='null'>
<target port='0'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "pipe:/tmp/serial.pipe"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<serial type='pipe'>
<source path='/tmp/serial.pipe'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "pty"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<serial type='pty'>
<target port='0'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "stdio"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<serial type='stdio'>
<target port='0'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "telnet:127.0.0.1:9999,listen"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<serial type='tcp'>
<source mode='bind' host='127.0.0.1' service='9999'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "tcp:127.0.0.1:7777"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<serial type='tcp'>
<source mode='connect' host='127.0.0.1' service='7777'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "udp:127.0.0.1:9999@0.0.0.0:99998"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<serial type='udp'>
<source mode='bind' host='0.0.0.0' service='99998'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "unix:/tmp/serial.sock,listen"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<serial type='unix'>
<source mode='bind' path='/tmp/serial.sock'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "none"
soundhw = "sb16,es1370"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "none"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<input type='mouse' bus='usb'/>
<input type='mouse' bus='ps2'/>
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<input type='tablet'/>
<input type='mouse' bus='ps2'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "none"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso,hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,type=ioemu" ]
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "none"
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
+ <script path='vif-bridge'/>
</interface>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='123poi'/>
vnc = 1
vncunused = 1
disk = [ "phy:/dev/sda8,hda,w", ",hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:0a:7b:39,bridge=xenbr0,type=ioemu" ]
+vif = [ "mac=00:16:3e:0a:7b:39,bridge=xenbr0,script=vif-bridge,type=ioemu" ]
parallel = "none"
serial = "pty"
<interface type='bridge'>
<mac address='00:16:3e:0a:7b:39'/>
<source bridge='xenbr0'/>
+ <script path='vif-bridge'/>
</interface>
<serial type='pty'>
<target port='0'/>
on_crash = "restart"
vfb = [ "type=vnc,vncunused=1,vnclisten=127.0.0.1,vncpasswd=123poi" ]
disk = [ "phy:/dev/HostVG/XenGuest1,xvda,w" ]
-vif = [ "mac=00:16:3e:66:94:9c,bridge=br0,model=e1000" ]
+vif = [ "mac=00:16:3e:66:94:9c,bridge=br0,script=vif-bridge,model=e1000" ]
<interface type='bridge'>
<mac address='00:16:3e:66:94:9c'/>
<source bridge='br0'/>
+ <script path='vif-bridge'/>
<model type='e1000'/>
</interface>
<console type='pty'>
on_crash = "restart"
vfb = [ "type=vnc,vncunused=1,vnclisten=127.0.0.1,vncpasswd=123poi" ]
disk = [ "phy:/dev/HostVG/XenGuest1,xvda,w" ]
-vif = [ "mac=00:16:3e:66:94:9c,bridge=br0,model=e1000,vifname=net0" ]
+vif = [ "mac=00:16:3e:66:94:9c,bridge=br0,script=vif-bridge,model=e1000,vifname=net0" ]
<interface type='bridge'>
<mac address='00:16:3e:66:94:9c'/>
<source bridge='br0'/>
+ <script path='vif-bridge'/>
<target dev='net0'/>
<model type='e1000'/>
</interface>
on_crash = "restart"
vfb = [ "type=vnc,vncunused=0,vncdisplay=25,vnclisten=127.0.0.1,vncpasswd=123poi" ]
disk = [ "phy:/dev/HostVG/XenGuest1,xvda,w" ]
-vif = [ "mac=00:16:3e:66:94:9c,bridge=br0" ]
+vif = [ "mac=00:16:3e:66:94:9c,bridge=br0,script=vif-bridge" ]
<interface type='bridge'>
<mac address='00:16:3e:66:94:9c'/>
<source bridge='br0'/>
+ <script path='vif-bridge'/>
</interface>
<console type='pty'>
<target port='0'/>
on_crash = "restart"
vfb = [ "type=vnc,vncunused=1,vnclisten=127.0.0.1,vncpasswd=123poi" ]
disk = [ "phy:/dev/HostVG/XenGuest1,xvda,w" ]
-vif = [ "mac=00:16:3e:66:94:9c,bridge=br0" ]
+vif = [ "mac=00:16:3e:66:94:9c,bridge=br0,script=vif-bridge" ]
<interface type='bridge'>
<mac address='00:16:3e:66:94:9c'/>
<source bridge='br0'/>
+ <script path='vif-bridge'/>
</interface>
<console type='pty'>
<target port='0'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest1,xvda,w" ]
-vif = [ "mac=00:16:3e:66:94:9c,bridge=br0" ]
+vif = [ "mac=00:16:3e:66:94:9c,bridge=br0,script=vif-bridge" ]
<interface type='bridge'>
<mac address='00:16:3e:66:94:9c'/>
<source bridge='br0'/>
+ <script path='vif-bridge'/>
</interface>
<console type='pty'>
<target port='0'/>
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
disk = [ "phy:/dev/HostVG/XenGuest1,xvda,w" ]
-vif = [ "mac=00:16:3e:66:94:9c,bridge=br0" ]
+vif = [ "mac=00:16:3e:66:94:9c,bridge=br0,script=vif-bridge" ]
<interface type='bridge'>
<mac address='00:16:3e:66:94:9c'/>
<source bridge='br0'/>
+ <script path='vif-bridge'/>
</interface>
<console type='pty'>
<target port='0'/>
vnc = 1
vncunused = 1
disk = [ "phy:/dev/sda8,hda,w", ",hdc:cdrom,r" ]
-vif = [ "mac=00:16:3e:0a:7b:39,bridge=xenbr0,type=ioemu" ]
+vif = [ "mac=00:16:3e:0a:7b:39,bridge=xenbr0,script=vif-bridge,type=ioemu" ]
pci = [ "0001:0c:1b.2", "0000:01:13.0" ]
parallel = "none"
serial = "pty"
<interface type='bridge'>
<mac address='00:16:3e:0a:7b:39'/>
<source bridge='xenbr0'/>
+ <script path='vif-bridge'/>
</interface>
<serial type='pty'>
<target port='0'/>