Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mininet Cannot find required executable controller

Whenever I want to run sshd.py example in mininet or some custome code I have written myself I get

*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2 h3 h4 h5 
*** Adding switches:
s1 
*** Adding links:
(h1, s1) (h2, s1) (h3, s1) (h4, s1) (h5, s1) 
*** Configuring hosts
h1 h2 h3 h4 h5 
*** Starting controller
Cannot find required executable controller.
Please make sure that it is installed and available in your $PATH:
(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)

Though $ sudo mn --test pingall works fine!

I guess I should find the open flow controller executable and add it to the path but I don't know where is it located. but the test create a controller and works fine!

I have tried to reinstalling mininet with

$ ~/mininet/util/install.sh -a or [-fnv]
like image 236
Moh Zah Avatar asked Jun 27 '13 10:06

Moh Zah


2 Answers

Stumbled upon the same issue with mininet on Ubuntu. Try to explicitly specify the controller class when constructing a Mininet object, e.g. instead of

net = Mininet(topo)

do

from mininet.node import OVSController

net = Mininet(topo = topo, controller = OVSController)

That solved the problem in my case.

like image 113
clm Avatar answered Sep 21 '22 03:09

clm


I wish the message was like

Cannot find required executable "controller".

Anyway, as long as you have ovs-controller installed e.g. provided by 'openvswitch-controller' package on debian like platform, all you have to do is

sudo ln /usr/bin/ovs-controller /usr/bin/controller

like image 43
user1602017 Avatar answered Sep 22 '22 03:09

user1602017