Skip to content

frenetic-lang/netcore-1.0

Repository files navigation

NetCore 1.0

This is the old NetCore controller. We recommend using the new Frenetic controller:

http://www.github.com/frenetic-lang/frenetic

Frenetic implements the main ideas of NetCore and has several more features and enhancements.


NetCore is a high-level network programming language. This package provides a NetCore compiler and runtime system for OpenFlow networks.

Requirements

NetCore 1.0 (stable release)

Installation

NetCore is available on Hackage:

cabal update
cabal install netcore

This installs a Haskell library that you can use to write Frenetic applications.

Demos

We have several demos that use Frenetic and scripts that run them on Mininet networks. Download and expand the following tarball:

https://github.com/downloads/frenetic-lang/netcore/netcore-1.0.0-examples.tar.gz

To build:

cd examples
cabal configure
cabal build
sudo ./demo.py <your username> # Mininet requires sudo

NetCore development version

Installation

NetCore is open-source, with code available on Github:

git clone git://github.com/frenetic-lang/netcore.git
cd netcore
git submodule init
git submodule update
make

Demos

Within the NetCore source directory (netcore in the script above):

cd examples
cabal configure
cabal build
sudo ./demo.py <your username> # Mininet requires sudo

Slice Verification

We use translation validation to verify that Frenetic slices are correctly compiled. Verification requires the Microsoft Z3 SMT Solver:

http://research.microsoft.com/en-us/um/redmond/projects/z3/download.html

Our scripts expect the z3 executable to be in the PATH.