TY - GEN
T1 - Lucid
T2 - 2021 Annual Conference of the ACM Special Interest Group on Data Communication on the Applications, SIGCOMM 2021
AU - Sonchack, John
AU - Loehr, Devon
AU - Rexford, Jennifer
AU - Walker, David
N1 - Funding Information:
Acknowledgments. We thank our shepherd, Brent Stephens, and the anonymous reviewers for their feedback. We also thank Mihai Budiu, Ben Pfaff, Leonid Ryzhyk, and Muhammad Shahbaz for fruitful discussions and useful feedback on this project, and Dovid Braverman for his help with developing the compiler front-end. This work is supported by NSF grants CNS-1703493 and FMitF-1837030 and DARPA grants HR0011-17-C-0047 and HR0011-20-C-0160.
Publisher Copyright:
© 2021 ACM.
PY - 2021/8/9
Y1 - 2021/8/9
N2 - Programmable switch hardware makes it possible to move fine-grained control logic inside the network data plane, improving performance for a wide range of applications. However, applications with integrated control are inherently hard to write in existing data-plane programming languages such as P4. This paper presents Lucid, a language that raises the level of abstraction for putting control functionality in the data plane. Lucid introduces abstractions that make it easy to write sophisticated data-plane applications with interleaved packet-handling and control logic, specialized type and syntax systems that prevent programmer bugs related to data-plane state, and an open-sourced compiler that translates Lucid programs into P4 optimized for the Intel Tofino. These features make Lucid general and easy to use, as we demonstrate by writing a suite of ten different data-plane applications in Lucid. Working prototypes take well under an hour to write, even for a programmer without prior Tofino experience, have around 10x fewer lines of code compared to P4, and compile efficiently to real hardware. In a stateful firewall written in Lucid, we find that moving control from a switch's CPU to its data-plane processor using Lucid reduces the latency of performance-sensitive operations by over 300X.
AB - Programmable switch hardware makes it possible to move fine-grained control logic inside the network data plane, improving performance for a wide range of applications. However, applications with integrated control are inherently hard to write in existing data-plane programming languages such as P4. This paper presents Lucid, a language that raises the level of abstraction for putting control functionality in the data plane. Lucid introduces abstractions that make it easy to write sophisticated data-plane applications with interleaved packet-handling and control logic, specialized type and syntax systems that prevent programmer bugs related to data-plane state, and an open-sourced compiler that translates Lucid programs into P4 optimized for the Intel Tofino. These features make Lucid general and easy to use, as we demonstrate by writing a suite of ten different data-plane applications in Lucid. Working prototypes take well under an hour to write, even for a programmer without prior Tofino experience, have around 10x fewer lines of code compared to P4, and compile efficiently to real hardware. In a stateful firewall written in Lucid, we find that moving control from a switch's CPU to its data-plane processor using Lucid reduces the latency of performance-sensitive operations by over 300X.
KW - data plane programming abstractions
KW - network control
KW - ordered type-and-effect-system
KW - syntactic constraints
UR - http://www.scopus.com/inward/record.url?scp=85113226229&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85113226229&partnerID=8YFLogxK
U2 - 10.1145/3452296.3472903
DO - 10.1145/3452296.3472903
M3 - Conference contribution
AN - SCOPUS:85113226229
T3 - SIGCOMM 2021 - Proceedings of the ACM SIGCOMM 2021 Conference
SP - 731
EP - 747
BT - SIGCOMM 2021 - Proceedings of the ACM SIGCOMM 2021 Conference
PB - Association for Computing Machinery, Inc
Y2 - 23 August 2021 through 27 August 2021
ER -