Friday, October 4, 2013

Installing LEACH in NS-2.34

The home directory of NS-2.34 is “/home/ns2/ns-allinone-2.34″

        1. Download the package “ns-234-leach.tar.gz” into the directory “/home/ns2/ns-allinone-2.34/ns-2.34″.
        2. Download the bash file “” into the directory “/home/ns2/ns-allinone-2.34/ns-2.34″.
    If the home directory of your “NS-2.34″ is other than “/home/ns2/ns-allinone-2.34″, then you need to find “ns-allinone-2.34″ and replace with “yourpath/ns-allinone-2.34″ for the file “”.
        3. Move to the directory “/home/ns2/ns-allinone-2.34/ns-2.34″ and patch the file “” by run this command :
        ns2@ubuntu-10.04:~$ cd /home/ns2/ns-allinone-2.34/ns-2.34/
        ns2@ubuntu-10.04:/home/ns2/ns-allinone-2.34/ns-2.34$ bash
    If the home directory of your “ns-2.34″ is other than “/home/ns2/ns-allinone-2.34″, then you need to find “…/ns-allinone-2.34″ and replace with “yourpath/ns-allinone-2.34″ for the following two files:
         ”Makefile” : found in the directory “/home/ns2/ns-allinone-2.34/ns-2.34″.
        “” : found in the directory “/home/ns2/ns-allinone-2.34/ns-2.34″.
        4. Edit both “Makefile” & “” as following:
        CC = gcc-4.3
        CPP = g++-4.3

        5. Run the following commands
        ns2@ubuntu-10.04:/home/ns2/ns-allinone-2.34/ns-2.34$ ./configure
        ns2@ubuntu-10.04:/home/ns2/ns-allinone-2.34/ns-2.34$ make clean
        ns2@ubuntu-10.04:/home/ns2/ns-allinone-2.34/ns-2.34$ make

    If you have a problem while ‘make’ and shown error message like this : “trace/ In member function ‘void CMUTrace::format(Packet*, const char*)’: trace/ error: ‘format_rca’ was not declared in this scope trace/ At global scope: trace/ error: no ‘void CMUTrace::format_rca(Packet*, int)’ member function declared in class ‘CMUTrace’ make: *** [trace/cmu-trace.o] Error 1″

Then you need to add this lines into your cmu-trace.h:
    // start from line 165
    #ifdef MIT_uAMPS
    void format_rca(Packet *p, int offset);
    #define ADV_CHAR ‘A’
    #define REQ_CHAR ‘R’
    #define DATA_CHAR ‘D’


and also add this line into ns-default.tcl (line 765):

    # ——————————————————
    Phy/WirelessPhy set alive_ 1
    Phy/WirelessPhy set Efriss_amp_ 100e-12
    Phy/WirelessPhy set Etwo_ray_amp_ 0.013e-12

    Phy/WirelessPhy set EXcvr_ 50e-9
    Phy/WirelessPhy set sleep_ 0
    Phy/WirelessPhy set ss_ 1
    Phy/WirelessPhy set dist_ 0
    # ——————————————————

After that you need to re-make.

If the previous commands passed successfully then you are ready to test your “Leach” by running ./test:

ns2@ubuntu-10.04:/home/ns2/ns-allinone-2.34/ns-2.34$ ./test

Check the file “leach.err”, if no error reported then go to “leach.out” for results.