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

通讯编程

开发平台:

Visual C++

  1. # null.tcl
  2. # Author: Alexander Sayenko <sayenko@cc.jyu.fi>
  3. # Dates: Mon, 24 Nov 2003
  4. # Notes: A script to show the use of Null plicy
  5. set ns [new Simulator]
  6. set cir  1000000
  7. set cir2 500000
  8. set client  [$ns node]
  9. set client2 [$ns node]
  10. set border [$ns node]
  11. set core [$ns node]
  12. set server [$ns node]
  13. $ns simplex-link $client2 $border 10Mb 2ms DropTail
  14. $ns simplex-link $client $border 10Mb 2ms DropTail
  15. $ns simplex-link $border $core 10Mb 2ms dsRED/edge
  16. $ns simplex-link $core $server 10Mb 2ms dsRED/core
  17. set agent  [new Agent/UDP]
  18. set agent2 [new Agent/UDP]
  19. set sink   [new Agent/Null]
  20. set sink2  [new Agent/Null]
  21. set appl [new Application/Traffic/CBR]
  22. $appl set rate_ [expr $cir+10000]
  23. set appl2 [new Application/Traffic/CBR]
  24. $appl2 set rate_ $cir2
  25. $client attach $agent
  26. $client2 attach $agent2
  27. $server attach $sink
  28. $server attach $sink2
  29. $ns connect $agent $sink
  30. $ns connect $agent2 $sink2
  31. $appl attach-agent $agent
  32. $appl2 attach-agent $agent2
  33. set qBC [[$ns link $border $core] queue]
  34. set qCS [[$ns link $core $server] queue]
  35. # -------------------------------------------------
  36. $qBC set NumQueues_ 1
  37. $qBC setNumPrec 2
  38. $qBC addPolicyEntry [$client id] [$server id] TokenBucket 10 $cir 500
  39. $qBC addPolicerEntry TokenBucket 10 11
  40. $qBC addPolicyEntry [$client2 id] [$server id] Null 20
  41. $qBC addPolicerEntry Null 20
  42. $qBC addPHBEntry 10 0 0
  43. $qBC addPHBEntry 11 0 1
  44. $qBC addPHBEntry 20 0 0
  45. $qBC configQ 0 0 4 10 0.1
  46. $qBC configQ 0 1 2 5 0.5
  47. # -------------------------------------------------
  48. $qCS set NumQueues_ 1
  49. $qCS setNumPrec 2
  50. $qCS addPHBEntry 10 0 0
  51. $qCS addPHBEntry 11 0 1
  52. $qCS addPHBEntry 20 0 0
  53. $qCS configQ 0 0 4 10 0.1
  54. $qCS configQ 0 1 2 5 0.5
  55. # -------------------------------------------------
  56. $ns at 0 "$appl start; $appl2 start"
  57. $ns at 5 "finish"
  58. proc finish {} {
  59.   global ns
  60.   global qBC qCS
  61.   $qBC printStats
  62.   $qBC printPolicyTable
  63.   $qBC printPolicerTable
  64.   $ns halt
  65. }
  66. $ns run