?? olsr_example.tcl
字號(hào):
# ======================================================================# Define options# ======================================================================set opt(chan) Channel/WirelessChannel ;# channel typeset opt(prop) Propagation/TwoRayGround ;# radio-propagation modelset opt(netif) Phy/WirelessPhy ;# network interface typeset opt(mac) Mac/802_11 ;# MAC typeset opt(ifq) Queue/DropTail/PriQueue ;# interface queue typeset opt(ll) LL ;# link layer typeset opt(ant) Antenna/OmniAntenna ;# antenna modelset opt(ifqlen) 50 ;# max packet in ifqset opt(nn) 5 ;# number of mobilenodesset opt(adhocRouting) OLSR ;# routing protocolset opt(cp) "" ;# connection pattern fileset opt(sc) "" ;# node movement file. set opt(x) 400 ;# x coordinate of topologyset opt(y) 600 ;# y coordinate of topologyset opt(seed) 0.0 ;# seed for random number gen.set opt(stop) 45 ;# time to stop simulationset opt(cbr-start) 30.0# ============================================================================## check for random seed#if {$opt(seed) > 0} { puts "Seeding Random number generator with $opt(seed)\n" ns-random $opt(seed)}## create simulator instance#set ns_ [new Simulator]## control OLSR behaviour from this script -# commented lines are not needed because# those are default values#Agent/OLSR set use_mac_ true#Agent/OLSR set debug_ false#Agent/OLSR set willingness 3#Agent/OLSR set hello_ival_ 2#Agent/OLSR set tc_ival_ 5## open traces#set tracefd [open olsr_example.tr w]set namtrace [open olsr_example.nam w]$ns_ trace-all $tracefd$ns_ namtrace-all-wireless $namtrace $opt(x) $opt(y)## create topography object#set topo [new Topography]## define topology#$topo load_flatgrid $opt(x) $opt(y)## create God#create-god $opt(nn)## configure mobile nodes#$ns_ node-config -adhocRouting $opt(adhocRouting) \ -llType $opt(ll) \ -macType $opt(mac) \ -ifqType $opt(ifq) \ -ifqLen $opt(ifqlen) \ -antType $opt(ant) \ -propType $opt(prop) \ -phyType $opt(netif) \ -channelType $opt(chan) \ -topoInstance $topo \ -wiredRouting OFF \ -agentTrace ON \ -routerTrace ON \ -macTrace OFFfor {set i 0} {$i < $opt(nn)} {incr i} { set node_($i) [$ns_ node]}## positions#$node_(0) set X_ 350.0$node_(0) set Y_ 200.0$node_(0) set Z_ 0.0$node_(1) set X_ 200.0$node_(1) set Y_ 350.0$node_(1) set Z_ 0.0$node_(2) set X_ 200.0$node_(2) set Y_ 550.0$node_(2) set Z_ 0.0$node_(3) set X_ 50.0$node_(3) set Y_ 200.0$node_(3) set Z_ 0.0$node_(4) set X_ 200.0$node_(4) set Y_ 50.0$node_(4) set Z_ 0.0## setup UDP connection#set udp [new Agent/UDP]set null [new Agent/Null]$ns_ attach-agent $node_(0) $udp$ns_ attach-agent $node_(2) $null$ns_ connect $udp $nullset cbr [new Application/Traffic/CBR]$cbr set packetSize_ 512$cbr set rate_ 20Kb$cbr attach-agent $udp$ns_ at $opt(cbr-start) "$cbr start"## print (in the trace file) routing table and other# internal data structures on a per-node basis#$ns_ at 10.0 "[$node_(0) agent 255] print_rtable"$ns_ at 15.0 "[$node_(0) agent 255] print_linkset"$ns_ at 20.0 "[$node_(0) agent 255] print_nbset"$ns_ at 25.0 "[$node_(0) agent 255] print_nb2hopset"$ns_ at 30.0 "[$node_(0) agent 255] print_mprset"$ns_ at 35.0 "[$node_(0) agent 255] print_mprselset"$ns_ at 40.0 "[$node_(0) agent 255] print_topologyset"## source connection-pattern and node-movement scripts#if { $opt(cp) == "" } { puts "*** NOTE: no connection pattern specified." set opt(cp) "none"} else { puts "Loading connection pattern..." source $opt(cp)}if { $opt(sc) == "" } { puts "*** NOTE: no scenario file specified." set opt(sc) "none"} else { puts "Loading scenario file..." source $opt(sc) puts "Load complete..."}## define initial node position in nam#for {set i 0} {$i < $opt(nn)} {incr i} { $ns_ initial_node_pos $node_($i) 20} ## tell all nodes when the simulation ends#for {set i 0} {$i < $opt(nn) } {incr i} { $ns_ at $opt(stop).0 "$node_($i) reset";}$ns_ at $opt(stop).0002 "puts \"NS EXITING...\" ; $ns_ halt"$ns_ at $opt(stop).0001 "stop"proc stop {} { global ns_ tracefd namtrace $ns_ flush-trace close $tracefd close $namtrace}## begin simulation#puts "Starting Simulation..."$ns_ run
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -