🤖 AI Summary
Existing Python/Shell-based control interfaces for Intel Tofino switch ASICs suffer from performance bottlenecks, memory unsafety, and poor scalability. Method: This paper introduces the first Rust-based runtime control library for Tofino—designed for high performance and memory safety—by tightly integrating P4 data-plane semantics with the Tofino Software Development Environment (SDE) API. Leveraging Rust’s zero-cost abstractions and deterministic, garbage-collection-free memory management, the library ensures type and memory safety without runtime overhead. Contribution/Results: Experimental evaluation shows a 1.33× speedup in single-entry table programming and up to 60× acceleration in bulk configuration. It enables millisecond-scale dynamic updates of flow tables containing tens of thousands of entries. This work establishes a new paradigm for programmable switch control planes, unifying security, performance, and maintainability.
📝 Abstract
The development of new network protocols and solutions requires extendable switches. With software-defined networking (SDN), the control plane and data plane are separated and the control plane can be programmed. Data plane programming further enables the programmability of network devices with domain-specific programming languages, like Programming Protocol-independent Packet Processors (P4). One P4-programmable hardware target is the Intel Tofino switching ASIC. The Tofino can be configured with shell scripts or a Python library. Both are limited in their capabilities and usability. This work introduces the Rust Barefoot Runtime (RBFRT), a Rust-based control plane library for the Tofino. The RBFRT provides an easy-to-use interface while being fast and memory-safe. In our evaluation, we achieved a speedup factor of 1.33 for single-entry configuration and 60 for batch configuration compared to the Python library.