Hi every body
I have to implement  enfat-aodv protocol in ns2 for that i should add some
fonctions in files aodv.h and aodv.cc the thing that i don't know how to do

this is the example i'm working in, please help me and thanks in advance.



*set ns [new Simulator]*

*# Create a nam trace datafile.*

*set namfile [open AODV_final.nam w]*

*set Time [open time.tr <http://time.tr> w]*

*#This Block Is For Congestion Window Trace file. Here 5 sample trace file*

*set cwnd1 [open cwnd1.tr <http://cwnd1.tr> w]*

*set cwnd2 [open cwnd2.tr <http://cwnd2.tr> w]*

*set cwnd3 [open cwnd3.tr <http://cwnd3.tr> w]*

*set cwnd4 [open cwnd4.tr <http://cwnd4.tr> w]*

*set cwnd5 [open cwnd5.tr <http://cwnd5.tr> w]*

*#This Block Is For Bandwidth Calculation Trace file. Here 5 sample trace
file*

*set b1 [open b1.tr <http://b1.tr> w]*

*set b2 [open b2.tr <http://b2.tr> w]*

*set b3 [open b3.tr <http://b3.tr> w]*

*set b4 [open b4.tr <http://b4.tr> w]*

*set b5 [open b5.tr <http://b5.tr> w]*

*$ns namtrace-all $namfile*

*# ----- Setup wireless environment. ----*

*set wireless_tracefile [open AODV_final.trace w]*

*set topography [new Topography]*

*$ns trace-all $wireless_tracefile*

*$ns namtrace-all-wireless $namfile 3000  1600 *

*$topography load_flatgrid 3000  1600*

*#TN means Total number of  wireless node*

*global TN*

*set TN 21*

*set god_ [create-god $TN]*

*#global node setting*

*$ns node-config -adhocRouting AODV \*

*             -llType LL \*

*     -macType Mac/802_11\*

*     -ifqLen 50 \*

*     -ifqType Queue/DropTail/PriQueue \*

*     -antType Antenna/OmniAntenna \*

*     -propType Propagation/TwoRayGround \*

*     -phyType Phy/WirelessPhy \*

*     -channel [new Channel/WirelessChannel] \*

*     -topoInstance $topography \*

*     -agentTrace ON \*

*     -routerTrace ON \*

*     -macTrace ON \*

*                     -movementTrace ON*

*# Create wireless nodes.*

*#I have used few loop and to set in  diffrent position i have use few
defined value*

*#Here X and Y is the axix*

*set x1 150*

*set y1 150*

*set x2 150*

*set y2 250*

*set x3 150*

*set y3 350*

*set x4 150*

*set y4 450*

*set x5 350*

*set y5 150*

*set x6 350*

*set y6 250*

*set x7 350*

*set y7 350*

*set x8 350*

*set y8 450*

*set x9 550*

*set y9 150*

*set x10 550*

*set y10 250*

*set x11 550*

*set y11 350*

*set x12 550*

*set y12 450*

*set x13 750*

*set y13 150*

*set x14 750*

*set y14 250*

*set x15 750*

*set y15 350*

*set x16 750*

*set y16 450*

*set x17 950*

*set y17 150*

*set x18 950*

*set y18 250*

*set x19 950*
*set y19 350*

*set x20 950*

*set y20 450*

*set x21 1100*
*set y21 300*

*#Setting node position block*

*        for {set i 0} {$i < $TN} {incr i} {*

*            set node($i) [$ns node]*

*            $node($i) random-motion 0*

*            $ns at 0.0 "$node($i) label Node_($i)"*

*            $ns initial_node_pos $node($i) 50.000000*

*        }*

*        for {set j 0} {$j < $TN} {incr j} {*

*                     set Tcp($j) [new Agent/TCP]*

*            $ns attach-agent $node($j) $Tcp($j)*

*            $ns color 1 "black"*

*            $Tcp($j) set fid_ $j*

*            $Tcp($j) set packetSize_ 512*

*            $Tcp($j) set window_ 20*

*            $Tcp($j) set windowInit_ 1*

*            $Tcp($j) set maxcwnd_ 0*

*            #Set TCPSink*

*            set TcpSink($j) [new Agent/TCPSink]*

*            $ns attach-agent $node($j) $TcpSink($j)*

*            $TcpSink($j) set packetSize_ 210*

*            #Set Trafic Source*



*            set Ftp($j) [new Application/FTP]*

*            $Ftp($j) attach-agent $Tcp($j)*

*            $Ftp($j) set maxpkts_ 2048*

*        }*





* for {set j1 0} {$j1 < $TN} {incr j1 21} {*

* incr x1 0*

* incr y1 150*

* $node($j1) set X_ $x1*

* $node($j1) set Y_ $y1*

*        $node($j1) set Z_ 0*

* $node($j1) color "green"*

*        $ns at 0.000000 "$node($j1) setdest $x1 $y1 0.00"*



* }*



* for {set j2 1} {$j2 < $TN} {incr j2 21} {*

* incr x2 0*

* incr y2 140*

* $node($j2) set X_ $x2*

* $node($j2) set Y_ $y2*

*        $node($j2) set Z_ 0*

* $node($j2) color "blue"*

*        $ns at 0.000000 "$node($j2) setdest $x2 $y2 0.00"*

* }*




* for {set j3 2} {$j3 < $TN} {incr j3 21} {*

* incr x3 0*

* incr y3 140*

* $node($j3) set X_ $x3*

* $node($j3) set Y_ $y3*

*        $node($j3) set Z_ 0*

* $node($j3) color "red"*

*        $ns at 0.000000 "$node($j3) setdest $x3 $y3 0.00"*

* }*



* for {set j4 3} {$j4 < $TN} {incr j4 21} {*

* incr x4 0*

* incr y4 150*

* $node($j4) set X_ $x4*

* $node($j4) set Y_ $y4*

*        $node($j4) set Z_ 0*

* $node($j4) color "blue"*

*        $ns at 0.000000 "$node($j4) setdest $x4 $y4 0.00"*

* }*






* for {set j5 4} {$j5 < $TN} {incr j5 21} {*

* incr x5 0*

* incr y5 140*

* $node($j5) set X_ $x5*

* $node($j5) set Y_ $y5*

*        $node($j5) set Z_ 0*

* $node($j5) color "black"*

*        $ns at 0.000000 "$node($j5) setdest $x5 $y5 0.00"*

* }*



* for {set j6 5} {$j6 < $TN} {incr j6 21} {*

* incr x6 0*

* incr y6 150*

* $node($j6) set X_ $x6*

* $node($j6) set Y_ $y6*

*        $node($j6) set Z_ 0*

* $node($j6) color "green"*

*        $ns at 0.000000 "$node($j6) setdest $x6 $y6 0.00"*

* }*



* for {set j7 6} {$j7 < $TN} {incr j7 21} {*

* incr x7 0*

* incr y7 140*

* $node($j7) set X_ $x7*

* $node($j7) set Y_ $y7*

*        $node($j7) set Z_ 0*

* $node($j7) color "blue"*

*        $ns at 0.000000 "$node($j7) setdest $x7 $y7 0.00"*

* }*



* for {set j8 7} {$j8 < $TN} {incr j8 21} {*

* incr x8 0*

* incr y8 150*

* $node($j8) set X_ $x8*

* $node($j8) set Y_ $y8*

*        $node($j8) set Z_ 0*

* $node($j8) color "red"*

*        $ns at 0.000000 "$node($j8) setdest $x8 $y8 0.00"*

* }*





* for {set j9 8} {$j9 < $TN} {incr j9 21} {*

* incr x9 0*

* incr y9 140*

* $node($j9) set X_ $x9*

* $node($j9) set Y_ $y9*

*        $node($j9) set Z_ 0*

* $node($j9) color "black"*

*        $ns at 0.000000 "$node($j9) setdest $x9 $y9 0.00"*

* }*



* for {set j10 9} {$j10 < $TN} {incr j10 21} {*

* incr x10 0*

* incr y10 150*

* $node($j10) set X_ $x10*

* $node($j10) set Y_ $y10*

*        $node($j10) set Z_ 0*

* $node($j10) color "green"*

*        $ns at 0.000000 "$node($j10) setdest $x10 $y10 0.00"*

* }*

* for {set j11 10} {$j11 < $TN} {incr j11 21} {*

* incr x11 0*

* incr y11 140*

* $node($j11) set X_ $x11*

* $node($j11) set Y_ $y11*

*        $node($j11) set Z_ 0*

* $node($j11) color "blue"*

*        $ns at 0.000000 "$node($j11) setdest $x11 $y11 0.00"*

* }*



* for {set j12 11} {$j12 < $TN} {incr j12 21} {*

* incr x12 0*

* incr y12 150*

* $node($j12) set X_ $x12*

* $node($j12) set Y_ $y12*

*        $node($j12) set Z_ 0*

* $node($j12) color "red"*

*        $ns at 0.000000 "$node($j12) setdest $x12 $y12 0.00"*

* }*



* for {set j13 12} {$j13 < $TN} {incr j13 21} {*

* incr x13 0*

* incr y13 140*

* $node($j13) set X_ $x13*

* $node($j13) set Y_ $y13*

*        $node($j13) set Z_ 0*

* $node($j13) color "green"*

*        $ns at 0.000000 "$node($j13) setdest $x13 $y13 0.00"*

* }*

*        for {set j14 13} {$j14 < $TN} {incr j14 21} {*

* incr x14 0*

* incr y14 150*

* $node($j14) set X_ $x14*

* $node($j14) set Y_ $y14*

*        $node($j14) set Z_ 0*

* $node($j14) color "black"*

*        $ns at 0.000000 "$node($j14) setdest $x14 $y14 0.00"*

* }*

*        for {set j15 14} {$j15 < $TN} {incr j15 21} {*

* incr x15 0*

* incr y15 140*

* $node($j15) set X_ $x15*

* $node($j15) set Y_ $y15*

*        $node($j15) set Z_ 0*

* $node($j15) color "green"*

*        $ns at 0.000000 "$node($j15) setdest $x15 $y15 0.00"*

* }*

*        for {set j16 15} {$j16 < $TN} {incr j16 21} {*

* incr x16 0*

* incr y16 150*

* $node($j16) set X_ $x16*

* $node($j16) set Y_ $y16*

*        $node($j16) set Z_ 0*

* $node($j16) color "green"*

*        $ns at 0.000000 "$node($j16) setdest $x16 $y16 0.00"*

* }*

*        for {set j17 16} {$j17 < $TN} {incr j17 21} {*

* incr x17 0*

* incr y17 140*

* $node($j17) set X_ $x17*

* $node($j17) set Y_ $y17*

*        $node($j17) set Z_ 0*

* $node($j17) color "green"*

*        $ns at 0.000000 "$node($j17) setdest $x17 $y17 0.00"*

* }*

*        for {set j18 17} {$j18 < $TN} {incr j18 21} {*

* incr x18 0*

* incr y18 150*

* $node($j18) set X_ $x18*

* $node($j18) set Y_ $y18*

*        $node($j18) set Z_ 0*

* $node($j18) color "green"*

*        $ns at 0.000000 "$node($j18) setdest $x18 $y18 0.00"*

* }*

*        for {set j19 18} {$j19 < $TN} {incr j19 21} {*

* incr x19 0*

* incr y19 140*

* $node($j19) set X_ $x19*

* $node($j19) set Y_ $y19*

*        $node($j19) set Z_ 0*

* $node($j19) color "green"*

*        $ns at 0.000000 "$node($j19) setdest $x19 $y19 0.00"*

* }*

*        for {set j20 19} {$j20 < $TN} {incr j20 21} {*

* incr x20 0*

* incr y20 150*

* $node($j20) set X_ $x20*

* $node($j20) set Y_ $y20*

*        $node($j20) set Z_ 0*

* $node($j20) color "green"*

*        $ns at 0.000000 "$node($j20) setdest $x20 $y20 0.00"*

* }*

*        for {set j21 20} {$j21 < $TN} {incr j21 21} {*

* incr x21 0*

* incr y21 140*

* $node($j21) set X_ $x21*

* $node($j21) set Y_ $y21*

*        $node($j21) set Z_ 0*

* $node($j21) color "green"*

*        $ns at 0.000000 "$node($j21) setdest $x21 $y21 0.00"*

* }*





*#Animate Few of node*

*$ns at 10.000000 "$node(0) setdest 160 450 75"*

*# Connect agents.*



*# Connect agents.*





*#Connect Source to destination*

*$ns connect $Tcp(0) $TcpSink(20)*





*# Traffic Source actions.*

*$ns at 0.020000 "$Ftp(0) start"*

*$ns at 590.000000 "$Ftp(0) stop"*



*#Custom Proc To get time*

*    proc getTime {file} {*

*        global ns  *

*        set time 0.2*

*        set now [$ns now]*

*        puts $file "$now"*

*        #Re Call*

*        $ns at [expr $now + $time] " getTime $file"*

*    }*



*    $ns at 0.0 "getTime $Time"*



*#Custom Proc To calculate congestion window*

*    proc calcCwnd {tcpSource file} {*

*        global ns  *

*        set time 0.2*

*        set now [$ns now]*

*        set cwnd [$tcpSource set cwnd_] *

*        puts $file "$cwnd"*

*        #Re Call*

*        $ns at [expr $now + $time] " calcCwnd $tcpSource $file"*

*    }*

*     $ns at 0.0 "calcCwnd $Tcp(0) $cwnd1"*

*#Custom Proc To calculate Bandwidth*

*    proc calcByte {sink file} {*

*       global ns *

*        set time 0.2*

*        set bw0 [$sink set bytes_]*

*        set now [$ns now]*

*        puts $file " [expr {$bw0 / $time * 8 / 1000000}] "*

*        #Reset*

*        $sink set bytes_ 0*

*        #Re Call*

* $ns at [expr $now + $time] "calcByte $sink  $file "*
*  }*

*    $ns at 0.0 "calcByte $TcpSink(20) $b1"*

* # Run the simulation*

*proc finish {} {*

*global ns namfile  *

* $ns flush-trace*
*         close $namfile*
*       #exec xgraph -M -bg white -fg blue -t "Time VS Bandwidth" -x "Time"
-y "Bandwidth"   -geometry 700*800 bw.tr <http://bw.tr> &
          #exec xgraph -M -bg white -fg blue -t "Time VS Throughput" -x
"Time" -y "Throughput" -geometry 700*800 th.tr <http://th.tr> & *

* ##exec nam -r 100.000000us AODV_final.nam & *

* exit 0*
* }*
$ns at 10.000000 "finish"
$ns run

Reply via email to