[libvirt] [PATCH v2 4/4] virsh attach-interface: Allow macvtap hotplug

Michal Privoznik mprivozn at redhat.com
Mon Feb 9 15:20:06 UTC 2015


Our hotplug code supports macvtap insertion to guests. However, we
somehow forgot about 'attach-interface' (which tries to build XML from
passed arguments and use virDomainAttachDeviceFlags()).
New type is accessible under 'direct' type, to keep the same type as
used in domain XML.

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 tools/virsh-domain.c |  4 +++-
 tools/virsh.pod      | 14 ++++++++------
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 117c52b..13c0b83 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -984,6 +984,9 @@ cmdAttachInterface(vshControl *ctl, const vshCmd *cmd)
         virBufferAsprintf(&buf, "<source %s='%s'/>\n",
                           virDomainNetTypeToString(typ), source);
         break;
+    case VIR_DOMAIN_NET_TYPE_DIRECT:
+        virBufferAsprintf(&buf, "<source dev='%s'/>\n", source);
+        break;
 
     case VIR_DOMAIN_NET_TYPE_USER:
     case VIR_DOMAIN_NET_TYPE_ETHERNET:
@@ -992,7 +995,6 @@ cmdAttachInterface(vshControl *ctl, const vshCmd *cmd)
     case VIR_DOMAIN_NET_TYPE_CLIENT:
     case VIR_DOMAIN_NET_TYPE_MCAST:
     case VIR_DOMAIN_NET_TYPE_INTERNAL:
-    case VIR_DOMAIN_NET_TYPE_DIRECT:
     case VIR_DOMAIN_NET_TYPE_HOSTDEV:
     case VIR_DOMAIN_NET_TYPE_LAST:
         vshError(ctl, _("No support for %s in command 'attach-interface'"),
diff --git a/tools/virsh.pod b/tools/virsh.pod
index a3f527f..50de32c 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -2391,12 +2391,14 @@ Likewise, I<--shareable> is an alias for I<--mode shareable>.
 [I<--target target>] [I<--mac mac>] [I<--script script>] [I<--model model>]
 [I<--config>] [I<--inbound average,peak,burst>] [I<--outbound average,peak,burst>]
 
-Attach a new network interface to the domain.  I<type> can be either
-I<network> to indicate connection via a libvirt virtual network or
-I<bridge> to indicate connection via a bridge device on the host.
-I<source> indicates the source of the connection (either the name of a
-network, or of a bridge device).  I<target> is used to specify the
-tap/macvtap device to be used to connect the domain to the
+Attach a new network interface to the domain.  I<type> can be
+I<network> to indicate connection via a libvirt virtual network, or
+I<bridge> to indicate connection via a bridge device on the host, or
+I<direct> to indicate connection directly to one of the host's network
+interfaces or bridges.  I<source> indicates the source of the
+connection (the name of a network, or of a bridge device, or the
+host's network interfaces or bridges).  I<target> is used to specify
+the tap/macvtap device to be used to connect the domain to the
 source. Names starting with 'vnet' are considered as auto-generated
 and are blanked out/regenerated each time the interface is attached.
 I<mac> specifies the MAC address of the network interface; if a MAC
-- 
2.0.5




More information about the libvir-list mailing list