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 di moduli hardware in linguaggio Verilog per FPGA sono distribuiti 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 costo dei componenti utilizzati nel primo prototipo di OpenWifi è stato di circa 1300 euro, ma si sta portando avanti la migrazione su schede più economiche. Ad esempio, il costo della soluzione basata su sarà di 700 euro, mentre su sarà di 400 euro.
Il test delle prestazioni della connessione client tramite l'adattatore USB TL-WDN4200 N900 al punto di accesso basato su OpenWifi ha permesso di raggiungere una larghezza di banda di 30.6Mbps (TCP) e 38.8Mbps (UDP) durante il trasferimento di dati dal punto di accesso al client e 17.0Mbps (TCP) e 21.5Mbps (UDP) durante il trasferimento dal client al punto di accesso. Per la gestione possono essere utilizzati strumenti standard di Linux, come ifconfig e iwconfig, oltre a un'utility specializzata chiamata sdrctl, che opera tramite netlink e consente di gestire il funzionamento dell'SDR a basso livello (manipolando registri, modificando impostazioni di quantizzazione del tempo, 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 (Microsoft Research Software Radio).
Fonte: opennet.ru
