At the recent FOSDEM 2020 conference, project , which is developing the first open implementation of the complete Wi-Fi 802.11a/g/n stack, with signal form and modulation defined programmatically (SDR, Software Defined Radio). OpenWifi allows the creation of a fully controlled implementation of all components of a wireless device, including low-level layers that in standard wireless adapters are realized at the level of chips that are inaccessible for auditing. The code , as well as of hardware blocks in Verilog for FPGA are distributed under the AGPLv3 license.
The hardware component of the demonstrated working prototype is based on the Xilinx Zynq FPGA and the AD9361 universal transceiver (RF). OpenWifi uses the SoftMAC architecture, which implies the implementation of the core wireless 802.11 (high-MAC) stack on the driver side and the presence of a low-MAC layer on the FPGA side. The wireless stack uses the mac80211 subsystem provided by the Linux kernel. Interaction with SDR is done through a special driver.
Main Features:
- Full support for 802.11a/g and partial support for 802.11n MCS 0~7 (currently only PHY rx). Support for 802.11ax is planned;
- 20MHz bandwidth and a frequency range from 70 MHz to 6 GHz;
- Operating modes: (a network of client devices), access point, station, and monitoring;
- Implementation on the FPGA side of the channel level protocol (Distributed Coordination Function), using CSMA/CA method. Frame processing time is ensured at the level of) of 10us;
- Configurable parameters for channel access priority: RTS/CTS duration, CTS-to-self, SIFS, DIFS, xIFS, slot-time, etc.
- Time quantization () based on MAC address;
- Easily adjustable bandwidth and frequency:
2MHz for 802.11ah and 10MHz for 802.11p;
Currently, OpenWifi provides SDR platforms based on FPGA
Xilinx ZC706 with Analog Devices FMCOMMS2/3/4 transceivers, as well as bundles (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB and ADRV9361Z7035 SOM + ADRV1CRR-FMC. A ready-made image for Xilinx ZCU102 + ADRV9371 is planned.
Xilinx ZCU102 + ADRV9371. The cost of components involved in the first prototype of OpenWifi was around 1300 euros, but porting to cheaper boards is underway. For example, the cost of a solution based on will be 700 euros, and based on — 400 euros.
Performance testing of a client connection with the USB adapter TL-WDN4200 N900 to the OpenWifi access point achieved a throughput of 30.6 Mbps (TCP) and 38.8 Mbps (UDP) for data transmission from the access point to the client, and 17.0 Mbps (TCP) and 21.5 Mbps (UDP) for transmission from the client to the access point. Standard Linux utilities such as ifconfig and iwconfig can be used for management, as well as a specialized utility sdrctl, which operates through netlink and allows low-level control of the SDR (manipulating registers, changing time quantization settings, etc.).

Among other open projects experimenting with the Wi-Fi stack, one can mention the project , developing an IEEE 802.11 a/g/p based on GNU Radio and a standard PC. Open software wireless stacks 802.11 are also developing projects and (Microsoft Research Software Radio).
Source: opennet.ru
