IPv6 updates
authorSteven Barth <steven@midlink.org>
Sun, 17 May 2015 08:38:03 +0000 (10:38 +0200)
committerSteven Barth <steven@midlink.org>
Sun, 17 May 2015 15:06:43 +0000 (17:06 +0200)
Signed-off-by: Steven Barth <steven@midlink.org>
protocols/luci-proto-3g/luasrc/model/cbi/admin_network/proto_3g.lua
protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua [new file with mode: 0644]
protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua [new file with mode: 0644]
protocols/luci-proto-ipv6/luasrc/model/network/proto_4x6.lua
protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_l2tp.lua
protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_ppp.lua
protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoa.lua
protocols/luci-proto-ppp/luasrc/model/cbi/admin_network/proto_pppoe.lua

index 59bf2f6..1b2e23c 100644 (file)
@@ -47,10 +47,11 @@ dialnumber.placeholder = "*99***1#"
 
 if luci.model.network:has_ipv6() then
 
 
 if luci.model.network:has_ipv6() then
 
-       ipv6 = section:taboption("advanced", Flag, "ipv6",
-               translate("Enable IPv6 negotiation on the PPP link"))
-
-       ipv6.default = ipv6.disabled
+       ipv6 = section:taboption("advanced", ListValue, "ipv6")
+       ipv6:value("auto", translate("Automatic"))
+       ipv6:value("0", translate("Disabled"))
+       ipv6:value("1", translate("Manual"))
+       ipv6.default = "auto"
 
 end
 
 
 end
 
diff --git a/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua b/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_464xlat.lua
new file mode 100644 (file)
index 0000000..5a37582
--- /dev/null
@@ -0,0 +1,33 @@
+-- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
+-- Copyright 2013 Steven Barth <steven@midlink.org>
+-- Licensed to the public under the Apache License 2.0.
+
+local map, section, net = ...
+local tunlink, defaultroute, metric, mtu
+
+section:taboption("general", Value, "ip6prefix",
+       translate("NAT64 Prefix"), translate("Leave empty to autodetect"))
+
+tunlink = section:taboption("advanced", DynamicList, "tunlink", translate("Tunnel Link"))
+tunlink.template = "cbi/network_netlist"
+tunlink.nocreate = true
+
+
+defaultroute = section:taboption("advanced", Flag, "defaultroute",
+       translate("Default gateway"),
+       translate("If unchecked, no default route is configured"))
+
+defaultroute.default = defaultroute.enabled
+
+
+metric = section:taboption("advanced", Value, "metric",
+       translate("Use gateway metric"))
+
+metric.placeholder = "0"
+metric.datatype    = "uinteger"
+metric:depends("defaultroute", defaultroute.enabled)
+
+
+mtu = section:taboption("advanced", Value, "mtu", translate("Use MTU on tunnel interface"))
+mtu.placeholder = "1280"
+mtu.datatype    = "max(9200)"
diff --git a/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua b/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua
new file mode 100644 (file)
index 0000000..2f8108e
--- /dev/null
@@ -0,0 +1,88 @@
+-- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
+-- Copyright 2013 Steven Barth <steven@midlink.org>
+-- Licensed to the public under the Apache License 2.0.
+
+local map, section, net = ...
+
+local peeraddr, ip6addr
+local tunlink, defaultroute, metric, ttl, mtu
+
+
+maptype = section:taboption("general", ListValue, "type", translate("Type"))
+maptype:value("map-e", "MAP-E")
+maptype:value("map-t", "MAP-T")
+maptype:value("lw4o6", "LW4over6")
+
+
+peeraddr = section:taboption("general", Value, "peeraddr",
+       translate("BR / DMR / AFTR"))
+
+peeraddr.rmempty  = false
+peeraddr.datatype = "ip6addr"
+
+
+ipaddr = section:taboption("general", Value, "ipaddr",
+       translate("IPv4 prefix"))
+ipaddr.datatype = "ip4addr"
+
+
+ip4prefixlen = s:taboption("general", Value, "ip4prefixlen",
+        translate("IPv4 prefix length"),
+        translate("The length of the IPv4 prefix in bits, the remainder is used in the IPv6 addresses."))
+
+ip4prefixlen.placeholder = "32"
+ip4prefixlen.datatype    = "range(0,32)"
+
+ip6addr = s:taboption("general", Value, "ip6prefix",
+        translate("IPv6 prefix"),
+        translate("The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"))
+
+ip6addr.rmempty  = false
+ip6addr.datatype = "ip6addr"
+
+
+ip6prefixlen = s:taboption("general", Value, "ip6prefixlen",
+        translate("IPv6 prefix length"),
+        translate("The length of the IPv6 prefix in bits"))
+
+ip6prefixlen.placeholder = "16"
+ip6prefixlen.datatype    = "range(0,64)"
+
+
+s:taboption("general", Value, "ealen",
+       translate("EA-bits length")).datatype = "range(0,16)"
+
+s:taboption("general", Value, "psidlen",
+       translate("PSID-bits length")).datatype = "range(0,16)"
+
+s:taboption("general", Value, "offset",
+       translate("PSID offset")).datatype = "range(0,16)"
+
+tunlink = section:taboption("advanced", DynamicList, "tunlink", translate("Tunnel Link"))
+tunlink.template = "cbi/network_netlist"
+tunlink.nocreate = true
+
+
+defaultroute = section:taboption("advanced", Flag, "defaultroute",
+       translate("Default gateway"),
+       translate("If unchecked, no default route is configured"))
+
+defaultroute.default = defaultroute.enabled
+
+
+metric = section:taboption("advanced", Value, "metric",
+       translate("Use gateway metric"))
+
+metric.placeholder = "0"
+metric.datatype    = "uinteger"
+metric:depends("defaultroute", defaultroute.enabled)
+
+
+ttl = section:taboption("advanced", Value, "ttl", translate("Use TTL on tunnel interface"))
+ttl.placeholder = "64"
+ttl.datatype    = "range(1,255)"
+
+
+mtu = section:taboption("advanced", Value, "mtu", translate("Use MTU on tunnel interface"))
+mtu.placeholder = "1280"
+mtu.datatype    = "max(9200)"
index daebc2f..d876d69 100644 (file)
@@ -5,13 +5,17 @@
 local netmod = luci.model.network
 
 local _, p
 local netmod = luci.model.network
 
 local _, p
