set val(chan) Channel/WirelessChannel; #channel type set val(prop) Propagation/TwoRayGround; #radio-propagation model set val(ant) Antenna/OmniAntenna; #Antenna type set val(ll) LL; #Link layer type set val(ifq) Queue/DropTail/PriQueue; #Interface queue type set val(ifqlen) 50; #max packet in ifq set val(netif) Phy/WirelessPhy; #network interface type set val(mac) Mac/WiMedia; #MAC type set val(nn) 2; #number of mobilenodes set val(rp) AODV; #ad-hoc routing protocol set ns_ [new Simulator] #set the color of the flow $ns_ color 1 Blue $ns_ color 2 Red set tracefd [open test.tr w] $ns_ use-newtrace; $ns_ trace-all $tracefd set namnf [open test.nam w] $ns_ namtrace-all-wireless $namnf 700 300 set topo [new Topography] $topo load_flatgrid 400 300 create-god $val(nn) #set chan0 [new $val(chan)] #Configure nodes $ns_ node-config -adhocRouting $val(rp) \ -llType $val(ll) \ -macType $val(mac) \ -ifqType $val(ifq) \ -ifqLen $val(ifqlen) \ -antType $val(ant) \ -propType $val(prop) \ -phyType $val(netif) \ -topoInstance $topo \ -channelType $val(chan) \ -agentTrace ON \ -routerTrace ON \ -macTrace ON \ -movementTrace OFF for {set i 0} {$i < $val(nn) } {incr i} { set node_($i) [$ns_ node] $node_($i) random-motion 0; #disable random motion } #provide initial (X,Y, for now Z=0) co-ordinates for node_(0) and node_(1) $node_(0) set X_ 150.0 $node_(0) set Y_ 100.0 $node_(0) set Z_ 0.0 $node_(1) set X_ 400.0 $node_(1) set Y_ 100.0 $node_(1) set Z_ 0.0 for {set i 0} {$i < $val(nn) } {incr i} { $ns_ initial_node_pos $node_($i) 30 } set udp0 [new Agent/UDP] set cbr0 [new Application/Traffic/CBR] set null2 [new Agent/Null] $cbr0 set packetSize_ 548 $cbr0 set maxpkts_ 20 $ns_ attach-agent $node_(0) $udp0 $ns_ attach-agent $node_(1) $null2 $udp0 set packetSize_ 1500 $cbr0 attach-agent $udp0 $ns_ connect $udp0 $null2 #set ftp [new Application/FTP] #$ftp attach-agent $tcp $ns_ at 0.01 "$cbr0 start" #tell nodes when the simulation ends for {set i 0} {$i < $val(nn) } {incr i} { $ns_ at 5.0 "$node_($i) reset"; } $ns_ at 20.0001 "stop" $ns_ at 20.0002 "puts \"NS EXITING... \"; $ns_ halt" proc stop {} { global ns_ tracefd global ns_ namnf $ns_ flush-trace close $tracefd close $namnf } puts "Starting Simulation..." $ns_ run