mirror of https://github.com/aredn/aredn.git
Disable RTS by default in ath10k devices 02/11/2023 (#706)
This commit is contained in:
parent
c70a23f7a8
commit
571dbf6251
|
@ -7,7 +7,7 @@ do
|
||||||
option enable '0'
|
option enable '0'
|
||||||
option min_snr '15'
|
option min_snr '15'
|
||||||
option margin_snr '1'
|
option margin_snr '1'
|
||||||
option rts_theshold '1'
|
option rts_threshold '1'
|
||||||
option min_distance '0'
|
option min_distance '0'
|
||||||
option max_distance '80467'
|
option max_distance '80467'
|
||||||
option min_quality '50'
|
option min_quality '50'
|
||||||
|
|
|
@ -62,7 +62,7 @@ function get_config()
|
||||||
return {
|
return {
|
||||||
margin = tonumber(c:get("aredn", "@lqm[0]", "margin_snr")),
|
margin = tonumber(c:get("aredn", "@lqm[0]", "margin_snr")),
|
||||||
low = tonumber(c:get("aredn", "@lqm[0]", "min_snr")),
|
low = tonumber(c:get("aredn", "@lqm[0]", "min_snr")),
|
||||||
rts_theshold = tonumber(c:get("aredn", "@lqm[0]", "rts_theshold") or "1"),
|
rts_threshold = tonumber(c:get("aredn", "@lqm[0]", "rts_threshold") or "1"),
|
||||||
min_distance = tonumber(c:get("aredn", "@lqm[0]", "min_distance")),
|
min_distance = tonumber(c:get("aredn", "@lqm[0]", "min_distance")),
|
||||||
max_distance = tonumber(c:get("aredn", "@lqm[0]", "max_distance")),
|
max_distance = tonumber(c:get("aredn", "@lqm[0]", "max_distance")),
|
||||||
auto_distance = tonumber(c:get("aredn", "@lqm[0]", "auto_distance") or "0"),
|
auto_distance = tonumber(c:get("aredn", "@lqm[0]", "auto_distance") or "0"),
|
||||||
|
@ -227,6 +227,12 @@ function lqm()
|
||||||
-- Let things startup for a while before we begin
|
-- Let things startup for a while before we begin
|
||||||
wait_for_ticks(math.max(1, 30 - nixio.sysinfo().uptime))
|
wait_for_ticks(math.max(1, 30 - nixio.sysinfo().uptime))
|
||||||
|
|
||||||
|
-- Detect ath10k - we need some special handling (for the moment)
|
||||||
|
local is_ath10k = false
|
||||||
|
if nixio.fs.stat("/sys/kernel/debug/ieee80211/" .. phy .. "/ath10k") then
|
||||||
|
is_ath10k = true
|
||||||
|
end
|
||||||
|
|
||||||
-- Create filters (cannot create during install as they disappear on reboot)
|
-- Create filters (cannot create during install as they disappear on reboot)
|
||||||
os.execute(NFT .. " flush chain ip fw4 input_lqm 2> /dev/null")
|
os.execute(NFT .. " flush chain ip fw4 input_lqm 2> /dev/null")
|
||||||
os.execute(NFT .. " delete chain ip fw4 input_lqm 2> /dev/null")
|
os.execute(NFT .. " delete chain ip fw4 input_lqm 2> /dev/null")
|
||||||
|
@ -240,7 +246,9 @@ function lqm()
|
||||||
-- We dont know any distances yet
|
-- We dont know any distances yet
|
||||||
os.execute(IW .. " " .. phy .. " set distance auto > /dev/null 2>&1")
|
os.execute(IW .. " " .. phy .. " set distance auto > /dev/null 2>&1")
|
||||||
-- Or any hidden nodes
|
-- Or any hidden nodes
|
||||||
|
if not is_ath10k then
|
||||||
os.execute(IW .. " " .. phy .. " set rts off > /dev/null 2>&1")
|
os.execute(IW .. " " .. phy .. " set rts off > /dev/null 2>&1")
|
||||||
|
end
|
||||||
|
|
||||||
local noise = -95
|
local noise = -95
|
||||||
local tracker = {}
|
local tracker = {}
|
||||||
|
@ -887,13 +895,16 @@ function lqm()
|
||||||
do
|
do
|
||||||
hidden[#hidden + 1] = ninfo
|
hidden[#hidden + 1] = ninfo
|
||||||
end
|
end
|
||||||
if (#hidden == 0) ~= (#hidden_nodes == 0) and config.rts_theshold >= 0 and config.rts_theshold <= 2347 then
|
-- Don't adjust RTS on ath10k for the moment - appear to be some bug to be worked out here
|
||||||
|
if not is_ath10k then
|
||||||
|
if (#hidden == 0) ~= (#hidden_nodes == 0) and config.rts_threshold >= 0 and config.rts_threshold <= 2347 then
|
||||||
if #hidden > 0 then
|
if #hidden > 0 then
|
||||||
os.execute(IW .. " " .. phy .. " set rts " .. config.rts_theshold .. " > /dev/null 2>&1")
|
os.execute(IW .. " " .. phy .. " set rts " .. config.rts_threshold .. " > /dev/null 2>&1")
|
||||||
else
|
else
|
||||||
os.execute(IW .. " " .. phy .. " set rts off > /dev/null 2>&1")
|
os.execute(IW .. " " .. phy .. " set rts off > /dev/null 2>&1")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
hidden_nodes = hidden
|
hidden_nodes = hidden
|
||||||
|
|
||||||
-- Save this for the UI
|
-- Save this for the UI
|
||||||
|
|
|
@ -134,9 +134,9 @@ local settings = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
category = "Link Quality Settings",
|
category = "Link Quality Settings",
|
||||||
key = "aredn.@lqm[0].rts_theshold",
|
key = "aredn.@lqm[0].rts_threshold",
|
||||||
type = "string",
|
type = "string",
|
||||||
desc = "<b>RTS Threshold</b> in bytes before using RTS/CTS when hidden nodes are detected<br><br><small>aredn.@lqm[0].rts_theshold</small>",
|
desc = "<b>RTS Threshold</b> in bytes before using RTS/CTS when hidden nodes are detected<br><br><small>aredn.@lqm[0].rts_threshold</small>",
|
||||||
default = "1",
|
default = "1",
|
||||||
condition = "lqm_enabled()"
|
condition = "lqm_enabled()"
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue