An Embedded Language Approach to Router Specification in Curry
The development of modern routers require a significant effort to be designed, built, and verified. While hardware routers are faster, they are difficult to configure and maintain. Software routers, on the other hand, are slower but much more flexible, easier to configure and maintain, less expensive, etc. Recently, a modular architecture and toolkit for building software routers and other packet processors has been introduced: the Click system. It includes a specification language with features for declaring and connecting router elements and for designing abstractions.
In this work, we introduce the domain-specific language Rose for the specification of software routers. Rose is embedded in Curry, a modern declarative multi-paradigm language. An advantage of this approach is that we have available a framework where router specifications can be transformed, optimized, verified, etc., by using a number of existing formal techniques already developed for Curry programs. Furthermore, we show that the features of Curry are particularly useful to specify router configurations with a high-level of abstraction. Our first experiments point out that the proposed methodology is both useful and practical.
KeywordsComposition Operator Input Stream Output Stream Packet Source Packet Stream
Unable to display preview. Download preview PDF.
- 1.Albert, E., Hanus, M., Vidal, G.: A Practical Partial Evaluation Scheme for Multi- Paradigm Declarative Languages. Journal of Functional and Logic Programming 2002 (2002)Google Scholar
- 3.Claessen, K.: Embedded Languages for Describing and Verifying Hardware. PhD Thesis, Chalmers University of Technology and Gø̈teborg University, Department of Computing Science (2001) Google Scholar
- 4.Cousot, P., Cousot, R.: Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In: Proc. of 4th ACM Symp. on Principles of Programming Languages, pp. 238–252 (1977)Google Scholar
- 5.Cousot, P., Cousot, R.: Systematic Design of Program Analysis Frameworks. In: Proc. of 6th ACM Symp. on Principles of Programming Languages, pp. 269–282 (1979)Google Scholar
- 6.Gottlieb, Y., Peterson, L.: A Comparative Study of Extensible Routers. In: 2002 IEEE Open Architectures and Network Programming Proceedings, pp. 51–62 (2002)Google Scholar
- 8.Hanus, M., Antoy, S., Koj, J., Sadre, R., Steiner, F.: PAKCS 1.5: The Portland Aachen Kiel Curry System User Manual. Technical report, University of Kiel, Germany (2003)Google Scholar
- 9.Hanus, M. (ed.): Curry: An Integrated Functional Logic Language, Available at, http://www.informatik.uni-kiel.de/~mh/curry/
- 10.Kohler, E.: The Click Modular Router. PhD thesis, Massachusetts Institute of Technology (2001)Google Scholar
- 12.Matthews, J.: Algebraic Specification and Verification of Processor Microarchitectures. PhD thesis, University of Washington (2000)Google Scholar
- 14.Peterson, L., Karlin, S., Li, K.: OS Support for General-Purpose Routers. In: Workshop on Hot Topics in Operating Systems (Hot-OS-VII), IEEE Computer Society Technical Committee on Operating Systems, pp. 38–43 (1999)Google Scholar