Galois Tech Talk: Frenetic: A Network Programming Language
Presented by Nate Foster.
The languages used to program networks today lack modern features. Programming them is a complicated task, and outages and infiltrations are frequent. We believe it is time to develop NETWORK PROGRAMMING LANGUAGES with the following essential features:
High-level abstractions that give programmers direct control over the network, allowing them to specify what they want the network to do without worrying about how to implement it.
Compositional constructs that facilitate modular reasoning about programs.
Portability, allowing programs written for one platform to be used with different devices.
Rigorous semantic foundations that precisely document the meaning of the language and provide a basis for building formal verification tools.
The Frenetic language addresses these challenges in the context of OpenFlow networks. It combines a streaming declarative query sub-language and a functional reactive sub-language that, together, provide many of the features listed above. Our implementation handles many low-level packet-processing details and keeps traffic in the "fast path" whenever possible.