test-suite-aimd.tcl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:18k
源码类别:

通讯编程

开发平台:

Visual C++

  1. # Copyright (c) 1995 The Regents of the University of California.
  2. # All rights reserved.
  3. #
  4. # Redistribution and use in source and binary forms, with or without
  5. # modification, are permitted provided that the following conditions
  6. # are met:
  7. # 1. Redistributions of source code must retain the above copyright
  8. #    notice, this list of conditions and the following disclaimer.
  9. # 2. Redistributions in binary form must reproduce the above copyright
  10. #    notice, this list of conditions and the following disclaimer in the
  11. #    documentation and/or other materials provided with the distribution.
  12. # 3. All advertising materials mentioning features or use of this software
  13. #    must display the following acknowledgement:
  14. # This product includes software developed by the Computer Systems
  15. # Engineering Group at Lawrence Berkeley Laboratory.
  16. # 4. Neither the name of the University nor of the Laboratory may be used
  17. #    to endorse or promote products derived from this software without
  18. #    specific prior written permission.
  19. #
  20. # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  21. # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23. # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  24. # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  25. # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  26. # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  27. # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  28. # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  29. # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  30. # SUCH DAMAGE.
  31. #
  32. # @(#) $Header: /cvsroot/nsnam/ns-2/tcl/test/test-suite-aimd.tcl,v 1.23 2006/01/25 22:02:04 sallyfloyd Exp $
  33. #
  34. source misc_simple.tcl
  35. remove-all-packet-headers       ; # removes all except common
  36. add-packet-header Flags IP TCP  ; # hdrs reqd for TCP
  37. Agent/TCP set tcpTick_ 0.1
  38. # The default for tcpTick_ is being changed to reflect a changing reality.
  39. Agent/TCP set rfc2988_ false
  40. # The default for rfc2988_ is being changed to true.
  41. # FOR UPDATING GLOBAL DEFAULTS:
  42. Agent/TCP set precisionReduce_ false ;   # default changed on 2006/1/24.
  43. Agent/TCP set rtxcur_init_ 6.0 ;      # Default changed on 2006/01/21
  44. Agent/TCP set updated_rttvar_ false ;  # Variable added on 2006/1/21
  45. Queue/RED set bytes_ false              
  46. # default changed on 10/11/2004.
  47. Queue/RED set queue_in_bytes_ false
  48. # default changed on 10/11/2004.
  49. Queue/RED set q_weight_ 0.002
  50. Queue/RED set thresh_ 5 
  51. Queue/RED set maxthresh_ 15
  52. # The RED parameter defaults are being changed for automatic configuration.
  53. Agent/TCP set useHeaders_ false
  54. # The default is being changed to useHeaders_ true.
  55. Agent/TCP set windowInit_ 1
  56. # The default is being changed to 2.
  57. Agent/TCP set singledup_ 0
  58. # The default is being changed to 1
  59. #Agent/TCP set oldCode_ true
  60. Agent/TCP set minrto_ 0
  61. # The default is being changed to minrto_ 1
  62. Agent/TCP set syn_ false
  63. Agent/TCP set delay_growth_ false
  64. # In preparation for changing the default values for syn_ and delay_growth_.
  65. # Uncomment the line below to use a random seed for the
  66. #  random number generator.
  67. # ns-random 0
  68. TestSuite instproc finish file {
  69.         global quiet PERL
  70. $self instvar cwnd_chan_
  71.         exec $PERL ../../bin/getrc -s 2 -d 3 all.tr | 
  72.           $PERL ../../bin/raw2xg -s 0.01 -m 90 -t $file > temp1.rands
  73.         if {$quiet == "false"} {
  74.                 exec xgraph -bb -tk -nl -m -x time -y packets temp1.rands &
  75.         }
  76.         if { [info exists cwnd_chan_] } {
  77.                 $self plot_cwnd
  78.      exec cp temp.cwnd temp.rands
  79.         }
  80.         ## now use default graphing tool to make a data file
  81.         ## if so desired
  82. #       exec csh figure2.com $file
  83. # exec csh gnuplotA.com temp.rands $file
  84. ###        exit 0
  85. }
  86. Class Topology
  87. Topology instproc node? num {
  88.     $self instvar node_
  89.     return $node_($num)
  90. }
  91. Class Topology/net2 -superclass Topology
  92. Topology/net2 instproc init ns {
  93.     $self instvar node_
  94.     set node_(s1) [$ns node]
  95.     set node_(s2) [$ns node]
  96.     set node_(r1) [$ns node]
  97.     set node_(r2) [$ns node]
  98.     set node_(s3) [$ns node]
  99.     set node_(s4) [$ns node]
  100.     $self next
  101.     Queue/RED set gentle_ true
  102.     $ns duplex-link $node_(s1) $node_(r1) 10Mb 2ms DropTail
  103.     $ns duplex-link $node_(s2) $node_(r1) 10Mb 3ms DropTail
  104.     $ns duplex-link $node_(r1) $node_(r2) 1.5Mb 5ms RED
  105.     $ns queue-limit $node_(r1) $node_(r2) 50
  106.     $ns queue-limit $node_(r2) $node_(r1) 50
  107.     $ns duplex-link $node_(s3) $node_(r2) 10Mb 4ms DropTail
  108.     $ns duplex-link $node_(s4) $node_(r2) 10Mb 5ms DropTail
  109. }
  110. Class Test/tcp -superclass TestSuite
  111. Test/tcp instproc init {} {
  112.     $self instvar net_ test_ sender_ receiver_ guide_
  113.     set net_ net2
  114.     set test_ tcp
  115.     set guide_ "Sack TCP."
  116.     set sender_ TCP/Sack1
  117.     set receiver_ TCPSink/Sack1 
  118.     $self next pktTraceFile
  119. }
  120. Test/tcp instproc run {} {
  121.     global quiet
  122.     $self instvar ns_ node_ testName_ dumpfile_ sender_ receiver_ guide_
  123.     puts "Guide: $guide_"
  124.     $self setTopo
  125.     Agent/TCP set window_ 20
  126.     set stopTime  20.0
  127.     set stopTime0 [expr $stopTime - 0.001]
  128.     set stopTime2 [expr $stopTime + 0.001]
  129.     if {$quiet == "false"} {
  130.         set tracefile [open all.tr w]
  131.         $ns_ trace-all $tracefile
  132.     }
  133.     set tcp1 [$ns_ create-connection $sender_ $node_(s1) $receiver_ $node_(s3) 0]
  134.     set ftp1 [$tcp1 attach-app FTP]
  135.     $self enable_tracecwnd $ns_ $tcp1
  136.     $ns_ at 0.0 "$ftp1 start"
  137.     $ns_ at $stopTime0 "$ftp1 stop"
  138.     set tcp2 [$ns_ create-connection $sender_ $node_(s2) $receiver_ $node_(s4) 1]
  139.     set ftp2 [$tcp2 attach-app FTP]
  140.     $ns_ at 10.0 "$ftp2 start"
  141.     $ns_ at 15.0 "$ftp2 stop"
  142.     ###$self traceQueues $node_(r1) [$self openTrace $stopTime $testName_]
  143.     $ns_ at $stopTime "$self cleanupAll $testName_" 
  144.     if {$quiet == "false"} {
  145. $ns_ at $stopTime2 "close $tracefile"
  146.     }
  147.     ## $ns_ at $stopTime3 "exec cp temp.cwnd temp.rands; exit 0"
  148.     $ns_ at $stopTime2 "exit 0"
  149.     # trace only the bottleneck link
  150.     $ns_ run
  151. }
  152. Class Test/tcpA -superclass TestSuite
  153. Test/tcpA instproc init {} {
  154.     $self instvar net_ test_ sender_ receiver_ guide_
  155.     set net_ net2
  156.     set test_ tcpA{increase_0.41,decrease_0.75}
  157.     set guide_ "Sack TCP, increase_num_ 0.41, decrease_num_ 0.75"
  158.     set sender_ TCP/Sack1
  159.     set receiver_ TCPSink/Sack1 
  160.     Agent/TCP set increase_num_ 0.41
  161.     Agent/TCP set decrease_num_ 0.75
  162.     Test/tcpA instproc run {} [Test/tcp info instbody run ]
  163.     $self next pktTraceFile
  164. }
  165. Class Test/tcpA_precise -superclass TestSuite
  166. Test/tcpA_precise instproc init {} {
  167.     $self instvar net_ test_ sender_ receiver_ guide_
  168.     set net_ net2
  169.     set test_ tcpA_precise{increase_0.41,decrease_0.75}
  170.     set guide_
  171.     "Sack TCP, increase_num_ 0.41, decrease_num_ 0.75, precisionReduce_ true"
  172.     set sender_ TCP/Sack1
  173.     set receiver_ TCPSink/Sack1 
  174.     Agent/TCP set increase_num_ 0.41
  175.     Agent/TCP set decrease_num_ 0.75
  176.     Agent/TCP set precisionReduce_ true
  177.     Test/tcpA_precise instproc run {} [Test/tcp info instbody run ]
  178.     $self next pktTraceFile
  179. }
  180. Class Test/tcpB -superclass TestSuite
  181. Test/tcpB instproc init {} {
  182.     $self instvar net_ test_ sender_ receiver_ guide_
  183.     set net_ net2
  184.     set test_ tcpB{increase_1.00,decrease_0.875}
  185.     set guide_
  186.     "Sack TCP, increase_num_ 1.0, decrease_num_ 0.875"
  187.     set sender_ TCP/Sack1
  188.     set receiver_ TCPSink/Sack1 
  189.     Agent/TCP set increase_num_ 1.0
  190.     Agent/TCP set decrease_num_ 0.875
  191.     Test/tcpB instproc run {} [Test/tcp info instbody run ]
  192.     $self next pktTraceFile
  193. }
  194. TestSuite instproc emod {} {
  195.         $self instvar lossylink_
  196.         set errmodule [$lossylink_ errormodule]
  197.         return $errmodule
  198. TestSuite instproc set_lossylink {} {
  199.         $self instvar lossylink_ ns_ node_
  200.         set lossylink_ [$ns_ link $node_(r1) $node_(r2)]
  201.         set em [new ErrorModule Fid]
  202.         set errmodel [new ErrorModel/Periodic]
  203.         $errmodel unit pkt
  204.         $lossylink_ errormodule $em
  205. }
  206. # Drop the specified packet.
  207. TestSuite instproc drop_pkt { number } {
  208.     $self instvar ns_ lossmodel
  209.     set lossmodel [$self setloss]
  210.     $lossmodel set offset_ $number
  211.     $lossmodel set period_ 10000
  212. }
  213. TestSuite instproc drop_pkts pkts {
  214.     $self instvar ns_
  215.     set emod [$self emod]
  216.     set errmodel1 [new ErrorModel/List]
  217.     $errmodel1 droplist $pkts
  218.     $emod insert $errmodel1
  219.     $emod bind $errmodel1 0
  220. }
  221. # First retransmit timeout, ssthresh decreased by half.
  222. Class Test/ssthresh -superclass TestSuite
  223. Test/ssthresh instproc init {} {
  224.     $self instvar net_ test_ sender_ receiver_ guide_
  225.     set net_ net2
  226.     set test_ ssthresh
  227.     set guide_ "Retransmit Timeout with Sack TCP."
  228.     set sender_ TCP/Sack1
  229.     set receiver_ TCPSink/Sack1 
  230.     $self next pktTraceFile
  231. }
  232. Test/ssthresh instproc run {} {
  233.     global quiet
  234.     $self instvar ns_ node_ testName_ dumpfile_ sender_ receiver_ guide_
  235.     puts "Guide: $guide_"
  236.     $self setTopo
  237.     $self set_lossylink
  238.     Agent/TCP set window_ 8
  239.     set stopTime  2.0
  240.     set stopTime0 [expr $stopTime - 0.001]
  241.     set stopTime2 [expr $stopTime + 0.001]
  242.     if {$quiet == "false"} {
  243.         set tracefile [open all.tr w]
  244.         $ns_ trace-all $tracefile
  245.     }
  246.     set tcp1 [$ns_ create-connection $sender_ $node_(s1) $receiver_ $node_(s3) 0]
  247.     set ftp1 [$tcp1 attach-app FTP]
  248.     $self enable_tracecwnd $ns_ $tcp1
  249.     $self drop_pkts {30 31 32 33 34 35 36}
  250.     $ns_ at 0.0 "$ftp1 start"
  251.     $ns_ at $stopTime0 "$ftp1 stop"
  252.     
  253.     ###$self traceQueues $node_(r1) [$self openTrace $stopTime $testName_]
  254.     $ns_ at $stopTime "$self cleanupAll $testName_" 
  255.     if {$quiet == "false"} {
  256. $ns_ at $stopTime2 "close $tracefile"
  257.     }
  258.     ## $ns_ at $stopTime3 "exec cp temp.cwnd temp.rands; exit 0"
  259.     $ns_ at $stopTime2 "exit 0"
  260.     # trace only the bottleneck link
  261.     $ns_ run
  262. }
  263. Class Test/ssthreshA -superclass TestSuite
  264. Test/ssthreshA instproc init {} {
  265.     $self instvar net_ test_ sender_ receiver_ guide_
  266.     set net_ net2
  267.     set test_ ssthreshA
  268.     set guide_
  269.     "Retransmit Timeout with Sack TCP, increase_num_ 0.41, decrease_num_ 0.75."
  270.     set sender_ TCP/Sack1
  271.     set receiver_ TCPSink/Sack1 
  272.     Agent/TCP set increase_num_ 0.41
  273.     Agent/TCP set decrease_num_ 0.75
  274.     Test/ssthreshA instproc run {} [Test/ssthresh info instbody run ]
  275.     $self next pktTraceFile
  276. }
  277. # Second retransmit timeout, ssthresh_second decrease depends on decrease_num_.
  278. Class Test/ssthresh_second -superclass TestSuite
  279. Test/ssthresh_second instproc init {} {
  280.     $self instvar net_ test_ sender_ receiver_ guide_
  281.     set net_ net2
  282.     set test_ ssthresh_second
  283.     set guide_ "Two Retransmit Timeouts with Sack TCP."
  284.     set sender_ TCP/Sack1
  285.     set receiver_ TCPSink/Sack1 
  286.     $self next pktTraceFile
  287. }
  288. Test/ssthresh_second instproc run {} {
  289.     global quiet
  290.     $self instvar ns_ node_ testName_ dumpfile_ sender_ receiver_ guide_
  291.     puts "Guide: $guide_"
  292.     $self setTopo
  293.     $self set_lossylink
  294.     Agent/TCP set window_ 8
  295.     set stopTime  2.0
  296.     set stopTime0 [expr $stopTime - 0.001]
  297.     set stopTime2 [expr $stopTime + 0.001]
  298.     if {$quiet == "false"} {
  299.         set tracefile [open all.tr w]
  300.         $ns_ trace-all $tracefile
  301.     }
  302.     set tcp1 [$ns_ create-connection $sender_ $node_(s1) $receiver_ $node_(s3) 0]
  303.     set ftp1 [$tcp1 attach-app FTP]
  304.     $self enable_tracecwnd $ns_ $tcp1
  305.     $self drop_pkts {30 31 32 33 34 35 36   120 121 122 123 124 125 126}
  306.     $ns_ at 0.0 "$ftp1 start"
  307.     $ns_ at $stopTime0 "$ftp1 stop"
  308.     
  309.     ###$self traceQueues $node_(r1) [$self openTrace $stopTime $testName_]
  310.     $ns_ at $stopTime "$self cleanupAll $testName_" 
  311.     if {$quiet == "false"} {
  312. $ns_ at $stopTime2 "close $tracefile"
  313.     }
  314.     ## $ns_ at $stopTime3 "exec cp temp.cwnd temp.rands; exit 0"
  315.     $ns_ at $stopTime2 "exit 0"
  316.     # trace only the bottleneck link
  317.     $ns_ run
  318. }
  319. Class Test/ssthresh_secondA -superclass TestSuite
  320. Test/ssthresh_secondA instproc init {} {
  321.     $self instvar net_ test_ sender_ receiver_ guide_
  322.     set net_ net2
  323.     set test_ ssthresh_secondA
  324.     set guide_ "Two Retransmit Timeouts with Sack TCP,
  325.     increase_num_ 0.41, decrease_num_ 0.75."
  326.     set sender_ TCP/Sack1
  327.     set receiver_ TCPSink/Sack1 
  328.     Agent/TCP set increase_num_ 0.41
  329.     Agent/TCP set decrease_num_ 0.75
  330.     Test/ssthresh_secondA instproc run {} [Test/ssthresh_second info instbody run ]
  331.     $self next pktTraceFile
  332. }
  333. ###################################################3
  334. Class Test/tcp_tahoe -superclass TestSuite
  335. Test/tcp_tahoe instproc init {} {
  336.     $self instvar net_ test_ sender_ receiver_ guide_
  337.     set net_ net2
  338.     set test_ tcp_tahoe
  339.     set guide_ "Tahoe TCP"
  340.     set sender_ TCP
  341.     set receiver_ TCPSink
  342.     Test/tcp_tahoe instproc run {} [Test/tcp info instbody run ]
  343.     $self next pktTraceFile
  344. }
  345. Class Test/tcpA_tahoe -superclass TestSuite
  346. Test/tcpA_tahoe instproc init {} {
  347.     $self instvar net_ test_ sender_ receiver_ guide_
  348.     set net_ net2
  349.     set test_ tcpA_tahoe{increase_0.41,decrease_0.75}
  350.     set guide_  "Tahoe TCP, increase_num_ 0.41, decrease_num_ 0.75"
  351.     set sender_ TCP
  352.     set receiver_ TCPSink
  353.     Agent/TCP set increase_num_ 0.41
  354.     Agent/TCP set decrease_num_ 0.75
  355.     Test/tcpA_tahoe instproc run {} [Test/tcp info instbody run ]
  356.     $self next pktTraceFile
  357. }
  358. Class Test/tcpA_precise_tahoe -superclass TestSuite
  359. Test/tcpA_precise_tahoe instproc init {} {
  360.     $self instvar net_ test_ sender_ receiver_ guide_
  361.     set net_ net2
  362.     set test_ tcpA_precise_tahoe{increase_0.41,decrease_0.75}
  363.     set guide_  
  364.     "Tahoe TCP, increase_num_ 0.41, decrease_num_ 0.75, precisionReduce_ true"
  365.     set sender_ TCP
  366.     set receiver_ TCPSink
  367.     Agent/TCP set increase_num_ 0.41
  368.     Agent/TCP set decrease_num_ 0.75
  369.     Agent/TCP set precisionReduce_ true
  370.     Test/tcpA_precise_tahoe instproc run {} [Test/tcp info instbody run ]
  371.     $self next pktTraceFile
  372. }
  373. Class Test/tcp_reno -superclass TestSuite
  374. Test/tcp_reno instproc init {} {
  375.     $self instvar net_ test_ sender_ receiver_ guide_
  376.     set net_ net2
  377.     set test_ tcp_reno
  378.     set guide_  "Reno TCP"
  379.     set sender_ TCP/Reno
  380.     set receiver_ TCPSink
  381.     Test/tcp_reno instproc run {} [Test/tcp info instbody run ]
  382.     $self next pktTraceFile
  383. }
  384. Class Test/tcpA_reno -superclass TestSuite
  385. Test/tcpA_reno instproc init {} {
  386.     $self instvar net_ test_ sender_ receiver_ guide_
  387.     set net_ net2
  388.     set test_ tcpA_reno{increase_0.41,decrease_0.75}
  389.     set guide_  "Reno TCP, increase_num_ 0.41, decrease_num_ 0.75"
  390.     set sender_ TCP/Reno
  391.     set receiver_ TCPSink
  392.     Agent/TCP set increase_num_ 0.41
  393.     Agent/TCP set decrease_num_ 0.75
  394.     Test/tcpA_reno instproc run {} [Test/tcp info instbody run ]
  395.     $self next pktTraceFile
  396. }
  397. Class Test/tcpA_precise_reno -superclass TestSuite
  398. Test/tcpA_precise_reno instproc init {} {
  399.     $self instvar net_ test_ sender_ receiver_ guide_
  400.     set net_ net2
  401.     set test_ tcpA_precise_reno{increase_0.41,decrease_0.75}
  402.     set guide_  
  403.     "Reno TCP, increase_num_ 0.41, decrease_num_ 0.75, precisionReduce_ true"
  404.     set sender_ TCP/Reno
  405.     set receiver_ TCPSink
  406.     Agent/TCP set increase_num_ 0.41
  407.     Agent/TCP set decrease_num_ 0.75
  408.     Agent/TCP set precisionReduce_ true
  409.     Test/tcpA_precise_reno instproc run {} [Test/tcp info instbody run ]
  410.     $self next pktTraceFile
  411. }
  412. Class Test/tcp_newreno -superclass TestSuite
  413. Test/tcp_newreno instproc init {} {
  414.     $self instvar net_ test_ sender_ receiver_ guide_
  415.     set net_ net2
  416.     set test_ tcp_newreno
  417.     set guide_  "NewReno TCP"
  418.     set sender_ TCP/Newreno
  419.     set receiver_ TCPSink
  420.     Test/tcp_newreno instproc run {} [Test/tcp info instbody run ]
  421.     $self next pktTraceFile
  422. }
  423. Class Test/tcpA_newreno -superclass TestSuite
  424. Test/tcpA_newreno instproc init {} {
  425.     $self instvar net_ test_ sender_ receiver_ guide_
  426.     set net_ net2
  427.     set test_ tcpA_newreno{increase_0.41,decrease_0.75}
  428.     set guide_  "NewReno TCP, increase_num_ 0.41, decrease_num_ 0.75"
  429.     set sender_ TCP/Newreno
  430.     set receiver_ TCPSink
  431.     Agent/TCP set increase_num_ 0.41
  432.     Agent/TCP set decrease_num_ 0.75
  433.     Test/tcpA_newreno instproc run {} [Test/tcp info instbody run ]
  434.     $self next pktTraceFile
  435. }
  436. Class Test/tcpA_precise_newreno -superclass TestSuite
  437. Test/tcpA_precise_newreno instproc init {} {
  438.     $self instvar net_ test_ sender_ receiver_ guide_
  439.     set net_ net2
  440.     set test_ tcpA_precise_newreno{increase_0.41,decrease_0.75}
  441.     set guide_  
  442.     "NewReno TCP, increase_num_ 0.41, decrease_num_ 0.75, precisionReduce_ true"
  443.     set sender_ TCP/Newreno
  444.     set receiver_ TCPSink
  445.     Agent/TCP set increase_num_ 0.41
  446.     Agent/TCP set decrease_num_ 0.75
  447.     Agent/TCP set precisionReduce_ true
  448.     Test/tcpA_precise_newreno instproc run {} [Test/tcp info instbody run ]
  449.     $self next pktTraceFile
  450. }
  451. ############################################################
  452. # IIAD, Inverse Increase Additive Decrease
  453. Class Test/binomial1 -superclass TestSuite
  454. Test/binomial1 instproc init {} {
  455.     $self instvar net_ test_ sender_ receiver_ guide_
  456.     set net_ net2
  457.     set test_ binomial1{IIAD}
  458.     set guide_ "TCP with IIAD"
  459.     set sender_ TCP/Sack1
  460.     set receiver_ TCPSink/Sack1 
  461.     Agent/TCP set decrease_num_ 0.33
  462.     Agent/TCP set precisionReduce_ true
  463.     Agent/TCP set k_parameter_ 1.0
  464.     Agent/TCP set l_parameter_ 0.0
  465.     Agent/TCP set windowOption_ 6
  466.     Test/binomial1 instproc run {} [Test/tcp info instbody run ]
  467.     $self next pktTraceFile
  468. }
  469. # SQRT, Square Root
  470. Class Test/binomial2 -superclass TestSuite
  471. Test/binomial2 instproc init {} {
  472.     $self instvar net_ test_ sender_ receiver_ guide_
  473.     set net_ net2
  474.     set test_ binomial2{SQRT}
  475.     set guide_ "TCP with SQRT"
  476.     set sender_ TCP/Sack1
  477.     set receiver_ TCPSink/Sack1 
  478.     Agent/TCP set decrease_num_ 0.33
  479.     Agent/TCP set precisionReduce_ true
  480.     Agent/TCP set k_parameter_ 0.5
  481.     Agent/TCP set l_parameter_ 0.5
  482.     Agent/TCP set windowOption_ 6
  483.     Test/binomial2 instproc run {} [Test/tcp info instbody run ]
  484.     $self next pktTraceFile
  485. }
  486. TestSuite runTest