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