Abstract
Programmable networks support a wide variety of applications, including access control, routing, monitoring, caching, and synchronization. As demand for applications grows, so does resource contention within the switch data plane. Cramming applications onto a switch is a challenging task that often results in non-modular programming, frustrating “trial and error” compile-debug cycles, and suboptimal use of resources. In this paper, we present P4All, an extension of P4 that allows programmers to define elastic data structures that stretch automatically to make optimal use of available switch resources. These data structures are defined using symbolic primitives (that parameterize the size and shape of the structure) and objective functions (that quantify the value gained or lost as that shape changes). A top-level optimization function specifies how to share resources amongst data structures or applications. We demonstrate the inherent modularity and effectiveness of our design by building a range of reusable elastic data structures including hash tables, Bloom filters, sketches, and key-value stores, and using those structures within larger applications. We show how to implement the P4All compiler using a combination of dependency analysis, loop unrolling, linear and non-linear constraint generation, and constraint solving. We evaluate the compiler's performance, showing that a range of elastic programs can be compiled to P4 in few minutes at most, but usually less.
Original language | English |
---|---|
Title of host publication | Proceedings of the 19th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2022 |
Publisher | USENIX Association |
Pages | 193-207 |
Number of pages | 15 |
ISBN (Electronic) | 9781939133274 |
State | Published - 2022 |
Event | 19th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2022 - Renton, United States Duration: 4 Apr 2022 → 6 Apr 2022 |
Publication series
Name | Proceedings of the 19th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2022 |
---|
Conference
Conference | 19th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2022 |
---|---|
Country/Territory | United States |
City | Renton |
Period | 4/04/22 → 6/04/22 |
Bibliographical note
Funding Information:We thank the anonymous NSDI reviewers and our shepherd Costin Raiciu for their valuable feedback. This work is supported by DARPA under Dispersed Computing HR0011-17-C-0047, NSF under FMiTF-1837030 and CNS-1703493 and the Israel Science Foundation under grant No. 980/21.
Publisher Copyright:
© 2022 by The USENIX Association. All Rights Reserved.