TY - GEN
T1 - NAP
T2 - 6th International Workshop on P4 in Europe, EuroP4 2023, co-located with ACM CoNEXT 2023
AU - Pan, Mengying
AU - Kim, Hyojoon
AU - Rexford, Jennifer
AU - Walker, David
N1 - Publisher Copyright:
© 2023 Owner/Author.
PY - 2023/12/8
Y1 - 2023/12/8
N2 - Many applications that run on programmable data planes rely on approximate data structures, due to insufficient in-network memory. However, programming with approximate data structures is challenging because it requires (1) expertise in streaming algorithms to select the data structures that best match an application's requirements, (2) meticulous configuration to minimize approximation error while fitting within the hardware constraints, and (3) proficiency in the low-level P4 language. To address these issues, we propose NAP, a high-level network programming language. The core of NAP is the versatile approximate dictionary abstraction that captures a wide range of compact data structures, while allowing programmers to simply specify the kinds of error an application can tolerate. We demonstrate the language's expressiveness, conciseness, and efficiency through a variety of network applications, each compiling to P4 for the Intel Tofino in less than a second and featuring 25X - 50X fewer lines of code compared to the P4 output. We evaluate an approximate stateful firewall written in NAP with real campus traffic, achieving performance consistent with the predicted accuracy.
AB - Many applications that run on programmable data planes rely on approximate data structures, due to insufficient in-network memory. However, programming with approximate data structures is challenging because it requires (1) expertise in streaming algorithms to select the data structures that best match an application's requirements, (2) meticulous configuration to minimize approximation error while fitting within the hardware constraints, and (3) proficiency in the low-level P4 language. To address these issues, we propose NAP, a high-level network programming language. The core of NAP is the versatile approximate dictionary abstraction that captures a wide range of compact data structures, while allowing programmers to simply specify the kinds of error an application can tolerate. We demonstrate the language's expressiveness, conciseness, and efficiency through a variety of network applications, each compiling to P4 for the Intel Tofino in less than a second and featuring 25X - 50X fewer lines of code compared to the P4 output. We evaluate an approximate stateful firewall written in NAP with real campus traffic, achieving performance consistent with the predicted accuracy.
KW - abstraction
KW - data structure
KW - programmable data plane
KW - programming language
UR - http://www.scopus.com/inward/record.url?scp=85183469696&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85183469696&partnerID=8YFLogxK
U2 - 10.1145/3630047.3630196
DO - 10.1145/3630047.3630196
M3 - Conference contribution
AN - SCOPUS:85183469696
T3 - EuroP4 2023 - Proceedings of the 6th International Workshop on P4 in Europe
SP - 33
EP - 39
BT - EuroP4 2023 - Proceedings of the 6th International Workshop on P4 in Europe
PB - Association for Computing Machinery, Inc
Y2 - 8 December 2023
ER -