test-suite-friendly.tcl
来自「一款用来进行网络模拟的软件」· TCL 代码 · 共 2,073 行 · 第 1/5 页
TCL
2,073 行
set cbr1 [$udp1 attach-app Traffic/CBR] $cbr1 set rate_ 3Mb $ns_ at [expr $stopTime1_/3.0] "$cbr1 start" $ns_ at [expr 2.0*$stopTime1_/3.0] "$cbr1 stop" $self tfccDump 1 $tf1 $interval_ $dumpfile_ $ns_ at $stopTime0 "close $dumpfile_; $self finish_1 $testName_" #$self traceQueues $node_(r1) [$self openTrace $stopTime $testName_] $ns_ at $stopTime "$self cleanupAll $testName_" if {$quiet == "false"} { $ns_ at $stopTime2 "close $tracefile" } $ns_ at $stopTime2 "exec cp temp2.rands temp.rands; exit 0" # trace only the bottleneck link $ns_ run}Class Test/HighLossTCP -superclass TestSuiteTest/HighLossTCP instproc init {} { $self instvar net_ test_ guide_ stopTime1_ set net_ net2 set test_ HighLossTCP set guide_ \ "TCP competing against a CBR flow." Agent/TFRCSink set discount_ 1 Agent/TFRCSink set smooth_ 1 Agent/TFRC set df_ 0.95 Agent/TFRC set ca_ 1 set stopTime1_ 60 $self next pktTraceFile}Test/HighLossTCP instproc run {} { global quiet $self instvar ns_ node_ testName_ interval_ dumpfile_ guide_ stopTime1_ puts "Guide: $guide_" $self setTopo set interval_ 1 set stopTime $stopTime1_ set stopTime0 [expr $stopTime - 0.001] set stopTime2 [expr $stopTime + 0.001] set dumpfile_ [open temp.s w] if {$quiet == "false"} { set tracefile [open all.tr w] $ns_ trace-all $tracefile } set tcp1 [$ns_ create-connection TCP/Sack1 $node_(s1) TCPSink/Sack1 $node_(s3) 0] set ftp1 [$tcp1 attach-app FTP] $ns_ at 0.0 "$ftp1 start" set udp1 [$ns_ create-connection UDP $node_(s2) UDP $node_(s4) 1] set cbr1 [$udp1 attach-app Traffic/CBR] $cbr1 set rate_ 3Mb $ns_ at [expr $stopTime1_/3.0] "$cbr1 start" $ns_ at [expr 2.0*$stopTime1_/3.0] "$cbr1 stop" $ns_ at $stopTime0 "close $dumpfile_; $self finish_1 $testName_" #$self traceQueues $node_(r1) [$self openTrace $stopTime $testName_] $ns_ at $stopTime "$self cleanupAll $testName_" if {$quiet == "false"} { $ns_ at $stopTime2 "close $tracefile" } $ns_ at $stopTime2 "exec cp temp2.rands temp.rands; exit 0" # trace only the bottleneck link $ns_ run} Class Test/TFRC_FTP -superclass TestSuiteTest/TFRC_FTP instproc init {} { $self instvar net_ test_ guide_ stopTime1_ set net_ net2 set test_ TFRC_FTP set guide_ \ "TFRC with a data source with limited, bursty data." Agent/TFRC set SndrType_ 1 Agent/TFRCSink set smooth_ 1 Agent/TFRC set df_ 0.95 Agent/TFRC set ca_ 1 Agent/TFRC set discount_ 1 Agent/TCP set oldCode_ false Agent/TFRC set idleFix_ true ; set stopTime1_ 15 $self next pktTraceFile}Test/TFRC_FTP instproc run {} { global quiet $self instvar ns_ node_ testName_ interval_ dumpfile_ guide_ stopTime1_ puts "Guide: $guide_" $self setTopo set interval_ 1 set stopTime $stopTime1_ set stopTime0 [expr $stopTime - 0.001] set stopTime2 [expr $stopTime + 0.001] set dumpfile_ [open temp.s w] if {$quiet == "false"} { set tracefile [open all.tr w] $ns_ trace-all $tracefile } set tf1 [$ns_ create-connection TFRC $node_(s1) TFRCSink $node_(s3) 0] set ftp [new Application/FTP] $ftp attach-agent $tf1 $ns_ at 0 "$ftp produce 100" $ns_ at 5 "$ftp producemore 100" $self tfccDump 1 $tf1 $interval_ $dumpfile_ $ns_ at $stopTime0 "close $dumpfile_; $self finish_1 $testName_" $ns_ at $stopTime "$self cleanupAll $testName_" if {$quiet == "false"} { $ns_ at $stopTime2 "close $tracefile" } $ns_ at $stopTime2 "exec cp temp2.rands temp.rands; exit 0" # trace only the bottleneck link $ns_ run} Class Test/TFRC_CBR -superclass TestSuiteTest/TFRC_CBR instproc init {} { $self instvar net_ test_ guide_ stopTime1_ set net_ net2 set test_ TFRC_CBR set guide_ \ "TFRC with a data source with CBR data." Agent/TFRC set SndrType_ 1 Agent/TFRCSink set smooth_ 1 Agent/TFRC set df_ 0.95 Agent/TFRC set ca_ 1 Agent/TFRC set discount_ 1 Agent/TCP set oldCode_ false set stopTime1_ 15 $self next pktTraceFile}Test/TFRC_CBR instproc run {} { global quiet $self instvar ns_ node_ testName_ interval_ dumpfile_ guide_ stopTime1_ puts "Guide: $guide_" $self setTopo set interval_ 1 set stopTime $stopTime1_ set stopTime0 [expr $stopTime - 0.001] set stopTime2 [expr $stopTime + 0.001] set dumpfile_ [open temp.s w] if {$quiet == "false"} { set tracefile [open all.tr w] $ns_ trace-all $tracefile } set tf1 [$ns_ create-connection TFRC $node_(s1) TFRCSink $node_(s3) 0] set cbr [new Application/Traffic/CBR] $cbr attach-agent $tf1 $cbr set rate_ 10Kb $ns_ at 0 "$cbr start" $self tfccDump 1 $tf1 $interval_ $dumpfile_ $ns_ at $stopTime0 "close $dumpfile_; $self finish_1 $testName_" $ns_ at $stopTime "$self cleanupAll $testName_" if {$quiet == "false"} { $ns_ at $stopTime2 "close $tracefile" } $ns_ at $stopTime2 "exec cp temp2.rands temp.rands; exit 0" # trace only the bottleneck link $ns_ run} Class Test/printLosses -superclass TestSuiteTest/printLosses instproc init {} { $self instvar net_ test_ guide_ set net_ net2 set test_ printLosses set guide_ \ "One TFRC flow, with the loss intervals from the TFRC receiver." Agent/TFRCSink set printLosses_ 1 Agent/TFRCSink set printLoss_ 1 $self next pktTraceFile}Test/printLosses instproc run {} { global quiet $self instvar ns_ node_ testName_ interval_ dumpfile_ guide_ puts "Guide: $guide_" $self setTopo set interval_ 0.1 set stopTime 3.0 set stopTime0 [expr $stopTime - 0.001] set stopTime2 [expr $stopTime + 0.001] set dumpfile_ [open temp.s w] if {$quiet == "false"} { set tracefile [open all.tr w] $ns_ trace-all $tracefile } set tf1 [$ns_ create-connection TFRC $node_(s1) TFRCSink $node_(s3) 0] $ns_ at 0.0 "$tf1 start" $self tfccDump 1 $tf1 $interval_ $dumpfile_ $ns_ at $stopTime0 "close $dumpfile_; $self finish_1 $testName_" #$self traceQueues $node_(r1) [$self openTrace $stopTime $testName_] $ns_ at $stopTime "$self cleanupAll $testName_" if {$quiet == "false"} { $ns_ at $stopTime2 "close $tracefile" } $ns_ at $stopTime2 "exec cp temp2.rands temp.rands; exit 0" # trace only the bottleneck link $ns_ run}## This test shows that a few lost packets are not counted as lost# by the losses array. I think this is for sequential packet losses.#Class Test/printLossesShort -superclass TestSuiteTest/printLossesShort instproc init {} { $self instvar net_ test_ guide_ set net_ net2 set test_ printLossesShort set guide_ \ "A TFRC-SP flow with ShortIntervals_, loss intervals from the TFRC receiver." $self next pktTraceFile}Test/printLossesShort instproc run {} { global quiet $self instvar ns_ node_ testName_ interval_ dumpfile_ guide_ puts "Guide: $guide_" $self setTopo set interval_ 0.1 set stopTime 4.0 set stopTime0 [expr $stopTime - 0.001] set stopTime2 [expr $stopTime + 0.001] set dumpfile_ [open temp.s w] if {$quiet == "false"} { set tracefile [open all.tr w] $ns_ trace-all $tracefile } # set tf1 [$ns_ create-connection TFRC $node_(s1) TFRCSink $node_(s3) 0] set tf1 [new Agent/TFRC] set tf1Dest [new Agent/TFRCSink] $tf1 set fid_ 0 $tf1 set voip_ 1 $tf1 set packetSize_ 125 $tf1Dest set ShortIntervals_ 1 $tf1Dest set fid_ 0 $ns_ attach-agent $node_(s1) $tf1 $ns_ attach-agent $node_(s3) $tf1Dest $tf1Dest set printLosses_ 1 $tf1Dest set printLoss_ 1 $ns_ connect $tf1 $tf1Dest set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 125 $cbr0 set interval_ 0.02 $cbr0 attach-agent $tf1 $ns_ at 0.0 "$cbr0 start" set tf2 [$ns_ create-connection TFRC $node_(s1) TFRCSink $node_(s3) 1] $ns_ at 0.2 "$tf2 start" $self tfccDump 1 $tf1 $interval_ $dumpfile_ $ns_ at $stopTime0 "close $dumpfile_; $self finish_1 $testName_" #$self traceQueues $node_(r1) [$self openTrace $stopTime $testName_] $ns_ at $stopTime "$self cleanupAll $testName_" if {$quiet == "false"} { $ns_ at $stopTime2 "close $tracefile" } $ns_ at $stopTime2 "exec cp temp2.rands temp.rands; exit 0" # trace only the bottleneck link $ns_ run}Class Test/printLossesShort3 -superclass TestSuiteTest/printLossesShort3 instproc init {} { $self instvar net_ test_ guide_ set net_ net2 set test_ printLossesShort3 set guide_ \ "A TFRC-SP flow with ShortIntervals_ 3, loss intervals from the TFRC receiver." $self next pktTraceFile}Test/printLossesShort3 instproc run {} { global quiet $self instvar ns_ node_ testName_ interval_ dumpfile_ guide_ puts "Guide: $guide_" $self setTopo set interval_ 0.1 set stopTime 4.0 set stopTime0 [expr $stopTime - 0.001] set stopTime2 [expr $stopTime + 0.001] set dumpfile_ [open temp.s w] if {$quiet == "false"} { set tracefile [open all.tr w] $ns_ trace-all $tracefile } # set tf1 [$ns_ create-connection TFRC $node_(s1) TFRCSink $node_(s3) 0] set tf1 [new Agent/TFRC] set tf1Dest [new Agent/TFRCSink] $tf1 set fid_ 0 $tf1 set voip_ 1 $tf1 set packetSize_ 125 $tf1Dest set ShortIntervals_ 3 $tf1Dest set ShortRtts_ 3 $tf1Dest set fid_ 0 $ns_ attach-agent $node_(s1) $tf1 $ns_ attach-agent $node_(s3) $tf1Dest $tf1Dest set printLosses_ 1 $tf1Dest set printLoss_ 1 $ns_ connect $tf1 $tf1Dest set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 125 $cbr0 set interval_ 0.02 $cbr0 attach-agent $tf1 $ns_ at 0.0 "$cbr0 start" set tf2 [$ns_ create-connection TFRC $node_(s1) TFRCSink $node_(s3) 1] $ns_ at 0.2 "$tf2 start" $self tfccDump 1 $tf1 $interval_ $dumpfile_ $ns_ at $stopTime0 "close $dumpfile_; $self finish_1 $testName_" #$self traceQueues $node_(r1) [$self openTrace $stopTime $testName_] $ns_ at $stopTime "$self cleanupAll $testName_" if {$quiet == "false"} { $ns_ at $stopTime2 "close $tracefile" } $ns_ at $stopTime2 "exec cp temp2.rands temp.rands; exit 0" # trace only the bottleneck link $ns_ run}TestSuite instproc printpkts { label tcp } { puts "tcp $label highest_seqment_acked [$tcp set ack_]"}TestSuite instproc printTFRCpkts { label src } { puts "tfrc $label [$src set ndatapack_] " }Class Test/goodTFRC superclass TestSuiteTest/goodTFRC instproc init {} { $self instvar net_ test_ guide_ period_ set net_ net2 set test_ goodTFRC set guide_ \ "One TFRC flow, no reordering and no extra drops." set period_ 10000.0 $self next pktTraceFile}Test/goodTFRC instproc run {} { global quiet $self instvar ns_ node_ testName_ interval_ dumpfile_ guide_ period_ puts "Guide: $guide_" $self setTopo set interval_ 0.1 set stopTime 20.0 set stopTime0 [expr $stopTime - 0.001] set stopTime2 [expr $stopTime + 0.001] set dumpfile_ [open temp.s w] if {$quiet == "false"} { set tracefile [open all.tr w] $ns_ trace-all $tracefile } set tf1 [$ns_ create-connection TFRC $node_(s1) TFRCSink $node_(s3) 0] $ns_ at 0.0 "$tf1 start" $self dropPktsPeriodic [$ns_ link $node_(r2) $node_(s3)] 0 1000.0 $period_ $self tfccDump 1 $tf1 $interval_ $dumpfile_ $ns_ at $stopTime0 "close $dumpfile_; $self finish_1 $testName_" #$self traceQueues $node_(r1) [$self openTrace $stopTime $testName_] $ns_ at $stopTime "$self cleanupAll $testName_" if {$quiet == "false"} { $ns_ at $stopTime2 "close $tracefile" } $ns_ at $stopTime2 "exec cp temp2.rands temp.rands; exit 0" # $ns_ at $stopTime0 "$self printTFRCpkts 0 $tf1" # trace only the bottleneck link $ns_ run}Class Test/droppedTFRC superclass TestSuiteTest/droppedTFRC instproc init {} { $self instvar net_ test_ guide_ list_ period_ set net_ net2 set test_ droppedTFRC set guide_ \ "One TFRC flow, with extra dropped packets." set period_ 40.0 Test/droppedTFRC instproc run {} [Test/goodTFRC info instbody run ] $self next pktTraceFile}Class Test/delayedTFRC superclass TestSuite
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?