The OpenFlow 1.3 module for ns-3, also known as the OFSwitch13 module, was designed to enhance the ns-3 Network Simulator with Software-Defined Networking (SDN) technology support. Despite the fact that the ns-3 already has a module that supports simulations with OpenFlow switches, it is possible to note that the available implementation provides a very outdated OpenFlow protocol (version 0.8.9, from 2008). Many new major features were introduced up to the latest version, and we want to have them available for use.
The OFSwitch13 module provides support for OpenFlow protocol version 1.3, bringing both a switch device and a controller application interface to the ns-3 simulator, as depicted in the figure below. With this module, it is possible to interconnect ns-3 nodes to send and receive traffic using the existing CSMA devices. The controller application interface can be extended to implement any desired control logic to orchestrate the network. The communication between the controller and the switch is realized over standard ns-3 protocol stack, devices and channels. The module also relies on the external OpenFlow 1.3 Software Switch for ns-3 compiled as a library (ofsoftswitch13 library). This library provides the switch datapath implementation, the code for converting OpenFlow messages to and from wire format, and the dpctl utility tool for configuring the switch from the command line.
Note that OFSwitch13 is not an extension of the available ns-3 OpenFlow model. They share some design principles, but they are completely independent modules. Please, refer to the module documentation for design details, including tutorials on how to port simulation scripts from the existing ns-3 OpenFlow module to this new one.
If you feel comfortable, please include a reference in your work to the paper describing this module:
Instructions on how to download, compile and use the module can be found in the documentation. If you want a fast way to get your hands on it, try the pre-configured Ubuntu VM, which includes the ns-3 simulator compiled with the OFSwitch13 module (user and password for the VM are set to "user"). You can also check the API doxygen and the GitHub repository. The current OFSwitch13 stable release is version 4.0.0, which is compatible with ns-3.28 or later (check the release notes file for backward compatibility).
This module is current developed and maintained mainly by Luciano Jerez Chaves, a Ph.D. candidate at the Computer Networks Laboratory of the University of Campinas (Unicamp), Brazil. It also received contributions from Vítor Marge Eichemberger and Islene Calciolari Garcia. We would like to thank Eder Leão Fernandes for helping us on the integration with the ofsoftswitch13 library.
Feel free to subscribe to our mailing list at Google groups and provide some feedback, give us suggestions, interact with other users, or to just say hello!