Thursday, April 30, 2015

Mininet on mininet on mininet.. :P

So, after running Mininet on Mininet, I decided to be crazier and run mininet on mininet on mininet on.. :P Had an interesting observation. Each keystroke was repeated as the length of loop, as you can see below. :D


pradeeban@llovizna:~$ sudo mn --controller=remote,ip=127.0.0.1 --topo linear,2[sudo] password for pradeeban:
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1 s2
*** Adding links:
(h1, s1) (h2, s2) (s2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
c0
*** Starting 2 switches
s1 s2 ...
*** Starting CLI:
mininet> pingall
*** Ping: testing ping reachability
h1 -> h2
h2 -> h1
*** Results: 0% dropped (2/2 received)
mininet> h1 mn
*** Error setting resource limits. Mininet's performance may be affected.
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
c0
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet> hh11  mmnn^[[D^[[^^^[[C^?n

*** Unknown command: n
mininet> hh11  mmnn

*** Error setting resource limits. Mininet's performance may be affected.
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
c0
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet> hhh111   mmmnnn
^J
*** Error setting resource limits. Mininet's performance may be affected.
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
c0
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet> hhhh1111    mmmmnnnn
^J^J
*** Error setting resource limits. Mininet's performance may be affected.
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
c0
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet> eeeeexxxxxiiiiittttt
^J^J^J
*** Stopping 1 controllers
c0
*** Stopping 2 links
..
*** Stopping 1 switches
s1
*** Stopping 2 hosts
h1 h2
*** Done
completed in 3.952 seconds
mininet> eeeexxxxiiiitttt
^J^J
*** Stopping 1 controllers
c0
*** Stopping 2 links
..
*** Stopping 1 switches
s1
*** Stopping 2 hosts
h1 h2
*** Done
completed in 11.986 seconds
mininet> eeexxxiiittt
^J
*** Stopping 1 controllers
c0
*** Stopping 2 links
..
*** Stopping 1 switches
s1
*** Stopping 2 hosts
h1 h2
*** Done
completed in 18.270 seconds
mininet> eexxiitt

*** Stopping 1 controllers
c0
*** Stopping 2 links
..
*** Stopping 1 switches
s1
*** Stopping 2 hosts
h1 h2
*** Done
completed in 37.107 seconds
mininet> exit
*** Stopping 1 controllers
c0
*** Stopping 3 links
...
*** Stopping 2 switches
s1 s2
*** Stopping 2 hosts
h1 h2
*** Done
completed in 57.171 seconds
pradeeban@llovizna:~$

Running mininet on mininet..

Initially (as monitored from ODL/DLUX)
Since mininet can run applications that are installed on its host, why not run mininet on top of mininet, just for lulz? :P

Running OpenDaylight
$ ./distribution-karaf-0.2.0-Helium/bin/karaf
Running Mininet
pradeeban@llovizna:~$ sudo mn --controller=remote,ip=127.0.0.1 --topo linear,2
[sudo] password for pradeeban:
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1 s2
*** Adding links:
(h1, s1) (h2, s2) (s2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
c0
*** Starting 2 switches
s1 s2 ...
*** Starting CLI:
mininet> pingall
*** Ping: testing ping reachability
h1 -> h2
h2 -> h1
*** Results: 0% dropped (2/2 received)
Now ODL/DLUX with Mininet on Mininet.

Mininet on Mininet

mininet> h1 sudo mn --controller=remote,ip=127.0.0.1 --topo tree,6
*** Error setting resource limits. Mininet's performance may be affected.
*** Creating network
*** Adding controller
Unable to contact the remote controller at 127.0.0.1:6633
*** Adding hosts:
h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19 h20 h21 h22 h23 h24 h25 h26 h27 h28 h29 h30 h31 h32 h33 h34 h35 h36 h37 h38 h39 h40 h41 h42 h43 h44 h45 h46 h47 h48 h49 h50 h51 h52 h53 h54 h55 h56 h57 h58 h59 h60 h61 h62 h63 h64
*** Adding switches:
s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 s32 s33 s34 s35 s36 s37 s38 s39 s40 s41 s42 s43 s44 s45 s46 s47 s48 s49 s50 s51 s52 s53 s54 s55 s56 s57 s58 s59 s60 s61 s62 s63
*** Adding links:
(s1, s2) (s1, s33) (s2, s3) (s2, s18) (s3, s4) (s3, s11) (s4, s5) (s4, s8) (s5, s6) (s5, s7) (s6, h1) (s6, h2) (s7, h3) (s7, h4) (s8, s9) (s8, s10) (s9, h5) (s9, h6) (s10, h7) (s10, h8) (s11, s12) (s11, s15) (s12, s13) (s12, s14) (s13, h9) (s13, h10) (s14, h11) (s14, h12) (s15, s16) (s15, s17) (s16, h13) (s16, h14) (s17, h15) (s17, h16) (s18, s19) (s18, s26) (s19, s20) (s19, s23) (s20, s21) (s20, s22) (s21, h17) (s21, h18) (s22, h19) (s22, h20) (s23, s24) (s23, s25) (s24, h21) (s24, h22) (s25, h23) (s25, h24) (s26, s27) (s26, s30) (s27, s28) (s27, s29) (s28, h25) (s28, h26) (s29, h27) (s29, h28) (s30, s31) (s30, s32) (s31, h29) (s31, h30) (s32, h31) (s32, h32) (s33, s34) (s33, s49) (s34, s35) (s34, s42) (s35, s36) (s35, s39) (s36, s37) (s36, s38) (s37, h33) (s37, h34) (s38, h35) (s38, h36) (s39, s40) (s39, s41) (s40, h37) (s40, h38) (s41, h39) (s41, h40) (s42, s43) (s42, s46) (s43, s44) (s43, s45) (s44, h41) (s44, h42) (s45, h43) (s45, h44) (s46, s47) (s46, s48) (s47, h45) (s47, h46) (s48, h47) (s48, h48) (s49, s50) (s49, s57) (s50, s51) (s50, s54) (s51, s52) (s51, s53) (s52, h49) (s52, h50) (s53, h51) (s53, h52) (s54, s55) (s54, s56) (s55, h53) (s55, h54) (s56, h55) (s56, h56) (s57, s58) (s57, s61) (s58, s59) (s58, s60) (s59, h57) (s59, h58) (s60, h59) (s60, h60) (s61, s62) (s61, s63) (s62, h61) (s62, h62) (s63, h63) (s63, h64)
*** Configuring hosts
h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19 h20 h21 h22 h23 h24 h25 h26 h27 h28 h29 h30 h31 h32 h33 h34 h35 h36 h37 h38 h39 h40 h41 h42 h43 h44 h45 h46 h47 h48 h49 h50 h51 h52 h53 h54 h55 h56 h57 h58 h59 h60 h61 h62 h63 h64
*** Starting controller
c0
*** Starting 63 switches
s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 s32 s33 s34 s35 s36 s37 s38 s39 s40 s41 s42 s43 s44 s45 s46 s47 s48 s49 s50 s51 s52 s53 s54 s55 s56 s57 s58 s59 s60 s61 s62 s63 ...
*** Starting CLI:

Tuesday, April 28, 2015

Building Karaf-based OpenDaylight Helium from the source

This is going to be a long post, addressing the issues I found as I built OpenDaylight Helium from the source. If you just want to use Karaf-based OpenDaylight, you may just download the pre-built version and execute, as described in my previous post.

This page is based on the wiki (and I suggest reading it first).
Checking out the codefor PROJECT in aaa affinity bgpcep controller defense4all dlux docs groupbasedpolicy integration l2switch \
lispflowmapping odlparent opendove openflowjava openflowplugin opflex ovsdb packetcable releng/autorelease releng/builder reservation sdninterfaceapp sfc snbi snmp4sdn tcpmd5 toolkit ttp vtn yangtools; \
do git clone https://git.opendaylight.org/gerrit/${PROJECT}.git ${PROJECT}; \
done


Checkout Stable branch
 Helium is the latest stable branch, which is all hot and new.
Helium:
$ for i in affinity bgpcep controller lispflowmapping openflowjava openflowplugin ovsdb/commons/parent vtn yangtools
do (cd "$i" && git checkout stable/helium ); done

A few modules already have a Lithium branch. So you may try to build their Lithium branch. However, Lithium build was failing for controller, dlux, and yangtools (at the time of writing), and I had to revert back to the Helium branch to get them built. 

Lithium:
$ for i in affinity bgpcep controller lispflowmapping openflowjava openflowplugin ovsdb/commons/parent vtn yangtools
do (cd "$i" && git checkout stable/lithium ); done

Alternatively, checkout Release tag
Helium:
$ for i in affinity bgpcep controller lispflowmapping openflowjava openflowplugin ovsdb/commons/parent vtn yangtools
do (cd "$i" && git checkout tags/release/helium ); done

Lithium:
$ for i in affinity bgpcep controller lispflowmapping openflowjava openflowplugin ovsdb/commons/parent vtn yangtools
do (cd "$i" && git checkout tags/release/lithium ); done

Maven build
------------------
$ for i in affinity bgpcep controller lispflowmapping openflowjava openflowplugin ovsdb/commons/parent vtn yangtools
do (cd "$i" && mvn clean install ); done
 


 
Execute OpenDaylight Karaf-based distribution$ cd ~/OpenDaylight/controller/opendaylight/distribution/opendaylight-karaf/target/assembly/bin
$ ./karaf


Install Dlux and other relevant features for the interface.
opendaylight-user@root>feature:install odl-restconf odl-l2switch-switch odl-mdsal-apidocs odl-dlux-core
Refreshing bundles org.apache.xbean.finder-shaded (65)
Error executing command: No feature named 'odl-l2switch-switch' with version '0.0.0' available
Error executing command: No feature named 'odl-dlux-core' with version '0.0.0' available

Build Integrator Bundle

This is because controller does not incloude the l2switch and dlux projects in the source code, and they should be built separately. Core features such as MD-SAL and AD-SAL are bundled with controller, and hence can be installed as above using the OSGi console. Hence, we should instead build the integration module following the controller, skipping the tests.
 
$ mvn clean install -D skipTests

$ cd ~/OpenDaylight/integration/distributions/extra/karaf/target/distribution-karaf-0.2.4-SNAPSHOT/bin
Now install the features.
feature:install odl-restconf odl-l2switch-switch odl-mdsal-apidocs odl-dlux-core


Execute the OpenDaylight Build.

Using the OpenDaylight build inside the integration bundle.
$ cd ~/OpenDaylight/integration/distributions/extra/karaf/target/distribution-karaf-0.2.4-SNAPSHOT/bin
$ ./karaf

Now you should be able to log in to the admin console from http://localhost:8181/dlux/index.html#/login

Configuring OpenDaylight Helium with Mininet.

Last year I wrote a post on configuring OpenDaylight Hydrogen with Mininet. Since Helium is here now, you may like to use it instead. First download and configure OpenDaylight Helium. Check the accepted answer for this question to start it real quick.

Now you will be able to connect to Mininet as before.

$ sudo mn --controller=remote,ip=127.0.0.1 --topo tree,6

*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19 h20 h21 h22 h23 h24 h25 h26 h27 h28 h29 h30 h31 h32 h33 h34 h35 h36 h37 h38 h39 h40 h41 h42 h43 h44 h45 h46 h47 h48 h49 h50 h51 h52 h53 h54 h55 h56 h57 h58 h59 h60 h61 h62 h63 h64
*** Adding switches:
s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 s32 s33 s34 s35 s36 s37 s38 s39 s40 s41 s42 s43 s44 s45 s46 s47 s48 s49 s50 s51 s52 s53 s54 s55 s56 s57 s58 s59 s60 s61 s62 s63
*** Adding links:
(h1, s6) (h2, s6) (h3, s7) (h4, s7) (h5, s9) (h6, s9) (h7, s10) (h8, s10) (h9, s13) (h10, s13) (h11, s14) (h12, s14) (h13, s16) (h14, s16) (h15, s17) (h16, s17) (h17, s21) (h18, s21) (h19, s22) (h20, s22) (h21, s24) (h22, s24) (h23, s25) (h24, s25) (h25, s28) (h26, s28) (h27, s29) (h28, s29) (h29, s31) (h30, s31) (h31, s32) (h32, s32) (h33, s37) (h34, s37) (h35, s38) (h36, s38) (h37, s40) (h38, s40) (h39, s41) (h40, s41) (h41, s44) (h42, s44) (h43, s45) (h44, s45) (h45, s47) (h46, s47) (h47, s48) (h48, s48) (h49, s52) (h50, s52) (h51, s53) (h52, s53) (h53, s55) (h54, s55) (h55, s56) (h56, s56) (h57, s59) (h58, s59) (h59, s60) (h60, s60) (h61, s62) (h62, s62) (h63, s63) (h64, s63) (s1, s2) (s1, s33) (s2, s3) (s2, s18) (s3, s4) (s3, s11) (s4, s5) (s4, s8) (s5, s6) (s5, s7) (s8, s9) (s8, s10) (s11, s12) (s11, s15) (s12, s13) (s12, s14) (s15, s16) (s15, s17) (s18, s19) (s18, s26) (s19, s20) (s19, s23) (s20, s21) (s20, s22) (s23, s24) (s23, s25) (s26, s27) (s26, s30) (s27, s28) (s27, s29) (s30, s31) (s30, s32) (s33, s34) (s33, s49) (s34, s35) (s34, s42) (s35, s36) (s35, s39) (s36, s37) (s36, s38) (s39, s40) (s39, s41) (s42, s43) (s42, s46) (s43, s44) (s43, s45) (s46, s47) (s46, s48) (s49, s50) (s49, s57) (s50, s51) (s50, s54) (s51, s52) (s51, s53) (s54, s55) (s54, s56) (s57, s58) (s57, s61) (s58, s59) (s58, s60) (s61, s62) (s61, s63)
*** Configuring hosts
h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19 h20 h21 h22 h23 h24 h25 h26 h27 h28 h29 h30 h31 h32 h33 h34 h35 h36 h37 h38 h39 h40 h41 h42 h43 h44 h45 h46 h47 h48 h49 h50 h51 h52 h53 h54 h55 h56 h57 h58 h59 h60 h61 h62 h63 h64
*** Starting controller
*** Starting 63 switches
s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 s32 s33 s34 s35 s36 s37 s38 s39 s40 s41 s42 s43 s44 s45 s46 s47 s48 s49 s50 s51 s52 s53 s54 s55 s56 s57 s58 s59 s60 s61 s62 s63
*** Starting CLI:
mininet>

Some screenshots below:

The UI with the nodes
Network
Zoomed!
Nodes
A node


Node connector statistics for a node

Monday, April 27, 2015

Recent Trends in Memory Technologies and OS

Today we had the second presentation for the NSOM module. Given below is the presentation I prepared on the title "Recent Trends in Memory Technologies and OS".

Thursday, April 23, 2015

Efficient Duplicate Detection Over Massive Data Sets

This is the fourth presentation of the Data Quality module that I am presenting today.

Thursday, April 16, 2015

Spring is here..

View from the sky..
Yet another spring, and I am mostly busy with the course work.

I was hungry and lazy at the same time, so decided to grab some food at the shopping mall, and got into this bus from Alameda to go to Centro Comercial Colombo

It went passing, Estefania, Saldanha, Alameda (sorry-for-the-loop), Areeiro, Roma, Cidade Universitaria, Alvalade, Telheiras, your mom's home, Spanish border, Neptune, Alpha Centauri, some blackhole, Year 1450, God-please-forgive-my-sins, and finally the destination.

I was tracking my route (by simply looking outside. not using any app. It was dark outside anyway). After Telheiras, I lost my track, and this was exactly what I thought. :P

Lesson learnt: Don't get into a bus without checking the entire route.

Tuesday, April 14, 2015

Indexing Techniques for Scalable Record Linkage and Deduplication

This is the third presentation of the Data Quality module that I presented today.

[GSoC 2015] Data Federation / Integration Tools

Project Mentor: Ashish Sharma
Short description:

Medical image archives consists of heterogeneous data sources. Multiple datasources and databases store the medical images, which need to be federated and integrated for more complex use case scenarios. The data consumer should be able to federate interesting data across diverse data sets without knowing much about the information model of the different data sources. Future work identified in the last GSoC should be implemented and the platform should be integrated with the current work.

Monday, April 13, 2015

Operating Systems Reliability

Today we had our first presentation for the Modern Operating System Kernels (NSOM) module. Given below is the presentation I prepared for the first class, discussing the Operating Systems Reliability.

Tuesday, April 7, 2015

Spammers in random blogs..

I am not sure why my blog attracts spam comments. Probably every blog does, and I am just not aware of that. Because of the rate of spam comments, I just made the comments to be moderated. To see the extent of spam comments, you may see the screenshot, where a spam bot is spamming multiple of my posts within a short time gap.

Spam comments within a short time frame


Julia David has left a new comment on your post "Configuring OpenDaylight Controller with Mininet":
The information on this blog is very useful and very interesting. If someone needs to know about the just click
 [Spam link removed]

Apparently, I will not approve these spam comments. I wonder why the bots cannot be a bit more effective and spam blogs that suit their audience, or those have more visibility. :P

If you have some suggestion on how to overcome the spam bots (they are very annoying, and delay the publishing of the genuine comments too, as now all the comments have to go through moderation), please share with me.

Is there a way to block these bots?