Frenetic : A Network Programming Language
- ISSN: 03621340
- ISBN: 9781450308656
- DOI: 10.1145/2034773.2034812
Abstract
Modern networks provide a variety of interrelated services includ- ing routing, traffic monitoring, load balancing, and access control. Unfortunately, the languages used to program todays networks lack modern featuresthey 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 program- ming distributed collections of network switches. Frenetic provides a declarative query language for classifying and aggregating net- work traffic as well as a functional reactive combinator library for describing high-level packet-forwarding policies. Unlike prior work in this domain, these constructs areby designfully com- positional, which facilitates modular reasoning and enables code reuse. This important property is enabled by Frenetics 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 an- alyze 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 moti- vate and validate our choices; (3)We describe an implementation of the language and evaluate its performance on several benchmarks.
Author-supplied keywords
Sign up today - FREE
Mendeley saves you time finding and organizing research. Learn more
- All your research in one place
- Add and import papers easily
- Access it anywhere, anytime

