⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test-suite-full.tcl

📁 这个软件的功能是实现多播协议
💻 TCL
📖 第 1 页 / 共 3 页
字号:
## Copyright (c) 1997, 1998 The Regents of the University of California.# All rights reserved.## Redistribution and use in source and binary forms, with or without# modification, are permitted provided that the following conditions# are met:# 1. Redistributions of source code must retain the above copyright#    notice, this list of conditions and the following disclaimer.# 2. Redistributions in binary form must reproduce the above copyright#    notice, this list of conditions and the following disclaimer in the#    documentation and/or other materials provided with the distribution.# 3. All advertising materials mentioning features or use of this software#    must display the following acknowledgement:#	This product includes software developed by the Computer Systems#	Engineering Group at Lawrence Berkeley Laboratory.# 4. Neither the name of the University nor of the Laboratory may be used#    to endorse or promote products derived from this software without#    specific prior written permission.## THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF# SUCH DAMAGE.## this is still somewhat experimental,# and should be considered of 'beta-test' quality  (kfall@ee.lbl.gov)## This file tests "fulltcp", a version of tcp reno implemented in the # simulator based on the BSD Net/3 code. ## This test suite is based on test-suite-fulltcp.tcl from ns-1.set dir [pwd]catch "cd tcl/test"source misc.tcl# FOR UPDATING GLOBAL DEFAULTS:Agent/TCP set windowInit_ 1# The default is being changed to 2.Agent/TCP set singledup_ 0# The default is being changed to 1source topologies.tclcatch "cd $dir"Agent/TCP set minrto_ 0# The default is being changed to minrto_ 1Trace set show_tcphdr_ 1 ; # needed to plot ack numbers for tracing TestSuite instproc printtimers { tcp time} {        global quiet        if {$quiet == "false"} {                puts "time: $time sRTT(in ticks): [$tcp set srtt_]/8 RTTvar(in ticks): [$tcp set rttvar_]/4 backoff: [$tcp set backoff_]"        }}TestSuite instproc printtimersAll { tcp time interval } {        $self instvar dump_inst_ ns_        if ![info exists dump_inst_($tcp)] {                set dump_inst_($tcp) 1                $ns_ at $time "$self printtimersAll $tcp $time $interval"                return        }        set newTime [expr [$ns_ now] + $interval]        $ns_ at $time "$self printtimers $tcp $time"        $ns_ at $newTime "$self printtimersAll $tcp $newTime $interval"}TestSuite instproc finish testname {	global env quiet	$self instvar ns_	$ns_ halt	set outtype text	set tfile "out.tr"	if { $quiet != "true" } {                if { [info exists env(NSOUT)] } {                        set outtype $env(NSOUT)                } elseif { [info exists env(DISPLAY)] } {                        set outtype xgraph                }		if { $outtype == "text" } {			puts "output files are $fname.{p,packs,acks,d,ctrl,es,ecn,cact}"			puts "  and $fname.r.{p,packs,acks,d,ctrl,es,ecn,cact}"		} else {			global TCLSH			exec ../../bin/tcpf2xgr $TCLSH $tfile $outtype $testname &		}	}	exec cp $tfile temp.rands; # verification scripts wants stuff in 'temp.rands'}TestSuite instproc bsdcompat tcp {	$tcp set segsperack_ 2	## 	$tcp set dupseg_fix_ false	$tcp set dupack_reset_ true	$tcp set bugFix_ false	$tcp set data_on_syn_ false	$tcp set tcpTick_ 0.5}# Definition of test-suite testsClass Test/full -superclass TestSuiteTest/full instproc init topo {	$self instvar net_ defNet_ test_	set net_ $topo	set defNet_ net0	set test_ full	$self next}Test/full instproc run {} {	$self instvar ns_ node_ testName_	set stopt 6.0		# set up connection (do not use "create-connection" method because	# we need a handle on the sink object)	set src [new Agent/TCP/FullTcp]	set sink [new Agent/TCP/FullTcp]	$ns_ attach-agent $node_(s1) $src	$ns_ attach-agent $node_(k1) $sink	$src set fid_ 0	$sink set fid_ 0	$ns_ connect $src $sink	# set up TCP-level connections	$sink listen ; # will figure out who its peer is	$src set window_ 100	set ftp1 [$src attach-app FTP]	$ns_ at 0.0 "$ftp1 start"	$self traceQueues $node_(r1) [$self openTrace $stopt $testName_]  	$ns_ run}Class Test/close -superclass TestSuiteTest/close instproc init topo {	$self instvar net_ defNet_ test_	set net_ $topo	set defNet_ net0	set test_ close	$self next}Test/close instproc run {} {	$self instvar ns_ node_ testName_	set stopt 6.0		# set up connection (do not use "create-connection" method because	# we need a handle on the sink object)	set src [new Agent/TCP/FullTcp]	set sink [new Agent/TCP/FullTcp]	$ns_ attach-agent $node_(s1) $src	$ns_ attach-agent $node_(k1) $sink	$src set fid_ 0	$sink set fid_ 0	$ns_ connect $src $sink	# set up TCP-level connections	$sink listen	$src set window_ 100	set ftp1 [$src attach-app FTP]	$ns_ at 0.0 "$ftp1 produce 50"	$ns_ at 5.5 "$src close"	$self traceQueues $node_(r1) [$self openTrace $stopt $testName_]	$ns_ run}Class Test/twoway -superclass TestSuiteTest/twoway instproc init topo {	$self instvar net_ defNet_ test_	set net_ $topo	set defNet_ net0	set test_ twoway	$self next}Test/twoway instproc run {} {	$self instvar ns_ node_ testName_	set stopt 6.0		set startt 3.0	# set up connection (do not use "create-connection" method because	# we need a handle on the sink object)	set src [new Agent/TCP/FullTcp]	set sink [new Agent/TCP/FullTcp]	$ns_ attach-agent $node_(s1) $src	$ns_ attach-agent $node_(k1) $sink	$src set fid_ 0	$sink set fid_ 0	$ns_ connect $src $sink	# set up TCP-level connections	$sink listen	$sink set iss_ 2144	$src set window_ 100	set ftp1 [$src attach-app FTP]	$ns_ at 0.0 "$ftp1 start"	set ftp2 [$sink attach-app FTP]	$ns_ at $startt "$ftp2 start"	$self traceQueues $node_(r1) [$self openTrace $stopt $testName_]	$ns_ run}Class Test/twoway1 -superclass TestSuiteTest/twoway1 instproc init topo {	$self instvar net_ defNet_ test_	set net_ $topo	set defNet_ net0	set test_ twoway1	$self next}Test/twoway1 instproc run {} {	$self instvar ns_ node_ testName_	set stopt 6.0		set startt 1.9	# set up connection (do not use "create-connection" method because	# we need a handle on the sink object)	set src [new Agent/TCP/FullTcp]	set sink [new Agent/TCP/FullTcp]	$ns_ attach-agent $node_(s1) $src	$ns_ attach-agent $node_(k1) $sink	$src set fid_ 0	$sink set fid_ 0	$ns_ connect $src $sink	# set up TCP-level connections	$sink listen	$sink set iss_ 2144	$src set window_ 100	$sink set window_ 100	set ftp1 [$src attach-app FTP]	$ns_ at 0.0 "$ftp1 start"	set ftp2 [$sink attach-app FTP]	$ns_ at $startt "$ftp2 start"	$self traceQueues $node_(r1) [$self openTrace $stopt $testName_]	$ns_ run}#Class Test/twoway_bsdcompat -superclass TestSuite#Test/twoway_bsdcompat instproc init topo {#	$self instvar net_ defNet_ test_#	set net_ $topo#	set defNet_ net0#	set test_ twoway_bsdcompat#	$self next#}#Test/twoway_bsdcompat instproc run {} {#	$self instvar ns_ node_ testName_##	set stopt 6.0	#	set startt 1.9##	# set up connection (do not use "create-connection" method because#	# we need a handle on the sink object)#	set src [new Agent/TCP/FullTcp]#	set sink [new Agent/TCP/FullTcp]#	$ns_ attach-agent $node_(s1) $src#	$ns_ attach-agent $node_(k1) $sink#	$src set fid_ 0#	$sink set fid_ 0#	$ns_ connect $src $sink##	# set up TCP-level connections#	$sink listen#	$src set window_ 100#	$sink set window_ 100#	$self bsdcompat $src#	$self bsdcompat $sink#	set ftp1 [$src attach-app FTP]#	$ns_ at 0.0 "$ftp1 start"#	set ftp2 [$sink attach-app FTP]#	$ns_ at $startt "$ftp2 start"##	$self traceQueues $node_(r1) [$self openTrace $stopt $testName_]#	$ns_ run#}##Class Test/oneway_bsdcompat -superclass TestSuite#Test/oneway_bsdcompat instproc init topo {#	$self instvar net_ defNet_ test_#	set net_ $topo#	set defNet_ net0#	set test_ oneway_bsdcompat#	$self next#}#Test/oneway_bsdcompat instproc run {} {#	$self instvar ns_ node_ testName_##	set stopt 6.0	# 	set startt 1.9##	# set up connection (do not use "create-connection" method because#	# we need a handle on the sink object)#	set src [new Agent/TCP/FullTcp]#	set sink [new Agent/TCP/FullTcp]#	$ns_ attach-agent $node_(s1) $src#	$ns_ attach-agent $node_(k1) $sink#	$src set fid_ 0#	$sink set fid_ 0#	$ns_ connect $src $sink##	# set up TCP-level connections#	$sink listen ; # will figure out who its peer is#	$src set window_ 100#	$sink set window_ 100#	$self bsdcompat $src#	$self bsdcompat $sink#	set ftp1 [$src attach-app FTP]#	$ns_ at 0.0 "$ftp1 start"##	$self traceQueues $node_(r1) [$self openTrace $stopt $testName_]#	$ns_ run#}#Class Test/twowayrandom -superclass TestSuiteTest/twowayrandom instproc init topo {	$self instvar net_ defNet_ test_	set net_ $topo	set defNet_ net0	set test_ twowayrandom	$self next}Test/twowayrandom instproc run {} {	$self instvar ns_ node_ testName_	global quiet	set stopt 6.0		if { $quiet == "true" } {		set startt 1	} else {		set startt [expr [ns-random 0] % 6]	}	puts "second TCP starting at time $startt"	# set up connection (do not use "create-connection" method because	# we need a handle on the sink object)	set src [new Agent/TCP/FullTcp]	set sink [new Agent/TCP/FullTcp]	$ns_ attach-agent $node_(s1) $src	$ns_ attach-agent $node_(k1) $sink	$src set fid_ 0	$sink set fid_ 0	$ns_ connect $src $sink	# set up TCP-level connections	$sink listen	$sink set iss_ 2144	$src set window_ 100	$sink set window_ 100	set ftp1 [$src attach-app FTP]	$ns_ at 0.0 "$ftp1 start"	set ftp2 [$sink attach-app FTP]	$ns_ at $startt "$ftp2 start"	$self traceQueues $node_(r1) [$self openTrace $stopt $testName_]	$ns_ run}Class Test/delack -superclass TestSuiteTest/delack instproc init topo {	$self instvar net_ defNet_ test_	set net_ $topo	set defNet_ net0	set test_ delack	$self next}Test/delack instproc run {} {	$self instvar ns_ node_ testName_	set stopt 6.0		# set up connection (do not use "create-connection" method because	# we need a handle on the sink object)	set src [new Agent/TCP/FullTcp]	set sink [new Agent/TCP/FullTcp]	$ns_ attach-agent $node_(s1) $src	$ns_ attach-agent $node_(k1) $sink	$src set fid_ 0	$sink set fid_ 0	$ns_ connect $src $sink	# set up TCP-level connections	$sink listen	$src set window_ 100	$sink set segsperack_ 2	set ftp1 [$src attach-app FTP]	$ns_ at 0.0 "$ftp1 start"	#forward	$self instvar direction_	set direction_ forward	$self traceQueues $node_(r1) [$self openTrace $stopt $testName_]	$ns_ run}Class Test/iw=4 -superclass TestSuiteTest/iw=4 instproc init topo {	$self instvar net_ defNet_ test_	set net_ $topo	set defNet_ net0	set test_ iw=4	$self next}Test/iw=4 instproc run {} {	$self instvar ns_ node_ testName_	set stopt 6.0		# set up connection (do not use "create-connection" method because	# we need a handle on the sink object)	set src [new Agent/TCP/FullTcp]	set sink [new Agent/TCP/FullTcp]	$ns_ attach-agent $node_(s1) $src	$ns_ attach-agent $node_(k1) $sink	$src set fid_ 0	$sink set fid_ 0	$ns_ connect $src $sink	# set up TCP-level connections	$sink listen	set ftp1 [$src attach-app FTP]	$ns_ at 0.0 "$ftp1 start"	# set up special params for this test	$src set window_ 100	$src set delay_growth_ true	$src set windowInit_ 4	$src set tcpTick_ 0.500	$src set packetSize_ 576	$self traceQueues $node_(r1) [$self openTrace $stopt $testName_]	$ns_ run}Class Test/droppedsyn -superclass TestSuiteTest/droppedsyn instproc init topo {	$self instvar net_ defNet_ test_	set net_ $topo	set defNet_ net0-lossy	set test_ droppedsyn	$self next}Test/droppedsyn instproc run {} {	$self instvar ns_ node_ testName_ topo_	set stopt 20.0		$topo_ instvar lossylink_	set errmodule [$lossylink_ errormodule]	set errmodel [$errmodule errormodels]	if { [llength $errmodel] > 1 } {		puts "droppedsyn: confused by >1 err models..abort"		exit 1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -