From: Jo-Philipp Wich Date: Tue, 22 Jan 2013 10:44:28 +0000 (+0000) Subject: move dhcpv6 support into luci-proto-6x4, rename luci-proto-6x4 to luci-proto-ipv6 X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=686de0fbec7d31cb6ae60531a87618b65a5dc0be move dhcpv6 support into luci-proto-6x4, rename luci-proto-6x4 to luci-proto-ipv6 --- diff --git a/contrib/package/luci/Makefile b/contrib/package/luci/Makefile index f0029eb1e..6bd26feb6 100644 --- a/contrib/package/luci/Makefile +++ b/contrib/package/luci/Makefile @@ -212,7 +212,7 @@ endef $(eval $(call protocol,core,Support for static/dhcp/none)) $(eval $(call protocol,ppp,Support for PPP/PPPoE/PPPoA/PPtP)) -$(eval $(call protocol,6x4,Support for 6in4/6to4/6rd,+PACKAGE_luci-proto-6x4:6in4 +PACKAGE_luci-proto-6x4:6to4 +PACKAGE_luci-proto-6x4:6rd)) +$(eval $(call protocol,ipv6,Support for DHCPv6/6in4/6to4/6rd,+PACKAGE_luci-proto-ipv6:6in4 +PACKAGE_luci-proto-ipv6:6to4 +PACKAGE_luci-proto-ipv6:6rd +PACKAGE_luci-proto-ipv6:ipv6-support)) $(eval $(call protocol,3g,Support for 3G,+PACKAGE_luci-proto-3g:comgt)) $(eval $(call protocol,relay,Support for relayd pseudo bridges,+PACKAGE_luci-proto-relay:relayd)) diff --git a/libs/core/luasrc/model/network.lua b/libs/core/luasrc/model/network.lua index f251411ec..09a58d742 100644 --- a/libs/core/luasrc/model/network.lua +++ b/libs/core/luasrc/model/network.lua @@ -749,8 +749,6 @@ function protocol.get_i18n(self) return lng.translate("Static address") elseif p == "dhcp" then return lng.translate("DHCP client") - elseif p == "dhcpv6" then - return lng.translate("DHCPv6 client") else return lng.translate("Unknown") end @@ -1548,15 +1546,8 @@ end -- setup base protocols _M:register_protocol("static") _M:register_protocol("dhcp") - -local dhcpv6 = _M:register_protocol("dhcpv6") -function dhcpv6.is_installed(self) - return nfs.access("/lib/netifd/proto/dhcpv6.sh") -end - _M:register_protocol("none") - -- load protocol extensions local exts = nfs.dir(utl.libpath() .. "/model/network") if exts then diff --git a/protocols/6x4/Makefile b/protocols/6x4/Makefile deleted file mode 100644 index f7fac7740..000000000 --- a/protocols/6x4/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -include ../../build/config.mk -include ../../build/module.mk diff --git a/protocols/6x4/luasrc/model/cbi/admin_network/proto_6in4.lua b/protocols/6x4/luasrc/model/cbi/admin_network/proto_6in4.lua deleted file mode 100644 index 0b1f31ce7..000000000 --- a/protocols/6x4/luasrc/model/cbi/admin_network/proto_6in4.lua +++ /dev/null @@ -1,102 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2011 Jo-Philipp Wich - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 -]]-- - -local map, section, net = ... - -local ipaddr, peeraddr, ip6addr, tunnelid, username, password -local defaultroute, metric, ttl, mtu - - -ipaddr = s:taboption("general", Value, "ipaddr", - translate("Local IPv4 address"), - translate("Leave empty to use the current WAN address")) - -ipaddr.datatype = "ip4addr" - - -peeraddr = s:taboption("general", Value, "peeraddr", - translate("Remote IPv4 address"), - translate("This is usually the address of the nearest PoP operated by the tunnel broker")) - -peeraddr.rmempty = false -peeraddr.datatype = "ip4addr" - - -ip6addr = s:taboption("general", Value, "ip6addr", - translate("Local IPv6 address"), - translate("This is the local endpoint address assigned by the tunnel broker, it usually ends with :2")) - -ip6addr.datatype = "ip6addr" - - -local ip6prefix = s:taboption("general", Value, "ip6prefix", - translate("IPv6 routed prefix"), - translate("This is the prefix routed to you by the tunnel broker for use by clients")) - -ip6prefix.datatype = "ip6addr" - - -local update = section:taboption("general", Flag, "_update", - translate("Dynamic tunnel"), - translate("Enable HE.net dynamic endpoint update")) - -update.enabled = "1" -update.disabled = "0" - -function update.write() end -function update.remove() end -function update.cfgvalue(self, section) - return (tonumber(m:get(section, "tunnelid")) ~= nil) - and self.enabled or self.disabled -end - - -tunnelid = section:taboption("general", Value, "tunnelid", translate("Tunnel ID")) -tunnelid.datatype = "uinteger" -tunnelid:depends("_update", update.enabled) - - -username = section:taboption("general", Value, "username", - translate("HE.net user ID"), - translate("This is the 32 byte hex encoded user ID, not the login name")) - -username:depends("_update", update.enabled) - - -password = section:taboption("general", Value, "password", translate("HE.net password")) -password.password = true -password:depends("_update", update.enabled) - - -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(1500)" diff --git a/protocols/6x4/luasrc/model/cbi/admin_network/proto_6rd.lua b/protocols/6x4/luasrc/model/cbi/admin_network/proto_6rd.lua deleted file mode 100644 index a4b50efa2..000000000 --- a/protocols/6x4/luasrc/model/cbi/admin_network/proto_6rd.lua +++ /dev/null @@ -1,81 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2011-2012 Jo-Philipp Wich - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 -]]-- - -local map, section, net = ... - -local ipaddr, peeraddr, ip6addr, tunnelid, username, password -local defaultroute, metric, ttl, mtu - - -ipaddr = s:taboption("general", Value, "ipaddr", - translate("Local IPv4 address"), - translate("Leave empty to use the current WAN address")) - -ipaddr.datatype = "ip4addr" - - -peeraddr = s:taboption("general", Value, "peeraddr", - translate("Remote IPv4 address"), - translate("This IPv4 address of the relay")) - -peeraddr.rmempty = false -peeraddr.datatype = "ip4addr" - - -ip6addr = s:taboption("general", Value, "ip6prefix", - translate("IPv6 prefix"), - translate("The IPv6 prefix assigned to the provider, usually ends with ::")) - -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,128)" - - -ip6prefixlen = 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.")) - -ip6prefixlen.placeholder = "0" -ip6prefixlen.datatype = "range(0,32)" - - - -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(1500)" diff --git a/protocols/6x4/luasrc/model/cbi/admin_network/proto_6to4.lua b/protocols/6x4/luasrc/model/cbi/admin_network/proto_6to4.lua deleted file mode 100644 index d9d7b01a9..000000000 --- a/protocols/6x4/luasrc/model/cbi/admin_network/proto_6to4.lua +++ /dev/null @@ -1,46 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2011 Jo-Philipp Wich - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 -]]-- - -local map, section, net = ... - -local ipaddr, defaultroute, metric, ttl, mtu - - -ipaddr = section:taboption("general", Value, "ipaddr", - translate("Local IPv4 address"), - translate("Leave empty to use the current WAN address")) - -ipaddr.datatype = "ip4addr" - -defaultroute = section:taboption("advanced", Flag, "defaultroute", - translate("Use 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(1500)" diff --git a/protocols/6x4/luasrc/model/network/proto_6x4.lua b/protocols/6x4/luasrc/model/network/proto_6x4.lua deleted file mode 100644 index b800b0b54..000000000 --- a/protocols/6x4/luasrc/model/network/proto_6x4.lua +++ /dev/null @@ -1,66 +0,0 @@ ---[[ -LuCI - Network model - 6to4, 6in4 & 6rd protocol extensions - -Copyright 2011 Jo-Philipp Wich - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -]]-- - -local netmod = luci.model.network - -local _, p -for _, p in ipairs({"6in4", "6to4", "6rd"}) do - - local proto = netmod:register_protocol(p) - - function proto.get_i18n(self) - if p == "6in4" then - return luci.i18n.translate("IPv6-in-IPv4 (RFC4213)") - elseif p == "6to4" then - return luci.i18n.translate("IPv6-over-IPv4 (6to4)") - elseif p == "6rd" then - return luci.i18n.translate("IPv6-over-IPv4 (6rd)") - end - end - - function proto.ifname(self) - return p .. "-" .. self.sid - end - - function proto.opkg_package(self) - return p - end - - function proto.is_installed(self) - return nixio.fs.access("/lib/netifd/proto/" .. p .. ".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, ifname) - return (netmod:ifnameof(ifc) == self:ifname()) - end - - netmod:register_pattern_virtual("^%s-%%w" % p) -end diff --git a/protocols/core/luasrc/model/cbi/admin_network/proto_dhcpv6.lua b/protocols/core/luasrc/model/cbi/admin_network/proto_dhcpv6.lua deleted file mode 100644 index ad2430a8d..000000000 --- a/protocols/core/luasrc/model/cbi/admin_network/proto_dhcpv6.lua +++ /dev/null @@ -1,62 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2013 Steven Barth - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 -]]-- - -local map, section, net = ... - - -local o = section:taboption("general", ListValue, "reqaddress", - translate("Request IPv6-address")) -o:value("try") -o:value("force") -o:value("none", "disabled") -o.default = "try" - - -o = section:taboption("general", Value, "reqprefix", - translate("Request IPv6-prefix of length")) -o:value("auto", translate("automatic")) -o:value("no", translate("disabled")) -o:value("48") -o:value("52") -o:value("56") -o:value("60") -o:value("64") -o.default = "auto" - - -o = section:taboption("advanced", Flag, "defaultroute", - translate("Use default gateway"), - translate("If unchecked, no default route is configured")) -o.default = o.enabled - - -o = section:taboption("advanced", Flag, "peerdns", - translate("Use DNS servers advertised by peer"), - translate("If unchecked, the advertised DNS server addresses are ignored")) -o.default = o.enabled - - -o = section:taboption("advanced", DynamicList, "dns", - translate("Use custom DNS servers")) -o:depends("peerdns", "") -o.datatype = "list(ip6addr)" -o.cast = "string" - - -o = section:taboption("advanced", Value, "clientid", - translate("Client ID to send when requesting DHCP")) - -luci.tools.proto.opt_macaddr(section, ifc, translate("Override MAC address")) - -o = section:taboption("advanced", Value, "mtu", translate("Override MTU")) -o.placeholder = "1500" -o.datatype = "max(1500)" diff --git a/protocols/ipv6/Makefile b/protocols/ipv6/Makefile new file mode 100644 index 000000000..f7fac7740 --- /dev/null +++ b/protocols/ipv6/Makefile @@ -0,0 +1,2 @@ +include ../../build/config.mk +include ../../build/module.mk diff --git a/protocols/ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua b/protocols/ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua new file mode 100644 index 000000000..0b1f31ce7 --- /dev/null +++ b/protocols/ipv6/luasrc/model/cbi/admin_network/proto_6in4.lua @@ -0,0 +1,102 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2011 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 +]]-- + +local map, section, net = ... + +local ipaddr, peeraddr, ip6addr, tunnelid, username, password +local defaultroute, metric, ttl, mtu + + +ipaddr = s:taboption("general", Value, "ipaddr", + translate("Local IPv4 address"), + translate("Leave empty to use the current WAN address")) + +ipaddr.datatype = "ip4addr" + + +peeraddr = s:taboption("general", Value, "peeraddr", + translate("Remote IPv4 address"), + translate("This is usually the address of the nearest PoP operated by the tunnel broker")) + +peeraddr.rmempty = false +peeraddr.datatype = "ip4addr" + + +ip6addr = s:taboption("general", Value, "ip6addr", + translate("Local IPv6 address"), + translate("This is the local endpoint address assigned by the tunnel broker, it usually ends with :2")) + +ip6addr.datatype = "ip6addr" + + +local ip6prefix = s:taboption("general", Value, "ip6prefix", + translate("IPv6 routed prefix"), + translate("This is the prefix routed to you by the tunnel broker for use by clients")) + +ip6prefix.datatype = "ip6addr" + + +local update = section:taboption("general", Flag, "_update", + translate("Dynamic tunnel"), + translate("Enable HE.net dynamic endpoint update")) + +update.enabled = "1" +update.disabled = "0" + +function update.write() end +function update.remove() end +function update.cfgvalue(self, section) + return (tonumber(m:get(section, "tunnelid")) ~= nil) + and self.enabled or self.disabled +end + + +tunnelid = section:taboption("general", Value, "tunnelid", translate("Tunnel ID")) +tunnelid.datatype = "uinteger" +tunnelid:depends("_update", update.enabled) + + +username = section:taboption("general", Value, "username", + translate("HE.net user ID"), + translate("This is the 32 byte hex encoded user ID, not the login name")) + +username:depends("_update", update.enabled) + + +password = section:taboption("general", Value, "password", translate("HE.net password")) +password.password = true +password:depends("_update", update.enabled) + + +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(1500)" diff --git a/protocols/ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua b/protocols/ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua new file mode 100644 index 000000000..a4b50efa2 --- /dev/null +++ b/protocols/ipv6/luasrc/model/cbi/admin_network/proto_6rd.lua @@ -0,0 +1,81 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2011-2012 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 +]]-- + +local map, section, net = ... + +local ipaddr, peeraddr, ip6addr, tunnelid, username, password +local defaultroute, metric, ttl, mtu + + +ipaddr = s:taboption("general", Value, "ipaddr", + translate("Local IPv4 address"), + translate("Leave empty to use the current WAN address")) + +ipaddr.datatype = "ip4addr" + + +peeraddr = s:taboption("general", Value, "peeraddr", + translate("Remote IPv4 address"), + translate("This IPv4 address of the relay")) + +peeraddr.rmempty = false +peeraddr.datatype = "ip4addr" + + +ip6addr = s:taboption("general", Value, "ip6prefix", + translate("IPv6 prefix"), + translate("The IPv6 prefix assigned to the provider, usually ends with ::")) + +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,128)" + + +ip6prefixlen = 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.")) + +ip6prefixlen.placeholder = "0" +ip6prefixlen.datatype = "range(0,32)" + + + +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(1500)" diff --git a/protocols/ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua b/protocols/ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua new file mode 100644 index 000000000..d9d7b01a9 --- /dev/null +++ b/protocols/ipv6/luasrc/model/cbi/admin_network/proto_6to4.lua @@ -0,0 +1,46 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2011 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 +]]-- + +local map, section, net = ... + +local ipaddr, defaultroute, metric, ttl, mtu + + +ipaddr = section:taboption("general", Value, "ipaddr", + translate("Local IPv4 address"), + translate("Leave empty to use the current WAN address")) + +ipaddr.datatype = "ip4addr" + +defaultroute = section:taboption("advanced", Flag, "defaultroute", + translate("Use 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(1500)" diff --git a/protocols/ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua b/protocols/ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua new file mode 100644 index 000000000..ad2430a8d --- /dev/null +++ b/protocols/ipv6/luasrc/model/cbi/admin_network/proto_dhcpv6.lua @@ -0,0 +1,62 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2013 Steven Barth + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 +]]-- + +local map, section, net = ... + + +local o = section:taboption("general", ListValue, "reqaddress", + translate("Request IPv6-address")) +o:value("try") +o:value("force") +o:value("none", "disabled") +o.default = "try" + + +o = section:taboption("general", Value, "reqprefix", + translate("Request IPv6-prefix of length")) +o:value("auto", translate("automatic")) +o:value("no", translate("disabled")) +o:value("48") +o:value("52") +o:value("56") +o:value("60") +o:value("64") +o.default = "auto" + + +o = section:taboption("advanced", Flag, "defaultroute", + translate("Use default gateway"), + translate("If unchecked, no default route is configured")) +o.default = o.enabled + + +o = section:taboption("advanced", Flag, "peerdns", + translate("Use DNS servers advertised by peer"), + translate("If unchecked, the advertised DNS server addresses are ignored")) +o.default = o.enabled + + +o = section:taboption("advanced", DynamicList, "dns", + translate("Use custom DNS servers")) +o:depends("peerdns", "") +o.datatype = "list(ip6addr)" +o.cast = "string" + + +o = section:taboption("advanced", Value, "clientid", + translate("Client ID to send when requesting DHCP")) + +luci.tools.proto.opt_macaddr(section, ifc, translate("Override MAC address")) + +o = section:taboption("advanced", Value, "mtu", translate("Override MTU")) +o.placeholder = "1500" +o.datatype = "max(1500)" diff --git a/protocols/ipv6/luasrc/model/network/proto_6x4.lua b/protocols/ipv6/luasrc/model/network/proto_6x4.lua new file mode 100644 index 000000000..b800b0b54 --- /dev/null +++ b/protocols/ipv6/luasrc/model/network/proto_6x4.lua @@ -0,0 +1,66 @@ +--[[ +LuCI - Network model - 6to4, 6in4 & 6rd protocol extensions + +Copyright 2011 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +]]-- + +local netmod = luci.model.network + +local _, p +for _, p in ipairs({"6in4", "6to4", "6rd"}) do + + local proto = netmod:register_protocol(p) + + function proto.get_i18n(self) + if p == "6in4" then + return luci.i18n.translate("IPv6-in-IPv4 (RFC4213)") + elseif p == "6to4" then + return luci.i18n.translate("IPv6-over-IPv4 (6to4)") + elseif p == "6rd" then + return luci.i18n.translate("IPv6-over-IPv4 (6rd)") + end + end + + function proto.ifname(self) + return p .. "-" .. self.sid + end + + function proto.opkg_package(self) + return p + end + + function proto.is_installed(self) + return nixio.fs.access("/lib/netifd/proto/" .. p .. ".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, ifname) + return (netmod:ifnameof(ifc) == self:ifname()) + end + + netmod:register_pattern_virtual("^%s-%%w" % p) +end diff --git a/protocols/ipv6/luasrc/model/network/proto_dhcpv6.lua b/protocols/ipv6/luasrc/model/network/proto_dhcpv6.lua new file mode 100644 index 000000000..e5e54d593 --- /dev/null +++ b/protocols/ipv6/luasrc/model/network/proto_dhcpv6.lua @@ -0,0 +1,32 @@ +--[[ +LuCI - Network model - dhcpv6 protocol extension + +Copyright 2013 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +]]-- + +local proto = luci.model.network:register_protocol("dhcpv6") + +function proto.get_i18n(self) + return luci.i18n.translate("DHCPv6 client") +end + +function proto.is_installed(self) + return nixio.fs.access("/lib/netifd/proto/dhcpv6.sh") +end + +function proto.opkg_package(self) + return "ipv6-support" +end