Na konferencji FOSDEM 2020 projekt , rozwijającej pierwszą otwartą implementację pełnego stosu Wi-Fi 802.11a/g/n, której forma sygnału i modulacja są określane programowo (SDR, Software Defined Radio). OpenWifi pozwala na stworzenie w pełni kontrolowanej implementacji wszystkich komponentów urządzenia bezprzewodowego, w tym warstw niskopoziomowych, które w typowych adapterach bezprzewodowych są realizowane na poziomie dostępnych tylko do audytu chipów. Kod , a także bloków sprzętowych w języku Verilog dla FPGA są rozpowszechniane na podstawie licencji AGPLv3.
Sprzętowa część zaprezentowanego prototypu opiera się na FPGA Xilinx Zynq oraz uniwersalnym nadajniku-odbiorniku (RF) AD9361. W OpenWifi zastosowano architekturę SoftMAC, która zakłada realizację głównego stosu bezprzewodowego 802.11 (high-MAC) po stronie sterownika oraz obecność warstwy low-MAC po stronie FPGA. Jako stos bezprzewodowy wykorzystywana jest podsystém mac80211 dostarczany przez jądro Linux. Interakcja z SDR odbywa się za pośrednictwem specjalnego sterownika.
Podstawowe funkcje:
- Pełne wsparcie dla 802.11a/g oraz częściowe wsparcie dla 802.11n MCS 0~7 (na razie tylko PHY rx). W planach jest wsparcie dla 802.11ax;
- Pasmo 20MHz i zakres częstotliwości od 70 MHz do 6 GHz;
- Tryby pracy: (sieć urządzeń klienckich), punkt dostępowy, stacja i monitorowanie;
- Implementacja protokołu warstwy łącza (Distributed Coordination Function), wykorzystującego metodę CSMA/CA. Zapewnia czas przetwarzania ramki () na poziomie 10us;
- Konfigurowalne parametry priorytetu dostępu do kanału: czas trwania RTS/CTS, CTS-to-self, SIFS, DIFS, xIFS, czas slotu itp.
- Kwotowanie czasu () na podstawie adresu MAC;
- Łatwo zmieniana szerokość pasma i częstotliwość:
2MHz dla 802.11ah oraz 10MHz dla 802.11p;
Obecnie w OpenWifi zapewniono platformy SDR oparte na FPGA
Xilinx ZC706 z nadajnikami-odbiornikami Analog Devices FMCOMMS2/3/4, a także zestawów (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB oraz ADRV9361Z7035 SOM + ADRV1CRR-FMC. Do załadunku przygotowano karty SD oparty na ARM Linux. W planach wsparcie dla zestawów ADRV9364Z7020 SOM + ADRV1CRR-BOB, Xilinx zed + FMCOMMS2/3/4, Xilinx ZCU102 + FMCOMMS2/3/4 oraz
Xilinx ZCU102 + ADRV9371. Koszt komponentów wykorzystanych w pierwszym prototypie OpenWifi wyniósł około 1300 euro, jednak trwają prace nad portowaniem do tańszych płyt. Na przykład, koszt rozwiązania opartego na wyniesie 700 euro, a na podstawie — 400 euro.
Testowanie wydajności połączenia klienta z adapterem USB TL-WDN4200 N900 z punktem dostępowym opartym na OpenWifi pozwoliło osiągnąć przepustowość 30,6 Mbps (TCP) i 38,8 Mbps (UDP) podczas przesyłania danych od punktu dostępowego do klienta oraz 17,0 Mbps (TCP) i 21,5 Mbps (UDP) przy przesyłaniu od klienta do punktu dostępowego. Do zarządzania można używać standardowych narzędzi Linuksa, takich jak ifconfig i iwconfig, a także specjalistycznego narzędzia sdrctl, które działa przez netlink i umożliwia zarządzanie pracą SDR na niskim poziomie (manipulacja rejestrami, zmiana ustawień kwantyzacji czasu itp.).

Z innych otwartych projektów eksperymentujących z stosem Wi-Fi można wymienić projekt , rozwijający zgodny z IEEE 802.11 a/g/p oparty na GNU Radio i zwykłym PC. Programowe otwarte staki bezprzewodowe 802.11 rozwijają również projekty i (Microsoft Research Software Radio).
Źródło: opennet.ru
