diff options
author | Mikael Magnusson <mikma@users.sourceforge.net> | 2018-10-07 23:59:01 +0200 |
---|---|---|
committer | Mikael Magnusson <mikma@users.sourceforge.net> | 2019-11-30 23:14:59 +0100 |
commit | fbe240588f4dc1e8e60cee96b391ba0e09bb9ada (patch) | |
tree | bf8e994ab64c1995bd42855f03c7fc7e369d48c6 | |
parent | 9b0bc332d2596b3ab5e752589645858aad249164 (diff) |
luci-proto-tayga: Add support for TAYGA NAT64tayga
TAYGA is an out-of-kernel stateless NAT64 implementation for Linux.
It uses the TUN driver to exchange packets with the kernel,
which is the same driver used by OpenVPN and QEMU/KVM.
Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net>
3 files changed, 73 insertions, 0 deletions
diff --git a/protocols/luci-proto-tayga/Makefile b/protocols/luci-proto-tayga/Makefile new file mode 100644 index 000000000..a4c4467e4 --- /dev/null +++ b/protocols/luci-proto-tayga/Makefile @@ -0,0 +1,15 @@ +# +# This is free software, licensed under the Apache License, Version 2.0. +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=Support for NAT64 (TAYGA) +LUCI_DEPENDS:=+tayga +LUCI_PKGARCH:=all + +PKG_MAINTAINER:= + +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/protocols/luci-proto-tayga/luasrc/model/cbi/admin_network/proto_tayga.lua b/protocols/luci-proto-tayga/luasrc/model/cbi/admin_network/proto_tayga.lua new file mode 100644 index 000000000..862516d55 --- /dev/null +++ b/protocols/luci-proto-tayga/luasrc/model/cbi/admin_network/proto_tayga.lua @@ -0,0 +1,31 @@ +-- Licensed to the public under the Apache License 2.0. + +local map, section, net = ... + +local o = section:taboption("general", Value, "ipv4_addr", + translate("IPv4 address")) +o.datatype = "ip4addr" +o.rmempty = false + +o = section:taboption("general", Value, "dynamic_pool", + translate("IPv4 pool")) +o.datatype = "ipmask4" +o.rmempty = false + +o = section:taboption("general", Value, "prefix", + translate("Translation prefix"), + translate("Note: traffic between IPv6 hosts and private IPv4 addresses (i.e. to/from 64:ff9b::10.0.0.0/104, 64:ff9b::192.168.0.0/112, etc) will be dropped.\ +Use a translation prefix within your organization's IPv6 address space instead of 64:ff9b::/96 if you need your IPv6 hosts to communicate with private IPv4 addresses")) +o.datatype = "ipmask6" +o.default = "64:ff9b::/96" +o.rmempty = false + +o = section:taboption("general", Value, "ipv6_addr", + translate("IPv6 address")) +o.datatype = "ip6addr" +o.rmempty = true + +o = section:taboption("general", Flag, "noroutes", + translate("No routes"), translate("Don't create routes for the IPv4 pool, IPv6 prefix and IPv6 address.")) +o.datatype = "boolean" + diff --git a/protocols/luci-proto-tayga/luasrc/model/network/proto_tayga.lua b/protocols/luci-proto-tayga/luasrc/model/network/proto_tayga.lua new file mode 100644 index 000000000..9f6bb14c9 --- /dev/null +++ b/protocols/luci-proto-tayga/luasrc/model/network/proto_tayga.lua @@ -0,0 +1,27 @@ +-- Licensed to the public under the Apache License 2.0. + +local proto = luci.model.network:register_protocol("tayga") + +function proto.get_i18n(self) + return luci.i18n.translate("NAT64 (TAYGA)") +end + +function proto.opkg_package(self) + return "tayga" +end + +function proto.is_installed(self) + return nixio.fs.access("/lib/netifd/proto/tayga.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 |