Open SDN projects in python

Python is the simplest to learn among languages that matter the most to Software defined networking.

 

Here is the list of SDN related projects written in python or the ones in which python can be used to program the behaviour.

 

Nox

NOX was the first OpenFlow controller. It was initially developed at Nicira Networks side-by-side with OpenFlow and Nicira donated it to open source community. NOX can be extended both in C++ or Python and provides an abstracted interface to OpenFlow

 

Pox

POX is a platform for the rapid development and prototyping of network control software using Python. It is a Python-based version of NOX. It’s one of a growing number of frameworks

 

Pox can function as an OpenFlow switch and can be useful for writing networking software in general. POX currently communicates with OpenFlow 1.0 switches and includes special support for the Open vSwitch/Nicira extensions.

 

Ryu

Ryu is a component-based software defined networking framework fully written in python. Ryu provides software components with well defined API that make it easy for developers to create new network management and control applications. Ryu supports various protocols for managing network devices, such as OpenFlow, Netconf, OF-config etc.

 

openfaucet

OpenFaucet is a pure Python implementation of the OpenFlow 1.0.0 protocol, based on Twisted.  OpenFaucet can be used to implement both switches and controllers in Python

 

oftest

OFTest is a Python based OpenFlow switch test framework and collection of test cases based on unittest.

 

Mininet

Mininet is a network emulator. it emulates a complete network of hosts, links, and switches on a single machine. OpenFlow-based network controllers prototyped in Mininet can usually be transferred to hardware with minimal changes for full line-rate execution. It comes with a  handy Python API for creating networks of varying sizes and topologies.