[libvirt] [PATCH] bhyve: fix interface type handling for argv2xml

Roman Bogorodskiy bogorodskiy at gmail.com
Fri Jan 6 17:12:39 UTC 2017


When generating a domain XML from native command (i.e. via
the connectDomainXMLFromNative call), we should use
interface type 'bridge' rather than 'ethernet' because we only
support bridges at this point.

As we don't have bridge name explicitly specified on the command line,
just use 'virbr0' as a default.
---
 src/bhyve/bhyve_parse_command.c                       | 9 ++++++---
 tests/bhyveargv2xmldata/bhyveargv2xml-virtio-net.xml  | 6 ++++--
 tests/bhyveargv2xmldata/bhyveargv2xml-virtio-net4.xml | 3 ++-
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/bhyve/bhyve_parse_command.c b/src/bhyve/bhyve_parse_command.c
index 619004298..5b8712388 100644
--- a/src/bhyve/bhyve_parse_command.c
+++ b/src/bhyve/bhyve_parse_command.c
@@ -507,9 +507,12 @@ bhyveParsePCINet(virDomainDefPtr def,
     if (VIR_ALLOC(net) < 0)
         goto cleanup;
 
-    /* Let's just assume it is VIR_DOMAIN_NET_TYPE_ETHERNET, it could also be
-     * a bridge, but this is the most generic option. */
-    net->type = VIR_DOMAIN_NET_TYPE_ETHERNET;
+    /* As we only support interface type='bridge' and cannot
+     * guess the actual bridge name from the command line,
+     * try to come up with some reasonable defaults */
+    net->type = VIR_DOMAIN_NET_TYPE_BRIDGE;
+    if (VIR_STRDUP(net->data.bridge.brname, "virbr0") < 0)
+            goto error;
 
     net->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI;
     net->info.addr.pci.slot = pcislot;
diff --git a/tests/bhyveargv2xmldata/bhyveargv2xml-virtio-net.xml b/tests/bhyveargv2xmldata/bhyveargv2xml-virtio-net.xml
index 09cc79b92..5895c8c53 100644
--- a/tests/bhyveargv2xmldata/bhyveargv2xml-virtio-net.xml
+++ b/tests/bhyveargv2xmldata/bhyveargv2xml-virtio-net.xml
@@ -12,13 +12,15 @@
   <on_reboot>destroy</on_reboot>
   <on_crash>destroy</on_crash>
   <devices>
-    <interface type='ethernet'>
+    <interface type='bridge'>
       <mac address='52:54:00:00:00:00'/>
+      <source bridge='virbr0'/>
       <target dev='tap0'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
     </interface>
-    <interface type='ethernet'>
+    <interface type='bridge'>
       <mac address='fe:ed:ad:ea:df:15'/>
+      <source bridge='virbr0'/>
       <target dev='tap1'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
     </interface>
diff --git a/tests/bhyveargv2xmldata/bhyveargv2xml-virtio-net4.xml b/tests/bhyveargv2xmldata/bhyveargv2xml-virtio-net4.xml
index e1bda46a1..5f1972080 100644
--- a/tests/bhyveargv2xmldata/bhyveargv2xml-virtio-net4.xml
+++ b/tests/bhyveargv2xmldata/bhyveargv2xml-virtio-net4.xml
@@ -12,8 +12,9 @@
   <on_reboot>destroy</on_reboot>
   <on_crash>destroy</on_crash>
   <devices>
-    <interface type='ethernet'>
+    <interface type='bridge'>
       <mac address='00:00:00:00:00:00'/>
+      <source bridge='virbr0'/>
       <target dev='tap1'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
     </interface>
-- 
2.11.0




More information about the libvir-list mailing list