Frenetic
Authors:
Top Cited Papers
Open Access
- 18 September 2011
- journal article
- conference paper
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 46 (9) , 279-291
Abstract
Modern networks provide a variety of interrelated services including routing, traffic monitoring, load balancing, and access control. Unfortunately, the languages used to program today's networks lack modern features - they are usually defined at the low level of abstraction supplied by the underlying hardware and they fail to provide even rudimentary support for modular programming. As a result, network programs tend to be complicated, error-prone, and difficult to maintain. This paper presents Frenetic, a high-level language for programming distributed collections of network switches. Frenetic provides a declarative query language for classifying and aggregating network traffic as well as a functional reactive combinator library for describing high-level packet-forwarding policies. Unlike prior work in this domain, these constructs are - by design - fully compositional, which facilitates modular reasoning and enables code reuse. This important property is enabled by Frenetic's novel run-time system which manages all of the details related to installing, uninstalling, and querying low-level packet-processing rules on physical switches. Overall, this paper makes three main contributions: (1) We analyze the state-of-the art in languages for programming networks and identify the key limitations; (2) We present a language design that addresses these limitations, using a series of examples to motivate and validate our choices; (3) We describe an implementation of the language and evaluate its performance on several benchmarks.Keywords
This publication has 24 references indexed in Scilit:
- NOXACM SIGCOMM Computer Communication Review, 2008
- OpenFlowACM SIGCOMM Computer Communication Review, 2008
- Adaptive functional programmingACM Transactions on Programming Languages and Systems, 2006
- Embedding Dynamic Dataflow in a Call-by-Value Language2006
- Implementing declarative overlaysACM SIGOPS Operating Systems Review, 2005
- Declarative routingACM SIGCOMM Computer Communication Review, 2005
- The CQL continuous query language: semantic foundations and query executionThe VLDB Journal, 2005
- The click modular routerACM Transactions on Computer Systems, 2000
- Bro: a system for detecting network intruders in real-timeComputer Networks, 1999
- The Esterel synchronous programming language: design, semantics, implementationScience of Computer Programming, 1992