summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-nft-qos
diff options
context:
space:
mode:
authorFlorian Eckert <fe@dev.tdt.de>2020-09-01 11:51:11 +0200
committerGitHub <noreply@github.com>2020-09-01 11:51:11 +0200
commitb32eb12f35836dd129bae93edcd14f0a1a35bb00 (patch)
tree4743699cfd59a8edf34c218595d6830d1902778a /applications/luci-app-nft-qos
parenta17dd948891948667d223a19d09aef4850cafe1e (diff)
parent1166050fd34619b6cd9248c19ef40d11585c8d1e (diff)
Merge pull request #4351 from lzto/nft-qos-mac
luci-app-nft-qos: support mac address based speed limit
Diffstat (limited to 'applications/luci-app-nft-qos')
-rw-r--r--applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua57
1 files changed, 52 insertions, 5 deletions
diff --git a/applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua b/applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua
index 6f67a6110..898cfd1e4 100644
--- a/applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua
+++ b/applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua
@@ -15,6 +15,7 @@ local def_up = uci:get("nft-qos", "default", "dynamic_bw_up")
local def_down = uci:get("nft-qos", "default", "dynamic_bw_down")
local limit_enable = uci:get("nft-qos", "default", "limit_enable")
+local limit_mac_enable = uci:get("nft-qos", "default", "limit_mac_enable")
local limit_type = uci:get("nft-qos", "default", "limit_type")
local enable_priority = uci:get("nft-qos", "default", "priority_enable")
@@ -29,7 +30,8 @@ s = m:section(TypedSection, "default", translate("NFT-QoS Settings"))
s.addremove = false
s.anonymous = true
-s:tab("limit", "Limit Rate")
+s:tab("limit", "Limit Rate by IP Address")
+s:tab("limitmac", "Limit Rate by Mac Address")
s:tab("priority", "Traffic Priority")
--
@@ -132,10 +134,6 @@ if nixio.fs.access("/tmp/dhcp.leases") or nixio.fs.access("/var/dhcp6.leases") t
o.titleref = luci.dispatcher.build_url("admin", "status", "overview")
end
-o = x:option(Value, "macaddr", translate("MAC (optional)"))
-o.rmempty = true
-o.datatype = "macaddr"
-
o = x:option(Value, "rate", translate("Rate"))
o.default = def_rate_dl or '50'
o.size = 4
@@ -226,4 +224,53 @@ o.default = '?'
end
+--
+-- limit speed by mac address
+--
+o = s:taboption("limitmac", Flag, "limit_mac_enable", translate("Limit Enable"), translate("Enable Limit Rate Feature"))
+o.default = limit_mac_enable or o.enabled
+o.rmempty = false
+
+--
+-- Static By Mac Address
+--
+if limit_mac_enable == "1" then
+
+ x = m:section(TypedSection, "client", translate("Limit Traffic Rate By Mac Address"))
+ x.anonymous = true
+ x.addremove = true
+ x.template = "cbi/tblsection"
+
+ o = x:option(Value, "hostname", translate("Hostname"))
+ o.datatype = "hostname"
+ o.default = ''
+
+ o = x:option(Value, "macaddr", translate("MAC Address"))
+ o.rmempty = true
+ o.datatype = "macaddr"
+
+ o = x:option(Value, "drate", translate("Download Rate"))
+ o.default = def_rate_dl or '50'
+ o.size = 4
+ o.datatype = "uinteger"
+
+ o = x:option(ListValue, "drunit", translate("Unit"))
+ o.default = def_unit_dl or "kbytes"
+ o:value("bytes", "Bytes/s")
+ o:value("kbytes", "KBytes/s")
+ o:value("mbytes", "MBytes/s")
+
+ o = x:option(Value, "urate", translate("Upload Rate"))
+ o.default = def_rate_ul or '50'
+ o.size = 4
+ o.datatype = "uinteger"
+
+ o = x:option(ListValue, "urunit", translate("Unit"))
+ o.default = def_unit_ul or "kbytes"
+ o:value("bytes", "Bytes/s")
+ o:value("kbytes", "KBytes/s")
+ o:value("mbytes", "MBytes/s")
+
+end
+
return m