I have:
....................
#---------------------------------------------------------------------------------------------------------------------------- #Create nodes and links #---------------------------------------------------------------------------------------------------------------------------- puts "How many flows do you want?(2,3,4,6,8 or
10)"
set numero_flussi [gets
stdin]
set numero_nodi [expr 2*$numero_flussi+2] for {set i 0} {$i <= $numero_nodi} {incr i} {
set n($i) [$ns node] } #$n11 shape hexagon
#$n12 shape hexagon for {set i 0} {$i <= $numero_flussi} {incr i} {
$ns duplex-link $n($i) $n([expr $numero_flussi+1]) 10Mb
10ms DropTail
}
for {set i [expr $numero_flussi+3]} {$i <= [expr
2*$numero_flussi+2]} {incr i} {
$ns duplex-link $n($i) $n([expr $numero_flussi+2]) 10Mb
10ms DropTail
}
$ns simplex-link $n([expr $numero_flussi+1])
$n([expr $numero_flussi+2]) $BW 2ms $tipo_di_coda
$ns simplex-link $n([expr $numero_flussi+2]) $n([expr $numero_flussi+1]) $BW 2ms DropTail $ns simplex-link-op $n([expr $numero_flussi+1]) $n([expr $numero_flussi+2]) orient right #----------------------------------------------------------------------------------------------------------------------------
#Monitor_queue #---------------------------------------------------------------------------------------------------------------------------- #Monitor the queue between the routers
$ns duplex-link-op $n([expr $numero_flussi+1]) $n([expr $numero_flussi+2]) queuePos 0.5 $ns trace-queue $n([expr $numero_flussi+1]) $n([expr
$numero_flussi+2]) $tfrouters
#Oggetti QueueMonitor set queue_r_r [$ns monitor-queue $n([expr $numero_flussi+1]) $n([expr $numero_flussi+2]) [$ns get-ns-traceall]] #----------------------------------------------------------------------------------------------------------------------------
#Create Flow-Monitor sinks links #---------------------------------------------------------------------------------------------------------------------------- for {set i [expr $numero_flussi+3]} {$i <= [expr
2*$numero_flussi+2]} {incr i} {
set getlink_r_sink($i) [$ns link $n([expr $numero_flussi+2]) $i] set fmon_r_sink($i) [$ns makeflowmon Fid] $ns attach-fmon $getlink_r_sink($i) $fmon_r_sink($i) set tf_r_sink($i) [open flow_r_sink($i).tr w]
$fmon_r_sink($i) attach $tf_r_sink($i)
for {set j 0} {$j <= $finishTime} {set j [expr $j +
0.5]} {
$ns at $j "$fmon_r_sink($i) dump" }
}
proc creaflowmon {} { global counter ns numero_flussi global n([expr $numero_flussi+1]) n([expr $numero_flussi+2]) set counter [$ns makeflowmon Fid] set bottleneck [$ns link $n([expr $numero_flussi+1]) $n([expr $numero_flussi+2])] $ns attach-fmon $bottleneck $counter for {set i 0} {$i <= $numero_flussi} {incr i} { global tcp($i)bw set tcp($i)bw 0 } } ...............
why it doesn't work?It says:
can't read "n(4)" : no such
variable
while executing
"$ns link $n([expr $numero_flussi+1]) $n([expr
$numero_flussi+2])"
(procedure "creaflowmon" line 8)
invoked from within
"creaflowmon"
why monitor-queue is ok?
Thank you for your help!
|