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

通讯编程

开发平台:

Visual C++

  1. # A simple example for hierarchical routing, by generating
  2. # topology by hand (of 10 nodes)
  3. set ns [new Simulator]
  4. $ns set-address-format hierarchical
  5. $ns namtrace-all [open hier-out-a.nam w]
  6. $ns trace-all [open hier-out-a.tr w]
  7. AddrParams set domain_num_ 2
  8. lappend cluster_num 2 2
  9. AddrParams set cluster_num_ $cluster_num
  10. lappend eilastlevel 2 3 2 3
  11. AddrParams set nodes_num_ $eilastlevel
  12. set naddr {0.0.0 0.0.1 0.1.0 0.1.1 0.1.2 1.0.0 1.0.1 1.1.0 1.1.1 1.1.2}
  13. for {set i 0} {$i < 10} {incr i} {
  14.      set n($i) [$ns node [lindex $naddr $i]]
  15. }
  16. $ns duplex-link $n(0) $n(1) 5Mb 2ms DropTail
  17. $ns duplex-link $n(1) $n(2) 5Mb 2ms DropTail
  18. $ns duplex-link $n(2) $n(3) 5Mb 2ms DropTail
  19. $ns duplex-link $n(2) $n(4) 5Mb 2ms DropTail
  20. $ns duplex-link $n(1) $n(5) 5Mb 2ms DropTail
  21. $ns duplex-link $n(5) $n(6) 5Mb 2ms DropTail
  22. $ns duplex-link $n(6) $n(7) 5Mb 2ms DropTail
  23. $ns duplex-link $n(7) $n(8) 5Mb 2ms DropTail
  24. $ns duplex-link $n(8) $n(9) 5Mb 2ms DropTail
  25. set udp0 [new Agent/UDP]
  26. $ns attach-agent $n(0) $udp0
  27. set cbr0 [new Application/Traffic/CBR]
  28. $cbr0 attach-agent $udp0
  29. set udp1 [new Agent/UDP]
  30. $udp1 set class_ 1
  31. $ns attach-agent $n(2) $udp1
  32. set cbr1 [new Application/Traffic/CBR]
  33. $cbr1 attach-agent $udp1
  34. set null0 [new Agent/Null]
  35. $ns attach-agent $n(8) $null0
  36. set null1 [new Agent/Null]
  37. $ns attach-agent $n(6) $null1
  38. $ns connect $udp0 $null0
  39. $ns connect $udp1 $null1
  40. $ns at 1.0 "$cbr0 start"
  41. $ns at 1.1 "$cbr1 start"
  42. puts [$cbr0 set packetSize_]
  43. puts [$cbr0 set interval_]
  44. $ns at 1.0 {$n(2) label [$n(2) set rtsize_]}
  45. $ns at 1.0 {$n(4) label [$n(4) set rtsize_]}
  46. $ns at 1.0 {$n(6) label [$n(6) set rtsize_]}
  47. $ns at 1.0 {$n(8) label [$n(8) set rtsize_]}
  48. $ns at 3.5 "finish"
  49. proc finish {} {
  50. global ns 
  51. $ns flush-trace
  52. ##puts "running nam..."
  53. ##exec nam hier-out-a.nam &
  54. exit 0
  55. }
  56. $ns run