Part 5 Tcl Scripts For data flow between 20 nodes by Using Aodv Routing Protocol in Manets
aodv.tcl
# Define options
set val(chan)
Channel/WirelessChannel
;#Channel Type
set val(prop)
Propagation/TwoRayGround
;# radio-propagation model
set val(netif)
Phy/WirelessPhy
;# network interface type
set val(mac) Mac/802_11 ;# MAC
type
set val(ifq)
Queue/DropTail/PriQueue
;# interface queue type
set val(ll) LL ;# link
layer type
set val(ant)
Antenna/OmniAntenna
;# antenna model
set val(ifqlen) 150 ;# max
packet in ifq
set val(nn) 20 ;# total
number of mobilenodes
set val(nnaodv) 20 ;#
number of AODV mobilenodes
set val(rp) AODV ;# routing
protocol
set val(x) 750 ;# X dimension of
topography
set val(y) 750 ;# Y
dimension of topography
set val(cstop) 451 ;# time
of connections end
set val(stop) 500 ;# time
of simulation end
#set val(cp)
"scenarios/scen1forAODV-n20-t500-x750-y750" ;#Connection Pattern
# Initialize Global Variables
set ns_ [new Simulator]
$ns_ use-newtrace
set tracefd [open AODV.tr w]
$ns_ trace-all $tracefd
set namtrace [open AODV.nam
w]
$ns_ namtrace-all-wireless $namtrace $val(x) $val(y)
# set up topography object
set topo [new Topography]
$topo load_flatgrid $val(x) $val(y)
# Create God
create-god $val(nn)
# Create channel #1 and #2
set chan_1_ [new $val(chan)]
set chan_2_ [new $val(chan)]
# configure node, please note the change below.
$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 \
-agentTrace ON
\
-routerTrace ON
\
-macTrace ON
\
-movementTrace ON
\
-channel
$chan_1_
# Creating mobile AODV nodes for simulation
puts "Creating nodes..."
for {set i 0} {$i < $val(nnaodv)} {incr i} {
set node_($i) [$ns_ node]
$node_($i) random-motion 0 ;#disable random motion
}
# Creating Black Hole nodes for simulation
#$ns_ node-config -adhocRouting
blackholeAODV
for {set i $val(nnaodv)} {$i < $val(nn)} {incr i} {
set node_($i) [$ns_ node]
$node_($i) random-motion 0 ;#disable random motion
$ns_ at 0.01 "$node_($i) label
\"blackhole node\""
}
# Adding connection pattern which is created using setdest, parameters shown
below
# ./setdest -n 20 -p 1.0 -M 20.0 -t 500 -x 750 -y 750 >
scen1forAODV-n20-t500-x750-y750
puts "Loading random connection pattern..."
set god_ [God instance]
#source $val(cp)
# ################### CBRGEN GENERATE SAME CODE
#############################
set j 0
for {set i 0} {$i < 18} {incr i} {
#Create a UDP and NULL agents, then
attach them to the appropriate nodes
set udp_($j) [new Agent/UDP]
$ns_ attach-agent $node_($i)
$udp_($j)
set null_($j) [new Agent/Null]
$ns_ attach-agent $node_([expr $i +
1]) $null_($j)
#Attach CBR application;
set cbr_($j) [new
Application/Traffic/CBR]
puts "cbr_($j) has been created
over udp_($j)"
$cbr_($j) set packet_size_ 512
$cbr_($j) set interval_ 1
$cbr_($j) set rate_ 10kb
$cbr_($j) set random_ false
$cbr_($j) attach-agent
$udp_($j)
$ns_ connect $udp_($j)
$null_($j)
puts "udp_($j) and null_($j)
agents has been connected each other"
$ns_ at 1.0 "$cbr_($j)
start"
set j [expr $j + 1]
set i [expr $i + 1]
}
# ############################################################################
# CBR Connections generated by cbrgen
#source $val(cc)
# Define initial node position
for {set i 0} {$i < $val(nn) } {incr i} {
$ns_ initial_node_pos $node_($i)
30
}
# CBR connections stops
for {set i 0} {$i < 9 } {incr i} {
$ns_ at $val(cstop) "$cbr_($i)
stop"
}
# Tell all nodes when the simulation ends
for {set i 0} {$i < $val(nn) } {incr i} {
$ns_ at $val(stop).000000001
"$node_($i) reset";
}
# Ending nam and simulation
$ns_ at $val(stop) "finish"
$ns_ at $val(stop).0 "$ns_ trace-annotate \"Simulation has
ended\""
$ns_ at $val(stop).00000001 "puts \"NS EXITING...\" ; $ns_
halt"
proc finish {} {
global ns_ tracefd namtrace
$ns_ flush-trace
close $tracefd
close $namtrace
# exec nam sim1forBlackHole.nam
&
exit 0
}
puts "Starting Simulation..."
$ns_ run
No comments:
Post a Comment