test-suite-ecn.tcl
来自「一款用来进行网络模拟的软件」· TCL 代码 · 共 2,109 行 · 第 1/5 页
TCL
2,109 行
set guide_ "Sack, ECN with small windows." $self next pktTraceFile}Test/ecn_smallwin1Ecn_sack instproc run {} { global quiet $self instvar ns_ guide_ errmodel1 errmodel2 puts "Guide: $guide_" Agent/TCP set old_ecn_ 0 $self ecnsetup Sack1 10.0 1 $self drop_pkts {4 8 9 11 12 13 120 135 143 148 150 153} $errmodel1 set markecn_ true $self drop_pkts2 {6} $errmodel2 set markecn_ false $ns_ run}# Packet drops for the second packet.Class Test/ecn_secondpkt_sack -superclass TestSuiteTest/ecn_secondpkt_sack instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true Agent/TCP set bugFix_ true set net_ net2-lossy set test_ ecn_secondpkt_sack set guide_ "Sack, with the second packet dropped." $self next pktTraceFile}Test/ecn_secondpkt_sack instproc run {} { global quiet $self instvar ns_ guide_ puts "Guide: $guide_" Agent/TCP set old_ecn_ 0 $self ecnsetup Sack1 2.0 1 $self drop_pkts {1 3} $ns_ run}# ECN for the second packet.Class Test/ecn_secondpktEcn_sack -superclass TestSuiteTest/ecn_secondpktEcn_sack instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_secondpktEcn_sack set guide_ "Sack, with the second packet marked." $self next pktTraceFile}Test/ecn_secondpktEcn_sack instproc run {} { global quiet $self instvar ns_ guide_ errmodel1 puts "Guide: $guide_" Agent/TCP set old_ecn_ 0 $self ecnsetup Sack1 2.0 1 $self drop_pkts {1 3} $errmodel1 set markecn_ true $ns_ run}######################################################################## Delayed Ack Sack1 Tests ######################################################################### Plain ECNClass Test/ecn_nodrop_sack_delack -superclass TestSuiteTest/ecn_nodrop_sack_delack instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_nodrop_sack_delack set guide_ "Sack, ECN, delayed acks." $self next pktTraceFile}Test/ecn_nodrop_sack_delack instproc run {} { global quiet $self instvar ns_ guide_ puts "Guide: $guide_" Agent/TCP set old_ecn_ 1 $self ecnsetup Sack1 3.0 0 1 $self drop_pkt 10000 $ns_ run}# Two ECNs close togetherClass Test/ecn_twoecn_sack_delack -superclass TestSuiteTest/ecn_twoecn_sack_delack instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_twoecn_sack_delack set guide_ "Sack, ECN, delayed acks." $self next pktTraceFile}Test/ecn_twoecn_sack_delack instproc run {} { global quiet $self instvar ns_ guide_ lossmodel puts "Guide: $guide_" Agent/TCP set old_ecn_ 1 $self ecnsetup Sack1 3.0 0 1 $self drop_pkt 243 $lossmodel set markecn_ true $ns_ run}# ECN followed by packet loss.Class Test/ecn_drop_sack_delack -superclass TestSuiteTest/ecn_drop_sack_delack instproc init {} { $self instvar net_ test_ guide_# Queue/RED set setbit_ true set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_drop_sack_delack set guide_ "Sack, packet loss followed by ECN, delayed acks." $self next pktTraceFile} Test/ecn_drop_sack_delack instproc run {} { global quiet $self instvar ns_ guide_ puts "Guide: $guide_" Agent/TCP set old_ecn_ 1 $self ecnsetup Sack1 3.0 0 1 $self drop_pkt 243 $ns_ run}# ECN followed by packet loss.Class Test/ecn_drop1_sack_delack -superclass TestSuiteTest/ecn_drop1_sack_delack instproc init {} { $self instvar net_ test_ guide_# Queue/RED set setbit_ true set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_drop1_sack_delack set guide_ "Sack, packet loss followed by ECN, delayed acks." $self next pktTraceFile}Test/ecn_drop1_sack_delack instproc run {} { global quiet $self instvar ns_ guide_ puts "Guide: $guide_" Agent/TCP set old_ecn_ 1 $self ecnsetup Sack1 3.0 0 1 $self drop_pkt 241 $ns_ run}# ECN with a window of one packet.Class Test/ecn_smallwinEcn_sack_delack -superclass TestSuiteTest/ecn_smallwinEcn_sack_delack instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_smallwinEcn_sack_delack set guide_ "Sack, delayed ack, ECN with small windows." $self next pktTraceFile}Test/ecn_smallwinEcn_sack_delack instproc run {} { global quiet $self instvar ns_ guide_ errmodel1 puts "Guide: $guide_" Agent/TCP set old_ecn_ 0 $self ecnsetup Sack1 10.0 1 1 $self drop_pkts {4 7 9 11 12 120 135 143 148 150 151 152} $errmodel1 set markecn_ true $ns_ run}######################################################################## Newreno Tests ######################################################################### Plain ECNClass Test/ecn_nodrop_newreno -superclass TestSuiteTest/ecn_nodrop_newreno instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_nodrop_newreno set guide_ "NewReno with ECN." $self next pktTraceFile}Test/ecn_nodrop_newreno instproc run {} { global quiet $self instvar ns_ guide_ Agent/TCP set old_ecn_ 1 $self ecnsetup Newreno 3.0 $self drop_pkt 10000 $ns_ run}# Two ECNs close togetherClass Test/ecn_twoecn_newreno -superclass TestSuiteTest/ecn_twoecn_newreno instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_twoecn_newreno set guide_ "NewReno, two marked packets in one window." $self next pktTraceFile}Test/ecn_twoecn_newreno instproc run {} { global quiet $self instvar ns_ guide_ lossmodel puts "Guide: $guide_" Agent/TCP set old_ecn_ 1 $self ecnsetup Newreno 3.0 $self drop_pkt 243 $lossmodel set markecn_ true $ns_ run}# ECN followed by packet loss.Class Test/ecn_drop_newreno -superclass TestSuiteTest/ecn_drop_newreno instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_drop_newreno set guide_ "NewReno, ECN preceded by packet loss." $self next pktTraceFile}Test/ecn_drop_newreno instproc run {} { global quiet $self instvar ns_ guide_ Agent/TCP set old_ecn_ 1 $self ecnsetup Newreno 3.0 $self drop_pkt 243 $ns_ run}# ECN preceded by packet loss.Class Test/ecn_drop1_newreno -superclass TestSuiteTest/ecn_drop1_newreno instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_drop1_newreno set guide_ "NewReno, ECN preceded by packet loss." $self next pktTraceFile}Test/ecn_drop1_newreno instproc run {} { global quiet $self instvar ns_ guide_ puts "Guide: $guide_" Agent/TCP set old_ecn_ 1 $self ecnsetup Newreno 3.0 $self drop_pkt 241 $ns_ run}# Packet loss only.Class Test/ecn_noecn_newreno -superclass TestSuiteTest/ecn_noecn_newreno instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true Queue/RED set thresh_ 1000 Queue/RED set maxthresh_ 1000 set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_noecn_newreno Test/ecn_noecn_newreno instproc run {} [Test/ecn_drop_newreno info instbody run ] set guide_ "NewReno, packet loss only, no ECN." $self next pktTraceFile}# Multiple dup acks with bugFix_Class Test/ecn_bursty_newreno -superclass TestSuiteTest/ecn_bursty_newreno instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true Queue/RED set thresh_ 100 Queue/RED set maxthresh_ 100 set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_bursty_newreno set guide_ "NewReno, multiple dup acks, with bugFix." $self next pktTraceFile}Test/ecn_bursty_newreno instproc run {} { global quiet $self instvar ns_ guide_ puts "Guide: $guide_" $self ecnsetup Newreno 3.0 set lossmodel [$self setloss] $lossmodel set offset_ 245 $lossmodel set burstlen_ 15 $lossmodel set period_ 10000 $ns_ run}# Multiple dup acks following ECNClass Test/ecn_burstyEcn_newreno -superclass TestSuiteTest/ecn_burstyEcn_newreno instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true set net_ net2-lossy Agent/TCP set bugFix_ true Agent/TCP set old_ecn_ 1 set test_ ecn_burstyEcn_newreno Test/ecn_burstyEcn_newreno instproc run {} [Test/ecn_bursty_newreno info instbody run ] set guide_ "NewReno, multiple dup acks and ECN, with bugFix." $self next pktTraceFile}# ECN followed by timeout.# Nope.Class Test/ecn_timeout_newreno -superclass TestSuiteTest/ecn_timeout_newreno instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_timeout_newreno set guide_ "NewReno, multiple dup acks" $self next pktTraceFile}Test/ecn_timeout_newreno instproc run {} { global quiet $self instvar ns_ guide_ puts "Guide: $guide_" $self ecnsetup Newreno 3.0 1 $self drop_pkts {242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268} $ns_ run}# ECN followed by a timeout, followed by an ECN representing a# new instance of congestion.Class Test/ecn_timeout1_newreno -superclass TestSuiteTest/ecn_timeout1_newreno instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_timeout1_newreno set guide_ "NewReno, drops and ECN followed by a timeout." $self next pktTraceFile}Test/ecn_timeout1_newreno instproc run {} { global quiet $self instvar ns_ guide_ puts "Guide: $guide_" Agent/TCP set old_ecn_ 1 $self ecnsetup Newreno 3.0 1 Agent/TCP set old_ecn_ 1 $self drop_pkts {245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265} $self second_tcp Tahoe 1.0 $ns_ run}# Packet drops with a window of one packet.Class Test/ecn_smallwin_newreno -superclass TestSuiteTest/ecn_smallwin_newreno instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true Agent/TCP set bugFix_ true set net_ net2-lossy set test_ ecn_smallwin_newreno set guide_ "NewReno, packet drops with a window of one." $self next pktTraceFile}Test/ecn_smallwin_newreno instproc run {} { global quiet $self instvar ns_ guide_ puts "Guide: $guide_" Agent/TCP set old_ecn_ 0 $self ecnsetup Newreno 6.0 1 $self drop_pkts {4 8 9 10 11 100 115 121 124 126 127 128} $ns_ run}# ECN with a window of one packet.Class Test/ecn_smallwinEcn_newreno -superclass TestSuiteTest/ecn_smallwinEcn_newreno instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true set net_ net2-lossy Agent/TCP set bugFix_ true set test_ ecn_smallwinEcn_newreno set guide_ "NewReno, ECN with a window of one." $self next pktTraceFile}Test/ecn_smallwinEcn_newreno instproc run {} { global quiet $self instvar ns_ guide_ errmodel1 puts "Guide: $guide_" Agent/TCP set old_ecn_ 0 $self ecnsetup Newreno 10.0 1 $self drop_pkts {4 8 9 11 12 13 120 135 143 148 150 151 152 153} $errmodel1 set markecn_ true $ns_ run}# Packet drops for the second packet.Class Test/ecn_secondpkt_newreno -superclass TestSuiteTest/ecn_secondpkt_newreno instproc init {} { $self instvar net_ test_ guide_ Queue/RED set setbit_ true Agent/TCP set bugFix_ true set net_ net2-lossy set test_ ecn_secondpkt_newreno set guide_ "NewReno, with the second packet dropped." $self next pktTraceFile}Test/ecn_secondpkt_newreno instproc run {} { global quiet $self instvar ns_ guide_ puts "Guide: $guide_" Agent/TCP set old_ecn_ 0 $se
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?