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

通讯编程

开发平台:

Visual C++

  1. #
  2. # Copyright (c) 1999 Regents of the University of California.
  3. # All rights reserved.
  4. #
  5. # Redistribution and use in source and binary forms, with or without
  6. # modification, are permitted provided that the following conditions
  7. # are met:
  8. # 1. Redistributions of source code must retain the above copyright
  9. #    notice, this list of conditions and the following disclaimer.
  10. # 2. Redistributions in binary form must reproduce the above copyright
  11. #    notice, this list of conditions and the following disclaimer in the
  12. #    documentation and/or other materials provided with the distribution.
  13. # 3. All advertising materials mentioning features or use of this software
  14. #    must display the following acknowledgement:
  15. #       This product includes software developed by the MASH Research
  16. #       Group at the University of California Berkeley.
  17. # 4. Neither the name of the University nor of the Research Group may be
  18. #    used to endorse or promote products derived from this software without
  19. #    specific prior written permission.
  20. #
  21. # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  22. # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  23. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  24. # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  25. # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  26. # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  27. # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  28. # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  29. # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  30. # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  31. # SUCH DAMAGE.
  32. #
  33. # Contributed by Tom Henderson, UCB Daedalus Research Group, June 1999
  34. if {![info exists ns]} {
  35. puts "Error: sat-teledesic-links.tcl is a supporting script for the "
  36. puts "       sat-teledesic.tcl script-- run `sat-teledesic.tcl' instead"
  37. exit
  38. }
  39. # Now that the positions are set up, configure the ISLs
  40. # Intraplane
  41. for {set a 1} {$a <= 12} {incr a} {
  42. for {set i [expr $a * 100]} {$i < [expr $a * 100 + 24]} {incr i} {
  43. set imod [expr $i % 100]
  44. if {$imod == 23} {
  45. set next [expr $a * 100]
  46. } else {
  47. set next [expr $i + 1]
  48. }
  49. if {$imod == 23} {
  50. set next2 [expr $a * 100 + 1]
  51. } elseif {$imod == 22} {
  52. set next2 [expr $a * 100]
  53. } else {
  54. set next2 [expr $i + 2]
  55. }
  56. $ns add-isl intraplane $n($i) $n($next) $opt(bw_isl) $opt(ifq) $opt(qlim)
  57. $ns add-isl intraplane $n($i) $n($next2) $opt(bw_isl) $opt(ifq) $opt(qlim)
  58. }
  59. }
  60. # Interplane ISLs
  61. # 4 interplane ISLs per satellite 
  62. for {set i 100} {$i < 124} {incr i} {
  63. set next [expr $i + 100]
  64. $ns add-isl interplane $n($i) $n($next) $opt(bw_isl) $opt(ifq) $opt(qlim)
  65. }
  66. for {set a 3} {$a <= 12} {incr a} {
  67. for {set i [expr $a * 100]} {$i < [expr $a * 100 + 24]} {incr i} {
  68. set prev [expr $i - 100]
  69. set prev2 [expr $i - 200]
  70. $ns add-isl interplane $n($i) $n($prev) $opt(bw_isl) $opt(ifq) $opt(qlim)
  71. $ns add-isl interplane $n($i) $n($prev2) $opt(bw_isl) $opt(ifq) $opt(qlim)
  72. }
  73. }
  74. # Crossseam ISLs
  75. # Plane 1 <-> Plane 12
  76. for {set i 100} {$i < 112} {incr i} {
  77. set j [expr 1311 - $i]
  78. $ns add-isl crossseam $n($i) $n($j) $opt(bw_isl) $opt(ifq) $opt(qlim)
  79. }
  80. for {set i 112} {$i < 124} {incr i} {
  81. set j [expr 1335 - $i]
  82. $ns add-isl crossseam $n($i) $n($j) $opt(bw_isl) $opt(ifq) $opt(qlim)
  83. }