📄 test-suite-cbq-v1.tcl
字号:
set qdisc [$vidClass qdisc] $qdisc set queue-limit $queue set qdisc [$dataClass qdisc] $qdisc set queue-limit $queue $link bind $vidClass 2 $link bind $audioClass 1 $link bind $dataClass 3 three_cbrs [ns link $r1 $k1] set algorithm $CBQalgorithm #[ns link $r1 $k1] trace [openTrace3 $stopTime test_Min1] openTrace2 $stopTime test_cbqMin1_MinIdle_set ns run}## deleted Min2, which was identical to Min1 except for# a different value of minidle (which is no longer used)### Min3 is like Min1, except extradelay is set to 0.2#proc test_cbqMin3 {} { global s1 s2 s3 s4 r1 k1 set Mbps 1.5 set queue 20 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.2 $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 set qdisc [$vidClass qdisc] $qdisc set queue-limit $queue set qdisc [$dataClass qdisc] $qdisc set queue-limit $queue $link bind $vidClass 2 $link bind $audioClass 1 $link bind $dataClass 3 three_cbrs [ns link $r1 $k1] set algorithm $CBQalgorithm openTrace2 $stopTime test_cbqMin3_ExtraDelay_set ns run}# Min1, but with Ancestor-Only link-sharing.# proc test_cbqMin4 {} { global s1 s2 s3 s4 r1 k1 set Mbps 1.5 set queue 20 set stopTime 4.1 set CBQalgorithm 0 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 set qdisc [$vidClass qdisc] $qdisc set queue-limit $queue set qdisc [$dataClass qdisc] $qdisc set queue-limit $queue $link bind $vidClass 2 $link bind $audioClass 1 $link bind $dataClass 3 three_cbrs [ns link $r1 $k1] set algorithm $CBQalgorithm openTrace2 $stopTime test_cbqMin4_MinIdle_set ns run}# # deleted Min5, which was identical to Min4 except for# a different value of minidle (which is no longer used)# # # ## Min6 is like Min4, except extradelay is set to 0.2#proc test_cbqMin6 {} { global s1 s2 s3 s4 r1 k1 set Mbps 1.5 set queue 20 set stopTime 4.1 set CBQalgorithm 0 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.2 $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 set qdisc [$vidClass qdisc] $qdisc set queue-limit $queue set qdisc [$dataClass qdisc] $qdisc set queue-limit $queue $link bind $vidClass 2 $link bind $audioClass 1 $link bind $dataClass 3 three_cbrs [ns link $r1 $k1] set algorithm $CBQalgorithm openTrace2 $stopTime test_cbqMin6_ExtraDelay_set ns run}## With Formal link-sharing, the dataClass gets most of the bandwidth.# With Ancestor-Only link-sharing, the audioClass generally gets# to borrow from the not-overlimit root class.# With Top-Level link-sharing, the audioClass is often blocked# from borrowing by an underlimit dataClass# With Ancestor-Only link-sharing, the top class cannot be# allocated 100% of the link bandwidth.#proc test_cbqTwoAO {} { global s1 s2 s3 s4 r1 k1 set queue 20 set Mbps 1.5 set stopTime 8.1 set CBQalgorithm 0 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 $topClass \ 0.01 auto auto 1 0 0 $Mbps] set dataClass [ns_create_class1 $topClass $topClass \ 0.99 auto auto 2 0 0 $Mbps] $link insert $topClass $link insert $audioClass $link insert $dataClass set qdisc [$audioClass qdisc] $qdisc set queue-limit $queue set qdisc [$dataClass qdisc] $qdisc set queue-limit $queue $link bind $audioClass 1 $link bind $dataClass 2 set cbr0 [ns_create_cbr $s1 $k1 190 0.001 1] set cbr1 [ns_create_cbr $s2 $k1 500 0.002 2] ns at 0.0 "$cbr0 start" ns at 0.0 "$cbr1 start" [ns link $r1 $k1] set algorithm $CBQalgorithm openTrace4 $stopTime test_cbqTwoAO ns run}# This has a smaller value for maxidle for the root class. proc test_cbqTwoAO2 {} { global s1 s2 s3 s4 r1 k1 set Mbps 1.5 set stopTime 8.1 set queue 20 set CBQalgorithm 0 create_graph $stopTime cbq $queue set link [ns link $r1 $k1] set topClass [ns_create_class none none 0.98 0.005 -1.0 8 1 0] set audioClass [ns_create_class1 $topClass $topClass \ 0.01 auto auto 1 0 0 $Mbps] set dataClass [ns_create_class1 $topClass $topClass \ 0.99 auto auto 2 0 0 $Mbps] $link insert $topClass $link insert $audioClass $link insert $dataClass set qdisc [$audioClass qdisc] $qdisc set queue-limit $queue set qdisc [$dataClass qdisc] $qdisc set queue-limit $queue $link bind $audioClass 1 $link bind $dataClass 2 set cbr0 [ns_create_cbr $s1 $k1 190 0.001 1] set cbr1 [ns_create_cbr $s2 $k1 500 0.002 2] ns at 0.0 "$cbr0 start" ns at 0.0 "$cbr1 start" [ns link $r1 $k1] set algorithm $CBQalgorithm openTrace4 $stopTime test_cbqTwoAO2 ns run}# A higher allocated bandwidth for the root class. proc test_cbqTwoAO3 {} { global s1 s2 s3 s4 r1 k1 set Mbps 1.5 set stopTime 8.1 set queue 20 set CBQalgorithm 0 create_graph $stopTime cbq $queue set link [ns link $r1 $k1] set topClass [ns_create_class1 none none 0.99 auto -1.0 8 1 0 $Mbps] set audioClass [ns_create_class1 $topClass $topClass \ 0.01 auto auto 1 0 0 $Mbps] set dataClass [ns_create_class1 $topClass $topClass \ 0.99 auto auto 2 0 0 $Mbps] $link insert $topClass $link insert $audioClass $link insert $dataClass set qdisc [$audioClass qdisc] $qdisc set queue-limit $queue set qdisc [$dataClass qdisc] $qdisc set queue-limit $queue $link bind $audioClass 1 $link bind $dataClass 2 set cbr0 [ns_create_cbr $s1 $k1 190 0.001 1] set cbr1 [ns_create_cbr $s2 $k1 500 0.002 2] ns at 0.0 "$cbr0 start" ns at 0.0 "$cbr1 start" [ns link $r1 $k1] set algorithm $CBQalgorithm openTrace4 $stopTime test_cbqTwoAO3 ns run}## With Formal link-sharing, the dataClass gets most of the bandwidth.# With Ancestor-Only link-sharing, the audioClass generally gets# to borrow from the not-overlimit root class.# With Top-Level link-sharing, the audioClass is often blocked# from borrowing by an underlimit dataClass#proc test_cbqTwoTL {} { global s1 s2 s3 s4 r1 k1 set Mbps 1.5 set queue 20 set stopTime 8.1 set CBQalgorithm 1 create_graph $stopTime cbq $queue set link [ns link $r1 $k1] set topClass [ns_create_class1 none none 1.0 auto -1.0 8 1 0 $Mbps] set audioClass [ns_create_class1 $topClass $topClass \ 0.01 auto auto 1 0 0 $Mbps] set dataClass [ns_create_class1 $topClass $topClass \ 0.99 auto auto 2 0 0 $Mbps] $link insert $topClass $link insert $audioClass $link insert $dataClass set qdisc [$audioClass qdisc] $qdisc set queue-limit $queue set qdisc [$dataClass qdisc] $qdisc set queue-limit $queue $link bind $audioClass 1 $link bind $dataClass 2 set cbr0 [ns_create_cbr $s1 $k1 190 0.001 1] set cbr1 [ns_create_cbr $s2 $k1 500 0.002 2] ns at 0.0 "$cbr0 start" ns at 0.0 "$cbr1 start" [ns link $r1 $k1] set algorithm $CBQalgorithm openTrace4 $stopTime test_cbqTwoTL ns run}## With Formal link-sharing, the dataClass gets most of the bandwidth.# With Ancestor-Only link-sharing, the audioClass generally gets# to borrow from the not-overlimit root class.# With Top-Level link-sharing, the audioClass is often blocked# from borrowing by an underlimit dataClass#proc test_cbqTwoF {} { global s1 s2 s3 s4 r1 k1 set Mbps 1.5 set queue 20 set stopTime 8.1 set CBQalgorithm 2 create_graph $stopTime cbq $queue set link [ns link $r1 $k1] set topClass [ns_create_class1 none none 1.0 auto -1.0 8 1 0 $Mbps] set audioClass [ns_create_class1 $topClass $topClass \ 0.01 auto auto 1 0 0 $Mbps] set dataClass [ns_create_class1 $topClass $topClass \ 0.99 auto auto 2 0 0 $Mbps] $link insert $topClass $link insert $audioClass $link insert $dataClass set qdisc [$audioClass qdisc] $qdisc set queue-limit $queue set qdisc [$dataClass qdisc] $qdisc set queue-limit $queue $link bind $audioClass 1 $link bind $dataClass 2 set cbr0 [ns_create_cbr $s1 $k1 190 0.001 1] set cbr1 [ns_create_cbr $s2 $k1 500 0.002 2] ns at 0.0 "$cbr0 start" ns at 0.0 "$cbr1 start" [ns link $r1 $k1] set algorithm $CBQalgorithm openTrace4 $stopTime test_cbqTwoF ns run}if { $argc != 1 } { puts stderr {usage: ns test-suite-cbq.tcl [ cbqWRR cbqPRR cbqAO cbqTL ... ]} exit 1}if { "[info procs test_$argv]" != "test_$argv" } { puts stderr "test-suite-cbq.tcl: no such test: $argv"}test_$argv
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -