Programmable switches have emerged as powerful and flexible alternatives to fixed-function forwarding devices. But because of the unique hardware constraints of network switches, the design and implementation of compilers targeting these devices is tedious and error-prone. Despite the important role that compilers play in software development, there is a dearth of tools for testing compilers for programmable network devices. We present Druzhba, a programmable switch simulator used for testing compilers targeting programmable packet-processing substrates. We show that we can model the low-level behavior of a switch's programmable hardware. We further show how compiler developers can target Druzhba as a compiler backend. Generated machine code programs are fed into Druzhba and tested using a fuzzing-based approach that allows compiler developers to test the correctness of their compilers. Using a program-synthesis-based compiler as a case study, we demonstrate how Druzhba has been successful in testing compiler-generated machine code for our simulated switch pipeline instruction set.
CITATION STYLE
Wong, M. D., Varma, A. K., & Sivaraman, A. (2020). Testing compilers for programmable switches through switch hardware simulation. In CoNEXT 2020 - Proceedings of the 16th International Conference on Emerging Networking EXperiments and Technologies (pp. 211–217). Association for Computing Machinery, Inc. https://doi.org/10.1145/3386367.3431309
Mendeley helps you to discover research relevant for your work.