mirror of https://github.com/aredn/aredn.git
Lqm neighbor improvements (#933)
* Improve detection of valid neighbors via the arp cache. Was incorrectly excluding some. * Fixes
This commit is contained in:
parent
91ab73fe6f
commit
9b4d873778
|
@ -123,7 +123,7 @@ end
|
||||||
function nft_handle(list, query)
|
function nft_handle(list, query)
|
||||||
for line in io.popen(NFT .. " -a list chain ip fw4 " .. list):lines()
|
for line in io.popen(NFT .. " -a list chain ip fw4 " .. list):lines()
|
||||||
do
|
do
|
||||||
local handle = line:match(query .. "%s*# handle (%d+)")
|
local handle = line:match(query .. ".*# handle (%d+)$")
|
||||||
if handle then
|
if handle then
|
||||||
return handle
|
return handle
|
||||||
end
|
end
|
||||||
|
@ -380,7 +380,7 @@ function lqm()
|
||||||
-- DtD
|
-- DtD
|
||||||
for _, entry in ipairs(arps)
|
for _, entry in ipairs(arps)
|
||||||
do
|
do
|
||||||
if entry.Device:match("%.2$") or entry.Device:match("^br%-dtdlink") and (nixio.getnameinfo(entry["IP address"]) or ""):match("^dtdlink.") then
|
if entry.Device:match("%.2$") or entry.Device:match("^br%-dtdlink") then
|
||||||
stations[#stations + 1] = {
|
stations[#stations + 1] = {
|
||||||
type = "DtD",
|
type = "DtD",
|
||||||
device = entry.Device,
|
device = entry.Device,
|
||||||
|
@ -677,6 +677,11 @@ function lqm()
|
||||||
track.ping_success_time = track.ping_success_time * ping_time_run_avg + ptime * (1 - ping_time_run_avg)
|
track.ping_success_time = track.ping_success_time * ping_time_run_avg + ptime * (1 - ping_time_run_avg)
|
||||||
end
|
end
|
||||||
track.ping_quality = math.ceil(ping_loss_run_avg * track.ping_quality + (1 - ping_loss_run_avg) * success)
|
track.ping_quality = math.ceil(ping_loss_run_avg * track.ping_quality + (1 - ping_loss_run_avg) * success)
|
||||||
|
if success == 0 and track.type == "DtD" and track.firstseen == now then
|
||||||
|
-- If local ping immediately fail, ditch this tracker. This can happen sometimes when we
|
||||||
|
-- find arp entries which aren't valid.
|
||||||
|
tracker[track.mac] = nil
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Calculate overall link quality
|
-- Calculate overall link quality
|
||||||
|
|
Loading…
Reference in New Issue