An upcoming patch has a use for a tap device to be created that
doesn't need to be actually put into the "up" state, and keeping it
"down" keeps the output of ifconfig from being unnecessarily cluttered
(ifconfig won't show down interfaces unless you add "-a").

bridge.[ch]: add "up" as an arg to brAddTap()
uml_conf.c, qemu_command.c: add "up" (set to "true") to brAddTap() call.
---
 src/qemu/qemu_command.c |    1 +
 src/uml/uml_conf.c      |    1 +
 src/util/bridge.c       |    3 ++-
 src/util/bridge.h       |    1 +
 4 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index f78ce71..600830a 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -252,6 +252,7 @@ qemuNetworkIfaceConnect(virConnectPtr conn,
                         &net->ifname,
                         tapmac,
                         vnet_hdr,
+                        true,
                         &tapfd))) {
         if (err == ENOTSUP) {
             /* In this particular case, give a better diagnostic. */
diff --git a/src/uml/uml_conf.c b/src/uml/uml_conf.c
index e5dbed9..7c8fb16 100644
--- a/src/uml/uml_conf.c
+++ b/src/uml/uml_conf.c
@@ -143,6 +143,7 @@ umlConnectTapDevice(virConnectPtr conn,
                         &net->ifname,
                         tapmac,
                         0,
+                        true,
                         NULL))) {
         if (err == ENOTSUP) {
             /* In this particular case, give a better diagnostic. */
diff --git a/src/util/bridge.c b/src/util/bridge.c
index e53fce5..3ed71be 100644
--- a/src/util/bridge.c
+++ b/src/util/bridge.c
@@ -484,6 +484,7 @@ brAddTap(brControl *ctl,
          char **ifname,
          const unsigned char *macaddr,
          int vnet_hdr,
+         bool up,
          int *tapfd)
 {
     int fd;
@@ -530,7 +531,7 @@ brAddTap(brControl *ctl,
         goto error;
     if ((errno = brAddInterface(ctl, bridge, ifr.ifr_name)))
         goto error;
-    if ((errno = brSetInterfaceUp(ctl, ifr.ifr_name, 1)))
+    if (up && ((errno = brSetInterfaceUp(ctl, ifr.ifr_name, 1))))
         goto error;
     if (!tapfd &&
         (errno = ioctl(fd, TUNSETPERSIST, 1)))
diff --git a/src/util/bridge.h b/src/util/bridge.h
index e8e7eca..93f0b33 100644
--- a/src/util/bridge.h
+++ b/src/util/bridge.h
@@ -71,6 +71,7 @@ int     brAddTap                (brControl *ctl,
                                  char **ifname,
                                  const unsigned char *macaddr,
                                  int vnet_hdr,
+                                 bool up,
                                  int *tapfd);
 
 int     brDeleteTap             (brControl *ctl,
-- 
1.7.3.4

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to