Hello ns-users I want to analyse an energy related trace file and i work with AWK. but it doesn't deal with energy. I have a tcl file which i want to caculate the "end to end delay" and "throughput" and "energy consumption" through it. when i set the mac type as 802.11 it works with AWK and give me the "end to end delay"and "thorughput". but when i change the mac type to smac it doesn't work even on calculating "end to end delay"and "throughput". I use the following tcl file.
Thanks in advance Samira Niafar #################### # run SMAC in a 5-nodes multihop network with DSR routing set opt(chan) Channel/WirelessChannel set opt(prop) Propagation/TwoRayGround set opt(netif) Phy/WirelessPhy set opt(mac) Mac/802_11 ;# MAC type #set opt(mac) Mac/SMAC set opt(ifq) Queue/DropTail/PriQueue set opt(ifq) CMUPriQueue set opt(ll) LL set opt(ant) Antenna/OmniAntenna set opt(x) 600 ;# X dimension of the topography set opt(y) 600 ;# Y dimension of the topography set opt(ifqlen) 50 ;# max packet in ifq set opt(seed) 0.0 set opt(tr) smac2.tr ;# trace file set opt(rp) DSR set opt(filters) GradientFilter set opt(nn) 14 ;# how many nodes are simulated set opt(stop) 300.0 ;# simulation time set opt(syncFlag) 1 ;# is set to 1 when SMAC uses sleep-wakeup cycle set opt(selfConfigFlag) 1 ;# is set to 0 when SMAC uses user configurable schedule start time set opt(initialenergy) 1000 set opt(energymodel) EnergyModel ; set opt(radiomodel) RadioModel ; set opt(receivepower) 0.281838 ;# Receiving Power set opt(transmitpower) 0.281838 ;# Transmitting Power set opt(idlepower) 0.281838 ;# Idle Power set opt(sleeppower) 2.81838e-4 ;# sleep power set opt(transitionpower) 0.0563676 ;# transition power set opt(transitiontime) 0.005 ;# transition time #set interval 1.0 #set appTime1 42.0 ;# in seconds #set appTime2 44.0 ;# in seconds #set stopTime 100 ;# in seconds # ===================================================================== # Other default settings #LL set mindelay_ 50us #LL set delay_ 25us #LL set bandwidth_ 0 ; Agent/Null set sport_ 0 Agent/Null set dport_ 0 Agent/CBR set sport_ 0 Agent/CBR set dport_ 0 Agent/TCPSink set sport_ 0 Agent/TCPSink set dport_ 0 Agent/TCP set sport_ 0 Agent/TCP set dport_ 0 Agent/TCP set packetSize_ 512 # Queue/DropTail/PriQueue set Prefer_Routing_Protocols 1 # unity gain, omni-directional antennas # set up the antennas to be centered in the node and 1.5 meters above it Antenna/OmniAntenna set X_ 0 Antenna/OmniAntenna set Y_ 0 Antenna/OmniAntenna set Z_ 1.5 Antenna/OmniAntenna set Gt_ 1.0 Antenna/OmniAntenna set Gr_ 1.0 # Initialize the SharedMedia interface with parameters to make # it work like the 914MHz Lucent WaveLAN DSSS radio interface Phy/WirelessPhy set CPThresh_ 10.0 #Phy/WirelessPhy set CSThresh_ 1.50990e-07 #Phy/WirelessPhy set RXThresh_ 4.80696e-07 Phy/WirelessPhy set CSThresh_ 1.559e-10 Phy/WirelessPhy set RXThresh_ 3.652e-10 ;# Receiving Threshold Phy/WirelessPhy set Rb_ 2*1e6 Phy/WirelessPhy set Pt_ 0.2818 Phy/WirelessPhy set freq_ 914e+6 Phy/WirelessPhy set L_ 1.0 # SMAC settings Mac/SMAC set syncFlag_ 1 ; # sleep wakeup cycles #Mac/SMAC set SMAC_DUTY_CYCLE 50 Mac/SMAC set dutyCycle_ 90 #ErrorModel set rate_ 0.1 #proc UniformError {} { # global #opt # set errObj [new ErrorModel] # $errObj unit packet # return $errObj #} # create simulator instance set ns_ [new Simulator] set tracefd [open $opt(tr) w] $ns_ use-newtrace $ns_ trace-all $tracefd set nf [open out03.nam w] $ns_ namtrace-all-wireless $nf 600 600 set f0 [open out03.tr w] set wtopo [new Topography] $wtopo load_flatgrid $opt(x) $opt(y) # $ns_ set WirelessNewTrace_ ON create-god $opt(nn) # define topology # # Create God # # # define how node should be created # # node setting $ns_ node-config -adhocRouting $opt(rp) \ -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 $wtopo \ -agentTrace ON \ -routerTrace ON \ -macTrace ON \ -movementTrace ON \ -diffusionFilter $opt(filters) \ -energyModel EnergyModel \ -idlePower 0.281838 \ -rxPower 0.281838 \ -txPower 0.281838 \ -sleepPower 2.81838e-4 \ -transitionPower 0.0563676 \ -transitionTime 0.005\ -initialEnergy 1000 #$ns_ node-config -IncomingErrProc UniformError -OutgoingErrProc UniformError # Create the specified number of nodes [$opt(nn)] and "attach" them # to the channel. for {set i 0} {$i < $opt(nn) } {incr i} { set node_($i) [$ns_ node $i] } for {set i 0} {$i < $opt(nn)} {incr i} { $ns_ initial_node_pos $node_($i) 100 } set god_ [create-god $opt(nn)] # # Create DSR Agent # rt_rq_max_period indicates maximum time between rt reqs # rt_rq_period indicates length of one backoff period # send_timeout indicates how long a packet can live in sendbuf #for {set i 0} {$i < $opt(nn)} {incr i} { # set dsr($i) [new Agent/DSRAgent] # $dsr($i) node $node_($i) # $dsr($i) rt_rq_max_period 100 # $dsr($i) rt_rq_period 30 # $dsr($i) send_timeout 300 #} # # Create the topology $node_(0) set X_ 289.174121233685 $node_(0) set Y_ 532.222630433344 $node_(0) set Z_ 0.000000000000 $node_(1) set X_ 8.376937718690 $node_(1) set Y_ 388.816552300435 $node_(1) set Z_ 0.000000000000 $node_(2) set X_ 144.715541857489 $node_(2) set Y_ 90.031594020913 $node_(2) set Z_ 0.000000000000 $node_(3) set X_ 218.842303966917 $node_(3) set Y_ 441.557378471814 $node_(3) set Z_ 0.000000000000 $node_(4) set X_ 165.461244391263 $node_(4) set Y_ 454.793861414567 $node_(4) set Z_ 0.000000000000 $node_(5) set X_ 369.432790214666 $node_(5) set Y_ 580.361955965703 $node_(5) set Z_ 0.000000000000 $node_(6) set X_ 216.204723150139 $node_(6) set Y_ 592.333071959503 $node_(6) set Z_ 0.000000000000 $node_(7) set X_ 69.169004584465 $node_(7) set Y_ 193.122149810523 $node_(7) set Z_ 0.000000000000 $node_(8) set X_ 193.823789180105 $node_(8) set Y_ 85.517872867109 $node_(8) set Z_ 0.000000000000 $node_(9) set X_ 339.205839753806 $node_(9) set Y_ 189.069852867753 $node_(9) set Z_ 0.000000000000 $node_(10) set X_ 275.292159072303 $node_(10) set Y_ 230.926965417529 $node_(10) set Z_ 0.000000000000 $node_(11) set X_ 84.771837907038 $node_(11) set Y_ 325.588571401877 $node_(11) set Z_ 0.000000000000 $node_(12) set X_ 454.164068788785 $node_(12) set Y_ 467.766484966369 $node_(12) set Z_ 0.000000000000 $node_(13) set X_ 310.283006201234 $node_(13) set Y_ 345.991246068426 $node_(13) set Z_ 0.000000000000 $ns_ at 0.000000000000 "$node_(0) setdest 53.023557278537 86.512188472444 0.000010000000" $ns_ at 0.000000000000 "$node_(1) setdest 328.951874892691 387.527198578617 0.000010000000" $ns_ at 0.000000000000 "$node_(2) setdest 344.091691163152 279.980230526041 0.000010000000" $ns_ at 0.000000000000 "$node_(3) setdest 491.585491516111 328.717712446415 0.000010000000" $ns_ at 0.000000000000 "$node_(4) setdest 93.936835215162 477.590409279523 0.000010000000" $ns_ at 0.000000000000 "$node_(5) setdest 308.400181994596 360.036678399804 0.000010000000" $ns_ at 0.000000000000 "$node_(6) setdest 136.920488597700 491.466570884233 0.000010000000" $ns_ at 0.000000000000 "$node_(7) setdest 79.119387934178 208.680626937554 0.000010000000" $ns_ at 0.000000000000 "$node_(8) setdest 100.850885728603 94.399771242205 0.000010000000" $ns_ at 0.000000000000 "$node_(9) setdest 529.190354997198 210.847149243627 0.000010000000" $ns_ at 0.000000000000 "$node_(10) setdest 407.005530609086 343.788999809910 0.000010000000" $ns_ at 0.000000000000 "$node_(11) setdest 215.868238057148 319.910406726730 0.000010000000" $ns_ at 0.000000000000 "$node_(12) setdest 584.146157443151 344.793501942663 0.000010000000" $ns_ at 0.000000000000 "$node_(13) setdest 220.790254167368 195.419207133165 0.000010000000" $god_ set-dist 0 1 2 $god_ set-dist 0 2 3 $god_ set-dist 0 3 1 $god_ set-dist 0 4 1 $god_ set-dist 0 5 1 $god_ set-dist 0 6 1 $god_ set-dist 0 7 3 $god_ set-dist 0 8 3 $god_ set-dist 0 9 2 $god_ set-dist 0 10 2 $god_ set-dist 0 11 2 $god_ set-dist 0 12 1 $god_ set-dist 0 13 1 $god_ set-dist 1 2 2 $god_ set-dist 1 3 1 $god_ set-dist 1 4 1 $god_ set-dist 1 5 2 $god_ set-dist 1 6 2 $god_ set-dist 1 7 1 $god_ set-dist 1 8 2 $god_ set-dist 1 9 3 $god_ set-dist 1 10 2 $god_ set-dist 1 11 1 $god_ set-dist 1 12 2 $god_ set-dist 1 13 2 $god_ set-dist 2 3 2 $god_ set-dist 2 4 2 $god_ set-dist 2 5 3 $god_ set-dist 2 6 3 $god_ set-dist 2 7 1 $god_ set-dist 2 8 1 $god_ set-dist 2 9 1 $god_ set-dist 2 10 1 $god_ set-dist 2 11 1 $god_ set-dist 2 12 3 $god_ set-dist 2 13 2 $god_ set-dist 3 4 1 $god_ set-dist 3 5 1 $god_ set-dist 3 6 1 $god_ set-dist 3 7 2 $god_ set-dist 3 8 2 $god_ set-dist 3 9 2 $god_ set-dist 3 10 1 $god_ set-dist 3 11 1 $god_ set-dist 3 12 1 $god_ set-dist 3 13 1 $god_ set-dist 4 5 1 $god_ set-dist 4 6 1 $god_ set-dist 4 7 2 $god_ set-dist 4 8 2 $god_ set-dist 4 9 2 $god_ set-dist 4 10 1 $god_ set-dist 4 11 1 $god_ set-dist 4 12 2 $god_ set-dist 4 13 1 $god_ set-dist 5 6 1 $god_ set-dist 5 7 3 $god_ set-dist 5 8 3 $god_ set-dist 5 9 2 $god_ set-dist 5 10 2 $god_ set-dist 5 11 2 $god_ set-dist 5 12 1 $god_ set-dist 5 13 1 $god_ set-dist 6 7 3 $god_ set-dist 6 8 3 $god_ set-dist 6 9 3 $god_ set-dist 6 10 2 $god_ set-dist 6 11 2 $god_ set-dist 6 12 2 $god_ set-dist 6 13 2 $god_ set-dist 7 8 1 $god_ set-dist 7 9 2 $god_ set-dist 7 10 1 $god_ set-dist 7 11 1 $god_ set-dist 7 12 3 $god_ set-dist 7 13 2 $god_ set-dist 8 9 1 $god_ set-dist 8 10 1 $god_ set-dist 8 11 2 $god_ set-dist 8 12 3 $god_ set-dist 8 13 2 $god_ set-dist 9 10 1 $god_ set-dist 9 11 2 $god_ set-dist 9 12 2 $god_ set-dist 9 13 1 $god_ set-dist 10 11 1 $god_ set-dist 10 12 2 $god_ set-dist 10 13 1 $god_ set-dist 11 12 2 $god_ set-dist 11 13 1 $god_ set-dist 12 13 1 set udp0 [new Agent/UDP] $ns_ attach-agent $node_(0) $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 512 $cbr0 set interval_ 0.03 $cbr0 attach-agent $udp0 set null0 [new Agent/LossMonitor] $ns_ attach-agent $node_(1) $null0 $ns_ connect $udp0 $null0 $ns_ at 60.0 "$cbr0 start" $ns_ at 300.0 "$cbr0 stop" set udp1 [new Agent/UDP] $ns_ attach-agent $node_(2) $udp1 set cbr1 [new Application/Traffic/CBR] $cbr1 set packetSize_ 512 $cbr1 set interval_ 0.03 $cbr1 attach-agent $udp1 set null1 [new Agent/LossMonitor] $ns_ attach-agent $node_(3) $null1 $ns_ connect $udp1 $null1 $ns_ at 100.0 "$cbr1 start" $ns_ at 300.0 "$cbr1 stop" set udp2 [new Agent/UDP] $ns_ attach-agent $node_(4) $udp2 set cbr2 [new Application/Traffic/CBR] $cbr2 set packetSize_ 1023 $cbr2 set interval_ 0.03 $cbr2 attach-agent $udp2 set null2 [new Agent/LossMonitor] $ns_ attach-agent $node_(5) $null2 $ns_ connect $udp2 $null2 $ns_ at 80.0 "$cbr2 start" $ns_ at 300.0 "$cbr2 stop" set udp3 [new Agent/UDP] $ns_ attach-agent $node_(7) $udp3 set cbr3 [new Application/Traffic/CBR] $cbr3 set packetSize_ 1023 $cbr3 set interval_ 0.03 $cbr3 attach-agent $udp3 set null3 [new Agent/LossMonitor] $ns_ attach-agent $node_(8) $null3 $ns_ connect $udp3 $null3 $ns_ at 100.0 "$cbr3 start" $ns_ at 300.0 "$cbr3 stop" set udp4 [new Agent/UDP] $ns_ attach-agent $node_(9) $udp4 set cbr4 [new Application/Traffic/CBR] $cbr4 set packetSize_ 512 $cbr4 set interval_ 0.03 $cbr4 attach-agent $udp4 set null4 [new Agent/LossMonitor] $ns_ attach-agent $node_(10) $null4 $ns_ connect $udp4 $null4 $ns_ at 90.0 "$cbr4 start" $ns_ at 300.0 "$cbr4 stop" set udp5 [new Agent/UDP] $ns_ attach-agent $node_(11) $udp5 set cbr5 [new Application/Traffic/CBR] $cbr5 set packetSize_ 850 $cbr5 set interval_ 0.03 $cbr5 attach-agent $udp5 set null5 [new Agent/LossMonitor] $ns_ attach-agent $node_(12) $null5 $ns_ connect $udp5 $null5 $ns_ at 120.0 "$cbr5 start" $ns_ at 300.0 "$cbr5 stop" #cbrtraffic 0 4 $interval $appTime1 #cbrtraffic 1 3 $interval $appTime2 # # Tell nodes when the simulation ends # for {set i 0} {$i < $opt(nn) } {incr i} { $ns_ at $opt(stop) "$node_($i) reset"; } $ns_ at 300.0001 "stop" $ns_ at 300.0002 "$ns_ halt" proc stop {} { global tracefd nf ns_ f0 np $ns_ flush-trace close $tracefd close $nf close $f0 exec nam out03.nam puts "... SASAN" exec xgraph out03.tr -geometry 900x900 & exit 0 } proc record {} { global null0 f0 set ns_ [Simulator instance] set time 25.0 set bw0 [$null0 set bytes_] set now [$ns_ now] puts $f0 "$now [expr $bw0/$time*8/1000000]" $null0 set bytes_ 0 $ns_ at [expr $now+$time] "record" } $ns_ at $opt(stop).0002 "puts \"NS EXITING...\" ; $ns_ halt" puts "Starting Simulation..." $ns_ at 0.0 "record" $ns_ at 300.0 "stop" $ns_ run