Проект Openwifi — как выглядит открытый Wi-Fi-чип
Речь идет о первой свободной распространяемой реализации Wi-Fi 802.11a/g/n на базе программно-определяемой радиосистемы SDR (software-defined radio). Поговорим об этом проекте.
/ CC BY / Victor Aznabaev
Что это за проект
Большинство прошивок для Wi-Fi-устройств закрыты, поэтому нельзя проверить, присутствуют ли в них какие-либо бэкдоры. Специалисты из лаборатории IDLab, сформированной на базе Гентского и Антверпенского университетов в Бельгии, решили исправить ситуацию и запустили проект Openwifi. Это — открытая реализация Wi-Fi на FPGA, совместимая с Linux. Свои наработки инженеры представили на конференции FOSDEM 2020, посвященной свободному ПО.
Весь код со схемами аппаратного обеспечения лежат на GitHub и распространяются по лицензии AGPLv3. Хотя в этом проекте использовали несколько сторонних модулей — например коммерческие приёмопередатчики. Прежде чем начинать работу с Openwifi, нужно учитывать их лицензии.
Как он устроен
Аппаратная часть системы основана на FPGA от Xilinx и радиопередатчике AD9361. Также здесь задействовали архитектуру SoftMAC, которая реализует беспроводной стек 802.11 на стороне драйвера. За эту задачу отвечает подсистема mac80211, предоставляемая ядром Linux. Схему авторы проекта разместили в своем репозитории.
В основе программной части лежит OpenOFDM — открытая реализация OFDM-декодера на Verilog. Взаимодействовать с Wi-Fi-модулем можно с помощью штатных утилит Linux — ifconfig и iwconfig, а также специализированной программы sdrctl — она позволяет обращаться к драйверу Openwifi через netlink. Для управления беспроводными драйверами из пользовательского пространства авторы использовали библиотеки nl80211 и cfg80211.
Среди основных возможностей системы стоит выделить полосу пропускания в 20 МГц и диапазон частот от 70 МГц до 6 ГГц, квантование времени по MAC-адресу и реализацию протокола DCF на стороне FPGA, который является базовым протоколом доступа в сетях Wi-Fi.
Каковы его перспективы
Openwifi находится на ранних этапах разработки, поэтому о высокой пропускной способности говорить не приходится. Авторы добились скорости скачивания в 30,6 и 38,8 Мбит/с для TCP и UDP. Скорость выгрузки несколько меньше — 17,0 и 21,5 Мбит/с соответственно.
/ CC BY / Frank Wang
В перспективе разработчики планируют увеличить эти показатели. На их дорожной карте также стоит добавление поддержки стандарта Wi-Fi 802.11ax. В целом резиденты Hacker News говорят, что Openwifi — это еще один важный шаг на пути к полностью открытому аппаратному обеспечению для беспроводных сетей. Осталось реализовать соответствующий радиочастотный чип — главное, чтобы не возникло проблем с патентами различных корпораций.
О чем мы пишем в корпоративном блоге VAS Experts: