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 条
  • [21] Finding Typing Compiler Bugs
    Chaliasos, Stefanos
    Sotiropoulos, Thodoris
    Spinellis, Diomidis
    Gervais, Arthur
    Livshits, Benjamin
    Mitropoulos, Dimitris
    PROCEEDINGS OF THE 43RD ACM SIGPLAN INTERNATIONAL CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '22), 2022, : 183 - 198
  • [22] Systematic Study of Compilers and Vulnerability Scanners Using the Example of Integer Bugs
    di Angelo, Monika
    Mohr, Rafael
    Salzer, Gernot
    2024 IEEE INTERNATIONAL CONFERENCE ON BLOCKCHAIN, BLOCKCHAIN 2024, 2024, : 243 - 251
  • [23] Packet Subscriptions for Programmable ASICs
    Jepsen, Theo
    Moshref, Masoud
    Carzaniga, Antonio
    Foster, Nate
    Soule, Robert
    HOTNETS-XVII: PROCEEDINGS OF THE 2018 ACM WORKSHOP ON HOT TOPICS IN NETWORKS, 2018, : 176 - 183
  • [24] BPP over P4: Exploring Frontiers and Limits in Programmable Packet Processing
    Francois, Jerome
    Clemm, Alexander
    Maintenant, Vivien
    Tabor, Sebastien
    2020 IEEE GLOBAL COMMUNICATIONS CONFERENCE (GLOBECOM), 2020,
  • [25] Finding and Fixing Bugs in Web Applications
    Tip, Frank
    OBJECTS, MODELS, COMPONENTS, PATTERNS, TOOLS 2011, 2011, 6705 : 2 - 2
  • [26] Finding Usability Bugs with Automated Tests
    Harty, Julian
    COMMUNICATIONS OF THE ACM, 2011, 54 (02) : 44 - 49
  • [27] Finding and Preventing Bugs in JavaScript Bindings
    Brown, Fraser
    Narayan, Shravan
    Wahby, Riad S.
    Engler, Dawson
    Jhala, Ranjit
    Stefan, Deian
    Proceedings - IEEE Symposium on Security and Privacy, 2017, 0 : 559 - 578
  • [28] ABASH: Finding Bugs in Bash Scripts
    Mazurak, Karl
    Zdancewic, Steve
    PLAS'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN WORKSHOP ON PROGRAMMING LANGUAGES AND ANALYSIS FOR SECURITY, 2007, : 105 - 114
  • [29] UBFUZZ: Finding Bugs in Sanitizer Implementations
    Li, Shaohua
    Su, Zhendong
    PROCEEDINGS OF THE 29TH ACM INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS, ASPLOS 2024, VOL 1, 2024, : 435 - 449
  • [30] Programmable Packet-Optical Networks using Data Processing Units (DPUs) with Embedded GPU
    Castoldi, Piero
    Abu Bakar, Rana
    Sgambelluri, Andrea
    Olmos, Juan Jose Vegas
    Paolucci, Francesco
    Cugini, Filippo
    2024 OPTICAL FIBER COMMUNICATIONS CONFERENCE AND EXHIBITION, OFC, 2024,