Chimpp: A Click-based Programming and Simulation Environment for Reconfigurable Networking Hardware
Rubow, Erik; McGeer, Rick; Mogul, Jeffrey C.; Vahdat, Amin
Keyword(s): FPGAs, modular programming, Click
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, the NetFPGA requires users to develop in Verilog. 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 software 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 NetFPGA 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 imulator. In contrast to some prior work, Chimpp focuses on making experimentation easy, rather than on optimizing hardware performance. Chimpp also avoids unnecessary restrictions on communication patterns and design styles such as were imposed by prior approaches. We describe our design and implementation of Chimpp, and provide initial evaluations showing how Chimpp makes it easy to implement, simulate, and modify a variety of packet- processing systems on the NetFPGA platform.
External Posting Date: March 6, 2010 [Fulltext]. Approved for External Publication
Internal Posting Date: March 6, 2010 [Fulltext]