Auf der vergangenen FOSDEM 2020-Konferenz Projekt , das erste vollständige und offene Wi-Fi 802.11a/g/n-Stack realisiert, dessen Signalform und Modulation softwaredefiniert (SDR, Software Defined Radio) sind. OpenWifi ermöglicht die Erstellung einer vollständig kontrollierbaren Implementierung aller Komponenten des drahtlosen Geräts, einschließlich der unteren Schichten, die in herkömmlichen Wireless-Adaptern auf einer Ebene realisiert werden, die nicht auditiert werden kann. Der Code , sowie von Hardwareblöcken in Verilog für FPGA werden unter der AGPLv3-Lizenz verbreitet.
Die Hardwarekomponente des vorgestellten funktionierenden Prototyps basiert auf dem FPGA Xilinx Zynq und dem universellen Sender-Empfänger (RF) AD9361. In OpenWifi wird die SoftMAC-Architektur verwendet, die die Implementierung des grundlegenden drahtlosen 802.11-Stacks (high-MAC) auf der Treiber-Seite und die Verfügbarkeit einer low-MAC-Schicht auf der FPGA-Seite umfasst. Als drahtloser Stack wird die vom Linux-Kernel bereitgestellte mac80211-Subsystem verwendet. Die Interaktion mit SDR erfolgt über einen speziellen Treiber.
Hauptfunktionen:
- Vollständige Unterstützung für 802.11a/g und teilweise Unterstützung für 802.11n MCS 0~7 (derzeit nur PHY rx). Geplant ist die Unterstützung von 802.11ax;
- Bandbreite von 20MHz und Frequenzbereich von 70 MHz bis 6 GHz;
- Betriebsmodi: (Netzwerk von Client-Geräten), Zugangspunkt, Station und Überwachung;
- Die Implementierung des Kommunikationsprotokolls auf der FPGA-Seite (Distributed Coordination Function), das das CSMA/CA-Verfahren verwendet. Es wird eine Verarbeitungsgeschwindigkeit von) auf der Ebene von 10us sichergestellt;
- Konfigurierbare Zugriffsprioritätsparameter: RTS/CTS-Dauer, CTS-to-self, SIFS, DIFS, xIFS, Slot-Zeit usw.
- Zeitquantisierung () basierend auf MAC-Adressen;
- Leicht veränderbare Bandbreite und Frequenz:
2MHz für 802.11ah und 10MHz für 802.11p;
Derzeit wird in OpenWifi sichergestellt, dass SDR-Plattformen auf Basis von FPGA
Xilinx ZC706 mit Analog Devices FMCOMMS2/3/4-Payloads sowie Kombinationen (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB und ADRV9361Z7035 SOM + ADRV1CRR-FMC. Zum Laden wurde ein für SD-Karten auf Basis von ARM Linux erstellt. Geplant ist die Unterstützung von Kombinationen ADRV9364Z7020 SOM + ADRV1CRR-BOB, Xilinx zed + FMCOMMS2/3/4, Xilinx ZCU102 + FMCOMMS2/3/4 und
Xilinx ZCU102 + ADRV9371. Die Kosten der Komponenten, die im ersten Prototyp von OpenWifi verwendet wurden, beliefen sich auf etwa 1300 Euro, aber es wird an der Portierung auf kostengünstigere Boards gearbeitet. Zum Beispiel wird die Lösung auf Basis von 700 Euro kosten, während die Lösung auf Basis von 400 Euro kosten wird.
Die Leistungstest für die Verbindung eines Clients mit dem USB-Adapter TL-WDN4200 N900 zu einem Access Point, der auf OpenWifi basiert, ergaben eine Durchsatzrate von 30,6 Mbps (TCP) und 38,8 Mbps (UDP) bei der Datenübertragung vom Access Point zum Client sowie 17,0 Mbps (TCP) und 21,5 Mbps (UDP) bei der Übertragung vom Client zum Access Point. Zur Verwaltung können Standard-Linux-Dienstprogramme wie ifconfig und iwconfig sowie das spezielle Dienstprogramm sdrctl verwendet werden, das über netlink arbeitet und es ermöglicht, SDR auf niedriger Ebene (Register zu manipulieren, Zeiteinstellungen zu ändern usw.) zu steuern.

Von anderen Open-Source-Projekten, die mit Wi-Fi-Stacks experimentieren, kann das Projekt , das einen kompatiblen IEEE 802.11 a/g/p auf Basis von GNU Radio und einem normalen PC entwickelt, erwähnen. Auch die Software-Open-Source-Wireless-Stacks 802.11 entwickeln Projekte wie und (Microsoft Research Software Radio).
Quelle: opennet.ru
