Skip to content
Christian Stritzke edited this page Dec 23, 2015 · 3 revisions

Introduction

At the current state, NetIDE allows provides the following features:

  1. Write SDN apps for several controller frameworks
  2. Specify a topology to simulate an SDN app on
  3. Run an controllers and Mininet on a VM and test SDN apps on a specified topology using the Mininet prompt

The NetIDE Perspective

NetIDE comes with a perspective which lays out and arranges views and editors automatically. You can open the perspective by going to Window->Open Perspective->Other... in the menubar and selecting the NetIDE Perspective

NetIDE Screenshot

Once you have done that, you will see a project explorer at the left-hand side, a topology editor with an editor palette in the middle and a console in the bottom area.

NetIDE Projects

In order to create a new NetIDE project with a topology model and a folder to save your apps, select File->New->NetIDE Project in the NetIDE Perspective. Enter a Name and click Finish to create the project. Now you have an apps folder in which you can save your apps, a topology model file containing the semantic topology model and a representations file containing the topology diagram (which is empty in fresh projects).

The Topology Editor

NetIDE provides a graphical editor for the specification of network topologies. You can add elements to the topology diagram by clicking the respective icons in the palette and then clicking into the editor. In order to change properties of an element, like its IP or DPID, select the element and open the properties view in the bottom area. Note the following rules for editing topology diagrams:

  1. In order to create switches and hosts, you need to create a network first. Switches and hosts can then be added to the networks.
  2. Connecting two elements creates a new port on each element. When the connections are deleted, the ports have to be deleted manually.
  3. Controllers can only be created outside of networks and are connected directly to switches.
  4. If you create multiple controllers, assign different ports to them. Otherwise, starting them for simulation will fail.
  5. Connecting two hosts might yield undesirable results during simulation.

Deploying and Executing Apps

You can use NetIDE to simulate SDN apps on a Mininet VM. In order to do that, select Run->Run Configurations... from the menubar.

Run Configuration

Double-Click on NetIDE Controller Deployment to create a new run configuration. As shown in the figure above, you can give the configuration a name, select a topology model and assign controller platforms and apps to each controller in the model. Clicking Apply saves the configuration, Run starts the VM with the specified controllers and topology.

You can choose where to deploy the apps by clicking on the Target tab. Additionally to Vagrant machines, you can use this tab to specify a remote machine on which you can deploy your apps via SSH. Make sure that SSH and SCP are installed on your system and the commands are set in the preferences.

Setting up a VM or provisioning a remote machine for the first time can take some time. Once it is finished, the IDE shows one terminal per executed controller as well as a GUI to control the apps at runtime (see image below).

Runtime Management

The GUI consists of buttons to start, provision, and stop sessions. There are also buttons to create a list of running controllers and tools in the list view below and to query the underlying topology of the server controller. As of now, the topology query only works with ODL server controllers.

You find additional options in the Misc tab. You can choose to keep the VM running after ending Mininet and to reprovision a VM after the first start.

Preferences

NetIDE has a preference view which you can open via Window->Preferences in the Menubar.

NetIDE Preferences

Proxy settings

If you are behind a proxy, you have to configure the VM accordingly by checking Use Proxy and entering the proxy address. NetIDE will automatically write the proxy settings into the VM.

Custom Boxes

You can export a provisioned VM as a vagrant box via the command vagrant package on the command line. This is very useful for distributing the box to other machines and to save the time needed for provisioning the box for every new project.

Using vagrant box add, you can import a package again. In the NetIDE preference page, you can specify the name for such an imported box. This box will then be used for simulation.