Уровень полученного сигнала связанных устройств на точке доступа Linux

Я пишу программу на C для управления некоторыми аспектами беспроводной сети (точка доступа + клиентские устройства). Одна часть программы работает на устройствах, а другая — на точке доступа. Точка доступа представляет собой простую Linux-станцию ​​(грузовик Cubietruck, позже замененный платой хранения Intel Celeron; установка точки доступа с помощью hostapd и dnsmasq). Некоторые функции уже реализованы. Я много сделал с cfg80211/nl80211 и немного с Wext, и некоторые коммуникационные процедуры через сокеты BSD стоят.

Но теперь возникла проблема. В программе C, работающей на точке доступа, мне нужна сила полученного сигнала связанных устройств. На устройствах все работает хорошо. С nl80211 я могу получить почти всю информацию о соединении. Но на точке доступа я не знаю, как получить RSS. Я пробовал несколько запросов nl80211 с некоторыми атрибутами, но не могу заставить их работать. Конечно, на Устройствах это просто, потому что у них одно соединение. Но на точке доступа я ожидал что-то вроде ответа nl80211 со связанным списком или вложенными атрибутами, но ничего. Я проверил содержащиеся атрибуты ответов на определенные запросы, и сообщения не содержат ничего полезного.

Кто-нибудь знает, как это решить? Это не должно быть большой проблемой, чтобы получить мощность принятого сигнала связанных устройств на точке доступа WLAN. Было бы очень хорошо, если бы это было возможно с nl80211, но другое решение также приветствуется. Может быть, с парсингом пакетов WiFi? Я слышал, что есть что-то вроде RSSI (Индикатор силы принятого сигнала), но я с этим не знаком.

заранее спасибо


person Dionysos    schedule 04.09.2014    source источник


Ответы (1)


Вот обходной путь: затухание беспроводного канала от точки доступа к станции/устройству и от этой станции к той же точке доступа одинаково. Таким образом, если мощность передачи точки доступа и станций одинакова, станции могут сообщать о своих RSS точкам доступа, используя ваше текущее решение, и работа выполнена. Конечно, мощности передачи на разных станциях могут быть разными, но они постоянны. Поэтому найдите их и внесите соответствующие коррективы. Вот простой пример:

мощность передачи точки доступа 20 дБм; Мощность передатчика станции 1 15 дБм при RSS -37 дБм; Тогда RSS от станции 1 до точки доступа должен быть -42 дБм.

person Daniel    schedule 04.09.2014
comment
Спасибо, я тоже думал о чем-то подобном. Это сработает, но я надеялся на «чистое» решение. Тем не менее спасибо за ваш ответ. - person Dionysos; 08.09.2014
comment
Возможно, потребуется взломать драйвер Wi-Fi. Я знаю, что sb может получать не только RSS, но и ответ канала от сетевой карты Atheros WiFi с драйвером ath9k. - person Daniel; 08.09.2014