ReactiFi: Reactive Programming of Wi-Fi Firmware on Mobile Devices

Artur Sterz, Matthias Eichholz, Ragnar Mogk, Lars Baumgärtner, Pablo Graubner, Matthias Hollick, Mira Mezini, Bernd Freisleben · The Art Science and Engineering of Programming · 2020

Network programmability will be required to handle future increased network traffic and constantly changing application needs.However, there is currently no way of using a high-level, easy to use programming language to program Wi-Fi firmware.This impedes rapid prototyping and deployment of novel network services/applications and hinders continuous performance optimization in Wi-Fi networks, since expert knowledge is required for both the used hardware platforms and the Wi-Fi domain.In this paper, we present ReactiFi, a high-level reactive programming language to program Wi-Fi chips on mobile consumer devices.ReactiFi enables programmers to implement extensions of PHY, MAC, and IP layer mechanisms without requiring expert knowledge of Wi-Fi chips, allowing for novel applications and network protocols.ReactiFi programs are executed directly on the Wi-Fi chip, improving performance and power consumption compared to execution on the main CPU.ReactiFi is conceptually similar to functional reactive languages, but is dedicated to the domain-specific needs of Wi-Fi firmware.First, it handles low-level platform-specific details without interfering with the core functionality of Wi-Fi chips.Second, it supports static reasoning about memory usage of applications, which is important for typically memory-constrained Wi-Fi chips.Third, it limits dynamic changes of dependencies between computations to dynamic branching, in order to enable static reasoning about the order of computations.We evaluate ReactiFi empirically in two real-world case studies.Our results show that throughput, latency, and power consumption are significantly improved when executing applications on the Wi-Fi chip rather than in the operating system kernel or in user space.Moreover, we show that the high-level programming abstractions of ReactiFi have no performance overhead compared to manually written C code.

Read the paper · More papers on PaperTik