netgroup / wmsdn Goto Github PK
View Code? Open in Web Editor NEWWireless Mesh Software Defined Network
License: GNU General Public License v3.0
Wireless Mesh Software Defined Network
License: GNU General Public License v3.0
====================================== Wireless Mesh Software Defined Network ====================================== A collection of scripts for running wireless mesh networks using OpenFlow/OpenvSwitch. http://netgroup.uniroma2.it/wmSDN/ Installation steps (tested on Ubuntu 12.04) ============================================ # install CORE: wget http://downloads.pf.itd.nrl.navy.mil/core/packages/4.5/core-daemon_4.5-0ubuntu1_precise_amd64.deb sudo dpkg -i core-daemon_4.5-0ubuntu1_precise_amd64.deb sudo apt-get install -f # get wmSDN sudo apt-get install git git clone https://github.com/netgroup/wmSDN.git cd wmSDN git submodule init git submodule update # build and install olsrd cd olsrd make && make libs sudo make install_libs cd .. # build openvswitch cd openvswitch sudo apt-get install automake libtool libssl-dev ./boot.sh ./configure make # build the kernel module ./configure --with-linux=/lib/modules/`uname -r`/build make sudo rmmod openvswitch sudo insmod ./datapath/linux/openvswitch.ko cd .. # prepare POX cd pox/ext ln -sv ../../controller/*.py . cd ../pox/openflow ln -s ../../../controller/other_modules/of_json.py . cd ../lib ln -s ../../../controller/other_modules/utill.py . cd ../../.. sudo apt-get install python-networkx # check that the directories in the scripts exist and # change them as needed. # e.g. change all occurrencies of /home/user to the home # directory of the current user grep openvswitch scripts/*.sh # install iperf apt-get install iperf # install NS3 cd ~ wget http://www.nsnam.org/release/ns-allinone-3.17.tar.bz2 tar xf ns-allinone-3.17.tar.bz2 cd ns-allinone-3.17/ sudo apt-get install build-essential sudo apt-get install gcc g++ python python-dev sudo apt-get install gsl-bin libgsl0-dev libgsl0ldbl sudo apt-get install vtun lxc sudo apt-get install flex bison libfl-dev sudo apt-get install tcpdump sudo apt-get install libxml2 libxml2-dev sudo apt-get install sqlite sqlite3 libsqlite3-dev ./build.py --enable-tests cd .. Usage ===== # start the emulation cd ~/ns-allinone-3.17/ns-3.17/ sudo ./waf shell cd ~/wmSDN/emulation cat coreconf.py #check the paths # start the actual emulation core-cleanup.sh && python -i ./ns3SDN.py -d 7200 # on another shell cd ~/wmSDN/emulation ./starthosts.sh && ./startovs.sh # now the emulation should be up and running # TOPOLOGY # -------- # (controller) # | # (server)---(n1) (n2) (n3) (n4) (gw6)-+ # | +---(client) # (gw5)--------------+ # # # to get into one of the nodes, e.g. n2 source bashrc corevcmd n2 # olsr writes into routing table 198 ip route show table 198 # see the flow table source .bashrc of_flows # monitor active flows of_watch_active_flows # get some flow table stats of_rule_stats # exit the node's shell exit # starting the controller cd ~/wmSDN/emulation source bashrc corevcmd controller cd ~/wmSDN/pox ./pox.py gw_switch_olsrd # PROGRESSIVE IPERF TEST # a new iperf flow starts every 20 seconds # from the client node to the server node # try with and without the controller running mkdir ~/iperftestresults cd ~/wmSDN/emulation # optionally enable TCP Reno sudo ./tcp_reno.sh ./progressive_iperf.sh ~/iperftestresults less ~/iperftestresults/iperf_s_11.log # GATEWAY FAILOVER TEST # two iperf flows are started, each flowing through a # different gateway. # Then, at t=180s one of the gateway fails and the # controller moves both flows to the running gateway. # At t=360s the gateway comes up again, and the controller # re-balances the flows through both gateways. # make sure the controller is running during the test. mkdir ~/failovertestresults cd ~/wmSDN/emulation # optionally enable TCP Reno sudo ./tcp_reno.sh ./failover_test.sh ~/failovertestresults less ~/failovertestresults/iperf_s_11.out less ~/faiolvertestresults/iperf_s_12.out Contacts ======== * wmSDN home page: http://netgroup.uniroma2.it/wmSDN/ * wmSDN mailing list: https://groups.google.com/forum/#!forum/wmsdn * Claudio Pisa <[email protected]>
Hello,
I am using the same idea as WMSDN.
In this case, to define different instances of OpenvSwitch, I configured them as follows:
ovs-vsctl --db=unix:$(pwd)/db.sock add-br br*
However, I have a problem in using ovs-appctl in each switch to trace packets.
Do you have any suggestion for defining the address for ovs-appctl for each OpenvSwitch?
Hai,
I am new to this tools. Is it possible to use latest version of NS3 and Ubuntu?
do you have any information for this update?
While Building openvswith i am getting error in
../genetlink.inc:127:6: error: conflicting types for ‘genl_notify’
void genl_notify(struct sk_buff skb, struct net *net, u32 portid, u32 group,
and
Leaving directory `/home/ravi/Downloads/wmSDN/openvswitch'
make: ** [all] Error 2
please provide the solution for same... further process depends on it without it i am not able to proceed to next step as you mention in file.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.