Created
January 27, 2010 19:08
-
-
Save jkal/288090 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Based on simple-wireless.tcl | |
# ====================================================================== | |
# 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) 50 ;# max packet in ifq | |
set val(nn) 2 ;# number of mobilenodes | |
set val(rp) AODV ;# routing protocol | |
# ====================================================================== | |
# Main Program | |
# ====================================================================== | |
# | |
# Initialize Global Variables | |
# | |
set ns [new Simulator] | |
set tr [open simple.tr w] | |
$ns trace-all $tr | |
# set up topography object | |
set topo [new Topography] | |
$topo load_flatgrid 500 500 | |
# | |
# Create God | |
# | |
create-god $val(nn) | |
# | |
# Create the specified number of mobilenodes [$val(nn)] and "attach" them | |
# to the channel. | |
# Here two nodes are created : node(0) and node(1) | |
# configure node | |
$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) \ | |
-channelType $val(chan) \ | |
-topoInstance $topo \ | |
-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 mobilenodes | |
# | |
#$node_(0) set X_ 5.0 | |
#$node_(0) set Y_ 2.0 | |
#$node_(0) set Z_ 0.0 | |
# | |
#$node_(1) set X_ 390.0 | |
#$node_(1) set Y_ 385.0 | |
#$node_(1) set Z_ 0.0 | |
# | |
# Now produce some simple node movements | |
# Node_(1) starts to move towards node_(0) | |
# | |
#$ns_ at 50.0 "$node_(1) setdest 25.0 20.0 15.0" | |
#$ns_ at 10.0 "$node_(0) setdest 20.0 18.0 1.0" | |
# Node_(1) then starts to move away from node_(0) | |
#$ns_ at 100.0 "$node_(1) setdest 490.0 480.0 15.0" | |
# ------------------------------------------------ | |
# CREATE TRAFFIC | |
#------------------------------------------------- | |
# Setup traffic flow between nodes | |
# TCP connections between node_(0) and node_(1) | |
set tcp [new Agent/TCP] | |
#$tcp set class_ 2 | |
set sink [new Agent/TCPSink] | |
$ns attach-agent $node_(0) $tcp | |
$ns attach-agent $node_(1) $sink | |
$ns connect $tcp $sink | |
$tcp set fid_ 1 | |
set ftp [new Application/FTP] | |
$ftp attach-agent $tcp | |
$ns at 10.0 "$ftp start" | |
# | |
# Tell nodes when the simulation ends | |
# | |
for {set i 0} {$i < $val(nn) } {incr i} { | |
$ns at 110.0 "$node_($i) reset"; | |
} | |
$ns at 110.0 "stop" | |
$ns at 110.01 "puts \"NS EXITING...\" ; $ns halt" | |
proc stop {} { | |
global ns tr | |
$ns flush-trace | |
close $tr | |
} | |
puts "Starting Simulation..." | |
$ns run | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment