By using "dpctl" command we can see/ add flows, modify ports behaviors, see statistics of switches etc. I was wondering is there any command(s) which can help us manipulating controller in Mininet as we do with the switch with dpctl command?
-
Do you mean like a interactive controller? – Ehsan Ab Aug 20 '15 at 13:58
2 Answers
No.
The SDN controller architecture has the SDN controller control the network flows on Mininet via the OpenFlow protocol. It does not have a design goal to allow the switch to control the SDN controller.
Mininet allows you to configure the OVS switch with ovs-dpctl and ovs-vsctl commands and also allows you to directly manipulate the openflow flows with the ovs-ofctl command. But, when you configure Mininet to use a remote SDN controller the intention is that an application on that controller will configure the OpenFlow flows.
The SDN controller architecture's goal is to centralize control of switches (such as OVS). The vision here is to allow all the switches in the network to be automated for monitoring, configuration and flow control via software applications running atop the controller.
There is a good architectural view of SDN here: https://en.wikipedia.org/wiki/Software-defined_networking#/media/File:SDN-architecture-overview-transparent.png
Mininet plays the role of Network Element in this architecture.
It is worth noting that Mininet (which runs OVS) supports both OpenFlow and OVSDB protocols and some SDN controllers will connect to OVSDB in addition to OpenFlow. Such SDN Controllers would allow you to then carry out actions that you currently do with the dpctl commands directly on Mininet with an application programmed to use the SDN Controller's Northbound API.
Other common protocols that controllers may support to communicate with Network Elements are NETCONF and Border Gateway Protocol (BGP).

- 56
- 4
-
hi Jim! thanks for the reply. actually i want to connect 2 different mininet VMs. like in VM1 i have 1 controller a switch and a host. in 2nd VM i have another controller a switch and a host. i want host of 1 VM to ping host of 2nd VM. is there any way to do so? – zafar malik Aug 23 '15 at 08:09
-
Hi Zafar. A few assumptions: both vms are on same computer, virtualbox as your virtual manager, need a network connection between the vms. I suggest a host-only lan between the mininet vms so the two switches can forward packets to each other. This vid (around 1:58) shows this with controller and mininet: ( https://www.youtube.com/watch?v=1_-9jVf5XpU ) You would do something similar to connect mininets/ovs switches. Then you can use openflow in the controllers to control flow on mininet/ovs ports connected to that lan. Is this close to what you need? – Jim Burns Aug 23 '15 at 15:39
-
Hi Jim! thanks for the help but i am working with pox controller and in the video he showed BVC(commercial controller) and he connected bvc with the mininet. i am trying to connect two different mininet vms. anyway thanks again. i will try something else to get out of this. – zafar malik Aug 24 '15 at 08:29
If you want to manage the mininet from external node,you can install a SDN controller,such as floodlight or OpenDaylight. You can use this command to configure the minint connected to controller.
mn --topo single,2 --controller remote,ip=10.140.91.29 --switch ovsk,protocols=OpenFlow13
In the controller, if you use floodlight, you can access it's web ui to see the flow or other think. And use curl to send a rest API to the floodlight to add a flow or do other things.You can reference the floodlight website .

- 1