Alla conferenza FOSDEM 2020 progetto , che sviluppa la prima implementazione open source dell'intero stack Wi-Fi 802.11a/g/n, la forma del segnale e la modulazione delle quali sono definite tramite software (SDR, Software Defined Radio). OpenWifi consente di creare un'implementazione completamente controllabile di tutti i componenti di un dispositivo wireless, compresi i livelli di basso livello, solitamente implementati in adattatori wireless con chip non verificabili. Il codice , così come (Verilog) dei blocchi hardware basati su FPGA è distribuito sotto licenza AGPLv3.
La componente hardware del prototipo funzionante dimostrato si basa su FPGA Xilinx Zynq e su un trasmettitore-ricevitore universale (RF) AD9361. In OpenWifi viene utilizzata un'architettura SoftMAC, che prevede l'implementazione dello stack wireless 802.11 (high-MAC) dal lato del driver e la presenza di un livello low-MAC dal lato FPGA. Come stack wireless viene utilizzato il sottosistema mac80211 fornito dal kernel Linux. L'interazione con l'SDR avviene tramite un driver specifico.
Funzionalità principali:
- Supporto completo per 802.11a/g e supporto parziale per 802.11n MCS 0~7 (attualmente solo PHY rx). È prevista la supporto per 802.11ax;
- Larghezza di banda 20MHz e gamma di frequenze da 70 MHz a 6 GHz;
- Modalità operative: (rete di dispositivi client), punto di accesso, stazione e monitoraggio;
- Implementazione su FPGA del protocollo a livello di collegamento (Distributed Coordination Function), utilizzando il metodo CSMA/CA. Viene garantito un tempo di elaborazione del frame () 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 su indirizzo MAC;
- Larghezza di banda e frequenza facilmente modificabili:
2MHz per 802.11ah e 10MHz per 802.11p;
Attualmente, OpenWifi supporta piattaforme SDR basate su FPGA
Xilinx ZC706 con ricevitori Analog Devices FMCOMMS2/3/4, nonché combinazioni (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB e ADRV9361Z7035 SOM + ADRV1CRR-FMC. È stato creato un per schede SD basate su ARM Linux. È prevista la supporto per combinazioni ADRV9364Z7020 SOM + ADRV1CRR-BOB, Xilinx Zed + FMCOMMS2/3/4, Xilinx ZCU102 + FMCOMMS2/3/4 e
Xilinx ZCU102 + ADRV9371.
Il test delle prestazioni della connessione cliente con l'adattatore USB TL-WDN4200 N900 al punto d'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 d'accesso al cliente, e di 17,0 Mbps (TCP) e 21,5 Mbps (UDP) nella trasmissione dal cliente al punto d'accesso. Per la gestione possono essere utilizzati strumenti Linux standard, come ifconfig e iwconfig, oltre a un'utilità specializzata, sdrctl, che funziona tramite netlink e consente di gestire il funzionamento dello SDR a livello basso (manipolando i registri, modificando le impostazioni di quantizzazione del tempo, ecc.).

Tra gli altri progetti open source che sperimentano con lo stack Wi-Fi si può menzionare il progetto , che sviluppa un trasmettitore compatibile con IEEE 802.11 a/g/p Ziria e (Microsoft Research Software Radio).
Fonte: opennet.ru
