[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Problem with _size FIFO



Hi to all,
i have a problem...
i don't able to read size_ variable in queue.
Somebody know some examples to use the queu clas and to calculaute the
queu size.
i attach my tcl code (no optimized) ...
but in the n16 node there is the droptail but like i can extract the
size_ parameter and after like can i do to calculate droptail
medium_size???
Tahnks in advanced

;# Topologia de la red



;# Source 0   -----------\ 

;# Source 1   ----------\ \

;# Source 2   ---------\ \ \

;# Source 3   --------\ \ \ \

;# Source 4   -------\ \ \ \ \

;# Source 5   ------\ \ \ \ \ \

;# Source 6   ---> ------------------

;# Source 7   --->|     switch       |

;# Source 8   --->|        +         |---> Sink

;# Source 9   --->|    cola fifo     |

;# Source 10  ---> ------------------

;# Source 11   -----/ / / / /

;# Source 12  -------/ / / /

;# Source 13  --------/ / /

;# Source 14  ---------/ /

;# Source 15  ----------/



;# ---------------------------------------



set ns [new Simulator]



;#set bw [expr 10000*1024*1024]

;#puts stdout " bw = $bw"

;#set delay 1us

;#puts stdout " delay = $delay"

;#set buffer 30

;#set StartTime 0.0s

;#puts stdout " Start Time = $StartTime"

;#set StopTime 1.204s

;#puts stdout "Stop Time = StopTime"

;#set rho 1

;#set rate_generador [expr $rho*10000Mb/1.6]



set f0 [open ./output/out0_95.tr w]

set f1 [open ./output/out1_95.tr w]

set f2 [open ./output/out2_95.tr w]

set f3 [open ./output/out3_95.tr w]

set f4 [open ./output/out4_95.tr w]

set f5 [open ./output/out5_95.tr w]

set f6 [open ./output/out6_95.tr w]

set f7 [open ./output/out7_95.tr w]

set f8 [open ./output/out8_95.tr w]

set f9 [open ./output/out9_95.tr w]

set f10 [open ./output/out10_95.tr w]

set f11 [open ./output/out11_95.tr w]

set f12 [open ./output/out12_95.tr w]

set f13 [open ./output/out13_95.tr w]

set f14 [open ./output/out14_95.tr w]

set f15 [open ./output/out15_95.tr w]

set fifo [open ./output/fifo_95.tr w]



puts $f0 "        COLA DESDE LA SORGENTE 0 A EL SWITCHER"

puts $f0 " "

puts $f0 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f0 " "

puts $f1 "        COLA DESDE LA SORGENTE 1 A EL SWITCHER"

puts $f1 " "

puts $f1 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f1 " "

puts $f2 "        COLA DESDE LA SORGENTE 2 A EL SWITCHER"

puts $f2 " "

puts $f2 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f2 " "

puts $f3 "        COLA DESDE LA SORGENTE 3 A EL SWITCHER"

puts $f3 " "

puts $f3 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f4 "        COLA DESDE LA SORGENTE 4 A EL SWITCHER"

puts $f3 " "

puts $f4 " "

puts $f4 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f4 " "

puts $f5 "        COLA DESDE LA SORGENTE 5 A EL SWITCHER"

puts $f5 " "

puts $f5 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f5 " "

puts $f6 "        COLA DESDE LA SORGENTE 6 A EL SWITCHER"

puts $f6 " "

puts $f6 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f6 " "

puts $f7 "        COLA DESDE LA SORGENTE 7 A EL SWITCHER"

puts $f7 " "

puts $f7 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f7 " "

puts $f8 "        COLA DESDE LA SORGENTE 8 A EL SWITCHER"

puts $f8 " "

puts $f8 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f8 " "

puts $f9 "        COLA DESDE LA SORGENTE 9 A EL SWITCHER"

puts $f9 " "

puts $f9 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f9 " "

puts $f10 "        COLA DESDE LA SORGENTE 10 A EL SWITCHER"

puts $f10 " "

puts $f10 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f10 " "

puts $f11 "        COLA DESDE LA SORGENTE 11 A EL SWITCHER"

puts $f11 " "

puts $f11 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f11 " "

puts $f12 "        COLA DESDE LA SORGENTE 12 A EL SWITCHER"

puts $f12 " "

puts $f12 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f12 " "

puts $f13 "        COLA DESDE LA SORGENTE 13 A EL SWITCHER"

puts $f13 " "

puts $f13 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f13 " "

puts $f14 "        COLA DESDE LA SORGENTE 14 A EL SWITCHER"

puts $f14 " "

puts $f14 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f14 " "

puts $f15 "        COLA DESDE LA SORGENTE 15 A EL SWITCHER"

puts $f15 " "

puts $f15 "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $f15 " "

puts $fifo "        COLA DESDE LAS SORGENTES 0..15 A EL SWITCHER"

puts $fifo " "

puts $fifo "        TIEMPO     |PERD.|LLEG.| BANDA"

puts $fifo " "



;# Nodos fuentes



set n0 [$ns node]

set n1 [$ns node]

set n2 [$ns node]

set n3 [$ns node]

set n4 [$ns node]

set n5 [$ns node]

set n6 [$ns node]

set n7 [$ns node]

set n8 [$ns node]

set n9 [$ns node]

set n10 [$ns node]

set n11 [$ns node]

set n12 [$ns node]

set n13 [$ns node]

set n14 [$ns node]

set n15 [$ns node]



;# Nodo switch



set n16 [$ns node]



;# Nodo pozo



set n17 [$ns node]



$ns duplex-link $n0 $n16 10000Mb 1us DropTail

$ns duplex-link $n1 $n16 10000Mb 1us DropTail

$ns duplex-link $n2 $n16 10000Mb 1us DropTail

$ns duplex-link $n3 $n16 10000Mb 1us DropTail

$ns duplex-link $n4 $n16 10000Mb 1us DropTail

$ns duplex-link $n5 $n16 10000Mb 1us DropTail

$ns duplex-link $n6 $n16 10000Mb 1us DropTail

$ns duplex-link $n7 $n16 10000Mb 1us DropTail

$ns duplex-link $n8 $n16 10000Mb 1us DropTail

$ns duplex-link $n9 $n16 10000Mb 1us DropTail

$ns duplex-link $n10 $n16 10000Mb 1us DropTail

$ns duplex-link $n11 $n16 10000Mb 1us DropTail

$ns duplex-link $n12 $n16 10000Mb 1us DropTail

$ns duplex-link $n13 $n16 10000Mb 1us DropTail

$ns duplex-link $n14 $n16 10000Mb 1us DropTail

$ns duplex-link $n15 $n16 10000Mb 1us DropTail

$ns duplex-link $n16 $n17 10000Mb 1us DropTail



puts stdout "Limitacion switch-pozo QUEUE to 30 packets. . ."

$ns queue-limit $n16 $n17 30



;# la simulac�on se para despues 1.204 segundos

;# (10^6 paquetes) llamando el procedimiento termina



;# Procedimiento che se ejecuta para acabar la simulac�on



proc finish {} { 

     global f0 f1 f2 f3

     global f4 f5 f6 f7

     global f8 f9 f10

     global f11 f12 f13 

     global f14 f15 fifo



     close $f0

     close $f1

     close $f2

     close $f3

     close $f4

     close $f5

     close $f6

     close $f7

     close $f8

     close $f9

     close $f10

     close $f11

     close $f12

     close $f13

     close $f14

     close $f15

     close $fifo

     exit 0

}



proc attach-expoo-traffic {node sink size burst idle rate} {



    set ns [Simulator instance]

    set source [new Agent/CBR/UDP]

    $ns attach-agent $node $source

    set traffic [new Traffic/Expoo]

    $traffic set packet-size $size

    $traffic set burst-time $burst

    $traffic set idle-time $idle

    $traffic set rate $rate

    $source attach-traffic $traffic

    $ns connect $source $sink

    return $source

   }



proc record {} {

    global sink0 sink1

    global sink2 sink3

    global sink4 sink5

    global sink6 sink7

    global sink8 sink9

    global sink10 sink11

    global sink12 sink13

    global sink14 sink15

    global f0 f1 f2 f3

    global f4 f5 f6 f7

    global f8 f9 f10

    global f11 f12 f13

    global f14 f15 fifo



    set ns [Simulator instance]

    set time 0.01



    set bw0 [$sink0 set bytes_]

    set bw1 [$sink1 set bytes_]

    set bw2 [$sink2 set bytes_]

    set bw3 [$sink3 set bytes_]

    set bw4 [$sink4 set bytes_]

    set bw5 [$sink5 set bytes_]

    set bw6 [$sink6 set bytes_]

    set bw7 [$sink7 set bytes_]

    set bw8 [$sink8 set bytes_]

    set bw9 [$sink9 set bytes_]

    set bw10 [$sink10 set bytes_]

    set bw11 [$sink11 set bytes_]

    set bw12 [$sink12 set bytes_]

    set bw13 [$sink13 set bytes_]

    set bw14 [$sink14 set bytes_]

    set bw15 [$sink15 set bytes_]



    set ls0 [$sink0 set nlost_]

    set ar0 [$sink0 set npkts_]

    set ls1 [$sink1 set nlost_]

    set ar1 [$sink1 set npkts_]

    set ls2 [$sink2 set nlost_]

    set ar2 [$sink2 set npkts_]

    set ls3 [$sink3 set nlost_]

    set ar3 [$sink3 set npkts_]

    set ls4 [$sink4 set nlost_]

    set ar4 [$sink4 set npkts_]

    set ls5 [$sink5 set nlost_]

    set ar5 [$sink5 set npkts_]

    set ls6 [$sink6 set nlost_]

    set ar6 [$sink6 set npkts_]

    set ls7 [$sink7 set nlost_]

    set ar7 [$sink7 set npkts_]

    set ls8 [$sink8 set nlost_]

    set ar8 [$sink8 set npkts_]

    set ls9 [$sink9 set nlost_]

    set ar9 [$sink9 set npkts_]

    set ls10 [$sink10 set nlost_]

    set ar10 [$sink10 set npkts_]

    set ls11 [$sink11 set nlost_]

    set ar11 [$sink11 set npkts_]

    set ls12 [$sink12 set nlost_]

    set ar12 [$sink12 set npkts_]

    set ls13 [$sink13 set nlost_]

    set ar13 [$sink13 set npkts_]

    set ls14 [$sink14 set nlost_]

    set ar14 [$sink14 set npkts_]

    set ls15 [$sink15 set nlost_]

    set ar15 [$sink15 set npkts_]



    set now [$ns now]

    puts stdout "Simulation Time = $now"





    puts $f0 "$now | $ls0 | $ar0 | [expr $bw0/$time*8/1000000] |"

    puts $f1 "$now | $ls1 | $ar1 | [expr $bw1/$time*8/1000000] |"

    puts $f2 "$now | $ls2 | $ar2 | [expr $bw2/$time*8/1000000] |"

    puts $f3 "$now | $ls3 | $ar3 | [expr $bw3/$time*8/1000000] |"

    puts $f4 "$now | $ls4 | $ar4 | [expr $bw4/$time*8/1000000] |"

    puts $f5 "$now | $ls5 | $ar5 | [expr $bw5/$time*8/1000000] |"

    puts $f6 "$now | $ls6 | $ar6 | [expr $bw6/$time*8/1000000] |"

    puts $f7 "$now | $ls7 | $ar7 | [expr $bw7/$time*8/1000000] |"

    puts $f8 "$now | $ls8 | $ar8 | [expr $bw8/$time*8/1000000] |"

    puts $f9 "$now | $ls9 | $ar9 | [expr $bw9/$time*8/1000000] |"

    puts $f10 "$now | $ls10 | $ar10 | [expr $bw10/$time*8/1000000] |"

    puts $f11 "$now | $ls11 | $ar11 | [expr $bw11/$time*8/1000000] |"

    puts $f12 "$now | $ls12 | $ar12 | [expr $bw12/$time*8/1000000] |"

    puts $f13 "$now | $ls13 | $ar13 | [expr $bw13/$time*8/1000000] |"

    puts $f14 "$now | $ls14 | $ar14 | [expr $bw14/$time*8/1000000] |"

    puts $f15 "$now | $ls15 | $ar15 | [expr $bw15/$time*8/1000000] |"

    

    set lstot [expr $ls0+$ls1+$ls2+$ls3+$ls4+$ls5+$ls6+$ls7+$ls8+$ls9+$ls10+$ls11+$ls12+$ls13+$ls14+$ls15]

    set artot [expr $ar0+$ar1+$ar2+$ar3+$ar4+$ar5+$ar6+$ar7+$ar8+$ar9+$ar10+$ar11+$ar12+$ar13+$ar14+$ar15]

    set bwtot [expr $bw0+$bw1+$bw2+$bw3+$bw4+$bw5+$bw6+$bw7+$bw8+$bw9+$bw10+$bw11+$bw12+$bw13+$bw14+$bw15]

    

    puts $fifo "$now | $lstot | $artot | $bwtot |"

    

    $sink0 set bytes_ 0

    $sink1 set bytes_ 0

    $sink2 set bytes_ 0

    $sink3 set bytes_ 0

    $sink4 set bytes_ 0

    $sink5 set bytes_ 0

    $sink6 set bytes_ 0

    $sink7 set bytes_ 0

    $sink8 set bytes_ 0

    $sink9 set bytes_ 0

    $sink10 set bytes_ 0

    $sink11 set bytes_ 0

    $sink12 set bytes_ 0

    $sink13 set bytes_ 0

    $sink14 set bytes_ 0

    $sink15 set bytes_ 0



    $ns at [expr $now+$time] "record"

   }





set sink0 [new Agent/LossMonitor]

set sink1 [new Agent/LossMonitor]

set sink2 [new Agent/LossMonitor]

set sink3 [new Agent/LossMonitor]

set sink4 [new Agent/LossMonitor]

set sink5 [new Agent/LossMonitor]

set sink6 [new Agent/LossMonitor]

set sink7 [new Agent/LossMonitor]

set sink8 [new Agent/LossMonitor]

set sink9 [new Agent/LossMonitor]

set sink10 [new Agent/LossMonitor]

set sink11 [new Agent/LossMonitor]

set sink12 [new Agent/LossMonitor]

set sink13 [new Agent/LossMonitor]

set sink14 [new Agent/LossMonitor]

set sink15 [new Agent/LossMonitor]

$ns attach-agent $n17 $sink0

$ns attach-agent $n17 $sink1

$ns attach-agent $n17 $sink2

$ns attach-agent $n17 $sink3

$ns attach-agent $n17 $sink4

$ns attach-agent $n17 $sink5

$ns attach-agent $n17 $sink6

$ns attach-agent $n17 $sink7

$ns attach-agent $n17 $sink8

$ns attach-agent $n17 $sink9

$ns attach-agent $n17 $sink10

$ns attach-agent $n17 $sink11

$ns attach-agent $n17 $sink12

$ns attach-agent $n17 $sink13

$ns attach-agent $n17 $sink14

$ns attach-agent $n17 $sink15



set source0 [attach-expoo-traffic $n0 $sink0 1505 0.1s 0.9s 6080000Kb]

set source1 [attach-expoo-traffic $n1 $sink1 1505 0.1s 0.9s 6080000Kb]

set source2 [attach-expoo-traffic $n2 $sink2 1505 0.1s 0.9s 6080000Kb]

set source3 [attach-expoo-traffic $n3 $sink3 1505 0.1s 0.9s 6080000Kb]

set source4 [attach-expoo-traffic $n4 $sink4 1505 0.1s 0.9s 6080000Kb]

set source5 [attach-expoo-traffic $n5 $sink5 1505 0.1s 0.9s 6080000Kb]

set source6 [attach-expoo-traffic $n6 $sink6 1505 0.1s 0.9s 6080000Kb]

set source7 [attach-expoo-traffic $n7 $sink7 1505 0.1s 0.9s 6080000Kb]

set source8 [attach-expoo-traffic $n8 $sink8 1505 0.1s 0.9s 6080000Kb]

set source9 [attach-expoo-traffic $n9 $sink9 1505 0.1s 0.9s 6080000Kb]

set source10 [attach-expoo-traffic $n10 $sink10 1505 0.1s 0.9s 6080000Kb]

set source11 [attach-expoo-traffic $n11 $sink11 1505 0.1s 0.9s 6080000Kb]

set source12 [attach-expoo-traffic $n12 $sink12 1505 0.1s 0.9s 6080000Kb]

set source13 [attach-expoo-traffic $n13 $sink13 1505 0.1s 0.9s 6080000Kb]

set source14 [attach-expoo-traffic $n14 $sink14 1505 0.1s 0.9s 6080000Kb]

set source15 [attach-expoo-traffic $n15 $sink15 1505 0.1s 0.9s 6080000Kb]



$ns at 0.0 "record"



$ns at 0.0 "$source0 start"

$ns at 0.0 "$source1 start"

$ns at 0.0 "$source2 start"

$ns at 0.0 "$source3 start"

$ns at 0.0 "$source4 start"

$ns at 0.0 "$source5 start"

$ns at 0.0 "$source6 start"

$ns at 0.0 "$source7 start"

$ns at 0.0 "$source8 start"

$ns at 0.0 "$source9 start"

$ns at 0.0 "$source10 start"

$ns at 0.0 "$source11 start"

$ns at 0.0 "$source12 start"

$ns at 0.0 "$source13 start"

$ns at 0.0 "$source14 start"

$ns at 0.0 "$source15 start"



$ns at 1.204 "$source0 stop"

$ns at 1.204 "$source1 stop"

$ns at 1.204 "$source2 stop"

$ns at 1.204 "$source3 stop"

$ns at 1.204 "$source4 stop"

$ns at 1.204 "$source5 stop"

$ns at 1.204 "$source6 stop"

$ns at 1.204 "$source7 stop"

$ns at 1.204 "$source8 stop"

$ns at 1.204 "$source9 stop"

$ns at 1.204 "$source10 stop"

$ns at 1.204 "$source11 stop"

$ns at 1.204 "$source12 stop"

$ns at 1.204 "$source13 stop"

$ns at 1.204 "$source14 stop"

$ns at 1.204 "$source15 stop"





$ns at 1.204s "finish"



puts stdout "Start Simulation. . ."



$ns run