Gauntlet: Finding Bugs in Compilers for Programmable Packet Processing

被引:0
|
作者
Ruffy, Fabian [1 ]
Wang, Tao [1 ]
Sivaraman, Anirudh [1 ]
机构
[1] NYU, New York, NY 10003 USA
关键词
VALIDATION;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Programmable packet-processing devices such as programmable switches and network interface cards are becoming mainstream. These devices are configured in a domain-specific language such as P4, using a compiler to translate packet-processing programs into instructions for different targets. As networks with programmable devices become widespread, it is critical that these compilers be dependable. This paper considers the problem of finding bugs in compilers for packet processing in the context of P4(16). We introduce domain-specific techniques to induce both abnormal termination of the compiler (crash bugs) and miscompilation (semantic bugs). We apply these techniques to (1) the opensource P4 compiler (P4C) infrastructure, which serves as a common base for different P4 back ends; (2) the P4 back end for the P4 reference software switch; and (3) the P4 back end for the Barefoot Tofino switch. Across the 3 platforms, over 8 months of bug finding, our tool Gauntlet detected 96 new and distinct bugs (62 crash and 34 semantic), which we confirmed with the respective compiler developers. 54 have been fixed (31 crash and 23 semantic); the remaining have been assigned to a developer. Our bug-finding efforts also led to 6 P4 specification changes. We have open sourced Gauntlet at p4gauntlet.github. i and it now runs within P4C's continuous integration pipeline.
引用
收藏
页码:683 / 699
页数:17
相关论文
共 50 条
  • [41] Finding and Understanding Bugs in FPGA Synthesis Tools
    Herklotz, Yann
    Wickerson, John
    2020 ACM/SIGDA INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE GATE ARRAYS (FPGA '20), 2020, : 277 - 287
  • [42] A Randomized Scheduler with Probabilistic Guarantees of Finding Bugs
    Burckhardt, Sebastian
    Kothari, Pravesh
    Musuvathi, Madanlal
    Nagarakatte, Santosh
    ASPLOS XV: FIFTEENTH INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS, 2010, : 167 - 178
  • [43] DebugNS: Novelty Search for Finding Bugs in Simulators
    Griffin, David
    Stepney, Susan
    Vidamour, Ian
    2023 IEEE/ACM INTERNATIONAL WORKSHOP ON GENETIC IMPROVEMENT, GI, 2023, : 17 - 18
  • [44] Finding Bugs in Cryptographic Hash Function Implementations
    Mouha, Nicky
    Raunak, Mohammad S.
    Kuhn, D. Richard
    Kacker, Raghu
    IEEE TRANSACTIONS ON RELIABILITY, 2018, 67 (03) : 870 - 884
  • [45] Understanding and Finding Java']Java Decompiler Bugs
    Lu, Yifei
    Hou, Weidong
    Pan, Minxue
    Li, Xuandong
    Su, Zhendong
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2024, 8 (OOPSLA):
  • [46] Finding and Preventing Bugs in Java']JavaScript Bindings
    Brown, Fraser
    Narayan, Shravan
    Wahby, Riad S.
    Engler, Dawson
    Jhala, Ranjit
    Stefan, Deian
    2017 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP), 2017, : 559 - 578
  • [47] Finding and Understanding Incompleteness Bugs in SMT Solvers
    Bringolf, Mauro
    Winterer, Dominik
    Su, Zhendong
    PROCEEDINGS OF THE 37TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, ASE 2022, 2022,
  • [48] Finding and Understanding Bugs in Software Model Checkers
    Zhang, Chengyu
    Su, Ting
    Yan, Yichen
    Zhang, Fuyuan
    Pu, Geguang
    Su, Zhendong
    ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, : 763 - 773
  • [49] Finding Concurrency Bugs Under Imprecise Harnesses
    Lal, Akash
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2014, (155):
  • [50] Finding Bugs in Exceptional Situations of JNI Programs
    Li, Siliang
    Tan, Gang
    CCS'09: PROCEEDINGS OF THE 16TH ACM CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2009, : 442 - 452