Chimpp: a click-based programming and simulation environment for reconfigurable networking hardware

  • Authors:
  • Erik Rubow;Rick McGeer;Jeff Mogul;Amin Vahdat

  • Affiliations:
  • Ericsson Research, San Jose, CA;HP Labs, Palo Alto, CA;HP Labs, Palo Alto, CA;UC San Diego, La Jolla, CA

  • Venue:
  • Proceedings of the 6th ACM/IEEE Symposium on Architectures for Networking and Communications Systems
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Reconfigurable network hardware makes it easier to experiment with and prototype high-speed networking systems. However, these devices are still relatively hard to program; for example, requiring users to develop in Verilog or VHDL. Further, these devices are commonly designed to work with software on a host computer, requiring the co-development of these hardware and software components. We address this situation with Chimpp, a development environment for reconfigurable network hardware, modeled on the popular Click modular router system. Chimpp employs a modular approach to designing hardware-based packet-processing systems, featuring a simple configuration language similar to that of Click. We demonstrate this development environment by targeting the NetF-PGA platform. Chimpp can be combined with Click itself at the software layer for a highly modular, mixed hardware and software design framework. We also enable the integrated simulation of the hardware and software components of a network device together with other network devices using the OMNeT++ network simulator. The goal of Chimpp is to make experimentation easy by providing a toolbox of reusable, modular elements and a way to easily combine them. In contrast with some prior work, Chimpp avoids unnecessary restrictions on module interfaces and design styles. Rather, it is easy to add custom interfaces and to incorporate existing hardware modules. We describe our design and implementation of Chimpp, and provide initial evaluations showing how Chimpp makes it easier to implement, simulate, and modify a variety of packet-processing systems on the NetFPGA platform.