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

10/01/2020
by   Artur Sterz, et al.
0

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 FULL TEXT

page 6

page 30

page 31

page 32

page 33

page 34

page 35

page 36

research
04/07/2022

Controlling Golog Programs against MTL Constraints

While Golog is an expressive programming language to control the high-le...
research
11/29/2019

Juniper: A Functional Reactive Programming Language for the Arduino

This paper presents the design and implementation of Juniper: a function...
research
02/18/2022

Topology-Level Reactivity in Distributed Reactive Programs: Reactive Acquaintance Management using Flocks

Reactive programming is a popular paradigm to program event-driven appli...
research
05/27/2021

Hailstorm : A Statically-Typed, Purely Functional Language for IoT Applications

With the growing ubiquity of Internet of Things(IoT), more complex logic...
research
10/23/2017

Strategy Preserving Compilation for Parallel Functional Code

Graphics Processing Units (GPUs) and other parallel devices are widely a...
research
02/18/2021

Using Jupyter for reproducible scientific workflows

Literate computing has emerged as an important tool for computational st...

Please sign up or login with your details

Forgot password? Click here to reset