En la conferencia FOSDEM 2020 iniciado hace varios años , desarrollando la primera implementación abierta del stack completo Wi-Fi 802.11a/g/n, cuya forma de señal y modulación se define por software (SDR, Software Defined Radio). OpenWifi permite crear una implementación completamente controlada de todos los componentes del dispositivo inalámbrico, incluidos los niveles de bajo nivel, que en adaptadores inalámbricos comunes se realizan en chips que no son auditables. El código , así como de bloques de hardware en Verilog para FPGA se distribuyen bajo la licencia AGPLv3.
El componente de hardware del prototipo funcional presentado se basa en el FPGA Xilinx Zynq y el transceptor universal (RF) AD9361. OpenWifi utiliza la arquitectura SoftMAC, que implica la implementación del stack inalámbrico 802.11 (high-MAC) en el lado del controlador y la existencia de una capa low-MAC en el FPGA. Se utiliza la subsistema mac80211, proporcionada por el núcleo de Linux, como stack inalámbrico. La interacción con el SDR se realiza a través de un controlador especial.
Principales características:
- Soporte completo para 802.11a/g y soporte parcial para 802.11n MCS 0~7 (hasta ahora solo PHY rx). Se planea el soporte para 802.11ax;
- Ancho de banda de 20MHz y rango de frecuencias de 70 MHz a 6 GHz;
- Modos de operación: (red de dispositivos cliente), punto de acceso, estación y monitoreo;
- Implementación en el FPGA del protocolo de nivel de enlace (Distributed Coordination Function), que utiliza el método CSMA/CA. Se garantiza un tiempo de procesamiento de trama () a nivel de 10us;
- Parámetros configurables de prioridad de acceso al canal: duración de RTS/CTS, CTS-to-self, SIFS, DIFS, xIFS, tiempo de ranura, etc.
- Cuantización del tiempo () basado en la dirección MAC;
- Ancho de banda y frecuencia fácilmente ajustables:
2MHz para 802.11ah y 10MHz para 802.11p;
Actualmente, OpenWifi garantiza plataformas SDR basadas en FPGA
Xilinx ZC706 con transceptores Analog Devices FMCOMMS2/3/4, así como conjuntos (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB y ADRV9361Z7035 SOM + ADRV1CRR-FMC. Se ha generado una de tarjeta SD basada en ARM Linux. Se planea el soporte para conjuntos ADRV9364Z7020 SOM + ADRV1CRR-BOB, Xilinx zed + FMCOMMS2/3/4, Xilinx ZCU102 + FMCOMMS2/3/4 y
Xilinx ZCU102 + ADRV9371. El costo de los componentes utilizados en el primer prototipo de OpenWifi fue de aproximadamente 1300 euros, pero se está portando a placas más económicas. Por ejemplo, el costo de la solución basada en será de 700 euros, y la basada en — 400 euros.
Las pruebas de rendimiento de la conexión del cliente con el adaptador USB TL-WDN4200 N900 al punto de acceso basado en OpenWifi lograron un ancho de banda de 30.6 Mbps (TCP) y 38.8 Mbps (UDP) al transferir datos desde el punto de acceso al cliente, y 17.0 Mbps (TCP) y 21.5 Mbps (UDP) al transferir del cliente al punto de acceso. Para la gestión se pueden utilizar utilidades estándar de Linux, como ifconfig e iwconfig, así como una herramienta especializada, sdrctl, que funciona a través de netlink y permite gestionar el SDR a nivel bajo (manipular registros, cambiar configuraciones de cuantización de tiempo, etc.).

De otros proyectos open source que experimentan con el stack de Wi-Fi, se puede destacar el proyecto , que desarrolla un transmisor compatible con IEEE 802.11 a/g/p Ziria y Docker Compose: simplificación del trabajo con Makefile
Fuente: opennet.ru
