luci-app-mwan3: calculate max interface usage from mmx_mask value
Show max interface value on interface page dependent on the mmx_mask value Signed-off-by: Florian Eckert <fe@dev.tdt.de>
This commit is contained in:
parent
46a2b5ebea
commit
c390464590
1 changed files with 32 additions and 5 deletions
|
@ -5,15 +5,15 @@
|
||||||
dsp = require "luci.dispatcher"
|
dsp = require "luci.dispatcher"
|
||||||
|
|
||||||
|
|
||||||
function interfaceWarnings(overview, count)
|
function interfaceWarnings(overview, count, iface_max)
|
||||||
local warnings = ""
|
local warnings = ""
|
||||||
if count <= 250 then
|
if count <= iface_max then
|
||||||
warnings = string.format("<strong>%s</strong><br />",
|
warnings = string.format("<strong>%s</strong><br />",
|
||||||
translatef("There are currently %d of 250 supported interfaces configured", count)
|
translatef("There are currently %d of %d supported interfaces configured", count, iface_max)
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
warnings = string.format("<strong>%s</strong><br />",
|
warnings = string.format("<strong>%s</strong><br />",
|
||||||
translatef("WARNING: %d interfaces are configured exceeding the maximum of 250!", count)
|
translatef("WARNING: %d interfaces are configured exceeding the maximum of %d!", count, iface_max)
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -103,7 +103,34 @@ function configCheck()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
return overview, count
|
|
||||||
|
-- calculate iface_max usage from firewall mmx_mask
|
||||||
|
function bit(p)
|
||||||
|
return 2 ^ (p - 1)
|
||||||
|
end
|
||||||
|
function hasbit(x, p)
|
||||||
|
return x % (p + p) >= p
|
||||||
|
end
|
||||||
|
function setbit(x, p)
|
||||||
|
return hasbit(x, p) and x or x + p
|
||||||
|
end
|
||||||
|
|
||||||
|
local uci = require("uci").cursor(nil, "/var/state")
|
||||||
|
local mmx_mask = uci:get("mwan3", "globals", "mmx_mask") or "0x3F00"
|
||||||
|
local number = tonumber(mmx_mask, 16)
|
||||||
|
local bits = 0
|
||||||
|
local iface_max = 0
|
||||||
|
for i=1,16 do
|
||||||
|
if hasbit(number, bit(i)) then
|
||||||
|
bits = bits + 1
|
||||||
|
iface_max = setbit( iface_max, bit(bits))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- subtract blackhole, unreachable and default table from iface_max
|
||||||
|
iface_max = iface_max - 3
|
||||||
|
|
||||||
|
return overview, count, iface_max
|
||||||
end
|
end
|
||||||
|
|
||||||
m5 = Map("mwan3", translate("MWAN - Interfaces"),
|
m5 = Map("mwan3", translate("MWAN - Interfaces"),
|
||||||
|
|
Loading…
Reference in a new issue