-for _, p in ipairs({"dslite"}) do
+for _, p in ipairs({"dslite", "map", "464xlat"}) do
 
        local proto = netmod:register_protocol(p)
 
        function proto.get_i18n(self)
                if p == "dslite" then
                        return luci.i18n.translate("Dual-Stack Lite (RFC6333)")
 
        local proto = netmod:register_protocol(p)
 
        function proto.get_i18n(self)
                if p == "dslite" then
                        return luci.i18n.translate("Dual-Stack Lite (RFC6333)")
+               elseif p == "map" then
+                       return luci.i18n.translate("MAP / LW4over6")
+               elseif p == "464xlat" then
+                       return luci.i18n.translate("464XLAT (CLAT)")
                end
        end
 
                end
        end
 
@@ -22,6 +26,10 @@ for _, p in ipairs({"dslite"}) do
        function proto.opkg_package(self)
                if p == "dslite" then
                        return "ds-lite"
        function proto.opkg_package(self)
                if p == "dslite" then
                        return "ds-lite"
+               elseif p == "map" then
+                       return "map-t"
+               elseif p == "464xlat" then
+                       return "464xlat"
                end
        end
 
                end
        end
 
@@ -45,5 +53,11 @@ for _, p in ipairs({"dslite"}) do
                return (netmod:ifnameof(ifc) == self:ifname())
        end
 
                return (netmod:ifnameof(ifc) == self:ifname())
        end
 
-       netmod:register_pattern_virtual("^%s-%%w" % p)
+       if p == "dslite" then
+               netmod:register_pattern_virtual("^ds-%w")
+       elseif p == "map" then
+               netmod:register_pattern_virtual("^map-%w")
+       elseif p == "464xlat" then
+               netmod:register_pattern_virtual("^464-%w")
+       end
 end
 end
index 023cc02..523ef1b 100644 (file)
@@ -19,10 +19,11 @@ password.password = true
 
 if luci.model.network:has_ipv6() then
 
 
 if luci.model.network:has_ipv6() then
 
-       ipv6 = section:taboption("advanced", Flag, "ipv6",
-               translate("Enable IPv6 negotiation on the PPP link"))
-
-       ipv6.default = ipv6.disabled
+        ipv6 = section:taboption("advanced", ListValue, "ipv6")
+        ipv6:value("auto", translate("Automatic"))
+        ipv6:value("0", translate("Disabled"))
+        ipv6:value("1", translate("Manual"))
+        ipv6.default = "auto"
 
 end
 
 
 end
 
index 0fce97a..b14db59 100644 (file)
@@ -31,10 +31,11 @@ password.password = true
 
 if luci.model.network:has_ipv6() then
 
 
 if luci.model.network:has_ipv6() then
 
-       ipv6 = section:taboption("advanced", Flag, "ipv6",
-               translate("Enable IPv6 negotiation on the PPP link"))
-
-       ipv6.default = ipv6.disabled
+        ipv6 = section:taboption("advanced", ListValue, "ipv6")
+        ipv6:value("auto", translate("Automatic"))
+        ipv6:value("0", translate("Disabled"))
+        ipv6:value("1", translate("Manual"))
+        ipv6.default = "auto"
 
 end
 
 
 end
 
index 7df1004..8f463e5 100644 (file)
@@ -37,10 +37,11 @@ password.password = true
 
 if luci.model.network:has_ipv6() then
 
 
 if luci.model.network:has_ipv6() then
 
-       ipv6 = section:taboption("advanced", Flag, "ipv6",
-               translate("Enable IPv6 negotiation on the PPP link"))
-
-       ipv6.default = ipv6.disabled
+        ipv6 = section:taboption("advanced", ListValue, "ipv6")
+        ipv6:value("auto", translate("Automatic"))
+        ipv6:value("0", translate("Disabled"))
+        ipv6:value("1", translate("Manual"))
+        ipv6.default = "auto"
 
 end
 
 
 end
 
index 0e5bbaf..5a05cd2 100644 (file)
@@ -31,10 +31,11 @@ service.placeholder = translate("auto")
 
 if luci.model.network:has_ipv6() then
 
 
 if luci.model.network:has_ipv6() then
 
-       ipv6 = section:taboption("advanced", Flag, "ipv6",
-               translate("Enable IPv6 negotiation on the PPP link"))
-
-       ipv6.default = ipv6.disabled
+        ipv6 = section:taboption("advanced", ListValue, "ipv6")
+        ipv6:value("auto", translate("Automatic"))
+        ipv6:value("0", translate("Disabled"))
+        ipv6:value("1", translate("Manual"))
+        ipv6.default = "auto"
 
 end
 
 
 end