Alla conferenza FOSDEM 2020 appena conclusa progetto , che sviluppa la prima implementazione aperta dell'intero stack Wi-Fi 802.11a/g/n, la forma del segnale e la modulazione delle quali sono definite a livello software (SDR, Software Defined Radio). OpenWifi consente di creare un'implementazione completamente controllata di tutti i componenti di un dispositivo wireless, inclusi i livelli a basso livello, normalmente realizzati in adattatori wireless su chip non accessibili per auditing. Il codice , e inoltre (Verilog) blocchi hardware basati su FPGA sono rilasciati sotto la licenza AGPLv3.
La componente hardware del prototipo funzionante mostrato è basata su FPGA Xilinx Zynq e su un ricevitore e trasmettitore universale (RF) AD9361. OpenWifi utilizza un'architettura SoftMAC, che implica l'implementazione dello stack wireless principale 802.11 (high-MAC) dal lato del driver e la presenza di un livello low-MAC dal lato dell'FPGA. Come stack wireless viene utilizzato il sottosistema mac80211, fornito dal kernel Linux. L'interazione con lo SDR avviene tramite un driver specifico.
Caratteristiche principali:
- Supporto completo per 802.11a/g e supporto parziale per 802.11n MCS 0~7 (per ora solo PHY rx). È previsto il supporto per 802.11ax;
- Larghezza di banda di 20MHz e frequenza che va da 70 MHz a 6 GHz;
- Modalità operative: (rete di dispositivi client), punto di accesso, stazione e monitoraggio;
- Implementazione sul lato FPGA del protocollo di livello collegamento (Distributed Coordination Function), che utilizza il metodo CSMA/CA. Viene fornito un tempo di elaborazione del pacchetto () a livello di 10us;
- Parametri configurabili per la priorità di accesso al canale: durata RTS/CTS, CTS-to-self, SIFS, DIFS, xIFS, slot-time, ecc.
- Quantizzazione del tempo () basata sull'indirizzo MAC;
- Larghezza di banda e frequenza facilmente modificabili:
2MHz per 802.11ah e 10MHz per 802.11p;
Attualmente OpenWifi supporta SDR-platform basata su FPGA
Xilinx ZC706 con trasmettitori-ricevitori Analog Devices FMCOMMS2/3/4, così come le combinazioni (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB e ADRV9361Z7035 SOM + ADRV1CRR-FMC. È stata preparata un'immagine Xilinx ZCU102 + ADRV9371. Il costo dei componenti utilizzati nel primo prototipo di OpenWifi è stato di circa 1300 euro, ma è in corso il porting su schede meno costose. Ad esempio, il costo della soluzione basata su
Xilinx ZCU102 + ADRV9371.
Il testing delle prestazioni della connessione client con l'adattatore USB TL-WDN4200 N900 al punto di accesso basato su openwifi ha consentito di raggiungere una capacità di 30,6 Mbps (TCP) e 38,8 Mbps (UDP) nella trasmissione dei dati dal punto di accesso al client e 17,0 Mbps (TCP) e 21,5 Mbps (UDP) nella trasmissione dal client al punto di accesso. Per la gestione possono essere utilizzati i tool di sistema di Linux, come ifconfig e iwconfig, così come il tool specializzato sdrctl, che funziona tramite netlink e consente di gestire le operazioni di SDR a basso livello (manipolare i registri, modificare le impostazioni di quantizzazione temporale, ecc.).

Tra gli altri progetti open source che sperimentano con lo stack Wi-Fi, si può citare il progetto , che sviluppa un trasmettitore compatibile con IEEE 802.11 a/g/p Ziria e Wine è stato adattato per funzionare con Wayland
Fonte: opennet.ru
