diff options
author | Steven Barth <steven@midlink.org> | 2009-11-16 16:58:48 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2009-11-16 16:58:48 +0000 |
commit | 2176dae3a0a648805f7de447e4af7ead8b7655dd (patch) | |
tree | 877c2986165224e1982cdbae350b3f1d35fc50a2 /modules/niu/luasrc/model/cbi | |
parent | efe5fc77f9c76ca75ae0e4c1735065589d5047c8 (diff) |
NIU:
+PortFw
+QoS
Reorganize Network
Diffstat (limited to 'modules/niu/luasrc/model/cbi')
-rw-r--r-- | modules/niu/luasrc/model/cbi/niu/traffic/portfw.lua | 20 | ||||
-rw-r--r-- | modules/niu/luasrc/model/cbi/niu/traffic/portfw1.lua | 65 | ||||
-rw-r--r-- | modules/niu/luasrc/model/cbi/niu/traffic/qos.lua | 36 | ||||
-rw-r--r-- | modules/niu/luasrc/model/cbi/niu/traffic/qos1.lua | 89 | ||||
-rw-r--r-- | modules/niu/luasrc/model/cbi/niu/traffic/routes.lua (renamed from modules/niu/luasrc/model/cbi/niu/network/routes.lua) | 2 | ||||
-rw-r--r-- | modules/niu/luasrc/model/cbi/niu/traffic/routes1.lua (renamed from modules/niu/luasrc/model/cbi/niu/network/routes1.lua) | 0 |
6 files changed, 211 insertions, 1 deletions
diff --git a/modules/niu/luasrc/model/cbi/niu/traffic/portfw.lua b/modules/niu/luasrc/model/cbi/niu/traffic/portfw.lua new file mode 100644 index 0000000000..bf4e132df1 --- /dev/null +++ b/modules/niu/luasrc/model/cbi/niu/traffic/portfw.lua @@ -0,0 +1,20 @@ +local uci = require "luci.model.uci" +local cursor = uci.cursor() +local d = Delegator() +d.allow_finish = true +d.allow_back = true +d.allow_cancel = true + +d:add("portfw1", load("niu/traffic/portfw1")) + +function d.on_cancel() + cursor:revert("firewall") + cursor:revert("upnpd") +end + +function d.on_done() + cursor:commit("firewall") + cursor:commit("upnpd") +end + +return d
\ No newline at end of file diff --git a/modules/niu/luasrc/model/cbi/niu/traffic/portfw1.lua b/modules/niu/luasrc/model/cbi/niu/traffic/portfw1.lua new file mode 100644 index 0000000000..11ed4aa92d --- /dev/null +++ b/modules/niu/luasrc/model/cbi/niu/traffic/portfw1.lua @@ -0,0 +1,65 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth <steven@midlink.org> + +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 + +$Id$ +]]-- +local fs = require "nixio.fs" +local sys = require "luci.sys" + +m = Map("firewall", translate("Manage Port Forwarding")) + +s = m:section(TypedSection, "redirect", translate("Manual Port Forwarding"), +translate([[To manually define a forwarding rule you have to specify at least +the internal IP-address and port of the service that should be forwarded. +If you ommit the external port it will be the same as the internal port. +You also can forward a range of ports by using the syntax first-last Port +(e.g. 1024-1030) in the port field.]])) +s.template = "cbi/tblsection" +s.addremove = true +s.anonymous = true + +name = s:option(Value, "_name", translate("Name"), translate("optional")) +name.size = 10 + +iface = s:option(ListValue, "src", translate("Zone")) +iface:value("wan", "Internet") +iface.default = "wan" + +proto = s:option(ListValue, "proto", translate("Protocol")) +proto:value("tcp", "TCP") +proto:value("udp", "UDP") +proto:value("tcpudp", "TCP+UDP") + +dport = s:option(Value, "src_dport", translate("Internal Port")) +dport.size = 5 + +to = s:option(Value, "dest_ip", translate("Internal Address"), translate("Device running the service")) +for i, dataset in ipairs(sys.net.arptable()) do + to:value(dataset["IP address"]) +end + +toport = s:option(Value, "dest_port", translate("External Port"), translate("optional")); +toport.size = 5 + +local m2 +if fs.access("/etc/config/upnpd") then + m2 = Map("upnpd") + s = m2:section(NamedSection, "config", "upnpd", translate("Automatic Port Forwarding (UPnP IGD)"), + translate([[Allows UPnP-capable applications to automatically forward ports on the router to their IP-Address. + Be aware that this is a potential security risk as applications are not authenticated.]])) + s.addremove = false + + on = s:option(ListValue, "external_iface", translate("Port Forwarding Restrictions")) + on:value("none", translate("Manual Forwarding Only")) + on:value("wan", translate("Automatic and Manual Forwarding")) +end + +return m, m2 diff --git a/modules/niu/luasrc/model/cbi/niu/traffic/qos.lua b/modules/niu/luasrc/model/cbi/niu/traffic/qos.lua new file mode 100644 index 0000000000..aa1f3f89e4 --- /dev/null +++ b/modules/niu/luasrc/model/cbi/niu/traffic/qos.lua @@ -0,0 +1,36 @@ +local uci = require "luci.model.uci" +local cursor = uci.cursor() + +if not cursor:get("qos", "wan", "_niuinit") then + -- Load some more sensible default classifications + cursor:delete_all("qos", "classify") + cursor:section("qos", "classify", "dns", + {target = "Priority", ports = "53", _name = "DNS"} + ) + cursor:section("qos", "classify", "inet1", + {target = "Normal", ports = "20,21,22,80,443", _name = "WWW, SSH, FTP"} + ) + cursor:section("qos", "classify", "inet2", + {target = "Normal", ports = "25,110,119,143", _name = "E-Mail, News"} + ) + + cursor:set("qos", "wan", "_niuinit", "1") + cursor:save("qos") +end + +local d = Delegator() +d.allow_finish = true +d.allow_back = true +d.allow_cancel = true + +d:add("qos1", load("niu/traffic/qos1")) + +function d.on_cancel() + cursor:revert("qos") +end + +function d.on_done() + cursor:commit("qos") +end + +return d
\ No newline at end of file diff --git a/modules/niu/luasrc/model/cbi/niu/traffic/qos1.lua b/modules/niu/luasrc/model/cbi/niu/traffic/qos1.lua new file mode 100644 index 0000000000..6171dfaa71 --- /dev/null +++ b/modules/niu/luasrc/model/cbi/niu/traffic/qos1.lua @@ -0,0 +1,89 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth <steven@midlink.org> +Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> + +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 + +$Id$ +]]-- + +local sys = require "luci.sys" +local fs = require "nixio.fs" + +m = Map("qos", translate("Manage Prioritization (QoS)"), translate([[Different +kinds of network traffic usually have different transmission requirements. +For example the important factor for a large HTTP-download is bandwith whereas +VoIP has a large focus on low packet latency. Prioritization takes these quality +of service factors into account and optimizes priorities to allow reasonable +performance for time critical services.]])) + +s = m:section(NamedSection, "wan", "interface", translate("General Settings"), +translate([[For QoS to work correctly you need to provide the upload and +download speed of your internet connection. Values are in kilobits per second. +For comparison a standard consumer ADSL connection has between 1000 and 25000 +kbps as donwload speed and between 128 and 1000 kbps upload speed.]])) +s.addremove = false + +local en = s:option(ListValue, "enabled", translate("Prioritization")) +en:value("1", "Enable Quality of Service") +en:value("0", "Disable") + +local dl = s:option(Value, "download", translate("Maximum Download Speed"), "kbps") +dl:depends("enabled", "1") + +local ul = s:option(Value, "upload", translate("Maximum Upload Speed"), "kbps") +ul:depends("enabled", "1") + +s = m:section(TypedSection, "classify", translate("Finetuning"), translate([[ +The QoS application provides different useful default prioritization rules not +listed here that cover many common use-cases. You however can add custom rules +to finetune the prioritization process.]])) +s.template = "cbi/tblsection" + +s.anonymous = true +s.addremove = true + +n = s:option(Value, "_name", translate("Name"), translate("optional")) + +srch = s:option(Value, "srchost", translate("Local IP-Address")) +srch.rmempty = true +srch:value("", translate("all")) +for i, dataset in ipairs(sys.net.arptable()) do + srch:value(dataset["IP address"]) +end + +p = s:option(ListValue, "proto", translate("Protocol")) +p:value("", translate("all")) +p:value("tcp", "TCP") +p:value("udp", "UDP") +p.rmempty = true + +ports = s:option(Value, "ports", translate("Ports")) +ports.rmempty = true +ports:value("", translate("any")) + +if fs.access("/etc/l7-protocols") then + l7 = s:option(ListValue, "layer7", translate("Service")) + l7.rmempty = true + l7:value("", translate("all")) + for f in fs.glob("/etc/l7-protocols/*.pat") do + l7:value(f:sub(19, #f-4)) + end +end + +s:option(Value, "connbytes", translate("Bytes sent"), translate("from[-to]")) + +t = s:option(ListValue, "target", translate("Priority")) +t:value("Priority", translate("Highest")) +t:value("Express", translate("High")) +t:value("Normal", translate("Normal")) +t:value("Bulk", translate("Low")) +t.default = "Normal" + +return m diff --git a/modules/niu/luasrc/model/cbi/niu/network/routes.lua b/modules/niu/luasrc/model/cbi/niu/traffic/routes.lua index 64a587c813..f8e8a8af98 100644 --- a/modules/niu/luasrc/model/cbi/niu/network/routes.lua +++ b/modules/niu/luasrc/model/cbi/niu/traffic/routes.lua @@ -4,7 +4,7 @@ d.allow_finish = true d.allow_back = true d.allow_cancel = true -d:add("routes1", load("niu/network/routes1")) +d:add("routes1", load("niu/traffic/routes1")) function d.on_cancel() cursor:revert("network") diff --git a/modules/niu/luasrc/model/cbi/niu/network/routes1.lua b/modules/niu/luasrc/model/cbi/niu/traffic/routes1.lua index 094831e72f..094831e72f 100644 --- a/modules/niu/luasrc/model/cbi/niu/network/routes1.lua +++ b/modules/niu/luasrc/model/cbi/niu/traffic/routes1.lua |