Durante la conferencia de la FOSDEM 2020 se dio a conocer el primer desarrollo de código abierto de OpenWifi “Wi-Fi 802.11 a/g/n “ de pila completa de forma de onda y la modulación que se define mediante programación (SDR, Software Defined Radio) y FPGA.
Lo interesante del proyecto OpenWifi es que permite crear una implementación totalmente compatible con Linux y que controla todos los componentes de un dispositivo inalámbrico, incluidas las capas de bajo nivel en adaptadores inalámbricos convencionales implementados a nivel de chips inaccesibles para auditoría. El código de los componentes de software, así como los circuitos y las descripciones de los bloques de hardware en el lenguaje Verilog para FPGA, se distribuyen bajo la licencia AGPLv3.
OpenWifi utiliza la arquitectura SoftMAC, lo que implica la implementación de la pila inalámbrica principal 802.11 en el lado del controlador y la presencia de una capa de bajo MAC en el lado FPGA. El subsistema mac80211 proporcionado por el kernel de Linux se usa como la pila inalámbrica, mientras que la interacción con SDR se realiza a través de un controlador especial.
El componente de hardware del prototipo funcional demostrado se basa en el FPGA Xilinx Zynq y el Transceptor Universal (RF) AD9361.
De las principales características de OpenWifi
- Soporte completo para 802.11a / gy soporte parcial para 802.11n MCS 0 ~ 7 (hasta ahora solo PHY rx). Los planes admiten 802.11ax
- Ancho de banda de 20MHz y rango de frecuencia de 70 MHz a 6 GHz
- Modos de funcionamiento: Ad-hoc (red de dispositivos cliente), punto de acceso, estación y monitoreo
- La implementación FPGA del protocolo DCF (función de coordinación distribuida) utilizando el método CSMA / CA. Proporciona tiempo de procesamiento de trama (SIFS) a 10us
- Parámetros configurables de prioridad de acceso al canal: RTS / CTS, CTS a sí mismo, SIFS, DIFS, xIFS, tiempo de ranura, etc.
- Por intervalo de tiempo basado en las direcciones MAC
- Ancho de banda y frecuencia fácilmente modificables: 2MHz para 802.11ah y 10MHz para 802.11p
- OpenWifi actualmente es compatible con las plataformas Xilinx ZC706 FPGA SDR con transceptores FMCOMMS2/3/4 de Analog Devices, así como los paquetes ADRV9361Z7035 SOM + ADRV1CRR-BOB y ADRV9361Z7035 SOM + ADRVCR (FPGA + RF).
Para la administración, se pueden utilizar utilidades estándar de Linux como ifconfig e iwconfig, así como una utilidad sdrctl especializada que funciona a través de netlink y le permite administrar SDR a un nivel bajo (manipular registros, cambiar la configuración de segmentación de tiempo, etc.).
Entre otros proyectos abiertos que experimentan con la pila de Wi-Fi, podemos mencionar el proyecto Wime, que desarrolla un transmisor compatible con IEEE 802.11 a/g/p basado en GNU Radio y una PC normal.
Así como también las pilas inalámbricas abiertas de software 802.11 también están siendo desarrolladas por Ziria y Sora (Microsoft Research Software Radio).
Durante las pruebas de rendimiento, de los datos que se obtuvieron al conectar un cliente con un adaptador USB TL-WDN4200 N900 a un punto de acceso basado en OpenWifi, permitió lograr un rendimiento de 30.6Mbps (TCP) y 38.8Mbps (UDP) al transmitir datos desde un punto de acceso a un cliente y 17.0Mbps (TCP) y 21.5Mbps (UDP) cuando se transmite desde un cliente a un punto de acceso.
Aquí hay una demostración de un teléfono que se conecta al punto de acceso que ejecuta OpenWifi.
Los componentes involucrados en el primer prototipo de OpenWifi cuestan alrededor de 1300 euros, pero se están transfiriendo a placas más baratas. Por ejemplo, el costo de una solución basada en Analog Devices ADRV9364-Z7020 será de 700 euros y en base a ZYNQ NH7020 que tiene un costo de unos 400 euros.
Descarga
Finalmente para quienes estén interesados en conocer más sobre el proyecto o descargar la imagen preparada de OpenWifi pueden obtenerla dirigiéndose al siguiente enlace.
Aqui podrán encontrar información sobre el uso e instalación de la imagen en una tarjeta SD (la imagen esta basada en una versión ARM de Linux).
De los componentes que actualmente admiten el paquete, se encuentra: ADRV9364Z7020 SOM + ADRV1CRR-BOB, Xilinx zed + FMCOMMS2/3/4, Xilinx ZCU102 + FMCOMMS2 / 3/4 y Xilinx ZCU102 + ADRV9371.
Fuente: https://fosdem.org