📄 traffic.tcl
字号:
Class Traffic/Mix -superclass TestSuiteTestSuite instproc trafficMix {} { $self instvar node_ set fid 1 for {set i 0} {$i< 3} {incr i} { for {set j 0} {$j< 3} {incr j} { #$self new_Tcp $startTime $src $dst $rwnd $fid $dump $pktSize $type $maxPkts $self new_Tcp [$self rnd 10] $node_(s$i) $node_(d$j) 50 $fid 1 1000 sack 0 incr fid } } #50% of the link bandwidth $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 1000 .0016 $fid 0 incr fid# $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 500 .0008 $fid 0 # incr fid #45% of the link# $self new_Cbr [$self rnd 10] $node_(s1) $node_(d1) 1000 .0018 $fid 0 # incr fid #40% of the link# $self new_Cbr [$self rnd 10] $node_(s2) $node_(d2) 1000 .0021 $fid 0 # incr fid #35% of the link bandwidth# $self new_Cbr [$self rnd 10] $node_(s2) $node_(s5) 1000 .0023 $fid 0 # incr fid #30% of the link bandwidth $self new_Cbr [$self rnd 10] $node_(s1) $node_(d1) 1000 .0026 $fid 0 incr fid #20% of the link bandwidth# $self new_Cbr [$self rnd 10] $node_(s2) $node_(d2) 1000 .004 $fid 0 # incr fid # $self new_Cbr [$self rnd 10] $node_(s2) $node_(d2) 1000 .004 $fid 0 # incr fid # $self new_Cbr [$self rnd 10] $node_(s2) $node_(d2) 500 .002 $fid 0 # incr fid# $self new_Cbr [$self rnd 10] $node_(s2) $node_(d2) 500 .002 $fid 0 # incr fid #15% of the link bandwidth# $self new_Cbr [$self rnd 10] $node_(s2) $node_(d2) 1000 .0052 $fid 0 # incr fid# $self new_Cbr [$self rnd 10] $node_(s2) $node_(d2) 1000 .0052 $fid 0 # incr fid# $self new_Cbr [$self rnd 10] $node_(s2) $node_(d2) 1000 .0052 $fid 0 # incr fid #10% of the link bandwidth $self new_Cbr [$self rnd 10] $node_(s2) $node_(d2) 1000 .008 $fid 0 incr fid# $self new_Cbr [$self rnd 10] $node_(s3) $node_(s6) 1000 .008 $fid 0 # incr fid# $self new_Cbr [$self rnd 10] $node_(s3) $node_(s6) 1000 .008 $fid 0 # incr fid# $self new_Cbr [$self rnd 10] $node_(s3) $node_(s6) 1000 .008 $fid 0 # incr fid# $self new_Cbr [$self rnd 10] $node_(s3) $node_(s6) 1000 .008 $fid 0 # incr fid# $self new_Cbr [$self rnd 10] $node_(s3) $node_(s6) 1000 .008 $fid 0 # incr fid #2% of link bandwidth# $self new_Cbr [$self rnd 10] $node_(s3) $node_(s6) 1000 .04 $fid 0 # incr fid #4% of link bandwidth# $self new_Cbr [$self rnd 10] $node_(s3) $node_(s6) 1000 .02 $fid 0 # incr fid #varying cbr 0.25*f(R,p) -> 4*f(R,p)# $self new_VaryingCbr [$self rnd 10] $node_(s2) $node_(d2) 1000 0.02262742 $fid 0 }Class Traffic/Varying -superclass TestSuiteTestSuite instproc trafficVarying {} { $self instvar node_ set fid 1 for {set i 0} {$i< 3} {incr i} { for {set j 0} {$j< 3} {incr j} { #$self new_Tcp $startTime $src $dst $rwnd $fid $dump $pktSize $type $maxPkts $self new_Tcp [$self rnd 10] $node_(s$i) $node_(d$j) 50 $fid 1 1000 sack 0 incr fid } } #varying cbr 0.25Mbps -> 4Mbps $self new_VaryingCbr [$self rnd 10] $node_(s2) $node_(d2) 1000 0.032 $fid 0 }Class Traffic/AllTCP -superclass TestSuiteTestSuite instproc trafficAllTCP {} { $self instvar node_ set fid 1 for {set i 0} {$i< 4} {incr i} { for {set j 0} {$j< 2} {incr j} { #$self new_Tcp $startTime $src $dst $rwnd $fid $dump $pktSize $type $maxPkts $self new_Tcp [$self rnd 10] $node_(s$i) $node_(d$j) 50 $fid 1 1000 sack 0 incr fid if {$i == 3 } { for {set k 0} {$k < 3} {incr k} { $self new_Tcp [$self rnd 10] $node_(s$i) $node_(d$j) 50 $fid 1 1000 sack 0 incr fid } } } }}Class Traffic/AllUDP -superclass TestSuiteTestSuite instproc trafficAllUDP {} { $self instvar node_ set fid 1 #1% of the link $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 1000 .08 $fid 0 incr fid #5% of the link $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 1000 .016 $fid 0 incr fid #10% of the link bandwidth $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 1000 .008 $fid 0 incr fid #15% of the link bandwidth $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 1000 .0053 $fid 0 incr fid #20% of the link bandwidth $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 1000 .004 $fid 0 incr fid #25% of the link bandwidth $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 1000 .0032 $fid 0 incr fid #30% of the link bandwidth $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 1000 .0026 $fid 0 incr fid #35% of the link bandwidth $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 1000 .0023 $fid 0 incr fid #40% of the link $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 1000 .002 $fid 0 incr fid #45% of the link $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 1000 .0018 $fid 0 incr fid #50% of the link $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 1000 .0016 $fid 0 incr fid}Class Traffic/TestIdent -superclass TestSuiteTestSuite instproc trafficTestIdent {} { $self instvar node_ topo_ $topo_ instvar redpdq_ global traf_para1_ target_rtt_ traf_para2_ set fid 1 switch -exact $traf_para1_ { "tcp" { for {set i 0} {$i< 5} {incr i} { #$self new_Tcp $startTime $src $dst $rwnd $fid $dump $pktSize $type $maxPkts $self new_Tcp [$self rnd 10] $node_(s$i) $node_(d0) 50 $fid 1 1000 sack 0 incr fid } } "cbr" { set p [$redpdq_ set P_testFRp_] set frp [expr sqrt(1.5)/($target_rtt_*sqrt($p))] set rate [expr {1.0/($traf_para2_*$frp)}] for {set i 0} {$i< 5} {incr i} { $self new_Cbr [$self rnd 1] $node_(s$i) $node_(d0) 1000 $rate $fid 0 incr fid } } default { puts stderr "Unknown Traffic Type" exit 1 } }}Class Traffic/Web -superclass TestSuiteTestSuite instproc trafficWeb {} { $self instvar node_ Agent/TCP set packetSize_ 500 Agent/UDP set packetSize_ 500 PagePool/WebTraf set TCPTYPE_ Sack1 PagePool/WebTraf set TCPSINKTYPE_ TCPSink/Sack1 PagePool/WebTraf set FID_ASSIGNING_MODE_ 1 PagePool/WebTraf set VERBOSE_ 1 set fid 1 for {set i 0} {$i<5} {incr i} { #$self new_Tcp $startTime $src $dst $rwnd $fid $dump $pktSize $type $maxPkts $self new_Tcp [$self rnd 10] $node_(s$i) $node_(d$i) 50 $fid 1 500 sack 0 incr fid $self new_Tcp [$self rnd 10] $node_(s$i) $node_(d[expr ($i+1)%5]) 50 $fid 1 500 sack 0 incr fid #reverse # $self new_Tcp [$self rnd 10] $node_(s$j) $node_(s$i) 50 $fid 0 1000 sack 0 # incr fid } #20% of the link bandwidth $self new_Cbr [$self rnd 10] $node_(s3) $node_(d3) 500 .002 $fid 0 incr fid set pool [new PagePool/WebTraf] $pool instvar maxFid_ set maxFid_ $fid #something like this should have been there # instead of the ugly hack I put in place in tcl/webcache/webtraf.tcl # WebPage set LASTOBJ_ 10 $pool set-num-client 5 $pool set-num-server 5 for {set i 0} {$i < 5} {incr i} { $pool set-server $i $node_(s$i) } for {set i 0} {$i < 5} {incr i} { $pool set-client $i $node_(d$i) } set numSession 50 $pool set-num-session $numSession set interSession [new RandomVariable/Exponential] $interSession set avg_ 1 set sessionSize [new RandomVariable/Constant] $sessionSize set val_ 100 set launchTime 0 for {set i 0} {$i < $numSession} {incr i} { #number of pages in a session set numPage [$sessionSize value] #time between requesting various pages set interPage [new RandomVariable/Exponential] $interPage set avg_ 10 #set interPage [new RandomVariable/Constant] #$interPage set val_ 10 # number of objects in a page set pageSize [new RandomVariable/Exponential] $pageSize set avg_ 10 #set pageSize [new RandomVariable/Constant] #$pageSize set val_ 10 # the time between requesting various objects set interObj [new RandomVariable/Exponential] $interObj set avg_ 0.01 #set interObj [new RandomVariable/Constant] #$interObj set val_ 0.01 #the size of objects being requested set objSize [new RandomVariable/ParetoII] $objSize set avg_ 24 $objSize set shape_ 1.2 #set objSize [new RandomVariable/Constant] #$objSize set val_ 24 $pool create-session $i $numPage [expr $launchTime + 0.1] \ $interPage $pageSize $interObj $objSize set launchTime [expr $launchTime + [$interSession value]] }}Class Traffic/Multi -superclass TestSuiteTestSuite instproc trafficMulti {noLinks_} { $self instvar node_ set fid 1 for {set link 0} {$link < $noLinks_} {incr link} { for {set i 0} {$i < 2} {incr i} { $self new_Tcp [$self rnd 10] $node_(s$link) $node_(d$link) 50 $fid 1 1000 sack 0 incr fid $self new_Tcp [$self rnd 10] $node_(s1$link) $node_(d$link) 50 $fid 1 1000 sack 0 incr fid $self new_Tcp [$self rnd 10] $node_(s2$link) $node_(d$link) 50 $fid 1 1000 sack 0 incr fid $self new_Tcp [$self rnd 10] $node_(s3$link) $node_(d$link) 50 $fid 1 1000 sack 0 incr fid } for {set i 0} {$i < 2} {incr i} { #4.0 Mbps $self new_Cbr [$self rnd 10] $node_(s$link) $node_(d$link) 1000 .0020 $fid 0 incr fid } } global traf_para1_ switch -exact $traf_para1_ { "cbr" { #1.0 Mbps $self new_Cbr [$self rnd 10] $node_(source) $node_(sink) 1000 .008 $fid 0 incr fid } "tcp" { $self new_Tcp [$self rnd 10] $node_(source) $node_(sink) 50 $fid 1 1000 sack 0 incr fid } default { puts stderr "Unknown flow type" exit 1 } }}Class Traffic/TFRC -superclass TestSuiteTestSuite instproc trafficTFRC {} { $self instvar node_ global traf_para1_ set noFlows [expr $traf_para1_/4] if {$traf_para1_ <=0 || [expr $noFlows*4] != $traf_para1_} { puts stderr "Invalid number of flows $traf_para1_ specified. Has to be a multiple of 4" } set fid 1 for {set i 0} {$i<2} {incr i} { for {set j 0} {$j < $noFlows} {incr j} { #new_TFRC startTime source dest fid pktSize $self new_TFRC [$self rnd 10] $node_(s$i) $node_(d$j) $fid 1000 incr fid $self new_Tcp [$self rnd 10] $node_(s$i) $node_(d$j) 50 $fid 1 1000 sack 0 incr fid } }}Class Traffic/TestFRp -superclass TestSuiteTestSuite instproc trafficTestFRp {} { $self instvar node_ topo_ $topo_ instvar redpdq_ set fid 1 global target_rtt_ traf_para1_ traf_para2_ switch -exact $traf_para1_ { "tcp" { $self new_Tcp [$self rnd 10] $node_(s0) $node_(d0) 50 $fid 1 1000 sack 0 incr fid } "cbr" { set p [$redpdq_ set P_testFRp_] set frp [expr sqrt(1.5)/($target_rtt_*sqrt($p))] set rate [expr {1.0/($traf_para2_*$frp)}] $self new_Cbr [$self rnd 1] $node_(s0) $node_(d0) 1000 $rate $fid 0 incr fid } default { puts stderr "Unknown Traffic Type" exit 1 } }}Class Traffic/Response -superclass TestSuiteTestSuite instproc trafficResponse {} { $self instvar node_ topo_ $topo_ instvar redpdq_ set fid 1 global target_rtt_ set p [$redpdq_ set P_testFRp_] set frp [expr sqrt(1.5)/($target_rtt_*sqrt($p))] set rate [expr {1.0/(0.25*$frp)}] #varying cbr 30->15->7.5->15->30. changes every 50s starting at 30s. $self new_VaryingCbr [$self rnd 10] $node_(s0) $node_(d0) 1000 $rate $fid 0 incr fid for {set i 0} {$i < [expr $traf_para1_ - 1]} {incr i} { $self new_VaryingCbr [$self rnd 10] $node_(s0) $node_(d0) 1000 [expr $rate*(2+2*0)] $fid 0 incr fid }}Class Traffic/PktsVsBytes -superclass TestSuiteTestSuite instproc trafficPktsVsBytes {} { $self instvar node_ global traf_para1_ set noFlows [expr $traf_para1_/4] if {$traf_para1_ <=0 || [expr $noFlows*4] != $traf_para1_} { puts stderr "Invalid number of flows $traf_para1_ specified. Has to be a multiple of 4" } set fid 1 for {set i 0} {$i < 2} {incr i} { for {set j 0} {$j < $noFlows} {incr j} { $self new_Tcp [$self rnd 10] $node_(s$i) $node_(d$j) 50 $fid 1 1000 sack 0 incr fid $self new_Tcp [$self rnd 10] $node_(s$i) $node_(d$j) 50 $fid 1 500 sack 0 incr fid } } #20% of the link bandwidth# $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 1000 .002 $fid 0 # incr fid #20% of the link bandwidth# $self new_Cbr [$self rnd 10] $node_(s0) $node_(d0) 500 .001 $fid 0 # incr fid }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -