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

📄 test-suite-cbq-v1.tcl

📁 柯老师网站上找到的
💻 TCL
📖 第 1 页 / 共 3 页
字号:
# 	  puts $file "$timenow 1 [$lnk stat 1 mean-qsize]"# 	  puts $file "$timenow 2 [$lnk stat 2 mean-qsize]"# 	  puts $file "$timenow 3 [$lnk stat 3 mean-qsize]"# 	  puts $file "$timenow 4 [$lnk stat 4 mean-qsize]"# 	}# 	set f1 [open temp.q w]# 	puts $f1 "delay"# 	ns at $stopTime "cdump $linkno $f1"# 	ns at $stopTime "close $f1"# }proc openTrace2 { stopTime testName } {	global r1 k1    	ns at $stopTime \		"finish1 $testName; exit"}proc openTrace4 { stopTime testName } {	global r1 k1    	ns at $stopTime \		"finish2 $testName; exit"}## Make graph of transmitted packets.#proc openTrace3 { stopTime testName } {        exec rm -f out.tr temp.rands        global r1 k1        set traceFile [open out.tr w]        ns at $stopTime \                "close $traceFile ; finish $testName"        set T [ns trace]        $T attach $traceFile        return $T} ## Create three CBR connections.#proc three_cbrs {} {	global s1 s2 s3 s4 r1 k1	set cbr0 [ns_create_cbr $s1 $k1 190 0.001 1]        set cbr1 [ns_create_cbr $s2 $k1 500 0.002 2]        set cbr2 [ns_create_cbr $s3 $k1 1000 0.005 3]	ns at 0.0 "$cbr0 start"	ns at 20.0 "$cbr0 stop"        ns at 24.0 "$cbr0 start"        ns at 0.0 "$cbr1 start"        ns at 12.0 "$cbr1 stop"        ns at 18.0 "$cbr1 start"        ns at 0.0 "$cbr2 start"        ns at 4.0 "$cbr2 stop"        ns at 8.0 "$cbr2 start"}## Create four CBR connections.#proc four_cbrs {} {	global s1 s2 s3 s4 r1 k1	set cbr0 [ns_create_cbr $s1 $k1 190 0.001 1]        set cbr1 [ns_create_cbr $s2 $k1 1000 0.005 2]        set cbr2 [ns_create_cbr $s3 $k1 500 0.002 3]	set cbr3 [ns_create_cbr $s4 $k1 1000 0.005 4] 	ns at 0.0 "$cbr0 start"	ns at 12.0 "$cbr0 stop"        ns at 16.0 "$cbr0 start"	ns at 36.0 "$cbr0 stop"        ns at 0.0 "$cbr1 start"        ns at 20.0 "$cbr1 stop"        ns at 24.0 "$cbr1 start"        ns at 0.0 "$cbr2 start"        ns at 4.0 "$cbr2 stop"        ns at 8.0 "$cbr2 start"	ns at 36.0 "$cbr2 stop"        ns at 0.0 "$cbr3 start"        ns at 28.0 "$cbr3 stop"        ns at 32.0 "$cbr3 start"}## Figure 10 from the link-sharing paper. # ~/newr/rm/testB.com# proc test_cbqWRR {} {	global s1 s2 s3 s4 r1 k1 	set qlen 20	set stopTime 28.1	set CBQalgorithm 1	create_graph $stopTime wrr-cbq $qlen 	create_flat [ns link $r1 $k1] $qlen	three_cbrs	[ns link $r1 $k1] set algorithm $CBQalgorithm	openTrace2 $stopTime test_cbqWRR	ns run}## Figure 10, but packet-by-packet RR, and Formal.# proc test_cbqPRR {} {	global s1 s2 s3 s4 r1 k1 	set qlen 20	set stopTime 28.1	set CBQalgorithm 2	create_graph $stopTime cbq $qlen 	create_flat [ns link $r1 $k1] $qlen	three_cbrs	[ns link $r1 $k1] set algorithm $CBQalgorithm	openTrace2 $stopTime test_cbqPRR	ns run}# Figure 12 from the link-sharing paper.# WRR, Ancestor-Only link-sharing.# ~/newr/rm/testA.com# proc test_cbqAO {} {	global s1 s2 s3 s4 r1 k1 	set qlen 20	set stopTime 40.1	set CBQalgorithm 0	create_graph $stopTime wrr-cbq $qlen	create_twoAgency [ns link $r1 $k1] $CBQalgorithm $qlen	four_cbrs	[ns link $r1 $k1] set algorithm $CBQalgorithm	openTrace2 $stopTime test_cbqAO	ns run}## Figure 13 from the link-sharing paper.# WRR, Top link-sharing.# ~/newr/rm/testA.com#proc test_cbqTL {} {	global s1 s2 s3 s4 r1 k1 	set qlen 20	set stopTime 40.1	set CBQalgorithm 1	create_graph $stopTime wrr-cbq $qlen	create_twoAgency [ns link $r1 $k1] $CBQalgorithm $qlen	four_cbrs	[ns link $r1 $k1] set algorithm $CBQalgorithm	openTrace2 $stopTime test_cbqTL	ns run}## Figure 11 from the link-sharing paper.# WRR, Formal (new) link-sharing.# ~/newr/rm/testA.com#proc test_cbqFor {} {	global s1 s2 s3 s4 r1 k1 	set qlen 20	set stopTime 40.1	set CBQalgorithm 2	create_graph $stopTime wrr-cbq $qlen	create_twoAgency [ns link $r1 $k1] $CBQalgorithm $qlen	four_cbrs	[ns link $r1 $k1] set algorithm $CBQalgorithm	openTrace2 $stopTime test_cbqFor	ns run}## Figure 11 from the link-sharing paper, but Formal (old) link-sharing.# WRR. # ~/newr/rm/testA.com#proc test_cbqForOld {} {	global s1 s2 s3 s4 r1 k1 	set qlen 20	set stopTime 40.1	set CBQalgorithm 3	create_graph $stopTime wrr-cbq $qlen	create_twoAgency [ns link $r1 $k1] $CBQalgorithm $qlen	four_cbrs	[ns link $r1 $k1] set algorithm $CBQalgorithm	openTrace2 $stopTime test_cbqForOld	ns run}## To send five back-to-back packets for $audClass, #   maxidle should be 0.004 seconds# To send 50 back-to-back packets, maxidle should be 0.25 secondsproc test_cbqMax1 {} {	global s1 s2 s3 s4 r1 k1 ns_link	set Mbps 1.5	set stopTime 2.1	set CBQalgorithm 2	set ns_link(queue-limit) 1000	set queue 1000	create_graph $stopTime cbq $queue	set link [ns link $r1 $k1]	set topClass [ns_create_class none none 0.97 1.0 -1.0 8 1 0]        set audClass [ns_create_class1 $topClass none 0.3 0.25 auto 1 0 0 $Mbps]	set dataClass [ns_create_class1 $topClass $topClass 0.3 auto auto 2 \		0 0 $Mbps]	$link insert $topClass        $link insert $audClass	$link insert $dataClass	set qdisc [$audClass qdisc]	$qdisc set queue-limit $queue	set qdisc [$dataClass qdisc]	$qdisc set queue-limit $queue        $link bind $audClass 1	$link bind $dataClass 2        set cbr0 [ns_create_cbr $s1 $k1 1000 0.001 1]        set cbr1 [ns_create_cbr $s2 $k1 1000 0.01 2]	ns at 0.0 "$cbr0 start"	ns at 0.002 "$cbr0 stop"	ns at 1.0 "$cbr0 start"	ns at 1.08 "$cbr0 stop"	ns at 0.0 "$cbr1 start"	[ns link $r1 $k1] set algorithm $CBQalgorithm	[ns link $r1 $k1] trace [openTrace3 $stopTime test_Max1,_25_pkts]	ns run}## To send five back-to-back packets for $audClass, #   maxidle should be 0.004 seconds# To send 50 back-to-back packets, maxidle should be 0.25 secondsproc test_cbqMax2 {} {	global s1 s2 s3 s4 r1 k1 ns_link	set Mbps 1.5	set stopTime 2.1	set CBQalgorithm 2	set ns_link(queue-limit) 1000	set queue 1000	create_graph $stopTime cbq $queue	set link [ns link $r1 $k1]	set topClass [ns_create_class none none 0.97 1.0 -1.0 8 1 0]	set audClass [ns_create_class1 $topClass none 0.3 0.004 auto 1 0 0 $Mbps]	set dataClass [ns_create_class1 $topClass $topClass 0.3 auto auto \		2 0 0 $Mbps]	$link insert $topClass        $link insert $audClass	$link insert $dataClass	set qdisc [$audClass qdisc]	$qdisc set queue-limit $queue	set qdisc [$dataClass qdisc]	$qdisc set queue-limit $queue        $link bind $audClass 1	$link bind $dataClass 2        set cbr0 [ns_create_cbr $s1 $k1 1000 0.001 1]        set cbr1 [ns_create_cbr $s2 $k1 1000 0.01 2]	ns at 0.0 "$cbr0 start"	ns at 0.002 "$cbr0 stop"	ns at 1.0 "$cbr0 start"	ns at 1.08 "$cbr0 stop"	ns at 0.0 "$cbr1 start"	[ns link $r1 $k1] set algorithm $CBQalgorithm	[ns link $r1 $k1] trace [openTrace3 $stopTime test_Max2,_5_pkts]	ns run}## Set "extradelay" to 0.024 seconds for a steady-state burst of 2 #proc test_cbqExtra1 {} {	global s1 s2 s3 s4 r1 k1 ns_link	set Mbps 1.5	set stopTime 2.1	set CBQalgorithm 2	set ns_link(queue-limit) 1000	set queue 1000	create_graph $stopTime cbq $queue	set link [ns link $r1 $k1]	set topClass [ns_create_class none none 0.97 1.0 -1.0 8 1 0]        set audClass [ns_create_class1 $topClass none 0.3 auto auto \		1 0 0.024 $Mbps]	set dataClass [ns_create_class1 $topClass $topClass 0.3 auto auto \		2 0 0 $Mbps]	$link insert $topClass        $link insert $audClass	$link insert $dataClass	set qdisc [$audClass qdisc]	$qdisc set queue-limit $queue	set qdisc [$dataClass qdisc]	$qdisc set queue-limit $queue        $link bind $audClass 1	$link bind $dataClass 2        set cbr0 [ns_create_cbr $s1 $k1 1000 0.015 1]        set cbr1 [ns_create_cbr $s2 $k1 1000 0.01 2]	ns at 0.0 "$cbr0 start"	ns at 0.0 "$cbr1 start"	[ns link $r1 $k1] set algorithm $CBQalgorithm	[ns link $r1 $k1] trace [openTrace3 $stopTime test_Extra1_burst_2]	ns run}## Set "extradelay" to 0.12 seconds for a steady-state burst of 8 #proc test_cbqExtra2 {} {	global s1 s2 s3 s4 r1 k1 ns_link	set Mbps 1.5	set stopTime 2.1	set CBQalgorithm 2	set ns_link(queue-limit) 1000	set queue 1000	create_graph $stopTime cbq $queue	set link [ns link $r1 $k1]	set topClass [ns_create_class none none 0.97 1.0 -1.0 8 1 0]        set audClass [ns_create_class1 $topClass none 0.3 auto auto \		1 0 0.12 $Mbps]	set dataClass [ns_create_class1 $topClass $topClass 0.3 auto auto \		2 0 0 $Mbps]	$link insert $topClass        $link insert $audClass	$link insert $dataClass	set qdisc [$audClass qdisc]	$qdisc set queue-limit $queue	set qdisc [$dataClass qdisc]	$qdisc set queue-limit $queue        $link bind $audClass 1	$link bind $dataClass 2        set cbr0 [ns_create_cbr $s1 $k1 1000 0.015 1]        set cbr1 [ns_create_cbr $s2 $k1 1000 0.01 2]	ns at 0.0 "$cbr0 start"	ns at 0.0 "$cbr1 start"	[ns link $r1 $k1] set algorithm $CBQalgorithm	[ns link $r1 $k1] trace [openTrace3 $stopTime test_Extra2_burst_8]	ns run}# With Packet-by-Packet Round-robin, it is necessary either to# set a positive value for extradelay, or a negative value for minidle#proc test_cbqMin1 {} {	global s1 s2 s3 s4 r1 k1 	set queue 20	set Mbps 1.5	set stopTime 4.1	set CBQalgorithm 2	create_graph $stopTime cbq $queue 	set link [ns link $r1 $k1]	set topClass [ns_create_class1 none none 0.98 auto -1.0 8 1 0 $Mbps]        set audioClass [ns_create_class1 $topClass none 0.03 auto auto \		1 0 0 $Mbps]	set vidClass [ns_create_class1 $topClass $topClass \		0.32 auto auto 1 0 0 $Mbps] 	set dataClass [ns_create_class1 $topClass $topClass \		0.65 auto auto 2 0 0 $Mbps] 	$link insert $topClass	$link insert $vidClass 	$link insert $audioClass        $link insert $dataClass	set qdisc [$audioClass qdisc]	$qdisc set queue-limit $queue

⌨️ 快捷键说明

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