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 + -
显示快捷键?