summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémy Oudompheng <remy@archlinux.org>2011-06-05 21:45:29 +0200
committerRémy Oudompheng <remy@archlinux.org>2011-06-05 21:45:29 +0200
commit9aa2eaa4eb3bcc842994eeae8d14065a33181d6b (patch)
treed4d367a5a3c9b77f6c1ebf6da652d60e8e413504
parentdb8b46406b46132406aa46cecc8ccacdb9975f89 (diff)
downloadnetctl-9aa2eaa4eb3bcc842994eeae8d14065a33181d6b.tar.gz
netctl-9aa2eaa4eb3bcc842994eeae8d14065a33181d6b.tar.xz
Add support for creating tun/tap interfaces (without configuration)
-rw-r--r--examples/tuntap6
-rw-r--r--src/connections/tuntap34
2 files changed, 40 insertions, 0 deletions
diff --git a/examples/tuntap b/examples/tuntap
new file mode 100644
index 0000000..2917875
--- /dev/null
+++ b/examples/tuntap
@@ -0,0 +1,6 @@
+INTERFACE='tun0'
+CONNECTION='tuntap'
+MODE='tun'
+USER='nobody'
+GROUP='nobody'
+
diff --git a/src/connections/tuntap b/src/connections/tuntap
new file mode 100644
index 0000000..e2c8c5d
--- /dev/null
+++ b/src/connections/tuntap
@@ -0,0 +1,34 @@
+#! /bin/bash
+. /usr/lib/network/network
+
+tuntap_up() {
+ load_profile "$1"
+
+ if [ -e /sys/class/net/$INTERFACE ]; then
+ report_fail "Interface $INTERFACE already exists."
+ exit 1
+ else
+ ip tuntap add dev "$INTERFACE" mode "$MODE" \
+ user "$USER" group "$GROUP" &>/dev/null
+ fi
+ return 0
+}
+
+tuntap_down() {
+ load_profile "$1"
+
+ ip tuntap del "$INTERFACE" mode "$MODE" &>/dev/null
+ return 0
+}
+
+tuntap_status() {
+ if [ -e /sys/class/net/$INTERFACE ]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+tuntap_$1 "$2"
+exit $?
+# vim: set ts=4 et sw=4 tw=0: