Currently, OSv needs root permission for tap networking.
However, if we have a tap interface with proper permission,
we can do tap networking without root permission.

This adds --tap option to specify tap interface.
It enables tap networking without root permission.

Usage:

On root:

adduser user1 kvm # allow user 1 to use kvm
tunctl -u user1 -t user1_tap0 # add tap interface for user1

On user1 (without root/sudo):

./scripts/run.py -n --tap user1_tap0

Signed-off-by: Wonsup Yoon <[email protected]>
---
 scripts/run.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/scripts/run.py b/scripts/run.py
index 26177d57..034228b1 100755
--- a/scripts/run.py
+++ b/scripts/run.py
@@ -190,7 +190,9 @@ def start_osv_qemu(options):
             net_device_options.append('mac=%s' % options.mac)
 
         if options.networking:
-            if options.vhost:
+            if options.tap:
+                args += ["-netdev", 
"tap,id=hn%d,ifname=%s,script=no,downscript=no" % (idx, options.tap)]
+            elif options.vhost:
                 args += ["-netdev", "tap,id=hn%d,script=%s,vhost=on" % (idx, 
os.path.join(osv_base, "scripts/qemu-ifup.sh"))]
             else:
                 for bridge_helper_dir in ['/usr/libexec', '/usr/lib/qemu']:
@@ -489,6 +491,8 @@ if __name__ == "__main__":
                         help="bridge name for tap networking")
     parser.add_argument("-v", "--vhost", action="store_true",
                         help="needs root. tap networking and vhost")
+    parser.add_argument("-t", "--tap", action="store",
+                        help="tap interface name")
     parser.add_argument("-m", "--memsize", action="store", default="2G",
                         help="specify memory: ex. 1G, 2G, ...")
     parser.add_argument("-c", "--vcpus", action="store", default="4",
-- 
2.20.1



-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osv-dev/20200413140011.10747-1-pusnow%40kaist.ac.kr.

Reply via email to