TY - GEN
T1 - P4Testgen
T2 - ACM SIGCOMM 2023 Conference
AU - Ruffy, Fabian
AU - Liu, Jed
AU - Kotikalapudi, Prathima
AU - Havel, Vojtech
AU - Tavante, Hanneli
AU - Sherwood, Rob
AU - Dubina, Vladyslav
AU - Peschanenko, Volodymyr
AU - Sivaraman, Anirudh
AU - Foster, Nate
N1 - Publisher Copyright:
© 2023 ACM.
PY - 2023/9/10
Y1 - 2023/9/10
N2 - We present P4Testgen, a test oracle for the P416 language. P4Testgen supports automatic test generation for any P4 target and is designed to be extensible to many P4 targets. It models the complete semantics of the target's packet-processing pipeline including the P4 language, architectures and externs, and target-specific extensions. To handle non-deterministic behaviors and complex externs (e.g., checksums and hash functions), P4Testgen uses taint tracking and concolic execution. It also provides path selection strategies that reduce the number of tests required to achieve full coverage.We have instantiated P4Testgen for the V1model, eBPF, PNA, and Tofino P4 architectures. Each extension required effort commensurate with the complexity of the target. We validated the tests generated by P4Testgen by running them across the entire P4C test suite as well as the programs supplied with the Tofino P4 Studio. Using the tool, we have also confirmed 25 bugs in mature, production toolchains for BMv2 and Tofino.
AB - We present P4Testgen, a test oracle for the P416 language. P4Testgen supports automatic test generation for any P4 target and is designed to be extensible to many P4 targets. It models the complete semantics of the target's packet-processing pipeline including the P4 language, architectures and externs, and target-specific extensions. To handle non-deterministic behaviors and complex externs (e.g., checksums and hash functions), P4Testgen uses taint tracking and concolic execution. It also provides path selection strategies that reduce the number of tests required to achieve full coverage.We have instantiated P4Testgen for the V1model, eBPF, PNA, and Tofino P4 architectures. Each extension required effort commensurate with the complexity of the target. We validated the tests generated by P4Testgen by running them across the entire P4C test suite as well as the programs supplied with the Tofino P4 Studio. Using the tool, we have also confirmed 25 bugs in mature, production toolchains for BMv2 and Tofino.
UR - http://www.scopus.com/inward/record.url?scp=85166465804&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85166465804&partnerID=8YFLogxK
U2 - 10.1145/3603269.3604834
DO - 10.1145/3603269.3604834
M3 - Conference contribution
AN - SCOPUS:85166465804
T3 - SIGCOMM 2023 - Proceedings of the ACM SIGCOMM 2023 Conference
SP - 136
EP - 151
BT - SIGCOMM 2023 - Proceedings of the ACM SIGCOMM 2023 Conference
PB - Association for Computing Machinery, Inc
Y2 - 10 September 2023 through 14 September 2023
ER -