Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #======================================================================
- # Define options
- #======================================================================
- 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) CMUPriQueue ;# Interface queue type #CMUPriQueue - DSR olsr dsdv #Queue/DropTail/PriQueue - aodv
- set val(ifqlen) 50 ;# max packet in ifq
- set val(netif) Phy/WirelessPhy ;# network interface type
- set val(mac) Mac/802_11 ;# MAC type
- set val(rp) DSR ;# ad-hoc routing protocol
- set val(nn) 42 ;# number of mobilenodes
- set val(vel) 28 ;# number of mobilenodes
- set val(x) 600 ;
- set val(y) 200 ;# x-y simulation's area
- set val(semente) 289 ;
- set val(carga) "load_scen/load_n$val(nn)" ;
- set val(mobilidade) "mob_scen/scen_v$val(vel)_n$val(nn)";
- #======================================================================
- # New ns2 instance
- #======================================================================
- set ns_ [new Simulator]
- #======================================================================
- # Define trace files
- #======================================================================
- set tracefd [open out.tr w]
- $ns_ trace-all $tracefd
- #set namtrace [open movemement.nam w]
- #$ns_ namtrace-all-wireless $namtrace $val(x) $val(y)
- #======================================================================
- # Define Topology
- #======================================================================
- set topo [new Topography]
- $topo load_flatgrid $val(x) $val(y)
- set god_ [create-god $val(nn)]
- #======================================================================
- # 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) \
- -channelType $val(chan) \
- -topoInstance $topo \
- -agentTrace ON\
- -routerTrace OFF \
- -macTrace OFF \
- -movementTrace OFF
- for {set i 0} {$i < $val(nn) } {incr i} {
- set node_($i) [$ns_ node ]
- $node_($i) random-motion 0 ;# disable random motion
- }
- ## transmission rate
- Mac/802_11 set dataRate_ 11.0e6
- Mac/802_11 set basicRate_ 2.5e6
- # Transmission range
- # 100 meters ../indep-utils/propagation
- #Phy/WirelessPhy set RXThresh_ 1.92278e-06; #10 meters
- #Phy/WirelessPhy set RXThresh_ 7.69113e-08; #50 meters
- #Phy/WirelessPhy set RXThresh_ 3.00435e-08; #80 meters
- Phy/WirelessPhy set RXThresh_ 1.42681e-08; #100 meters
- #Phy/WirelessPhy set RXThresh_ 8.91754e-10; #200 meters
- #Phy/WirelessPhy set RXThresh_ 1.76149e-10; #300 meters
- #Phy/WirelessPhy set RXThresh_ 5.57346e-11; #400 meters
- #Phy/WirelessPhy set RXThresh_ 2.28289e-11;#500 meters
- #======================================================================
- # Define Node's Movement
- #======================================================================
- ## loading scenario file
- source $val(mobilidade)
- #======================================================================
- # Define Traffic Generators
- #======================================================================
- puts "Loading querys traffic file ...."
- set bSys [new TrafficController $val(nn)] ;#$val(nn)]
- $bSys charge_traffic $val(carga)
- puts "Load complete"
- puts ""
- for {set i 0} {$i < $val(nn)} {incr i 1} {
- set gen($i) [new Agent/TrafficAgent]
- $ns_ attach-agent $node_($i) $gen($i)
- $node_($i) attach $gen($i) 333
- set app_($i) [new Application/P2PApp];
- $app_($i) attach-traffic-controller $bSys
- $app_($i) attach-agent $gen($i)
- $app_($i) seed $val(semente); #semente utilizada para escolher o endereço para onde se envia a querie
- $app_($i) number_nodes $val(nn); #lista de nós activos para onde gera os pedidos de encaminhamento (através do endereço da lista de nós activos)
- $ns_ at 0.0 "$app_($i) start"
- }
- #======================================================================
- # Simulation Control
- #======================================================================
- for {set i 0} {$i < $val(nn) } {incr i} {
- $ns_ at 100.0 "$node_($i) reset";
- }
- $ns_ at 100.0001 "stop"
- $ns_ at 100.0002 "puts \"NS EXITING...\" ; $ns_ halt"
- proc stop {} {
- global ns_ tracefd
- global val
- # global ns_ namtrace
- $ns_ flush-trace
- close $tracefd
- # close $namtrace
- #exec gedit simple.tr &
- exec mv out.tr "traces/out_$val(rp)_n$val(nn)_v$val(vel).tr"
- exit 0
- }
- puts "Starting Simulation..."
- $ns_ run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement