pith. sign in

arxiv: 1512.05023 · v2 · pith:DQN7P7C7new · submitted 2015-12-16 · 💻 cs.NI

Packet Transactions: High-level Programming for Line-Rate Switches

classification 💻 cs.NI
keywords algorithmsdata-planeline-rateswitchcodedominoexpresshardware
0
0 comments X p. Extension
pith:DQN7P7C7 Add to your LaTeX paper What is a Pith Number?
\usepackage{pith}
\pithnumber{DQN7P7C7}

Prints a linked pith:DQN7P7C7 badge after your title and writes the identifier into PDF metadata. Compiles on arXiv with no extra files. Learn more

read the original abstract

Many algorithms for congestion control, scheduling, network measurement, active queue management, security, and load balancing require custom processing of packets as they traverse the data plane of a network switch. To run at line rate, these data-plane algorithms must be in hardware. With today's switch hardware, algorithms cannot be changed, nor new algorithms installed, after a switch has been built. This paper shows how to program data-plane algorithms in a high-level language and compile those programs into low-level microcode that can run on emerging programmable line-rate switching chipsets. The key challenge is that these algorithms create and modify algorithmic state. The key idea to achieve line-rate programmability for stateful algorithms is the notion of a packet transaction : a sequential code block that is atomic and isolated from other such code blocks. We have developed this idea in Domino, a C-like imperative language to express data-plane algorithms. We show with many examples that Domino provides a convenient and natural way to express sophisticated data-plane algorithms, and show that these algorithms can be run at line rate with modest estimated die-area overhead.

This paper has not been read by Pith yet.

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.