#!/usr/bin/tclsh set ctr 10 # set ctr 254 #set increase [lindex $argv 0] #set decrease [lindex $argv 1] #rl=0 -> no rate limiting #rl=1 -> depends on the capacity #rl between 0 and 1 -> this is the actual value set k 0 foreach rate1 { 0.5 } { foreach sowdp { 0.125 } { foreach rl { 1 } { foreach bytes { 0 } { foreach thr { 15.0 } { # thr is threshold for delay based approach, if thr=0 => ecn based approach foreach to { 0.30 } { #default foreach ecn { 1 } { foreach rate { 1.5 } { #default foreach queue { RED } { foreach type { 3 } { foreach decrease { 0.5 } { if { ($ecn == 1) && ($queue == "DropTail") } { # skip } else { # catch { exec rm out.$queue.12 } # catch { exec rm graphs/s$ctr.p } # 0 1 2 3 4 5 for idsp foreach idsp { 0 1 } { # 0 1 2 5 for itcp foreach itcp { 0 1 } { # reverse background traffic 0 or 1 foreach randflows { 0 } { # 0.05 0.1 0.2 0.4 0.8 1.6 3.2 6.4 12.8 25.6 51.2 foreach freq { 0.0 } { #1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 foreach rnd { 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 } { #rnd 0 means default - we have the same thing if { ($idsp == 1) && ($itcp == 1) } { #skip } elseif { ($idsp == 5) && ($itcp == 5) } { #skip } elseif { ($idsp == 5) && ($itcp == 10) } { #skip } elseif { ($idsp == 10) && ($itcp == 5) } { #skip } elseif { ($idsp == 10) && ($itcp == 10) } { #skip } elseif { ($idsp == 0) && ($type > 3) } { #skip } elseif { ($idsp == 0) && ($decrease > 0.5) } { #skip } elseif { ($idsp == 2) && ($itcp == 1) } { #skip } elseif { ($idsp == 2) && ($itcp == 2) } { #skip } elseif { ($idsp == 2) && ($itcp == 5) } { #skip } elseif { ($idsp == 3) && ($itcp == 1) } { #skip } elseif { ($idsp == 3) && ($itcp == 2) } { #skip } elseif { ($idsp == 3) && ($itcp == 5) } { #skip } elseif { ($idsp == 4) && ($itcp == 1) } { #skip } elseif { ($idsp == 4) && ($itcp == 2) } { #skip } elseif { ($idsp == 4) && ($itcp == 5) } { #skip } elseif { ($idsp == 5) && ($itcp == 1) } { #skip } elseif { ($idsp == 5) && ($itcp == 2) } { #skip } elseif { ($idsp == 5) && ($itcp == 5) } { #skip } else { if {$to <= 0.30} { eval "exec ./ns dsp_fig_17_18.tcl $idsp $itcp $queue $type $rate $ecn 0.1 $decrease 1 0 $to $randflows $thr $bytes $rl $sowdp $rate1 $freq $freq $rnd > ./results-sale/drops-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" } elseif {$to == 0.31} { eval "exec ./ns1 dsp4a.tcl $idsp $itcp $queue $type $rate $ecn 0.1 $decrease 1 0 $to $randflows $thr $bytes $rl $sowdp $rate1 $freq $freq $rnd > ./results-sale/drops-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" } elseif {$to == 0.32} { eval "exec ./ns2 dsp4a.tcl $idsp $itcp $queue $type $rate $ecn 0.1 $decrease 1 0 $to $randflows $thr $bytes $rl $sowdp $rate1 $freq $freq $rnd > ./results-sale/drops-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" } eval "exec ./results-sale/a.out 1 ./results-sale/web-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq ./results-sale/drops-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq ./results-sale/out-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq $rnd" if {$rnd == 1} { set file [open ./results-sale/avg "a+"] puts $file "a.out 4 ./out-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq a ./out-$idsp-$itcp 1" close $file if {$k == 0} { set file1 [open ./results-sale/ratio "a+"] puts $file1 "a.out 2 ./out-1-0 ./out-0-1 ./tcp-lp-fig4 1" puts $file1 "a.out 2 ./out-0-0 ./out-0-1 ./no-ftp-fig4 1" close $file1 set k 1 } } if { $rate < 15 } { #decouple dsp1 from dsp2 #eval "exec awk -f awk/dsp1-differ.awk ./results-sale/dsp-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq > ./results-sale/dsp1-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" #s if 2 or more dsp-s are competing if { $idsp > 1} { #eval "exec awk -f awk/dsp2-differ.awk ./results-sale/dsp-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq > ./results-sale/dsp2-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" } #s if 3 or more dsp-s are competing if { $idsp > 2} { #eval "exec awk -f awk/dsp3-differ.awk ./results-sale/dsp-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq > ./results-sale/dsp3-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" } #s if 4 or more dsp-s are competing if { $idsp > 3} { #eval "exec awk -f awk/dsp4-differ.awk ./results-sale/dsp-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq > ./results-sale/dsp4-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" } #s if 5 or more dsp-s are competing if { $idsp > 4} { #eval "exec awk -f awk/dsp5-differ.awk ./results-sale/dsp-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq > ./results-sale/dsp5-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" } #eval "exec rm ./results-sale/dsp-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" #extract rtt to dsp1-rtt #eval "exec awk -f awk/rtt_.awk ./results-sale/dsp1-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq > ./results-sale/dsp1-rtt-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" #extract cwnd to dsp1-cwnd #eval "exec awk -f awk/cwnd_.awk ./results-sale/dsp1-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq > ./results-sale/dsp1-cwnd-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" #eval "exec rm ./results-sale/dsp1-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" #s if 2 or more dsp-s are competing #extract rtt to dsp2-rtt #eval "exec awk -f awk/rtt_.awk ./results-sale/dsp2-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq > ./results-sale/dsp2-rtt-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" #extract cwnd to dsp2-cwnd #eval "exec awk -f awk/cwnd_.awk ./results-sale/dsp2-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq > ./results-sale/dsp2-cwnd-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" #eval "exec rm ./results-sale/dsp2-$idsp-$itcp-$queue$type-$rate-b$decrease-to$to-bk$randflows-thr$thr-byt$bytes-rl$rl-sowdp$sowdp-rat1e$rate1-freq$freq" } #end if rate < 15 } #else } #rnd } #freq } #randflows } #itcp } #idsp } #else incr ctr } #beta } #type } #queue } #rate } #ecn } #to } #thr } #bytes } #rate-limit } #sowdp } #rate1