Where to download openmul source code ?
How to build openmul on Ubuntu ?
How to run and provision openmul ?
How to write an application ?
Where to download openmul source code ?
How to build openmul on Ubuntu ?
How to run and provision openmul ?
How to write an application ?
When I run mul, I get this error:
./mul
2013/01/21 14:38:04 MUL-CONTROLLER: c_thread_event_loop: tid(1006376704) MUL-CONTROLLER: c_thread_event_loop: tid(997984000)
2013/01/21 14:38:04 MUL-CONTROLLER: c_thread_event_loop: tid(989591296)
2013/01/21 14:38:04 MUL-CONTROLLER: c_thread_event_loop: tid(981198592)
2013/01/21 14:38:04 MUL-CONTROLLER: c_thread_event_loop: tid(972805888)
2013/01/21 14:38:04 MUL-CONTROLLER: c_thread_event_loop: tid(964413184)
bind: Address already in use
lt-mul: mul_thread_core.c:241: c_main_thread_final_init: Assertion `c_listener > 0′ failed.
Aborted (core dumped)
Is the program trying to bind to a port, and if so, how is the port number specified?
Looking in the source, the port is hard coded at 6633 in the file mul_priv.h. I changed the port and recompiled and it runs now.
#define C_LISTEN_PORT 6633
6633 is the default port for openflow controllers. So, that might mean you have another instance or another controller running ? We will make the default port as a command line argument in near future.
I am trying to compile Mul on ubuntu 13.04 and I have the following error:
/home/mininet/mul-code/services/loadable/topo_routing/mul_route_apsp.c:443: undefined reference to `shm_open’
/home/mininet/mul-code/services/loadable/topo_routing/mul_route_apsp.c:473: undefined reference to `shm_unlink’
How to fix this !!
//shm_unlink(MUL_TR_SERVICE_NAME);
route_serv_fd = shm_open(MUL_TR_SERVICE_NAME,
O_CREAT | O_RDWR, 00700);
if (route_serv_fd < 0) {
c_log_err("%s: RT apsp block alloc fail", FN);
goto free;
}
Have you already installed the required packages mentioned in README ? shm_open and others are part of standard librt library. It should be installed by default. Can you please double check librt is present in your system ?
I installed all the required packages, librt library is installed, too. however the same problem remains
where should this library be installed !! it is not found in /usr/lib/
Yes it should be in /usr/lib/ . On Ubuntu 12.04 x86_64, it is found in /usr/lib/x86_64-linux-gnu/librt.so
Normally it is part of build-essential package. Either way, we will verify install in Ubuntu 13.10 and confirm you what is wrong. So far we have been using Ubuntu 12.04 !!!
I tried to create a symbolic link to this library in /usr/lib but I have the same problem !
Ok I see. If you want, one of us can have a look at your system and help you with compilation !! If so, please PM ssh or any other access details to dipj@kulcloud.net.
I am using mininet 2.0.1 vmware appliance and I can access to it via ssh
We figured out the compilation issues as we tried installing mul on ubuntu-13.10. If you used git to pull the code , you can update the git repo using “git pull” and retry compiling. If you have not used git so far, we suggest you pull MuL repo using “git clone git://git.code.sf.net/p/mul/code mul-code” and start compilation.
Let us know if there are any further issues with compilation as well with you usage with MuL.
Regards.
MuL development team
What do you mean by apply fix ! Should I type those commands on the termianl. Is it not possible to made the changes directly on the makefile !
Thanks.
Sounds Good 🙂
Every think is working well. Just one more comment:
change libevent-2.0.18-stable ===> libevent-2.0.21-stable
We just need a short tutorial about using Mul with mininet and how to develop custumized application with Mul 🙂
Sure. We will send you a short tutorial. Although we have docs in Korean we do have an Eng doc. Its good time to have the same 🙂
Hi Hakiri,
We have released a new version of mul which supports openflow 1.3.1 and also uploaded howto doc in http://kulcloud.wordpress.com/mul-docs/.
We will soon upload an app dev howto. Thanks for using Mul.
Regards Dip
Hi,
I am trying to install mul on centos 6.2. Could you please let me know if the instructions would be different..
Thanks
Hi,
As long as you install the required packages as given in README using CentOS specific commands, the rest of the installation process should remain the same.
Warm Regards,
Dip
Thanks DIp, could you elaborate what commands are you referring as centos specific..
I was refering to the fact you would need to “yum install” instead of “apt-get install” in Centos for installing basic packages required by mul.
These are the instructions for installing MuL on CentOS.
yum install git
git clone git://git.code.sf.net/p/mul/code mul-code
Once downloaded, please follow instructions inside mul-code/README. You can find CentOS related packages and commands required for compilation and installation here.
Hi,
I compiled the MUL code and performed the following steps :
a. sudo ovs-vsctl add-br br0
b. ovs-ofctl add-flow br0
Then I started the MUL code “sudo ./mul” & ” telnet localhost 7000″
But when I do “show of-switch all” its not showing any output on the console.
I am a newbie as far as openVswitch is concerned. So just wanted to understand if
I am missing something here.
regards
Hi Yogesh,
To connect to a controller. we use the following ovs command :
sudo ovs-vsctl set-controller br0 tcp:127.0.0.1:6633
After that it should connect to the controller.
Hi
I got the open MuL VM images on kulcloud website (http://docs.kulcloud.com/display/MUL/VM+Image) and installed mininet.
When I make some topology by using mininet command and attached MuL controller on the topology, but it cannot transmit ping from host to host.
Hi,
Ping will work once you run l2switch forwarding module of MUL. You can do that by :
$ cd /application/l2switch
$ sudo ./mull2sw
Thanks for your reply
However, after running the learning switch application, pinging still doesn’t work…
Do you have any other comment?
Regards
host pinging works in all cases with learning switch. i am not sure if you are missing something.
Thank you..
I installed mul-3.0.2 beta version
and mininet with ofsoftswitch13. These are all for openflow 1.3.
And my running sequence is like follow
1. run ./mul
2. run mininet with sudo mn –switch user –controller remote
3. run ./mull2sw
4. h1 ping h2 in the mininet..
Am I missing something? Ah, I’m running these in Ubuntu 12.04 LTS
Thanks a lot
Hi,
I realized there were some problems with ofsoftswitch13 and it has been fixed. Can you do “git pull” in the mul code , recompile and try again. It should work now !!
Hi,
It works!!!
Thank you very much for your many replies and your effort.
Have a nice weekend 😉
Hi
I am doing some research regarding SDN and open-flow controllers and I run in to Mul which in most papers and researches is mentioned as the lowest latency open-flow controller available which showed the same in my experiment also , but the interesting thing is that the experiment that we run to evaluate the open-flow controllers showed that Mul performed better in terms of throughput even better than Beacon which is know to have the highest. have you done some benchmarking of your own ? also what is the reason that your controller has such good performance
Best Regards
Ahmed Sonba
Hi Ahmed,
We have built the controller ground up with scalability in mind because that is very critical for any SDN controller. The code has been designed to have multi-core scalability for flow and switch handling, hosting multiple applications and so on. It is really good to know that results are showing up. Thanks for posting the update on the performance aspects of Open-MUL. Highly appreciated !!
Regards,
@Open-MUL dev team
Additionally, I have ne more question.
In mul-3.0.2 beta version, the meter table or mpls labling is supported? I cannot find the options for these.
I see the mul-3.2.5 version supports these two functions but I wonder the 3.0.2 version supports.
Thanks again 🙂
Hi HYO,
mul-3.2.5 does support many Openflow features like mpls and meter-table .But to cover our development costs we provide some features at a cost but do contribute those to Open-source down the lane. We can provide a binary-only evaluation copy if that helps you to achieve whatever you are doing and it is non-commercial in nature. If interested kindly drop an email to contact@kulcloud.net with your requirements and nature of work.
Hi,
I’m a partner of HYO.
We succeeded to ping and the flows are added to switches with l2switch app.
However, when we run the app, we cannot add flow to switch with the command ‘of-flow add switch ..’.
We can type the command, and we took a step to (config-flow-action).. we added action and committed the flow, but we could not see the added flow with ‘show of-flow switch 0x1’.
The command lists only the flows added by pinging not our flow.
We saw some logs such as
Flow already present, switch sent error or ofpx_mach len err and so on..
However, even though we didnt see any logs, we could not see our flow….
I hope you can help us.
Best regards,
Jaegook Lee
Thanks Jaegook for the report. Our team will re-check this and update !!
Hi,
I wanna add some of-flow or of-group, but flow could not be added when L2switch app was running. (used ofsoftswitch 1.3)
How can I fix the problem?
WE have fixed some minor issues. It should work now. Please do a “git pull” . Thanks for reporting !
Hello Can OpenMul listen on multiple ports in the same time?
Hi,
Although the current code does not support it, you can easily enable it if you use the following patch :
diff –git a/mul/mul_thread.h b/mul/mul_thread.h
index 48f4528..58f5fb1 100644
— a/mul/mul_thread.h
+++ b/mul/mul_thread.h
@@ -97,6 +97,7 @@ struct c_main_ctx
struct c_app_ctx **app_pool;
struct event *c_accept_event;
+ struct event *c_accept_event2;
struct event *c_ha_accept_event;
struct event *c_app_accept_event;
struct event *c_app_aux_accept_event;
diff –git a/mul/mul_thread_core.c b/mul/mul_thread_core.c
index 90de61f..02ff76f 100644
— a/mul/mul_thread_core.c
+++ b/mul/mul_thread_core.c
@@ -364,6 +364,15 @@ c_main_thread_final_init(struct c_main_ctx *m_ctx)
c_accept, (void*)m_ctx);
event_add(m_ctx->c_accept_event, NULL);
+ /* Switch lister additional port */
+ c_listener = c_server_socket_create(INADDR_ANY, ctrl_hdl->c_port);
+ assert(c_listener > 0);
+ m_ctx->c_accept_event2 = event_new(m_ctx->cmn_ctx.base, c_listener,
+ EV_READ|EV_PERSIST,
+ c_accept, (void*)m_ctx);
+ event_add(m_ctx->c_accept_event2, NULL);
+
+
/* HA listener */
c_listener = c_server_socket_create(INADDR_ANY, MUL_CORE_HA_SERVICE_PORT);
assert(c_listener > 0);
If you still want more than 2 different ports, you can simply modify the above login. Please let me know if it helps.
HI.. I want to know how to run the “hello” application. I am not able to do make/etc. Am i missing something very basic here ? Please help. I need to develop an application and now trying to understand the basics. Thanks
Hi Shreekanth,
You should follow the steps:
cd openmul
./build.sh -M
cd application/hello
sudo ./mulhello
It will start the hello application
Hi Shreekanth,
There were some problems which was causing issues in hello app’s make. It has been fixed in master branch,. You can pull the latest code and re-try.
https://github.com/openmul/openmul/issues/21
Regards,
Dipjyoti
You can also refer to the following manual :
Click to access openmul-HOWTO-BUILD-NEW-APP.pdf
I am getting Trying to connect message when i try to any of this. What to do?
Hi Vishal,
You would need to run the core controller component to run the applications. It is in /mul/ directory. Please refer to https://github.com/openmul/openmul/raw/master/docs/openmul-HOWTO.pdf for info how to run various components of openmul
I am trying to connect Openmul running on a vm to connect to openvswitch running on another vm in a hypervisor
I would want to configure openmul to run on a particular interface ip which openvswitch is listening to.
ovs-vsctl set-controller br0 tcp:192.85.1.3:6633
I have built Openmul #build.sh
How to configure openmul to run on this IP to connect to the switch?
Im trying to run openmul on 15.04 ubuntu. On compiling using ./build.sh , which binaries needs to be copied to?
Please check the how-to doc for more info : https://github.com/openmul/openmul/blob/master/docs/openmul-HOWTO.pdf?raw=true
You can simply run the controller on the server with IP address 192.85.1.3. Go to openmul/mul directory and run # sudo ./mul -P 6633
Can we run multiple MUL controller on a single server. ? Example – I want to run two instances of OpenMUL on a single server, one on each interface. eth1 – 192.85.1.3 ; eth2 – 195.76.1.3
Currently it is not possible to run two instances of Openmul unless you tweak some code to make it work