📄 test-suite-newreno.tcl
字号:
# Test/newreno_bugfix_A instproc run {} {# Agent/TCP set bugFix_ true# Agent/TCP/Newreno set newreno_changes1_ 1# $self setup Newreno {14 26 28}# }# With Limited TransmitClass Test/newreno_B -superclass TestSuiteTest/newreno_B instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno_B Agent/TCP set singledup_ 1 set guide_ "NewReno, with Limited Transmit, without bugfix." $self next pktTraceFile}Test/newreno_B instproc run {} { global quiet; $self instvar guide_ if {$quiet == "false"} {puts $guide_} Agent/TCP set bugFix_ false Agent/TCP/Newreno set newreno_changes1_ 1 Agent/TCP/Newreno set partial_window_deflation_ 1 Agent/TCP/Newreno set exit_recovery_fix_ 1 $self setup Newreno {14 26 28}}# Without Limited TransmitClass Test/newreno_B_noLT -superclass TestSuiteTest/newreno_B_noLT instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno_B_noLT Agent/TCP set singledup_ 0 set guide_ "NewReno, without Limited Transmit, without bugfix." Test/newreno_B_noLT instproc run {} [Test/newreno_B info instbody run ] $self next pktTraceFile}##################################################### Many drops, Reno has a retransmit timeout.###################################################Class Test/reno1 -superclass TestSuiteTest/reno1 instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ reno1 set guide_ "Reno, #1, without Limited Transmit, without bugfix." $self next pktTraceFile}Test/reno1 instproc run {} { global quiet; $self instvar guide_ if {$quiet == "false"} {puts $guide_} Agent/TCP set bugFix_ false $self setup Reno {14 15 16 17 18 19 20 21 25 }}# Class Test/reno1_bugfix -superclass TestSuite# Test/reno1_bugfix instproc init {} {# $self instvar net_ test_ guide_# set net_ net4# set test_ reno1_bugfix# $self next pktTraceFile# }# Test/reno1_bugfix instproc run {} {# Agent/TCP set bugFix_ true# $self setup Reno {14 15 16 17 18 19 20 21 25 }# }Class Test/newreno1 -superclass TestSuiteTest/newreno1 instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1 Agent/TCP set bugFix_ false set guide_ "NewReno, #1, with Limited Transmit, without bugfix." $self next pktTraceFile}Test/newreno1 instproc run {} { global quiet; $self instvar guide_ if {$quiet == "false"} {puts $guide_} $self setup Newreno {14 15 16 17 18 19 20 21 25 }}Class Test/newreno1_BF -superclass TestSuiteTest/newreno1_BF instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1_BF Agent/TCP set bugFix_ true set guide_ "NewReno, #1, with Limited Transmit, with bugfix." Test/newreno1_BF instproc run {} [Test/newreno1 info instbody run ] $self next pktTraceFile}# With Limited Transmit, without bugfix, with newreno_changes1_# # With newreno_changes1_, we don't reset the retransmit timer for # later partial ACKS, so the retransmit timer is more likely to# expire, leading to more unnecessarily-retransmitted packets.# With this example, we just *happen* to only have an unnecessary # Fast Retransmit with Limited Transmit, and not without it.# The subsequent Fast Retransmits happen because we are not# using bugfix.Class Test/newreno1_A -superclass TestSuiteTest/newreno1_A instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1_A Agent/TCP set singledup_ 1 Agent/TCP set bugFix_ false set guide_ \ "NewReno, #1A, with Limited Transmit, without bugfix. Bad behavior." $self next pktTraceFile}Test/newreno1_A instproc run {} { global quiet; $self instvar guide_ if {$quiet == "false"} {puts $guide_} Agent/TCP/Newreno set newreno_changes1_ 1 $self setup Newreno {14 15 16 17 18 19 20 21 25 }}# Without Limited Transmit, without bugfix.Class Test/newreno1_A_noLT -superclass TestSuiteTest/newreno1_A_noLT instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1_A_noLT Agent/TCP set singledup_ 0 Agent/TCP set bugFix_ false set guide_ "NewReno, #1A, without Limited Transmit, without bugfix." Test/newreno1_A_noLT instproc run {} [Test/newreno1_A info instbody run ] $self next pktTraceFile}# With Limited Transmit, with bugfix.Class Test/newreno1_A_BF -superclass TestSuiteTest/newreno1_A_BF instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1_A_BF Agent/TCP set singledup_ 1 Agent/TCP set bugFix_ true set guide_ \ "NewReno, #1A, with Limited Transmit, with bugfix." Test/newreno1_A_BF instproc run {} [Test/newreno1_A info instbody run ] $self next pktTraceFile}# With Limited Transmit, with bugfix, with the Less Careful variant.Class Test/newreno1_A_BF_LC -superclass TestSuiteTest/newreno1_A_BF_LC instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1_A_BF_LC Agent/TCP set singledup_ 1 Agent/TCP set bugFix_ true Agent/TCP set lessCareful_ true set guide_ \ "NewReno, #1A, with Limited Transmit, with Less Careful bugfix." Test/newreno1_A_BF_LC instproc run {} [Test/newreno1_A info instbody run ] $self next pktTraceFile}Class Test/newreno1_B0 -superclass TestSuiteTest/newreno1_B0 instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1_B0 set guide_ "NewReno, #1B0, with Limited Transmit, without bugfix." $self next pktTraceFile}Test/newreno1_B0 instproc run {} { global quiet; $self instvar guide_ if {$quiet == "false"} {puts $guide_} Agent/TCP set bugFix_ false Agent/TCP/Newreno set partial_window_deflation_ 1 Agent/TCP/Newreno set exit_recovery_fix_ 1 $self setup Newreno {14 15 16 17 18 19 20 21 25 }}# With Limited Transmit, without bugfix.Class Test/newreno1_B -superclass TestSuiteTest/newreno1_B instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1_B Agent/TCP set singledup_ 1 Agent/TCP set bugFix_ false set guide_ \ "NewReno, #1B, with Limited Transmit, without bugfix." $self next pktTraceFile}Test/newreno1_B instproc run {} { global quiet; $self instvar guide_ if {$quiet == "false"} {puts $guide_} Agent/TCP/Newreno set newreno_changes1_ 1 Agent/TCP/Newreno set partial_window_deflation_ 1 Agent/TCP/Newreno set exit_recovery_fix_ 1 $self setup Newreno {14 15 16 17 18 19 20 21 25 }}# With Limited Transmit, with bugfix.Class Test/newreno1_B_BF -superclass TestSuiteTest/newreno1_B_BF instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1_B_BF Agent/TCP set singledup_ 1 Agent/TCP set bugFix_ true set guide_ \ "NewReno, #1B, with Limited Transmit, with bugfix." Test/newreno1_B_BF instproc run {} [Test/newreno1_B info instbody run ] $self next pktTraceFile}# With Limited Transmit, with bugfix, with the Less Careful variant.Class Test/newreno1_B_BF_LC -superclass TestSuiteTest/newreno1_B_BF_LC instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1_B_BF_LC Agent/TCP set singledup_ 1 Agent/TCP set bugFix_ true set guide_ \ "NewReno, #1B, with Limited Transmit, with Less Careful bugfix." Test/newreno1_B_BF_LC instproc run {} [Test/newreno1_B info instbody run ] $self next pktTraceFile}# Without Limited Transmit, without bugfix.Class Test/newreno1_B_noLT -superclass TestSuiteTest/newreno1_B_noLT instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1_B_noLT Agent/TCP set singledup_ 0 set guide_ "NewReno, #1B, without Limited Transmit, without bugfix." Test/newreno1_B_noLT instproc run {} [Test/reno info instbody run ] $self next pktTraceFile}# With Limited Transmit, without bugfix, with newreno_changes1_# With newreno_changes1_# With newreno_changes1_, we don't reset the retransmit timer for # later partial ACKS, so the retransmit timer is more likely to# expire, leading to more unnecessarily-retransmitted packets.# With this example, we have an unnecessary Fast Retransmit both# with and without Limited Transmit, but the behavior is worse# with Limited Transmit.Class Test/newreno1A_A -superclass TestSuiteTest/newreno1A_A instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1A_A Agent/TCP set singledup_ 1 Agent/TCP set bugFix_ false set guide_ \ "NewReno, #1A-A, with Limited Transmit, without bugfix. Bad behavior." $self next pktTraceFile}Test/newreno1A_A instproc run {} { global quiet; $self instvar guide_ if {$quiet == "false"} {puts $guide_} Agent/TCP/Newreno set newreno_changes1_ 1 $self setup Newreno {24 25 26 27 28 29 31 33 36 }}# With Limited Transmit, with bugfix.Class Test/newreno1A_A_BF -superclass TestSuiteTest/newreno1A_A_BF instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1A_A_BF Agent/TCP set singledup_ 1 Agent/TCP set bugFix_ true set guide_ "NewReno, #1A-A, with Limited Transmit, with bugfix." Test/newreno1A_A_BF instproc run {} [Test/newreno1A_A info instbody run ] $self next pktTraceFile}# With Limited Transmit, with Less Careful bugfix.Class Test/newreno1A_A_BF_LC -superclass TestSuiteTest/newreno1A_A_BF_LC instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1A_A_BF_LC Agent/TCP set singledup_ 1 Agent/TCP set bugFix_ true set guide_ \ "NewReno, #1A-A, with Limited Transmit, with Less Careful bugfix." Test/newreno1A_A_BF_LC instproc run {} [Test/newreno1A_A info instbody run ] $self next pktTraceFile}# Without Limited Transmit, without bugfix.Class Test/newreno1A_A_noLT -superclass TestSuiteTest/newreno1A_A_noLT instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ newreno1A_A_noLT Agent/TCP set singledup_ 0 Agent/TCP set bugFix_ false set guide_ "NewReno, #1A-A, without Limited Transmit, without bugfix." Test/newreno1A_A_noLT instproc run {} [Test/newreno1A_A info instbody run ] $self next pktTraceFile}##################################################### Multiple fast retransmits.#################################################### With Limited Transmit, without bugfix.Class Test/reno2 -superclass TestSuiteTest/reno2 instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ reno2 Agent/TCP set singledup_ 1 set guide_ "NewReno, with Limited Transmit, without bugfix." $self next pktTraceFile}Test/reno2 instproc run {} { global quiet; $self instvar guide_ if {$quiet == "false"} {puts $guide_} Agent/TCP set bugFix_ false $self setup Reno {24 25 26 28 31 35 40 45 46 47 48 }}# Without Limited Transmit, without bugfix.Class Test/reno2_noLT -superclass TestSuiteTest/reno2_noLT instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ reno2_noLT Agent/TCP set singledup_ 0 set guide_ "NewReno, without Limited Transmit, without bugfix." Test/reno2_noLT instproc run {} [Test/reno2 info instbody run ] $self next pktTraceFile}# With Limited Transmit, with bugfix.Class Test/reno2_bugfix -superclass TestSuiteTest/reno2_bugfix instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ reno2_bugfix Agent/TCP set singledup_ 1 set guide_ "NewReno, with Limited Transmit, with bugfix." $self next pktTraceFile}Test/reno2_bugfix instproc run {} { global quiet; $self instvar guide_ if {$quiet == "false"} {puts $guide_} Agent/TCP set bugFix_ true $self setup Reno {24 25 26 28 31 35 40 45 46 47 48 }}# Without Limited Transmit, with bugfix.Class Test/reno2_bugfix_noLT -superclass TestSuiteTest/reno2_bugfix_noLT instproc init {} { $self instvar net_ test_ guide_ set net_ net4 set test_ reno2_bugfix_noLT Agent/TCP set singledup_ 0 set guide_ "NewReno, without Limited Transmit, with bugfix." Test/reno2_bugfix_noLT instproc run {} [Test/reno2_bugfix info instbody run ] $self next pktTraceFile}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -