@ -1,14 +1,13 @@
local ubus = require " ubus "
local ubus = require " ubus "
local bit = require " bit "
local bit = require " bit "
local function get_wifi_interfaces ( ) -- based on hostapd_stations.lua
local u = ubus.connect ( )
local status = u : call ( " network.wireless " , " status " , { } )
local function get_wifi_hostapd_interfaces ( u )
local ubuslist = u : objects ( )
local interfaces = { }
local interfaces = { }
for _ , dev_table in pairs ( status ) do
for _ , intf in ipairs ( dev_table [ ' interfaces ' ] ) do
table.insert ( interfaces , i ntf [ ' ifname ' ] )
for _ , net in i pairs( ubuslist ) do
if net.find ( net , " hostapd. " ) then
table.insert ( interfaces , ne t )
end
end
end
end
@ -16,6 +15,7 @@ local function get_wifi_interfaces() -- based on hostapd_stations.lua
end
end
local function scrape ( )
local function scrape ( )
local u = ubus.connect ( )
local metric_hostapd_ubus_station_rrm_caps_link_measurement =
local metric_hostapd_ubus_station_rrm_caps_link_measurement =
metric ( " hostapd_ubus_station_rrm_caps_link_measurement " , " gauge " )
metric ( " hostapd_ubus_station_rrm_caps_link_measurement " , " gauge " )
local metric_hostapd_ubus_station_rrm_caps_neighbor_report =
local metric_hostapd_ubus_station_rrm_caps_neighbor_report =
@ -55,14 +55,15 @@ local function scrape()
metric_hostapd_ubus_station_rrm_caps_ftm_range_report ( label_station , rrm_caps_ftm_range_report )
metric_hostapd_ubus_station_rrm_caps_ftm_range_report ( label_station , rrm_caps_ftm_range_report )
end
end
for _ , ifname in ipairs ( get_wifi_interfaces ( ) ) do
local u = ubus.connect ( )
local clients_call = u : call ( " hostapd. " .. ifname , " get_clients ", { } )
for _ , hostapd_int in ipairs ( get_wifi_hostapd_ interfaces ( u ) ) do
local clients_call = u : call ( hostapd_int , " get_clients " , { } )
local ifname = hostapd_int : gsub ( " hostapd. " , " " )
for client , client_table in pairs ( clients_call [ ' clients ' ] ) do
for client , client_table in pairs ( clients_call [ ' clients ' ] ) do
evaluate_metrics ( ifname , clients_call [ ' freq ' ] , client , client_table )
evaluate_metrics ( ifname , clients_call [ ' freq ' ] , client , client_table )
end
end
end
end
u : close ( )
end
end
return { scrape = scrape }
return { scrape = scrape }