summaryrefslogtreecommitdiffhomepage
path: root/protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua
diff options
context:
space:
mode:
authordanrl <mail@danrl.com>2016-11-15 16:55:47 +0100
committerdanrl <mail@danrl.com>2016-11-15 21:43:09 +0100
commit9caa982c1958057a41c8b0bead13095d3c58466f (patch)
tree92c8418af26b7342a8c540160064a001b3127021 /protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua
parent5566b3acef245873d7cbb294f637a63a7f58f634 (diff)
luci-proto-wireguard: WireGuard VPN Protocol (New)
WireGuard is a novel VPN that runs inside the Linux Kernel and utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPSec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. It runs over UDP. Signed-off-by: Dan Lüdtke mail@danrl.com
Diffstat (limited to 'protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua')
-rw-r--r--protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua42
1 files changed, 42 insertions, 0 deletions
diff --git a/protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua b/protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua
new file mode 100644
index 0000000000..d6937618a7
--- /dev/null
+++ b/protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua
@@ -0,0 +1,42 @@
+-- Copyright 2016 Dan Luedtke <mail@danrl.com>
+-- Licensed to the public under the Apache License 2.0.
+
+local netmod = luci.model.network
+local interface = luci.model.network.interface
+local proto = netmod:register_protocol("wireguard")
+
+function proto.get_i18n(self)
+ return luci.i18n.translate("WireGuard VPN")
+end
+
+function proto.ifname(self)
+ return self.sid
+end
+
+function proto.get_interface(self)
+ return interface(self:ifname(), self)
+end
+
+function proto.opkg_package(self)
+ return "wireguard-tools"
+end
+
+function proto.is_installed(self)
+ return nixio.fs.access("/lib/netifd/proto/wireguard.sh")
+end
+
+function proto.is_floating(self)
+ return true
+end
+
+function proto.is_virtual(self)
+ return true
+end
+
+function proto.get_interfaces(self)
+ return nil
+end
+
+function proto.contains_interface(self, ifc)
+ return (netmod:ifnameof(ifc) == self:ifname())
+end