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

通讯编程

开发平台:

Visual C++

  1. #
  2. Agent/TCP set tcpTick_ 0.1
  3. # The default for tcpTick_ is being changed to reflect a changing reality.
  4. Agent/TCP set rfc2988_ false
  5. # The default for rfc2988_ is being changed to true.
  6. # Copyright (c) 1998 University of Southern California.
  7. # All rights reserved.                                            
  8. #                                                                
  9. # Redistribution and use in source and binary forms are permitted
  10. # provided that the above copyright notice and this paragraph are
  11. # duplicated in all such forms and that any documentation, advertising
  12. # materials, and other materials related to such distribution and use
  13. # acknowledge that the software was developed by the University of
  14. # Southern California, Information Sciences Institute.  The name of the
  15. # University may not be used to endorse or promote products derived from
  16. # this software without specific prior written permission.
  17. # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
  18. # WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  19. # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  20. #
  21. # Contributed by Rishi Bhargava <rishi_bhargava@yahoo.com> May, 2001.
  22. # @(#) $Header: /cvsroot/nsnam/ns-2/tcl/test/test-suite-source-routing.tcl,v 1.7 2006/01/24 23:00:07 sallyfloyd Exp $
  23. #
  24. #
  25. # invoked as ns $file $t [QUIET]
  26. # expected to pop up xgraph output (unless QUIET)
  27. # and to leave the plot in temp.rands
  28. #
  29. remove-all-packet-headers       ; # removes all except common
  30. add-packet-header Flags IP TCP SR Src_rt ; # hdrs reqd for validation
  31. # FOR UPDATING GLOBAL DEFAULTS:
  32. Agent/TCP set precisionReduce_ false ;   # default changed on 2006/1/24.
  33. Agent/TCP set rtxcur_init_ 6.0 ;      # Default changed on 2006/01/21
  34. Agent/TCP set updated_rttvar_ false ;  # Variable added on 2006/1/21
  35. Agent/TCP set minrto_ 1
  36. # default changed on 10/14/2004.
  37. Agent/TCP set useHeaders_ false
  38. # The default is being changed to useHeaders_ true.
  39. Class TestSuite
  40. Class Test/source_rtg -superclass TestSuite
  41. Test/source_rtg instproc usage {} {
  42. puts stderr {usage: ns test-suite-source-routing.tcl test [QUIET] Test suites for source routing.
  43. }
  44. exit 1
  45. }
  46. Test/source_rtg instproc init {} {
  47. $self instvar ns_
  48. set ns_ [new Simulator]
  49. $ns_ src_rting 1
  50. $self setup_topo
  51. }
  52. Test/source_rtg instproc setup_topo {} {
  53. global node_
  54. $self instvar ns_
  55. set f [open "temp.rands" "w"]
  56. $ns_ trace-all $f
  57. # Create nodes
  58. set node_(0) [$ns_ node]
  59. set node_(1) [$ns_ node]
  60. set node_(2) [$ns_ node]
  61. set node_(3) [$ns_ node]
  62. set node_(4) [$ns_ node]
  63. #Create links between the nodes
  64. $ns_ duplex-link $node_(0) $node_(2) 1Mb 10ms DropTail
  65. $ns_ duplex-link $node_(1) $node_(2) 1Mb 10ms DropTail
  66. $ns_ duplex-link $node_(3) $node_(2) 1Mb 10ms DropTail
  67. $ns_ duplex-link $node_(2) $node_(4) 1Mb 10ms DropTail
  68. $ns_ duplex-link $node_(4) $node_(3) 1Mb 10ms DropTail
  69. $ns_ duplex-link $node_(1) $node_(3) 1Mb 10ms DropTail
  70. #Create a TCP agent and attach it to node n0
  71. set cbr0 [new Agent/TCP]
  72. $ns_ attach-agent $node_(0) $cbr0
  73. $cbr0 set fid_ 0
  74. #Create a TCP agent and attach it to node n1
  75. set cbr1 [new Agent/TCP]
  76. $ns_ attach-agent $node_(1) $cbr1
  77. $cbr1 set fid_ 1
  78. $cbr0 target [$node_(0) set src_agent_]
  79. $cbr1 target [$node_(1) set src_agent_]
  80. # install two connections
  81. set temp [$node_(0) set src_agent_]
  82. $temp install_connection [$cbr0 set fid_] 0 1 0 2 4 3 1
  83. set temp [$node_(1) set src_agent_]
  84. $temp install_connection [$cbr1 set fid_] 1 3 1 2 3 
  85. #Create a Null agent (a traffic sink) and attach it to node n3
  86. set null0 [new Agent/TCPSink]
  87. set null1 [new Agent/TCPSink]
  88. $ns_ attach-agent $node_(1) $null0
  89. $ns_ attach-agent $node_(3) $null1
  90. #Connect the traffic sources with the traffic sink
  91. $ns_ connect $cbr0 $null0  
  92. $ns_ connect $cbr1 $null1
  93. set ftp1 [$cbr0 attach-source FTP]
  94. set ftp2 [$cbr1 attach-source FTP]
  95. #Schedule events for the TCP agents
  96.  $ns_ at 0.5 "$ftp1 start"
  97.  $ns_ at 0.5 "$ftp2 start"
  98.  $ns_ at 10.0 "$ftp1 stop"
  99.  $ns_ at 10.5 "$ftp2 stop"
  100.  $ns_ at 11.0 "exit 0"
  101. }
  102. Test/source_rtg instproc run {} {
  103.     $self instvar ns_
  104.     puts "Starting Simulation..."
  105.     $ns_ run
  106. }
  107. proc runtest {arg} {
  108. set test "source_rtg"
  109. set t [new Test/$test]
  110. $t run
  111. }
  112. runtest $argv