FLECS: A Data-Driven Framework for Rapid Protocol Prototyping

Flecs is a framework for facilitating rapid implementation of communication protocols. Forwarding functionality of protocols can be modeled as a combination of packet processing components called abstract switching elements or Ases. The design of Ases is constrained by the axioms of communication which enables us to formally analyze forwarding mechanisms in communication networks. Ases can be connected in a directed graph to define complex forwarding functionality. We have developed Flecs on top of the Click modular router. The compilers in the Flecs framework translate protocol specifications into its Click implementation. We claim that the use of our framework reduces the implementation time by allowing the programmer to specify Ases and the forwarding configuration in a high-level meta-language and produces reasonably efficient implementations. It allows rapid prototyping through configuration, as well as specialized implementation of performance-critical functionality through inheritance.

[1]  David A. Maltz,et al.  Dynamic Source Routing in Ad Hoc Wireless Networks , 1994, Mobidata.

[2]  Tommaso Bolognesi,et al.  Tableau methods to describe strong bisimilarity on LOTOS processes involving pure interleaving and enabling , 1994, FORTE.

[3]  Eddie Kohler,et al.  The Click modular router , 1999, SOSP.

[4]  Richard Lai,et al.  A rapid protocol prototyping development system , 1995, Proceedings Sixth IEEE International Workshop on Rapid System Prototyping. Shortening the Path from Specification to Prototype.

[5]  David D. Clark,et al.  The design philosophy of the DARPA internet protocols , 1988, SIGCOMM '88.

[6]  Bernhard Plattner,et al.  Router plugins: a software architecture for next generation routers , 1998, SIGCOMM '98.

[7]  Eddie Kohler,et al.  A readable TCP in the Prolac protocol language , 1999, SIGCOMM '99.

[8]  Michael Walfish,et al.  A layered naming architecture for the internet , 2004, SIGCOMM '04.

[9]  Tamio Hoshino,et al.  Rapid protocol prototyping from message sequence chart based specification , 1996, Proceedings Seventh IEEE International Workshop on Rapid System Prototyping. Shortening the Path from Specification to Prototype.

[10]  Joseph M. Hellerstein,et al.  Finally, a Use for Componentized Transport Protocols , 2006 .

[11]  Scott Shenker,et al.  Internet indirection infrastructure , 2004, IEEE/ACM Transactions on Networking.

[12]  Douglas Comer,et al.  Network Systems Design Using Network Processors , 2003 .

[13]  Larry L. Peterson,et al.  The x-Kernel: An Architecture for Implementing Network Protocols , 1991, IEEE Trans. Software Eng..

[14]  Walid Dabbous,et al.  Generating efficient protocol code from an abstract specification , 1996, SIGCOMM '96.

[15]  Larry L. Peterson,et al.  A dynamic network architecture , 1992, TOCS.

[16]  David R. Karger,et al.  Chord: A scalable peer-to-peer lookup service for internet applications , 2001, SIGCOMM '01.

[17]  David J. Scott,et al.  Melange: creating a "functional" internet , 2007, EuroSys '07.

[18]  David L Tennenhouse Layered Multiplexing Considered Harmful , 2008 .

[19]  Stanislaw Budkowski,et al.  An Introduction to Estelle: A Specification Language for Distributed Systems , 1987, Comput. Networks.

[20]  David R. Cheriton,et al.  An Architecture for Content Routing Support in the Internet , 2001, USITS.

[21]  Benedikt Schulz,et al.  Tool-Supported Component Evolution , 1999, ECOOP Workshops.

[22]  Mike Hutton Architecture and CAD for FPGAs , 2004, Proceedings. SBCCI 2004. 17th Symposium on Integrated Circuits and Systems Design (IEEE Cat. No.04TH8784).

[23]  Paul V. Mockapetris,et al.  Domain names: Concepts and facilities , 1983, RFC.

[24]  Paul V. Mockapetris,et al.  Domain names - implementation and specification , 1987, RFC.

[25]  Mostafa H. Ammar,et al.  Increasing the portability and re-usability of protocol code , 1997, TNET.

[26]  Christoph Kreitz,et al.  Building reliable, high-performance communication systems from components , 2000, OPSR.

[27]  Larry Peterson,et al.  A language-based approach to protocol implementation , 1992, SIGCOMM 1992.

[28]  Douglas Comer Network Systems Design with Network Processors, Agere Version , 2004 .

[29]  Stephen D. Brown,et al.  Architecture of FPGAs and CPLDs: A Tutorial , 2000 .

[30]  Walid Dabbous,et al.  Generating efficient protocol code from an abstract specification , 1997, TNET.

[31]  M. Karsten,et al.  An axiomatic basis for communication , 2007, SIGCOMM '07.

[32]  David R. Karger,et al.  Chord: a scalable peer-to-peer lookup protocol for internet applications , 2003, TNET.